单片机电子时钟课程设计.doc

上传人:文库蛋蛋多 文档编号:4147401 上传时间:2023-04-07 格式:DOC 页数:17 大小:674.50KB
返回 下载 相关 举报
单片机电子时钟课程设计.doc_第1页
第1页 / 共17页
单片机电子时钟课程设计.doc_第2页
第2页 / 共17页
单片机电子时钟课程设计.doc_第3页
第3页 / 共17页
单片机电子时钟课程设计.doc_第4页
第4页 / 共17页
单片机电子时钟课程设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机电子时钟课程设计.doc》由会员分享,可在线阅读,更多相关《单片机电子时钟课程设计.doc(17页珍藏版)》请在三一办公上搜索。

1、1任务及要求1.1设计任务用AT89C51单片机设计一个简单的数字时钟,能进行时分秒的调整,能够较准确地显示时间。用单片机控制6位LED数码管显示时、分、秒;并且具有二十四小时循环记时功能,走时要准。能够用按键开关可实现时、分调整。1.2 设计要求设计一个简易的数字时钟,能进行时分秒的调整,能够较准确的显示时间。(1)掌握51单片机的汇编语言的基本用法。(2)掌握LED数码管的使用。(3)掌握数码管动态扫描的方法。(4)掌握PROEUS的仿真与调试。2设计思想2.1 硬件设计思想主要用到这些元件:AT89C51单片机与单片机的最小系统,八位显示数字管,74LS245锁存器。用12MHZ的晶振和

2、两个较小的22pF的电容组成振荡器电路,用一个按键,一个电解电容,一个10K电阻组成具有上电自动复位和手动复位两种操作的复位电路。用P0口作为输出需接上拉电阻,即需RESPACK-8排阻,74LS245锁存器保存要开通的位码。通过控制P0,P2,P3口来控制时间的计时。P0口送入要显示的字段,P2口送入要显示的位码,P3口低三位即为查询是否需要调整时分秒数。开通计时器中断0来查表得到要显示的数字。2.2 软件设计思想整个程序先给数码管送初值12 00 00,然后进行初始化工作。程序由一个主函数,一个定时器中断程序,一个延时子程序,三个判断子程序,一个显示子程序构成。程序通过按键扫描程序来确定是

3、否调用中断程序来对时间进行调整。用一子程序完成时分秒的调整,通过循环扫描三个按键的电平变化来判断对应按键是否按下,并带有去抖动功能,当某个按键按下时,则对应的进行增一操作。若分秒增一到达60次或者时增一到达24次,将对其清零,各个操作均实时的通过数码管显示。3电路原理与电路图3.1 电路原理一个AT89C51单片机做为控制电路,用P0、P2口来控制数码管的段码和位码,利用动态扫描来实现数码管的显示。开通定时器T0中断来对数码管的查表和1秒的准确计时,然后利用P3口的低三位作为判断程序,判断是否分时秒是否溢出,若无溢出则显示当前值,若溢出则清零实现时分秒的加一。3.2 电路原理图4流程图与算法描

4、述4.1流程图(1)软件系统框图图4.1 软件系统框图(2)系统流程图:如图4.2所示整个程序先给数码管送初值12 00 00,然后进行初始化工作,包括定时器及其初值设置、开中断等。程序通过按键扫描程序来确定是否调用中断程序来对时间进行调整,整个程序较为简短,但是时间误差很小。图4.2 系统流程图(3)按键子函数流程图: 如图4.3所示加一子程序完成时分秒的调整,通过循环扫描三个按键的电平变化来判断对应按键是否按下,并带有去抖动功能,当某个按键按下时,则对应的进行增一操作。若分秒增一到底60次或者时增一到达24次,将对其清零,各个操作均实时的通过数码管显示。图4.3 按键子函数流程图4.2 算

5、法描述(1)设计一个延时子程序,延时1s。延时程序的代码段如下:DELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET(2)显示子函数,代码段如下:DISP: MOV A,#40H ADD A,#8 DEC A MOV R1,A MOV A,32H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOV R1,A DEC R1 MOV A,31H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,

6、A DEC R1 MOV A,#10 MOV R1,A DEC R1 MOV A,30H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 RET(3)判断程序,判断是否溢出并显示数字,代码段如下: ADDMIAO:JB P3.2,ADDFEN LCALL DELY10MS JB P3.2,ADDFEN INC 30H MOV A,30H CJNE A,#60,NS60 MOV 30H,#00HNS60:LCALL DISP JNB P3.2,$ADDFEN:JB P3.1,ADDSHI LCALL DELY10MS JB P3.

7、1,ADDSHI INC 31H MOV A,31H CJNE A,#60,NM60 MOV 31H,#00HNM60:LCALL DISP JNB P3.1,$ADDSHI:JB P3.0,RETURN LCALL DELY10MS JB P3.0,RETURN INC 32H MOV A,32H CJNE A,#24,NH24 MOV 32H,#00HNH24:LCALL DISP JNB P3.0,$RETURN:LJMP ADDMIAO(4)用定时器T0并采用查表法显示数字。代码段如下: INT_T0:MOV TH0,#248 MOV TL0,#248 MOV A,#40H ADD A

8、,48H MOV R0,A MOV A,48H CJNE A,#08H,KNA MOV 48H,#00HKNA:INC 49H MOV A,49H CJNE A,#100,DONE MOV 49H,#00H INC 4AH MOV A,4AH CJNE A,#05H,DONE MOV 4AH,#00H INC 30H MOV A,30H CJNE A,#60,NEXT MOV 30H,#00H INC 31H MOV A,31H CJNE A,#60,NEXT MOV 31H,#00H INC 32H MOV A,32H CJNE A,#24,NEXT MOV 32H,#00H NEXT:LC

9、ALL DISPDONE:RETITABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00HTAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH(5)主函数,实现系统初始化。代码段如下: START: MOV 30H,#00H MOV 31H,#00H MOV 32H,#12 MOV 48H,#00H MOV 49H,#00H MOV 4AH,#00H MOV TMOD,#01H MOV TH0,#248 MOV TL0,#248 SETB TR0 SETB ET0 SETB EA5程序清单与仿真结果5.1

10、程序清单ORG 00H LJMP START ORG 0BH ;定时器0中断入口地址 LJMP INT_T0START: MOV 30H,#00H;程序初始化 MOV 31H,#00H MOV 32H,#12 MOV 48H,#00H MOV 49H,#00H MOV 4AH,#00H MOV TMOD,#01H MOV TH0,#248 MOV TL0,#248 SETB TR0;启动定时器0 SETB ET0;允许T0中断 SETB EA;开中断ADDMIAO:JB P3.2,ADDFEN LCALL DELY10MS;去抖动 JB P3.2,ADDFEN INC 30H MOV A,30

11、H CJNE A,#60,NS60;满60清零 MOV 30H,#00HNS60:LCALL DISP JNB P3.2,$ADDFEN:JB P3.1,ADDSHI LCALL DELY10MS JB P3.1,ADDSHI INC 31H MOV A,31H CJNE A,#60,NM60 MOV 31H,#00HNM60:LCALL DISP JNB P3.1,$ADDSHI:JB P3.0,RETURN LCALL DELY10MS JB P3.0,RETURN INC 32H MOV A,32H CJNE A,#24,NH24 MOV 32H,#00HNH24:LCALL DISP

12、JNB P3.0,$RETURN: LJMP ADDMIAODELY10MS: MOV R6,#10D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETDISP: MOV A,#40H ADD A,#8 DEC A MOV R1,A MOV A,32H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOV R1,A DEC R1 MOV A,31H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10

13、MOV R1,A DEC R1 MOV A,30H MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 RETINT_T0: MOV TH0,#248 MOV TL0,#248 MOV A,#40H ADD A,48H MOV R0,A MOV A,R0 MOV DPTR,#TABLE;送表头 MOVC A,A+DPTR MOV P2,#0FFH MOV P0,A MOV A,48H MOV DPTR,#TAB;扫描控制位 MOVC A,A+DPTR MOV P2,A INC 48H MOV A,48H CJNE A,#08H,KN

14、A;8个数码管送数是否结束 MOV 48H,#00HKNA:INC 49H MOV A,49H CJNE A,#100,DONE MOV 49H,#00H INC 4AH MOV A,4AH CJNE A,#05H,DONE MOV 4AH,#00H INC 30H MOV A,30H CJNE A,#60,NEXT MOV 30H,#00H INC 31H MOV A,31H CJNE A,#60,NEXT MOV 31H,#00H INC 32H MOV A,32H CJNE A,#24,NEXT MOV 32H,#00H NEXT:LCALL DISPDONE:RETITABLE:DB

15、3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00HTAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH END5.2 仿真结果(1)系统初始化时,仿真如下:图5.1 初始状态图(2)时键按下,增加一小时,仿真如下:图5.2 增加一小时仿真图(3)分键按下,增加一分钟,仿真如下: 图5.3 增加一分钟仿真图6设计总结6.1 设计体会本学期开设单片机原理及应用这一门课,由于课程比较多,单片机课时少,时间的紧促,加上平时学习不怎么努力,所以只学到单片机汇编语言的基本语句和一些简短的程序,还没有具备熟练应用所学知识编写具体实用

16、的能力,硬件的设计和仿真能力也很弱,所幸学校组织了这次单片机课程设计,给我们的课程学习提供了一个提高及应用的机会,当然,也给我们带来了一定的压力。我所选的课程设计题目是数字时钟。刚拿到这个课题时,不只如何动手去做。就去上网查询资料和源程序,认真研究了其他学长学姐的程序之后,才有了基本的思路,先将整个系统根据不同的功能化分成模块,再分别进行设计,逐个攻破,最后将其整合即可。知道最重要的是1秒定时部分和如何把时分秒在数码管中显示出来,同时设计出来的产品还必须具备一些基本的人机交互功能。从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而

17、且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。这次课程设计终于顺利完成了,在课程设计的过程中,可谓各个方面的能力都得到了一定

18、的提高,为我以后的学习打下了良好的基础。在此我非常感谢我的指导老师教授级高级工程师傅篱教授,感谢傅老师不辞辛苦的细心辅导,让我对单片机原理这门课程有了更深刻的认识,让我对独立做课程设计有了信心,同时我还要感谢我的队友,感谢他们的努力和配合,这次课程设计才能顺利完成。参考文献1 蔡美琴,张为民,沈新群等.MCS51系列单片机系统及其应用M.北京:高等教育出版社,1992.2何立民.单片机应用技术选篇(5)M.北京:北京航空航天大学出版社,1997.3杨光友. 单片机微型计算机原理及接口技术M.北京:中国水利水电出版社,20024李广弟.单片机基础.北京:北京航空航天大学出版社,19945阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号