单片机课设指示灯定时控制系统_第1页
单片机课设指示灯定时控制系统_第2页
单片机课设指示灯定时控制系统_第3页
单片机课设指示灯定时控制系统_第4页
单片机课设指示灯定时控制系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 编号: 单片机课程设计说明书题 目: 指示灯定时控制系统 学院: 机电工程学院 专 业: 机械设计制造及其自动化 学生姓名: 苏以文 学 号: 1100110719 指导教师单位: 机械制造教研室 姓 名: 恽 志 东 2013年12月18日摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用。单片机的应用很广泛,几乎涉及到我们生活的各个领域,小到IC卡,大到宇宙飞船,无不有单片机的身影。与我们日常生活紧密相关的单片机有:手机、录影机、相机、程控玩具、保安系统。单片机定时计数器的应

2、用使我们的生活更加智能、方便。广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。关键字:单片机 计时 智能目录1. 课题设计内容用AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。0.2秒的闪烁速率也由定时/计数器T0来完成。2.设计方案论证2.1 系统整体设计2.1.1硬件设计:(1)制作一个AT89S51最小系统; (2)使用4个LED灯,闪烁速率为0.2秒,每两秒换下一个灯闪烁

3、,最后一个灯闪烁完毕后第一个重新开始; (3)加上一个自锁电源开关、电源指示灯以及暂停按键。2.1.2软件设计:(1)设计延时程序控制4个LED小灯的0.2秒闪烁速率以及2秒轮换; (2)从外部中断口P3.2或P3.3输入中断信号来完成暂停操作(中断信号由按键产生); (3)从串行口输入/输出端(P3.0/P3.1)完成程序的输入。2.2电路原理图2.3设计方案框图3. 系统硬件设计系统由控制模块、输出模块组成。3.1 控制模块AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash

4、只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。3.2 输出模块 LED灯。 又称发光二

5、极管,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以 LED 的抗震性能好。它是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子

6、的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。3.3电路图3.4 元件清单序号元件数量1STC51单片机12晶振1330pF电容24LED灯551k电阻16220电阻4710k电阻1810uF极性电容19USB母座接口110自锁开关111四引脚按键112排针13铜板4.系统软件4.1程序设计内容我们运用汇编语言来设计程序。汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读

7、性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。 AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。 定时/计数器方式选择寄存器(TM

8、OD)-TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。现在我们选择16位定时工作方式,对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的0.2秒和2秒的定时,因此,我们必须通过软件来处理这个问题,我们设定取T0的定时为50ms,即要定时0.2秒需要经过4次的50ms的定时,需要2秒

9、需要经过40次50ms的定时,通过这样来实现我们的时间需要。 通过查阅资料:TMOD寄存器结构D7D6D5D4D3D2D1D0GATAM1M0GATAM1M0T1方式字段T0方式字段M1M0模式说明00013位定时(计数)器,TH高8位和TL的低5位01116位定时/计数器102自动重装入初值的8位定时/计数器113T0分成两个独立的8位计数器,T1没有模式3根据上表,设定TMOD初值为00000001B,即TMOD01H。给T0定时/计数器的TH0,TL0装入预置初值0.05=(65536-T0初值)1/1200000012T0初值=15536=3CB0HTH0=3CH TL0=B0H4.2

10、 程序框图4.2.1 T0中断服务程序框图 开始TIME2S=0,TIME02S,MUM=0 TMOD=01H,TH0,TL0装入定时初值TR0=1,ET0=1,EA=1 等待中断 4.2.2 主程序流程图 T0中断入口 TIME2S加1 NTIME2S=40? Y TIME2S=0 NUM加1 N NUM=4? NUM=0Y Y NN是否第二次按键?是否按键? YTIME02S加1 TIME02S=4?NNY TIME02S=0 NUM=3NUM=1NUM=2 NUM=0 L3闪烁 L2闪烁 L1闪烁 L0闪烁 中断返回4.3 汇编程序 TIME2S EQU 30H ; TIME2S等价于3

11、0H,用于计算2s的时间TIME02S EQU 31H ; TIME02S等价于31H,用于计数是否达到4个50ms,即0.2sNUM EQU 32H ; NUM等价于32H,NUM用于标记led的号数FLAG EQU 33H; FLAG等价于33H,用于标记按键信号 ORG 00;程序存放在存储器00H开始的单元 CPL P1.0;将P1.0的高电平取反变为低电平,准备执行主程序 LJMP START;跳转到START标号地址执行程序 ORG 0BH;定时器0的矢量地址 LJMP INT_T0 START: MOV TIME2S,#00H;赋予TIME2S的初值为0 MOV TIME02S,

12、#00H;赋予TIME02S的初值为0 MOV NUM,#00H; 赋予NUM的初值为0 MOV TMOD,#01H;设置工作模式1 MOV TH0,#03CH;赋定时器的初值,定时时间为50ms MOV TL0,#0B0H SETB TR0;启动定时器0 SETB ET0;打开中断 SETB EA;打开CPU中断 SJMP $ ;等待中断INT_T0: MOV TH0,#03CH;重新装入定时器初值 MOV TL0,#0B0H INC TIME2S;TIME2S计数 MOV A,TIME2S CJNE A,#40,NEXT;TIME2S没有达到40次就跳转到NEXT,否则按顺序执行 MOV

13、TIME2S,#00H;重新赋0 INC NUM;NUM计数 MOV A,NUM CJNE A,#04H,NEXT;NUM没有达到4次就跳转到NEXT MOV NUM,#00H;重新赋0 NEXT: LCALL SCAN;调用按键扫描子程序INC TIME02S;TIME02S计数 MOV A,TIME02S CJNE A,#4,DONE;如果TIME02S没有达到4次,即450ms=0.2s,就跳转到DONE MOV TIME02S,#00H;重新赋0,以便计算下一个0.2s MOV A,NUM CJNE A,#00H,CH1;NUM为0,将P1.0的led灯不断取反,以便其可以闪烁 CPL

14、 P1.0 SJMP DONE CH1: CJNE A,#01H,CH2 ;NUM为0,将P1.1的led灯不断取反,以便其可以闪烁 CPL P1.1 SJMP DONE CH2: CJNE A,#02H,CH3 ;NUM为1,将P1.2的led灯不断取反,以便其可以闪烁 CPL P1.2 SJMP DONE CH3: CJNE A,#03H,CH4 ;NUM为2,将P1.3的led灯不断取反,以便其可以闪烁 CPL P1.3 CH4: SJMP DONE DONE: RETI ;返回中断SCAN: MOV P3,#0FFH ;先将P3的端口全部置1 MOV FLAG,#00H;把标记置0 J

15、NB P3.2,TT0;如果按键端口P3.2检测不到低电平,就返回到主程序 RETSTART1: JNB P3.2,TT0;如果按键按下,即低电平,跳转到TT0AJMP START1TT0: LCALL D1MS;调用延时子程序, JNB P3.2,TT0;如果检测不到高电平,则继续等待按键松开 INC FLAG;按键松开,FLAG标记为1,表示按键一次完成 MOV A,FLAGCJNE A,#01H,GOBACK;如果FLAG标记为1,则返回到START1,继续检测按键,检测到第二次按键的时候,FLAG标记为2,程序跳转到GOBACK,通过该子程序返回到主程序继续运行,从而起到按键一次暂停,

16、再按一次继续运行的作用 AJMP START1;D1MS: MOV R7, #10 ;延时5ms,进行按键消抖 D1:MOV R6, #250; DJNZ R6,$; DJNZ R7,D1 ; RET ;GOBACK: RET END5. 系统调试5.1 调试软件Keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。5.2 调试方法导入已编写好的程序,然后单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷

温馨提示

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

评论

0/150

提交评论