数字钟设计报告.docx
- 文档编号:27894158
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:9
- 大小:201.92KB
数字钟设计报告.docx
《数字钟设计报告.docx》由会员分享,可在线阅读,更多相关《数字钟设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
数字钟设计报告
物理与电气工程学院课程实践报告
数字钟
姓名:
学号:
111102051
专业:
电信
指导老师:
成绩:
日期:
基于51单片机的数字钟
一、前言
数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置。
早已成为人们日常生活中不可少的必需品,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展,数字钟的设计已经是个课程的基础。
由电子电路实现一个自动数字钟,完成秒分时自动调节及其相关功能,加强学生手动实践能力成为合适首选的方案之一。
数字钟是现代计时器,也可用作时间控制的时钟源。
数字钟由于其具有走时准,显示直观,款式新颖,附加功能多等优点而受到人们的欢迎。
设计一个具有整点报时,可对时的数字钟。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
如闹铃、按时自动打铃、等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
以数字电子为基础,分别对1S时钟信号输出、秒计时显示、分计时显示、小时计时显示,然后将它们组合,来完成功能。
并通过本次设计加深对单片机知识的理解。
2、电路原理图
用51单片机通过74LS138译码器实现对六位共阴七段数码管的控制,如下图:
三、源程序
程序中用到了T0,INT0,INT1三个中断,其中T0用来记秒,INT0用来调分个位,INT1用来调时个位。
而显示用的是六位数码管动态显示,初始数据存在30H--35H单元,缓冲区为40H--46H单元,具体程序如下:
ORG0000H
LJMPSTART
ORG0003H
LJMPTIME1
ORG0013H
LJMPTIME2
ORG000BH
LJMPTO
ORG0030H
START:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
SETBEX0
SETBEX1
SETBIT0
SETBIT1
MOV30H,#4
MOV31H,#5
MOV32H,#9
MOV33H,#5
MOV34H,#3
MOV35H,#2
MOVR0,#30H
MOVR1,#40H
MOVR7,#6
MOVR5,#20
CLRF0
LOOP:
ACALLLOAD
ACALLDSPY
JNBF0,LOOP
CLRF0
INC30H
MOVR2,30H
CJNER2,#10,LOOP;秒个位是否到10
MOV30H,#0
INC31H
MOVR2,31H
CJNER2,#6,LOOP;秒十位是否到6
MOV31H,#0
INC32H
MOVR2,32H
CJNER2,#10,LOOP;分个位是否到10
MOV32H,#0
INC33H
MOVR2,33H
CJNER2,#6,LOOP;分十位是否到6
MOV33H,#0
INC34H;因小时到24要清零,没有办法用上述方法实现,在此拆分,小时的数据全存在R4
ACALLDAA
MOVB,35H
MOVA,#10
MULAB
ADDA,34H
MOVR4,A
CJNER4,#24,LOOP
MOV34H,#0
MOV35H,#0
LJMPLOOP
LOAD:
MOVA,@R0;装载待显数据
MOVDPTR,#ABC
MOVCA,@A+DPTR
MOV@R1,A
INCR0
INCR1
DJNZR7,LOAD
MOVR0,#30H
MOVR1,#40H
MOVR7,#6
RET
DSPY:
MOVR7,#6;显示子程序
MOVR6,#0F8H
LOOP1:
MOVP2,R6
MOVP0,@R1
INCR6
INCR1
DJNZR7,LOOP1
MOVR7,#6
MOVR1,#40H
RET
DAA:
MOVA,34H;十进制调整子程序
CJNEA,#10,DD2
MOV34H,#0
INC35H
DD2:
RET
TO:
DJNZR5,SS;T0中断程序
MOVR5,#20
SETBF0
SS:
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
TIME1:
INC32H;INT0中断程序
MOVR2,32H
CJNER2,#10,DD0
MOV32H,#0
INC33H
MOVR2,33H
CJNER2,#6,DD0
MOV33H,#0
INC34H
ACALLDAA
MOVB,35H
MOVA,#10
MULAB
ADDA,34H
MOVR4,A
CJNER4,#24,DD0
MOV34H,#0
MOV35H,#0
DD0:
RETI
TIME2:
INC34H;INT1中断程序
ACALLDAA
MOVB,35H
MOVA,#10
MULAB
ADDA,34H
MOVR4,A
CJNER4,#24,DD1
MOV34H,#0
MOV35H,#0
DD1:
RETI
ABC:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
4、调试
调试花了几个小时,因为自己对DAA指令的理解不够深而出现了错误,最后用个DAA子程序代替了用指令转换BCD码:
5、运行结果
如下图,是刚开始程序运行的结果:
六、总结
本次实践中让我更加理解了中断以及循环指令的运用,可又发现了自己对外扩芯片掌握的不够,开始做的是外扩5255,可没有成功。
最后选择了用动态显示做数字钟,本以为很容易,可还是做了很长时间的程序。
单片机是一个我很感兴趣的课,在以后我还要更加深刻的学习,锻炼自己的动手能力,相信凭着自己的执着,一定能学好单片机。
参考资料:
《单片机原理与接口技术》高等教育出版社李全利编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 设计 报告