基本操作闪烁灯流水灯

上传人:汽*** 文档编号:507611622 上传时间:2023-04-09 格式:DOC 页数:12 大小:1.22MB
返回 下载 相关 举报
基本操作闪烁灯流水灯_第1页
第1页 / 共12页
基本操作闪烁灯流水灯_第2页
第2页 / 共12页
基本操作闪烁灯流水灯_第3页
第3页 / 共12页
基本操作闪烁灯流水灯_第4页
第4页 / 共12页
基本操作闪烁灯流水灯_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基本操作闪烁灯流水灯》由会员分享,可在线阅读,更多相关《基本操作闪烁灯流水灯(12页珍藏版)》请在金锄头文库上搜索。

1、实验一:硬件,软件介绍以及闪烁灯和流水灯一实验目的1.认识单片机以及外围硬件。 2.掌握KEIL软件的基本操作。3.掌握单片机编程的一般流程。二实验内容1.认识单片机开发板上的硬件,串口以及usb转串口线。2.使用keil软件建立工程并编写闪烁灯程序,下载到开发板上进行验证。3.改写闪烁灯程序,进一步熟悉操作。3.编写流水灯程序并下载到开发板上进行验证。三实验设备电脑,单片机开发板,串口线,usb转串口线。四硬件介绍1.51单片机介绍图1-1 开发板的硬件资源图1-1为本实验中用到的单片机开发板,该开发板包含了较多的硬件资源。这里主要介绍一下主芯片stc89c52,其它大部分硬件在以后相应的实

2、验中再做介绍。上图中间最大的那个黑色长方块就是单片机,使用单片机就可以控制开发板上其他的硬件,此单片机全名为STC89C52RC,其中STC代表生产该单片机的厂家,8代表单片机是8051内核,9代表内部有EEPROM存储器,C表示该器件是CMOS产品,5是固定不变的数字,2表示单片机内部含有8KB的程序存储空间(如果是1表示4KB,如果是3表示12KB,以此类推。),RC表示内部的随机存储器RAM大小为512B。除了这些文字还有标明单片机的最大接入频率,产品级别,封装形式,生产日期,以及生产工艺的文字,这里就不一一说明。2.串口线以及usb转串口线的介绍图1-2 串口线串口线如图1-2所示,串

3、口线主要用来给单片机下载程序以及串口通讯时使用,其结构以及通讯方式将在串口通讯实验时介绍,开始只拿串口下载程序使用。一般的台式机都会有串口,将串口线一段插在台式机上一段插在单片机上,接上电源就可以给单片机下载程序。但是很多时候使用的是笔记本,笔记本上很少有串口,所以就需要使用usb转串口线,如图1-3所示。图1-3 usb转串口线usb转串口线将usb接口通过芯片和程序虚拟出一个串口来进行电脑与单片机的通讯,所以使用时还需给笔记本安装驱动,芯片一般为PL2303或者HL340,根据usb转串口使用的芯片不同安装不同的驱动。3.led灯的硬件电路图1-4 led灯的电路如图所示,8个led灯的阳

4、极通过排阻接到了电源上,阴极接到了74hc573锁存器的输出口,输入口与单片机的P1口连接,锁存器的锁存口L与单片机的P2.5连接。锁存器的功能如图1-5所示。图1-5 锁存器功能表如上图,E()为使能端口,低电平有效。L为锁存口,当锁存口L为高时,输入和输出口的状态一致,当L为低时锁存上一个L为高时的状态。4.建立第一个工程首先,在桌面新建一个文件夹,然后打开keil软件,显示如图1-6。图1-6 打开keil然后,单击菜单栏的project,在弹出的子菜单中点击new uvision project,在弹出的对话框中给工程命名(这里命名为闪烁灯或者其他)并将工程保存在刚才新建的文件夹之中。

5、如图1-7。图1-7点击保存,会弹出选择单片机的对话框,选择STC89C52RC,单击OK,如图1-8。然后会弹出一个对话框问你是否添加启动代码,单击 是(Y)。图1-8下来,单击菜单栏的file在子菜单中单击new,此时会生成一个文本输入框text1,然后单击filesave,将该文件保存为 闪烁灯,如图1-9.图1-9在软件左侧project窗口中打开文件夹target,在子文件夹中右键单击source group 1,在弹出的菜单中单击add files to group source group 1,在弹出的对话框中选择刚才保存好的 流水灯.c 点击add,然后点击close关闭对话框

6、。如图1-10,1-11所示。图1-10图1-11这样,一个工程就建立好了,如图1-12,接下来就是在闪烁灯.c中编写程序了。图1-12 建立工程完毕5.闪烁灯程序的编写要想使led灯产生一明一暗的闪烁效果,根据电路图1-4,可以将锁存器的锁存端L置高电平,然后通过编程使片机的P1口每隔一段时间为高电平一段时间为低电平,而led灯的阳极接电源所以当P1口为低电平时led灯亮,P1为高电平时led灯灭。如图1-13.图1-13 P1口的状态在闪烁灯.c中输入程序如图1-14,(/以及后面的文字是注释,用来解释程序可以不输)。图1-14首先介绍头文件,reg52.h文件定义了stc89c52单片机

7、内部的寄存器,为了使用方便将16进制地址的寄存器定义成了各种名称,例如P1,P2等。sbit diola=P25; sbit是位定义,意思是说之后的diola对应于单片机的P2.5脚,要注意的是,这里的P25中间的是异或的意思,是一个运算,不能直接使用。所以当使用单片机的一个引脚必须要对其重新定义。下来是延时函数,延时函数主要是为了是单片机的引脚保持一种状态一段时间,执行一次for循环大概使用1us,这里的两重for循环大概为0.5s。值得说明的是,每当单片机开始运行程序的时候是直接从主函数里运行的。diola=1;是将锁存器设置为非锁存状态,这样输入输出就会保持一致。下来进入while(1)

8、死循环,进入死循环的好处是防止重复运行不必要的程序(diola=1这句话执行一遍就够了)。接下来就是让led灯产生明暗变化,首先给P1赋值0xff,使得P1的8个引脚都为高电平,此时灯是灭的状态,保持0.5s左右,给P1赋值0,这样8个引脚都变成了低电平,此时,led灯导通发光,延时保持一段时间后再运行P1=0xff; 让led灯熄灭,就这样一直运行下去,是8个led灯产生了闪烁灯的效果。6.编译程序,并将程序下载到单片机开发板上运行程序编写完后,点击编译按钮如图1-15中被圈起的按钮。图1-15如果程序没有错误,那么会在窗口下方的build output窗口显示如图1-16.图1-16如果出

9、现错误,检查并修改程序,重新编译,编译成功后就要输出hex文件,hex文件是直接下载到单片机中的程序文件,它是由keil软件根据刚才编好的程序生成的单片机可以识别的16进制文件。点击target options如图1-17中被圈起的图标。图1-17再打开的对话框中选择output选项卡,将creat hex file前勾起,如图1-18。图1-18点击OK,然后再次点击编译按钮,重新编译程序,显示编译成功后,就会在工程所在的文件夹中生成一个闪烁灯.hex的文件。接下来就是下载程序到单片机,首先用串口线将电脑与开发板连接,然后用usb线把电脑与开发板连接(usb线主要是提供电源)。按下开关电源指

10、示灯亮说明没有问题,再次按下开关关掉电源。打开stc-isp软件(),在mcu type中选择STC89C52RC,然后点击打开程序文件按钮,找到刚才生成的闪烁灯.hex文件,选择合适的串口(comx不同的电脑串口不一样),然后点击download/下载,如图1-19.图1-19如图1-19,当出现握手连接时,打开单片机开发板的电源,程序就会下载到单片机里面,下载完后程序就会自动运行,观察程序运行状态。7.修改程序,让闪烁灯产生不同的闪烁效果,这里列举两例。(1)改变延时时间将程序中delay函数中的时间减小,将500改成200,如图1-20.图1-20重新编译程序,生成hex文件,重复刚才的

11、操作将程序下载到单片机当中,会发现闪烁的频率变快了。(2)改变闪烁灯样式将程序中对P1的赋值改变,如图1-21.图1-21重复编译,下载步骤,发现8个led灯前四个与后四个交替闪烁。8.流水灯的产生流水灯的原理与闪烁灯类似,只不过是让8个led灯顺序的点亮。将闪烁灯的程序删掉,输入以下程序,如图1-22.图1-22这个程序的原理是,先给P1口赋值0x01,这样就会使第一个灯灭,剩下七个灯亮,接下来进入while(1)死循环,先延时一段时间,然后对P1的数据左移,最后一位补零,这样P1的数据变成了0x02,然后判断P1是否为零,条件不满足,重新执行延时函数,再左移,P1等于0x04,当P1左移变

12、成0x00时,灯全亮,if条件满足,执行P1=0x01,然后再延时,左移,就这样就产生了流水灯。编译下载程序,观察实际状态。9.使用循环移动产生流水灯上面的流水灯比较容易理解,但是一个灯灭其他灯亮,不太好看,这里使用循环移动产生流水灯,程序更简单。这个程序需要用到库函数intrins.h中的函数_crol_(a,n),它表示将a的二进制值左移n位。程序如图1-23.图1-23这个程序里包含了intrins.h这是软件自带的一个函数库,里面有很多函数都是方便写程序,这个程序使用到了intrins.h中的循环左移程序。这样的函数库还有很多,一般都是实际需要用到时再查取调用。之后的程序都很简单,就不做过多解释。编译下载程序,观察运行状态。 (注:可编辑下载,若有不当之处,请指正,谢谢!)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号