单片机数字钟课程设计.doc

上传人:本田雅阁 文档编号:2058107 上传时间:2019-02-09 格式:DOC 页数:16 大小:347.51KB
返回 下载 相关 举报
单片机数字钟课程设计.doc_第1页
第1页 / 共16页
单片机数字钟课程设计.doc_第2页
第2页 / 共16页
单片机数字钟课程设计.doc_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机数字钟课程设计.doc》由会员分享,可在线阅读,更多相关《单片机数字钟课程设计.doc(16页珍藏版)》请在三一文库上搜索。

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小时;数字钟;单片机;设计 ;1324小时制数字钟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单片

5、机AT89C511U1三极管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,2050定时一秒 MOV R4,#00 ;用

10、于存储外中断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 ;用于调闹钟时单独显示时 JZ D1 CJN

11、E 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 MOVC A,A+DP

12、TR 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,#02A2: MOV

13、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 range错误

14、,转到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次定时计完即一秒,重新赋值 MOV R3,#2

15、0 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 ;整点报时,响一声 MOV

16、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 RE1F2:

17、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,#123DL2

18、: 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、软件仿真结果在单片机中装入编译好的程序后开始仿真,经过了长时间的实验,

19、没发现有什么错误,程序在很多情况下都能正常运行。下面为仿真过程截图:正常显示时间:调整时钟时:调整时钟分:调整时钟秒:设定闹钟时:设定闹钟分:6、设计总结本设计是一项比较大的“工程”,之前都没有做过这么复杂的设计,可能是对单片机的兴趣比较大,做起来只是感觉繁琐,难度就感觉不是很大。本设计是完全由本人完成,每一条连线、每一条程序、每一个字、每一张图都是本人独立完成,也投入了比较多的时间,但感觉很值得。从这次设计中也学到了很多东西,对单片机的了解更深入了,对proteu软件的使用也更熟练了。本来想用C语言编写程序的,但由于之前一直都是用汇编,而且对两种语言的互换还不是很熟练,所以还是用了汇编,虽然繁杂一点,但感觉还不是很“笨拙”。本次设计是对这一学期来单片机的学习的一次总体应用,可以体现出对单片机的掌握程度,尤其是编程方面。本次设计的实用性很强,设计成果只需稍作完善就可以在生活实际中应用,当然社会上这方面的技术已经很成熟,对数字钟方面技术的提高并没太大价值。总之,本设计使我获益良多,对以后把单片机在实际中的应用提供了很好的实践经验。7、参考文献1周美娟、肖来胜.单片机技术及系统设计 M.清华大学出版社.2007.2张瑛.单片机实验指导书 EB.2010.8、附件:电路图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1