




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机技术及系统设计本科生课程设计课程名称单片机技术及系统设计设计名称24小时制数字钟学号学生姓名所在专业电气工程及其自动化所在班级指导教师成绩教师签字年 月 日课程设计时间 目 录目 录- 1 -摘 要- 2 -1、设计目的12、设计功能、要求13、硬件设计13.1、原理图设计13.2、器件清单23.3、各元器件作用说明23.4、工作过程说明24、软件设计24.1、设计思路24.2、工作原理图34.3、流程图34.4、程序清单55、仿真结果95.1、仿真环境说明95.2、程序编译结果95.3、软件仿真结果96、设计总结127、参考文献128、附件:电路图13摘 要本设计主要是利用AT89C
2、51单片机设计24小时制数字钟,数字钟同时带有时间调整、闹铃、整点报时等功能。利用汇编语言编写程序,通过proteus软件进行仿真验证设计。设计中还用到了外部晶振、四位、两位LED数码管作为时钟数字显示,外接两个按键作为调整。按下B2进入相应功能的调整,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分,这时会停止计时,显示屏只会显示相应调整的项,其它项熄灭,调整完后再按B2跳回正常计时。经过一系列的测试验证,设计能满足各项要求,经过长时间的运行测试程序都能正常地运行,没出现错误。可应在实际中应用,能满足日常时间显示
3、的需要。关键字 24小时;数字钟;单片机;设计 ;24小时制数字钟1、设计目的利用单片机设计一个数字时钟,加深对单片机的熟悉程度,把学习到的理论知识应用到实际中,把单片机的知识系统地联系起来,增强动手能力,为以后的设计、工作做准备。也是对这学期单片机的学习的一次检验。2、设计功能、要求数字钟要求能24小时制时间显示,可随时进行时间校对调整,整点报时以及闹钟功能。原理图设计要求符合项目的工作原理,接线要正确.图中所使用的元器件要合理选择,电阻,电容等器件要求标出相关参数,并通过绘图软件打印出原理图。原理图设计中简要说明设计目的,原理图中所使用的元器件功能在图中的作用,各器件的工作过程及顺序。程序
4、设计中对程序总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的说明画出工作原理图,流程图并给出程序清单。3、硬件设计3.1、原理图设计原理图的设计比较简单,只需要有一个接好晶振的AT89C51单片机、LED显示屏、按键、蜂鸣器以及一些电阻就可以了。用P1口作为显示数字输出,P2.0P2.7口作为动态显示片选信号,P0.0作为声音信号输出,P3.2、P3.3接外中断信号,用于调整。蜂鸣器需要用三极管放大,接一5V电源发声。原理图如下图:图1.电路原理图3.2、器件清单器件名称数值、型号数量原理图中标号电阻10k3R2-R4电容10uF1C1电容30pF2C2, C3单片机A
5、T89C511U1三极管BSX201Q1蜂鸣器1LS18路电阻3001RN1晶振1CRYSTAL按键2B1,B2LED显示屏4位1D1LED显示屏2位1D23.3、各元器件作用说明电容C2, C3以及晶振CRYSTAL用来为单片机提供外部晶振。电阻R3、R4以及三极管Q1用于放大P0口的输出,提供给蜂鸣器足够大的信号电流。蜂鸣器用于整点报时、闹钟的声音信号输出。显示屏D1用于显示时和分;D2用于显示秒。按键B2用来设定调整功能,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分。按键B1用来调整,每按下一次为加一操作
6、。3.4、工作过程说明正常显示:单片机中装入程序后,接通电源即显示屏显示0000 00,开始计时,D2显示屏每1秒加1,加到60分加1,D2显示回零,继续从0开始计时,分加到60时加1,时加到24回零,继续按规则计时。整点报时响铃一次,闹钟响铃两次。调整:按下B2进入相应功能的调整,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分,这时会停止计时,显示屏只会显示相应调整的项,其它项熄灭,调整完后再按B2跳回正常计时。4、软件设计4.1、设计思路主程序执行时钟的显示,利用动态显示,先显示时,然后分、秒,每一位中间隔着
7、相应的延时,时分秒的数值分别用三个寄存器存储,主程序只需直接显示寄存器里内容即可。计时子程序由内部定时器中断程序完成,定时器定时50ms,每50ms中断一次,中断20次后即够一秒,存储秒的寄存器加1,加够60秒分加1,分加够60时加1,一直计算下去,实现24小时的计时。调整程序由两个外中断子程序配合完成,外中断1子程序用于设定调整的内容,以区分调整时钟的时、分、秒,以及设定闹钟的时、分。外中断0子程序用于对相应的调整项进行加1操作。整点报时功能只要在每次时钟的时加1的时候输出一声铃声就可以了,闹钟功能即要在每次计时的时候判断时钟的时、分时候与闹钟设定的时、分相同,若相同即响铃两声,不同即继续执
8、行。程序的各部分以及一些功能在程序清单上也有标注。4.2、工作原理图定时器中断计时外中断程序调整主程序显示时钟 图2.工作原理图4.3、流程图开始 是 R4>=4? 否 显示闹钟时 显示时钟时 显示闹钟分 显示时钟分 显示闹钟时显示时钟秒 显示时钟时图3.主程序流程图 中断响应 中断响应 否 否 是 R4=0? R4=6? R4加1 R4回0 否 是 是 R3减到0? 是 中断返回 秒加1 否 是 秒加到60? 图4.外中断1子程序流程图中断响应 是 分加1 否 秒回0 R4=1? 否 是 R0(时)加1 分加到60? 否 是 时加1 R4=2? 是 R1(分)加1 分回0 否 否 否
9、否 时加到24? R4=3? 是 是 R2(秒)加1 时回0 否 中断返回 R4=4? 是 R5(闹钟时)加1 图3.定时器中断0子程序流程图 否 R4=4? 是 R6(闹钟分)加1 中断返回 图4.外中断0子程序流程图4.4、程序清单 ORG 0000H AJMP MAIN ORG 0003H AJMP S0 ORG 000BH AJMP TIMER ORG 0013H AJMP S1 ORG 0030HMAIN: MOV R0,#00 ;存储时 MOV R1,#00 ;存储分 MOV R2,#00 ;存储秒 MOV R3,#20 ;中断定时50MS,20×50定时一秒 MOV R
10、4,#00 ;用于存储外中断1控制信号 MOV R5,#00 ;存储闹钟时 MOV R6,#00 ;存储闹钟分 MOV R7,#00 MOV DPTR,#TAB SETB IT1 ;设定外中断为边沿中断 SETB IT0 MOV IP,#05H ;外中断0、1优先级高,定时器低 MOV IE,#87H MOV TMOD,#01H ;模式1 MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H SETB TR0;= 主程序=DIS: CJNE R4,#04,NEXT ;大于等于4即转去显示闹钟调节NEXT: JNC DIS3 MOV A,R4 ;用于调闹钟时单独显示时 J
11、Z D1 CJNE R4,#01,DIS1D1: MOV A,R0 ;显示时 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#40H MOV P1,A ACALL DELAYDIS1: MOV A,R4 ;用于调闹钟时单独显示分 JZ D2 CJNE R4,#02,DIS2D2: MOV A,R1 ;显示分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOV
12、C A,A+DPTR MOV P2,#10H MOV P1,A ACALL DELAY DIS2: MOV A,R4 ;用于调闹钟时单独显示秒 JZ D3 CJNE R4,#03,DISD3: MOV A,R2 ;显示秒 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#08H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#04H MOV P1,A ACALL DELAY CJNE R7,#00,A1 ;判断闹钟信号是否满足 AJMP DIS3A1: MOV A,#0FFH ;闹钟响两声 MOV 60H,#02
13、A2: MOV 61H,#50HA3: CPL A MOV P0,A ACALL DELAY DJNZ 61H,A3 DJNZ 60H,A2 DEC R7 ;闹钟响两次 AJMP DISDIS3: CJNE R4,#04,DIS4 MOV A,R5 ;显示闹钟时 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#40H MOV P1,A ACALL DELAY AJMP DISDIS4: CJNE R4,#05,DIS5 ;如果用DIS编译时出现out of
14、 range错误,转到DIS5跳转 MOV A,R6 ;显示闹钟分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#10H MOV P1,A ACALL DELAYDIS5: AJMP DIS;=定时器0中断服务程序,时间计数,24小时=TIMER: PUSH ACC CJNE R4,#04,N1 ;调整时钟停止计时(R4=1、2、3时不计)N1: JNC N2 CJNE R4,#00,REN2: DJNZ R3,RE ;20次定时计完即一秒,重新赋值 M
15、OV R3,#20 INC R2 ;秒加一 CJNE R2,#60,RE ;判断秒到60否 MOV R2,#00 INC R1 ;分加一 MOV A,R5 ;闹钟定时判断,响应 ADD A,R6 JZ NEXT1 ;为0时忽略(即无设定) MOV 16H,R5 ;判断时 MOV A,R0 CJNE A,16H,NEXT1 MOV 15H,R6 ;判断分 MOV A,R1 CJNE A,15H,NEXT1 MOV R7,#02 ;用R7控制主程序闹钟响应NEXT1: CJNE R1,#60,RE ;判断分到60否 INC R0 ;时加一 MOV R1,#00 MOV A,#0FFH ;整点报时,
16、响一声 MOV R7,#50HA4: CPL A MOV P0,A ACALL DELAY DJNZ R7,A4 CJNE R0,#24,RE ;判断时到24否 MOV R0,#00 AJMP RE;=中断1处理,识别调整时间时、分、秒以及闹钟时、分=S1: INC R4 CJNE R4,#06,RE1 MOV R4,#00 AJMP RE1S0: CJNE R4,#01,F1 ;调整时 INC R0 CJNE R0,#24,RE1 MOV R0,#00 AJMP RE1F1: CJNE R4,#02,F2 ;调整分 INC R1 CJNE R1,#60,RE1 MOV R1,#00 AJMP
17、 RE1F2: CJNE R4,#03,F3 ;调整秒 INC R2 CJNE R2,#60,RE1 MOV R2,#00 AJMP RE1F3: CJNE R4,#04,F4 ;调整闹钟时 INC R5 CJNE R5,#24,RE1 MOV R5,#00 AJMP RE1F4: CJNE R4,#05,RE1 ;调整闹钟分 INC R6 CJNE R6,#60,RE1 MOV R6,#00 AJMP RE1RE: MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H POP ACCRE1: RETI DELAY: MOV 21H,#5 ;延时DL1: MOV 20H
18、,#123DL2: DJNZ 20H,DL2 DJNZ 21H,DL1 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H ;共阳显示器 DB 082H,0F8H,080H,090H,088H,083H DB 0C6H,0A1H,086H,08EH,0BFH,0FFH END5、仿真结果5.1、仿真环境说明仿真环境为:Microsoft windows XP操作系统下利用PROTEUS软件中的智能原理图输入系统进行仿真。5.2、程序编译结果程序编译直接利用PROTEUS软件自带的编译器,编译结果如下图:5.3、软件仿真结果在单片机中装入编译好的程序后开始仿真,经过了长时间的实验,没发现有什么错误,程序在很多情况下都能正常运行。下面为仿真过程截图:正常显示时间:调整时钟时:调整时钟分:调整时钟秒:设定闹钟时:设定闹钟分:6、设计总结本设计是一项比较大的“工程”,之前都没有做过这么复杂的设计,可能是对单片机的兴趣比较大,做起来只是感觉繁琐,难度就感觉不是很大。本设计是完全由本人完成,每一条连线、每一条程序、每一个字、每一张图都是本人独立完成,也投入了比较多的时间,但感觉很值得。从这次设计中也学到了很多东西,对单片机的了解更深入了,对proteu软件的使用也更熟练
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论