基本操作 闪烁灯 流水灯_第1页
基本操作 闪烁灯 流水灯_第2页
基本操作 闪烁灯 流水灯_第3页
基本操作 闪烁灯 流水灯_第4页
基本操作 闪烁灯 流水灯_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 锁存器功能表如上图,为使能端口,低电平有效。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左移变成0x00时,灯全亮,if条件满足,执行P1=0x01,然后再延时,左移,就这样就产生了流水灯。编译下载程序,观察实际状态。9.使用循环移动产生流水灯上面的流水灯比较容易理解,但是一个灯灭其他灯亮,不太好看,这里使用循环移动产生流水灯,程序更简单。这个程序需要用到库函数intrin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论