已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计报告淮阴师范学院物理与电子电气工程学院课程设计报告学生姓名曹金莎学 号171313242班 级1304专 业电子信息科学与技术题 目LED数字倒计时器指导教师(姓名)戴金桥 王欣(职称)2015年11月一、设计任务与要求 近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。本项目讨论了LED数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。本次设计的任务与要求是,使基于AT89C51单片机的LED数字倒计时器主要具有如下功能:(1)LED数码管显示倒计时时间。(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出约2s的报警声音。(3)通过按键可以对倒计时设定初值。倒计时初始值范围在24:00:00-00:00:60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。二、硬件电路设计设计电路采用模块化设计,主要由AT89C51单片机、复位电路、LED显示模块和控制模块组成(如图2.1)。晶振电路数码管电路AT89C51复位电路蜂鸣电路按键电路 图2.1 基于AT89C51单片机的数字倒计时器系统框图 图2.2 基于AT89C51单片机的数字倒计时器电路原理图(元件清单见附录一)(2)AT89C51单片机控制模块 图2.3 单片机控制模板(3)复位电路 复位是单片机的初始化操作,只需给AT89S51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。 图2.4复位电路(4) LED显示模块 图2.5 LED显示模块(5)按键电路 按键电路的按键功能说明:(1)K1用于设置时间的分钟。(2)K2用于设置小时以及设置闹钟的开关。(3)K3用于设置分钟和闹钟的分钟。(4)K4用于设置完成退出。 图2.6 按键模块3、 软件设计(1)程序流程图开始CPU系统初始化定时器0初始化中断初始化设置时间?设置闹铃时间显示刷新启动走时有关变量初始化时分变化?刷新显示1秒到秒指示闹铃时间?蜂鸣器结束YNYNYNYN 图3.1 LED数字倒计时器程序流程图(2) 程序清单(汇编语言) K1 EQU p1.0 K2 EQU P1.1 K3 EQU p1.2 K4 EQU P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN: MOV SP, #50H MOV 20H, #3CH ;时间 BIN SECOND MOV 21H, #3CH ; BIN MINUTE MOV 22H, #18H ; BIN HOUR MOV 23H, #01H ;闹铃 BIN MINUTE MOV 24H, #01H ; BIN HOUR MOV 25H, #00H ;定义一个标志位 MOV 30H, #00H ;时间 BCD SECOND MOV 31H, #00H MOV 32H, #00H ; BCD MINUTE MOV 33H, #00H MOV 34H, #00H ; BCD HOUR MOV 35H, #00H MOV 36H, #01H ;闹铃 BCD MINUTE MOV 37H, #00H MOV 38H, #01H ; BCD HOUR MOV 39H, #00H MOV TMOD, #01H ;16位计数器T0,方式1 MOV THO, #03CH ;赋初值 MOV TLO, #0B0H MOV IE, #10000111B;开中断TO,EA=1 SETB TRO ;T0启动计数 MOV R2, #14H ;计数器 MOV P2, #0FFH LOOP:LCALL TIMEPRO ;调用现在时间与闹铃时间比较程序 LCALL DISPLAY1 ;调用现在时间显示子程序 JB K1,M1 ;判断按键是否按下 LCALL XIAOZHEN1 ;调用消抖程序 MOV C, 25H.0 JC A1 A1: CLR 25H.0 LCALL SETTIME ;调用设置现在时间子程序 LJMP LOOP M1: JB K2, M2 LCALL XIAOZHEN2 MOV C, 25H.0 JC A2 A2: CLR 25H.0 LCALL SETTIME ;调用设置闹钟的程序 LJMP LOOP M2: JB K4, M3 A3: LCALL XIAOZHEN3 MOV C, 25H.0 JC A4 A4: CLR 25H.0 M3: LJMP LOOP SETTIME: LO: LCALL DISPLAY1 JB K2, L1 LCALL XIAOZHEN4 MOV C, 25H.0 JC A5 A5: CLR 25H.0 DEC 22H MOV A,22H CJNE A,#18H,G012 MOV 22H, #00H MOV 34H, #00H MOV 35H, #00H LJMP L0 L1: JB K3, L2 LCALL XIAOZHEN5 MOV C, 25H.0 JC A6 A6: CLR 25H.0 DEC 21H MOV A,21H CJNE A,#3CH,G011 MOV 21H, #00H MOV 32H, #00H MOV 33H, #00H LJMP L0 GO11: MOV B,#0AH DIV AB MOV 32H, B MOV 33H, A LJMP L0 GO12: MOV B,#0AH DIV AB MOV 34H, B MOV 35H, A LJMP L0 L2: JB K4, L0 LCALL XIAOZHEN3 MOV C, 25H.0 JC AX AX: CLR 25H.0 RET SETATIME: LCALL DISPLAY2 NO: LCALL DISPLAY2 JB K3, N1 LCALL XIAOZHEN6 MOV C, 25H.0 JC A7A7: CLR 25H.0DEC 24HMOV A, 24H CJNE A,#24,G022 MOV 24H, #00HMOV 38H, #00HMOV 39H, #00HLJMP N0N1: JB K1 N2 LCALL XIAOZHEN7MOV C, 25H.0JC A8A8: CLR 25H.0DEC 23HMOV A, 23HCJNE A,#60,G021 MOV 23H, #00HMOV 36H, #00HMOV 37H, #00HLJMP N0G021: MOV B, #0AH DIV AB MOV 36H, B MOV 37H, ALJMP N0 G022: MOV B, #0AH DIV AB MOV 38H, B MOV 39H, ALJMP N0N2: JB K4 N0 LCALL XIAOZHEN3MOV C, 25H.0JC A9 A9: CLR 25H.0RETTIMEPRO: MOV A, 21HMOV B, 23H CJNE A, B, BK MOV A, 22H MOV B, 24H CJNE A, B, BK SETB 25H.0 MOV C, 25H.0 JC XX XX: LCALL TIMEOUT BK: RET TIMEOUT: X1: LCALL BZ LCALL DISPLAY2CLR 25H.0JB K4,X1RETBZ: CLR P3.7MOV R7, #250T2: MOV R6, #124T3: DJNZ R6,T3DJNZ R7,T2JB K4,XYLCALL XIAOZHEN3MOV C, 25H.0JC XY1XY: RETXY1: LJMP LOOPXIAOZHEN1: LCALL DISPLAY1JB K1,XIAOZHEN1MOV C, K1LCALL JC XIAOZHEN1LCALL DELAYMOV C, K1JC XIAOZHEN1STOP1: MOV C, K1JNC STOP1LCALL DELAYMOV C, K1JNC STOP1SETB 25H.0RETXIAOZHEN2: LCALL DISPLAY2 JB K2,XIAOZHEN2MOV C, K2JC XIAOZHEN2STOP2: MOV C, K2 JNC STOP2 LCALL DELAY MOV C, K2 JNC STOP2 SETB 25H.0 RET XIAOZHEN3: LCALL DISPLAY1 JB K4,XIAOZHEN3 MOV C, K4 JC XIAOZHEN3 LCALL DELAY MOV C, K4 JC XIAOZHEN3 STOP3: MOV C, K4 JNC STOP3 LCALL DELAY MOV C, K4JNC STOP3SETB 25H.0RETXIAOZHEN4: LCALL DISPLAY1 JB K2,XIAOZHEN4MOV C, K2JC XIAOZHEN4 LCALL DELAY MOV C, K2 JC XIAOZHEN4 STOP4: MOV C, K2 JNC STOP4 LCALL DELAY MOV C, K2 JNC STOP4 SETB 25H.0RETXIAOZHEN5: LCALL DISPLAY1 JB K3,XIAOZHEN5MOV C, K3JC XIAOZHEN5LCALL DELAYMOV C, K3JC XIAOZHEN5STOP5: MOV C, K3 JNC STOP5LCALL DELAYMOV C, K3JNC STOP5SETB 25H.0RETXIAOZHEN6: LCALL DISPLAY2 JB K3, XIAOZHEN6 MOV C, K3 JC XIAOZHEN6 LCALL DELAY MOV C, K3 JC XIAOZHEN6 STOP6: MOV C, K3 JNC STOP6 LCALL DELAY MOV C, K3 JNC STOP6 SETB 25H.0 RETXIAOZHEN7: LCALL DISPLAY2 JB K1, XIAOZHEN7 MOV C, K1 JC XIAOZHEN7 LCALL DELAY MOV C, K1 JC XIAOZHEN7 STOP7: MOV C, K1 JNC STOP7 LCALL DELAY MOV C, K1 JNC STOP7 SETB 25H.0 RET DELAY: MOV R4, #14H DL00: MOV R5, #OFFH DL11: DJNZ R5, DL11 DJNZ R4, DL00 RETTIME: PUSH ACC PUSH PSWMOVTH0, #03CHMOV TL0, #0B0HDJNZ R2, RET0MOV R2, #14HMOV A, 20HCLR CDEC ACJNE A, #0, G01MOV 20H, #3CHMOV 30H, #0MOV 31H, #0MOV A, 21HDEC ACJNE A, #3CH, G02MOV 21H, #0HMOV 32H, # 0 MOV 33H, # 0 MOV A, 22H DEC A CJNE A, #18H,GO3 MOV 22H, # 00H MOV 34H, # 0 MOV 35H, # 0 AJMP RETOGO1: MOV 20H, A MOV B, # 0AH DIV AB MOV 31H, A MOV 30H, B AJMP RETO GO2: MOV 21H, A MOV B, # 0AH DIV AB MOV 33H, AEEH MOV 32H, B AJMP RETO GO3: MOV 22H, A MOV B, # OAH DIV AB MOV 35H, A MOV 34H, B AJMP RETO RETO: POP PSW POP ACC RETI DISPLAY1: MOV R0, # 30H MOV R3, # 0EEH MOV A, R3 PLAY1: MOV P2, A MOV A,RO MOV DPTR, # DSEG1 MOVC A,A + DPTR MOV P0, A LCALL DL1 MOV P2, # 0EEH MOV A, R3 RL A JNB ACC.6, LD1 INC R0 MOV R3, A LJMP PLAY1 LD1: RET DISPLAY2: PUSH ACC PUSH PSW MOV RO, # 36H MOV A, R3 PLAY2: MOV P2, A MOV A,R0 MOV DPTR, # DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DLL MOV P2, # 0FFH MOV A, R3 RL A JNB ACC.6, LD2 INC R0 MOV R3, A LJMP PLAY2 LD2: POP PSW POP ACC RET DL1: MOV R7, # 05H DL: MOV R6, # 0FFH DL6: DJNZ R6, $ DJNZ R7, DL RETDSEG1: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH END程序清单2(C语言)#include sbit kh=P10;/定义kh为与P1.0相连接的按键B1 sbit km=P11;/定义km为与P1.1相连接的按键B2 sbit ks=P12;/定义ks为与P1.2相连接的按键B3 sbit st=P13;/定义st为与P1.3相连接的按键B4 sbit b=P37;/定义b为P3.7unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; / LED数码管从0到F的显示unsigned char i=0,hour=0,minute=0,second=0;void delayms(unsigned int x) unsigned char a=160;/定义无符号变量a的值为160,指延时时间为160个及其周期乘以x,160可以为180等,自己设置 while(x-) while(a-); a=160; /定义延时程序的延时时间为160个及其周期乘以x,避免按键抖动的影响main() TH0=(65536-50000)/256;/设置定时时间对高八位赋值,50000是50000个机器周期,0.05秒 TL0=(65536-50000)%256;/设置定时时间对低八位赋值,50000是50000个机器周期,0.05秒TMOD=1;/定时器模式 TR0=0;/停止计时 ET0=1;/开定时器中断 EA=1;/开总中断 while(1) P0=tablehour/10;/显示分钟的十位 P2=32;/对数码管进行位选和段选,选中显示分钟的十位 delayms(1);/延时以便于显示 P2=0xff;/重新给P2口一个高电平,避免误操作 P0=tablehour%10;/显示分钟的个位 P2=16;/对数码管进行位选和段选,选中显示分钟的个位 delayms(1);/延时以便于显示 P2=0xff;/重新给P2口一个高电平,避免误操作 P0=tableminute/10;/显示秒钟的十位 P2=8;/对数码管进行位选和段选,选中显示秒钟的十位 delayms(1);/延时以便于显示 P2=0xff;/重新给P2口一个高电平,避免误操作P0=tableminute/10;/显示秒钟的十位 P2=4;/对数码管进行位选和段选,选中显示秒钟的十位 delayms(1);/延时以便于显示 P2=0xff;/重新给P2口一个高电平,避免误操作 P0=tablesecond%10;/对数码管进行位选和段选,选中显示秒钟的个位 P2=1;/对数码管进行位选和段选,选中显示秒钟的个位 delayms(1);/延时以便于显示 P2=0xff;/重新给P2口一个高电平,避免误操作 if(!kh)/如果小时按键B1按下 delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响 hour+;/定时时间的小时加一 if(hour23)/因为是无符号的变量,减到0之后,再减就会变成ff,大于23 hour=23; else if(!km)/如果分钟按键B2按 delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响 minute+; if(minute59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59 minute=59; else if(!ks)/如果秒按键按下B3 delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响 second+; if(second59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59 second=59; if(!st)/开始按加按 delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响 TR0=1;/开始计 if(TR0=1&hour=0&minute=0&second=20)/定时满20次是1秒,即50000个机器周期为一 i=0; second-;/秒减一 if(second59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59 second=59;/秒为59 minute-;/分钟减一 if(minute59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59 minute=59;/因为是无符号的变量,减到0之后,再减就会变成ff,大于59 hour-;/小时减一 if(hour23)/因为是无符号的变量,减到0之后,再减就会变成ff59,如果小时减过0说明计 hour=0; minute=0; second=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年临沂职业学院单招职业适应性考试必刷测试卷附答案解析
- 2026年上饶卫生健康职业学院单招职业倾向性考试题库附答案解析
- 2026年宁波工程学院单招职业适应性考试题库带答案解析
- 2026年浙江万里学院单招职业倾向性测试必刷测试卷附答案解析
- 2026年天津艺术职业学院单招职业适应性考试必刷测试卷及答案解析(夺冠系列)
- 多模式交通流协同优化
- 房屋拆迁款合同范本
- 房屋授权开店协议书
- 房屋整治维修协议书
- 房屋模拟搬迁协议书
- 安置土地转让协议书
- 二十届四中全会测试题及参考答案
- 韩语语法大全(超全)
- 边检站笔试题目及答案
- 23G409先张法预应力混凝土管桩
- EQ2102培训讲义1课件
- 计算机专业职业规划-PPT
- 监护人培训台账
- 超星学习通《人工智能、语言与伦理》章节测试答案
- 多宝视多媒体生物刺激知觉学习视觉训练系统课件
- 公共卫生慢性病管理工作制度
评论
0/150
提交评论