单片机流水灯课程设计(共26页).doc

上传人:飞****2 文档编号:14091261 上传时间:2022-05-02 格式:DOC 页数:26 大小:941.50KB
返回 下载 相关 举报
单片机流水灯课程设计(共26页).doc_第1页
第1页 / 共26页
单片机流水灯课程设计(共26页).doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《单片机流水灯课程设计(共26页).doc》由会员分享,可在线阅读,更多相关《单片机流水灯课程设计(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、.2 器件介绍与作用2.2.1 STC89C52RC简介 STC89C52是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级中断结构

3、(兼容传统51的5向量2级中断结构),全双工。另外 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单片机

4、)/3.8V2.0V(3V 单片机)3.范围: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、T

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

6、输入缓冲器、输出驱动电路和一个反相器组成。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口线使用。 执行输出指令时,内部数据总线的数据在“写锁存器

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

8、输入状态。所以,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 Emitting Diode),是一种能够将电能

9、转化为可见光的固态的器件,它可以直接把电转化为光。的是一个半导体的,晶片的一端附在一个支架上,一端是,另一端连接的正极,使整个晶片被封装起来。半导体晶片由两部分组成,一部分是,在它里面占主导地位,另一端是N型,在这边主要是。但这两种连接起来的时候,它们之间就形成一个P-N结。当通过作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。3 硬件电路设计3.1 原理图通过图3.1我们可以看出,在LED灯后要加一个电阻,通常电阻应用在单片机电路中有三种作用:限流电阻、上拉电阻、下拉

10、电阻。在流水灯接线图中的电阻起的是限流作用。 图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 软件设计4.1设计流程1) 打开Keil Vision3软件2) 建立工程工程以LED为名保存选择芯片3) 建立新文件以了LED.as

11、m为名保存4) 把文件添加到工程添加成功5) 在文件中输入程序6) 设置生成.hex文件和编译设置生成.hex文件编译成功,无错误7) 打开 STC_ISP_V483.exe软件8) 下载程序4.2 源程序 程序一 ORG 0000H LJMP START ORG 0100HSTART: MOV SP,#60H ;设置堆栈的初始地址LOOP: MOV P2,00H ;点亮八个LED灯 LCALL DELAY ;调用延时子程序 MOV P2,0FFH ;熄灭八个LED灯 LCALL DELAY ;调用延时子程序 SJMP LOOP DELAY: ;延时子程序 MOV R0,#0FFHNEXT:

12、MOV R1,#0FFH DJNZ R1,$ DJNZ R0,NEXT RET END 程序二 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 DELAY: ;延时子程序 MOV R0,#0FFH NEXT: MOV R1,#0FFH DJNZ R1,$ DJNZ R0, NEXT

13、RET END5 调试过程5.1实物连接图 在普中科技HC6800 V2.8 开发板中,将开发板中的USB插口与电脑上的USB插口相连,再将单片机的P2口与LED灯用线连接起来。图5.1 连接实物图5.2调试程序编译成功以后,生成.hex文件,用STC_ISP下载到单片机中,在下载过程中先进行下载然后再上电,打开单片机开发板的开关后,就会看到八个发光二极管的亮灭情况。程序一的现象是八个发光二极管同时亮、灭,一直循环,并且亮和灭的速度很快。程序二的现象是八个发光二极管从头依次亮,每次只有一个灯亮,从第一个一直亮到第八个,从后再从头循环,在调试过程中,我们可以在程序中的“LCALL DELAY”语

14、句后再增加“LCALL DELAY”语句,增加的越多,延时越长,亮或者是灭的时间就越长。5.3出现的问题在用STC_ISP往单片机中下载程序时出现图5.2中的打开串口失败,原因是串口已被其他程序打开或该串口不存在。出现该问题的原因时使用的串口不正确,在设备管理器中查找正确的串口,并改正。改正后程序能正常下载+图5.2问题截图6 总结 通过这次课程设计我学到了很多东西,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源:懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不

15、能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中,还是碰到了一些问题。比如,对于键盘的延时防抖问题不能较好的解决;对于编程的顺序及各模块程序调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识 当今社会,由单片机芯片控制各种硬件工作的技术日益成熟,并普及在交通、化工、机械等各个领域。而流水

16、灯这项技术在生活中应用更为广泛,较为贴近生活。以前在路上夜景中经常见到各种流水灯,感觉很漂亮,通过此次编程以后才知道了原理,让我有一种学以致用的成就感!很开心!流水灯控制的设计所需要的知识不仅吻合了我们本学期对于单片机这门课程的学习,而且对于我们以前所学习的如数码管显示、LEG灯等知识也是一次很好地运用,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 总的来说,这次设计获益良多。不仅培养了实践能力,还培养了设计思维,在摸索该如何设计电之实现所需功能的过程中,锻炼了运用所学知识的灵活性,加深了对知识的理解及提高了解决问题的能力。在体会到设计电路编写程序的艰辛的同时,更能

17、体会到成功的喜悦和快乐。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立即数送寄存器21MOV m,A(m)(A)累加器字节送直接字节21MOV m,Rd(m)(Rd)寄存器字节送直接字节22MOV m1,m2(m1)(m2)

18、直接字节送直接字节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+PC(A)(A)+(PC)间接ROM送累加器12MOVX A,Ri(A)(P2)+(Ri)从外部间接RAM(8位地址)送入累加器12MOV

19、X 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)(Ri)间接RAM与累加器交换11XCHD A,Ri (A30)(Ri) 74)间接RAM低半字节与累加器交换11表7-2算术运算指令助记

20、符操 作功 能字节数周期数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和进位加到累加器11ADDC A,#n(A)(A)+n+(C)立即数和进位加到累加器21SUBB A,Rd(A)(A)-(Rd)-(C)累加器

21、减去寄存器和借位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数据指示器加112DEC A(A)(A)-1累加器减111DEC Rd(Rd)(Rd)-1寄存器减111DEC m(m)(m)-1直接字节减

22、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立即数“与”到累加器21ANL m,A(m)(m)(A)累加器“与”到直接字节21ANL m,#n(m)(m)n立即数“与”到累加器32ORL A,Rd(A)

23、(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)直接字节“异或”到累加器21XRL A,Ri(A)(A)(Ri)间接RAM“异或”到累加器11XRL A,#n(A)(A)n立即数“异或”到累加器21XRL m,A(m)(m)(A

24、)累加器“异或”到直接字节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)(

25、c)(b)直接位“与”到进位22ANL c,/b(c)(c)(b非)直接位的反“与”到进位22ORL c,b(c)(c)(b)直接位“或”到进位22ORL c,/b(c)(c)(b非)直接位的反“或”到进位22MOV c,b(c)(b)直接位送进位21MOV b,c(b)(c)进位送直接位22表7-5 控制转移指令助记符功 能字节数周期数JC r若进位为1,则相对转移22JNC r若进位为0,则相对转移22JB b,r若直接位为1,则相对转移32JNB b,r若直接位为0,则相对转移32JBC b,r若直接位为1,则相对转移,并对直接位清032JZ r若累加器为0,则相对转移22JNZ r若累

26、加器不为0,则相对转移22CJNE A,m,r若累加器不等于直接字节,则相对转移32CJNE A,#n,r若累加器不等于立即数,则相对转移32CJNE Rd,#n,r若寄存器不等于立即数,则相对转移32CJNE Ri,n,r若间接RAM不等于立即数,则相对转移32DJNZ Rd,r寄存器减1,若不等于0,则相对转移22DJNZ m,r直接字节减1,若不等于0,则相对转移32AJMP a(11)绝对转移22LJMP a(16)长转移32SJMP r短转移(相对转移)11JMP A+DPTR按A+DPTR间接转移12ACALL a(11)绝对调用子程序22LCALL a(16)长调用子程序32RET从子程序返回12RETI从中断返回12 参考文献1 李广弟,朱月秀,冷祖祁.单片机基础第3版.北京:北京航空航天大学出版社,20072 蔡美琴,张为民MCS-51系列单片机系统及其应用.第2版.北京:高等教育出版社,20043 周润景,张丽娜基于PROTEUS 的电路及单片机系统设计与仿真M北京:航空航天大学出版社,20064 李全利.单片机原理及应用技术第3版.北京:高等教育出版社,20095 万光毅,严义,邢春香.单片机实验与实践教程M.北京:北京航空航天大学出版社,2006.4 指导教师评语:成绩: 指导教师签字: 年 月 日

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁