单片机流水灯课程设计_第1页
单片机流水灯课程设计_第2页
单片机流水灯课程设计_第3页
单片机流水灯课程设计_第4页
单片机流水灯课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 设计任务与要求11.1设计任务11.2设计要求12 设计方案12.1 设计思路12.2 器件介绍与作用12.2.1 STC89C52RC简介12.2.2 STC89C52RC参数32.2.3 STC89C52RC特性32.2.4 STC89C52RC单片机的P2口介绍42.2.5 LED灯介绍53 硬件电路设计63.1 原理图63.2 LED被点亮的原理74 软件设计84.1设计流程84.2 源程序155 调试过程165.1实物连接图165.2调试175.3出现的问题176 总结187 附录 MSC-51系列单片机指令表19参考文献24单片机原理与应用课程设计1 设计任务与要求1.1

2、设计任务 设计一个通过单片机P2口控制流水灯的系统1.2设计要求(1)至少8个灯;(2)可实现不同的亮灯(如左循环,右循环,间隔闪等)。2 设计方案2.1 设计思路整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。于STC89C52单片机的彩灯控制方案,实现对LED红灯的控制。本方案以STC89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。在主控模块上设有晶振电路和8个LED灯,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。2.2 器件介绍与作用2.2.1 STC89C52RC简介 STC89C5

3、2是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

4、另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或件复位为止。最高运作频率35MHz,6T/12T可选图2.1 STC89C52RC实物图图2.2 STC89C52RC管脚图2.2.2 STC89C52RC参数1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.22. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)3

5、.工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片8. 具有EEPROM 功能9. 共3 个16 位定时器/计数器。即定时器T0、T1、

6、T210.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒11. 通用异步串行口(UART),还可用定时器软件实现多个UART12. 工作温度范围:-40+85(工业级)/075(商业级)13. PDIP封装2.2.3 STC89C52RC特性STC89C52RC单片机:8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;AT89S52单片机:8K字节程序存储空间;256字节数据存储空间;没有内带EEPROM存储空间;2.2.4 STC89C52RC单片机的P2口介绍 P2口由一个输出锁存

7、器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个反相器组成。P2的结构如图2.3所示。图2.3 P2 口的位结构 图2.3中控制信号C的状态决定转换开关的位置。当C=0时,开关处于图示的位置;当C=1时,开关拨向地址线位置。由图可见,输出驱动电路与P0口不同,内部设有上拉电阻(由两个场效应晶体管并联构成,图中用等效电阻R表示)。 (1). P2用作通用I/O口(C=0) 当没有在单片机芯片外扩展总线;或者虽然扩展了片外总线,但采用“MOVX Ri”类指令访问,且P2口用高八位地址线没有全部用到时(P2.6,P2.7,.),P2口的口线就可以作为通用I/O口线使用。 执行输出指令时

8、,内部数据总线的数据在“写锁存器”信号的作用下由D端进去锁存器,经反相器反相后送至场效应晶体管T,再经T反相,在P2.x引脚出现数据正好是内部数据总线的数据。 用作输入时,数据可以自口锁存器,也可以读自口的引脚,这是根据输入操作采用的是“读锁存器”指令还是“读引脚”指令决定。 CPU在执行“读-修改-写”类输入指令时(ANL P2,A)内部产生的“读锁存器”操作信号使锁存器Q端数据进入内部总线,在与累加器A进行逻辑运算之后,结果又送回P2的口锁存器并出现在引脚。 CPU在执行“MOV”类指令时(如:MOV A,P2)内部产生的操作信号使“读引脚”应在执行输入指令前把锁存器写入,目的是场效应晶体

9、管T2截止,从而使引脚处于高阻抗输入状态。所以,P2口在通用I/O口时,属于准双向口。(2)P2在作为地址总线() 当需要在单片机芯片外部扩展程序存储器或扩展了RAM(或接口芯片)且采用“MOVX DPTR”类指令访问,单片机内部硬件会使C=1,MUX开关接向地址线,这时P2.x引脚的状态与地址线信息相同2.2.5 LED灯介绍LED 是英文 light emitting diode (发光二极管)的缩写,LED灯俗称发光二极管,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以 LED 的抗震性能好。LED(Light Emi

10、tting Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。3 硬件电路

11、设计3.1 原理图通过图3.1我们可以看出,在LED灯后要加一个电阻,通常电阻应用在单片机电路中有三种作用:限流电阻、上拉电阻、下拉电阻。在流水灯接线图中的电阻起的是限流作用。 图3.1 流水灯接线原理图3.2 LED被点亮的原理 图3.2中A端为发光二极管的阳极,B端为发光二极管的阴极,要想点亮发光二极管,阴极必须加一个低电平(0V),发光二极管允许的电流在3mA至10mA之间,发光二极管被点亮的最小电流为3mA。已知发光二极管被点亮后的压降值为1.7V,VCC=+5V,电阻上的电压为3.3V,根据欧姆定律R=3.3V/3mA=1.1K,因此要选用1K的电阻图3.2 流水灯接线分支电路4 软

12、件设计4.1设计流程1) 打开Keil Vision3软件2) 建立工程工程以LED为名保存选择芯片3) 建立新文件以了LED.asm为名保存4) 把文件添加到工程添加成功5) 在文件中输入程序6) 设置生成.hex文件和编译设置生成.hex文件编译成功,无错误7) 打开 STC_ISP_V483.exe软件8) 下载程序4.2 源程序1 程序一 ORG 0000H LJMP START ORG 0100HSTART: MOV SP,#60H ;设置堆栈的初始地址LOOP: MOV P2,00H ;点亮八个LED灯 LCALL DELAY ;调用延时子程序 MOV P2,0FFH ;熄灭八个L

13、ED灯 LCALL DELAY ;调用延时子程序 SJMP LOOP DELAY: ;延时子程序 MOV R0,#0FFHNEXT: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,NEXT RET END2 程序二 ORG 0000H LJMP START ORG 0100H START: MOV SP,#60H ;设置堆栈的初始地址 MOV R7,#0FFH ;把R7置1 MOV P2,R7 ;把P2口置1LOOP: MOV A,R7 RLC A ;循环移位 MOV P2,A ;点亮第一个灯 MOV R7,A LCALL DELAY ;调用延时子程序 SJMP LOOP DE

14、LAY: ;延时子程序 MOV R0,#0FFH NEXT: MOV R1,#0FFH DJNZ R1,$ DJNZ R0, NEXT RET END5 调试过程5.1实物连接图 在普中科技HC6800 V2.8 开发板中,将开发板中的USB插口与电脑上的USB插口相连,再将单片机的P2口与LED灯用线连接起来。图5.1 连接实物图5.2调试程序编译成功以后,生成.hex文件,用STC_ISP下载到单片机中,在下载过程中先进行下载然后再上电,打开单片机开发板的开关后,就会看到八个发光二极管的亮灭情况。程序一的现象是八个发光二极管同时亮、灭,一直循环,并且亮和灭的速度很快。程序二的现象是八个发光

15、二极管从头依次亮,每次只有一个灯亮,从第一个一直亮到第八个,从后再从头循环,在调试过程中,我们可以在程序中的“LCALL DELAY”语句后再增加“LCALL DELAY”语句,增加的越多,延时越长,亮或者是灭的时间就越长。5.3出现的问题在用STC_ISP往单片机中下载程序时出现图5.2中的打开串口失败,原因是串口已被其他程序打开或该串口不存在。出现该问题的原因时使用的串口不正确,在设备管理器中查找正确的串口,并改正。改正后程序能正常下载+图5.2问题截图6 总结 通过这次课程设计我学到了很多东西,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所

16、用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源:懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中,还是碰到了一些问题。比如,对于键盘的延时防抖问题不能较好的解决;对于编程的顺序及各模块程序调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强

17、实践能力,而且在理论上可以有更深的认识 当今社会,由单片机芯片控制各种硬件工作的技术日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中应用更为广泛,较为贴近生活。以前在路上夜景中经常见到各种流水灯,感觉很漂亮,通过此次编程以后才知道了原理,让我有一种学以致用的成就感!很开心!流水灯控制的设计所需要的知识不仅吻合了我们本学期对于单片机这门课程的学习,而且对于我们以前所学习的如数码管显示、LEG灯等知识也是一次很好地运用,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 总的来说,这次设计获益良多。不仅培养了实践能力,还培养了设计思维,在摸索该如何设计电

18、之实现所需功能的过程中,锻炼了运用所学知识的灵活性,加深了对知识的理解及提高了解决问题的能力。在体会到设计电路编写程序的艰辛的同时,更能体会到成功的喜悦和快乐。7 附录 MSC-51系列单片机指令表表7-1 数据类传送令表助记符操 作功 能字节数周期数MOV A,Rd(A)(Rd)寄存器字节送到累加器11MOV A,m(A)(m)直接字节送到累加器21MOV A,Ri(A)(Ri)间接RAM送到累加器11MOV A,#n(A)n立即数送累加器21MOV Rd,A(Rd)(A)累加器字节送寄存器11MOV Rd,m(Rd)(m)直接字节送寄存器22MOV Rd,#n(Rd)n立即数送寄存器21M

19、OV m,A(m)(A)累加器字节送直接字节21MOV m,Rd(m)(Rd)寄存器字节送直接字节22MOV m1,m2(m1)(m2)直接字节送直接字节32MOV m,Ri(m)(Ri)间接RAM送入直接字节22MOV m,#n(m)n立即数送入直接字节32MOV Ri,A(Ri)(A)累加器字节送入间接RAM11MOV Ri,m(Ri)(m)直接字节送入间接RAM22MOV Ri,#n(Ri)n立即数送入间接RAM21MOV DPTR,#n(16)(DPTR)n(16)十六位立即数送数据指示器32MOVC A,A+DPTR(A)(A)+(DPTR)间接ROM送累加器12MOVC A,A+P

20、C(A)(A)+(PC)间接ROM送累加器12MOVX A,Ri(A)(P2)+(Ri)从外部间接RAM(8位地址)送入累加器12MOVX A,DPTR(A)(DPTR)从外部间接RAM(16位地址)送入累加器12MOVX Ri,A(P2)+(Ri)(A)累加器内容送外部间接RAM(8位地址)12MOVX DPTR,A(DPTR)(A)累加器内容送外部间接RAM(16位地址)12PUSH m(SP)+1)(m)直接字节进堆栈22POP m(m)(SP)直接字节出堆栈22XCH A,Rd(A)(Rd)寄存器与累加器交换11XCH A,m(A)(m)直接字节与累加器交换21XCH A,Ri(A)(

21、Ri)间接RAM与累加器交换11XCHD A,Ri (A30)(Ri) 74)间接RAM低半字节与累加器交换11表7-2算术运算指令助记符操 作功 能字节数周期数ADD A,Rd(A)(A)+(Rd)寄存器加到累加器11ADD A,m(A)(A)+(m)直接字节加到累加器21ADD A,Ri(A)(A)+(Ri)间接RAM加到累加器11ADD A,#n(A)(A)+n立即数加到累加器21ADDC A,Rd(A)(A)+(Rd)+(C)寄存器和进位加到累加器11ADDC A,m(A)(A)+(m)+(C)直接字节和进位加到累加器21ADDC A,Ri(A)(A)+(Ri)+(C)间接RAM和进位

22、加到累加器11ADDC A,#n(A)(A)+n+(C)立即数和进位加到累加器21SUBB A,Rd(A)(A)-(Rd)-(C)累加器减去寄存器和借位11SUBB A,m(A)(A)-(m)-(C)累加器减去直接字节和借位21SUBB A,Ri(A)(A)-(Ri)-(C)累加器减去间接RAM和借位11SUBB A,#n(A)(A)-n-(C)累加器减去立即数和借位21INC A(A)(A)+1累加器加111INC Rd(Rd)(Rd)+1寄存器加111INC m(m)(m)+1直接字节加121INC Ri(Ri)(Ri)+1间接RAM加111INC DPTR(DPTR)(DPTR)+1数据

23、指示器加112DEC A(A)(A)-1累加器减111DEC Rd(Rd)(Rd)-1寄存器减111DEC m(m)(m)-1直接字节减121DEC Ri(Ri)(Ri)-1间接RAM减111MUL AB(B)(A)(A)·(B)A乘B14DIV AB(A)(B)(A)/(B)A除B14DA A累加器十进制调整11表7-3 逻辑运算指令助记符操 作功 能字节数周期数ANL A,Rd(A)(A)(Rd)寄存器“与”到累加器11ANL A,m(A)(A)(m)直接字节“与”到累加器21ANL A,Ri(A)(A)(Ri)间接RAM“与”到累加器11ANL A,#n(A)(A)n立即数“与

24、”到累加器21ANL m,A(m)(m)(A)累加器“与”到直接字节21ANL m,#n(m)(m)n立即数“与”到累加器32ORL A,Rd(A)(A)(Rd)寄存器“或”到累加器11ORL A,m(A)(A)(m)直接字节“或”到累加器21ORL A,Ri(A)(A)(Ri)间接RAM“或”到累加器11ORL A,#n(A)(A)n立即数“或”到累加器21ORL m,A(m)(m)(A)累加器“或”到直接字节21ORL m,#n(m)(m)n立即数“或”到累加器32XRL A,Rd(A)(A)(Rd)寄存器“异或”到累加器11XRL A,m(A)(A)(m)直接字节“异或”到累加器21XR

25、L A,Ri(A)(A)(Ri)间接RAM“异或”到累加器11XRL A,#n(A)(A)n立即数“异或”到累加器21XRL m,A(m)(m)(A)累加器“异或”到直接字节21XRL m,#n(m)(m)n立即数“异或”到累加器32CLR A(A)0累加器清零11CPL A(A)()累加器取反11RL A累加器循环左移11RLC A累加器带进位循环左移11RR A累加器循环右移11RRC A累加器带进位循环右移11SWAP A(A74)(A 31)累加器半字节交换11表7-4 位操作指令助记符操 作功 能字节数周期数CLR c(c)0进位清011CLR b(b)0直接位清021SETB c(c)1进位置位11SETB b(b)1直接位置位21CPL c(c)(c非)进位取反11CPL b(b)(b非)直接位取反21ANL c,b(c)(c)(b)直接位“与”到进位22ANL c,/b(c)(c

温馨提示

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

评论

0/150

提交评论