电子钟报告.docx
《电子钟报告.docx》由会员分享,可在线阅读,更多相关《电子钟报告.docx(15页珍藏版)》请在冰豆网上搜索。
![电子钟报告.docx](https://file1.bdocx.com/fileroot1/2023-2/11/783ef908-166f-4b92-ac68-79fe4be46fda/783ef908-166f-4b92-ac68-79fe4be46fda1.gif)
电子钟报告
成都航空职业技术学院
《电子钟实训报告》
专业:
应用电子班级:
210341
姓名:
周洪指导教师:
邱寄帆
完成日期:
2012年6月8日
一、设计题目:
具有整点报时功能的数字电子钟
二、设计目的:
利用89S51芯片及相关芯片构成电子时钟,在数码管上显示相应的时间
三、设计要求:
1、完成时钟的正常运行与显示
2、具有整点报时功能
3、具有校时功能
四、设计方案:
1、实现时钟计时的基本方法
利用单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)把定时器设为工作方式1,定时时间为125ms,则计数溢出8次即得时钟计时最小单位秒。
TL1=0CDH,TH1=0BH
(2)采用中断方式进行溢出次数累计,计满8次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2、电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED6 LED5 LED4 LED3 LED2 LED1
7EH 7DH 7CH 7BH 7AH 79H
时十位 时个位 分十位 分个位 秒十位 秒个位
五、设计程序
LJMPMAIN
ORG0003H
LJMPINT_0
ORG001BH
LJMPINT
ORG0030H
MAIN:
MOVR0,#79H;显示缓冲区首地址
MOVR7,#06H
ML1:
MOV@R0,#00H
INCR0
DJNZR7,ML1
MOVTMOD,#10H;初始化定时器
MOVTL1,#0CDH
MOVTH1,#0BH
SETBEA
SETBEX0
SETBET1
SETBTR1
MOV30H,#08H
ML0:
LCALLSMXS;调用显示函数
SJMPML0
;====================================
INT_0:
MOV79H,#00H;中断服务程序------校时秒个位
MOV7AH,#00H;中断服务程序------校时秒十位
ML00:
LCALLSMXS
JNBP1.5,RETT
JBP1.1,NNN;INC
SJMPIINNCC
NNN:
JBP1.2,QQ;DEC
SJMPDDEECC
QQ:
JBP1.3,WW
SJMPQQWWEE
WW:
JBP1.4,ML00
SJMPWWEERR
IINNCC:
MOVR4,7BH
CJNER4,#9,INC11
MOV7BH,#00H;中断服务程序------校时分个位
MOVR4,7CH;中断服务程序------校时分个位
CJNER4,#5,INC22
MOV7CH,#00H
SJMPML00
INC11:
INC7BH
SJMPNN1
INC22:
INC7CH
NN1:
MOVR6,#60
AAAA:
LCALLSMXS
DJNZR6,AAAA
RETT:
RETI
;====================================
DDEECC:
MOVR4,7BH
CJNER4,#0,INC33
MOV7BH,#9
MOVR4,7CH
CJNER4,#0,INC44
MOV7CH,#05
SJMPNN2
INC33:
DEC7BH
SJMPNN2
INC44:
DEC7CH
NN2:
MOVR6,#60
BBBB:
LCALLSMXS
DJNZR6,BBBB
RETI
;====================================
QQWWEE:
MOVR4,7DH
CJNER4,#9,INC55
MOV7DH,#00H
MOVR4,7EH
CJNER4,#2,INC66
MOV7EH,#00H
SJMPNN3
INC55:
INC7DH
SJMPNN3
INC66:
INC7EH
NN3:
MOVR6,#60
CCCC:
LCALLSMXS
DJNZR6,CCCC
RETI
;====================================
WWEERR:
MOVR4,7DH
CJNER4,#0,INC77
MOV7DH,#9
MOVR4,7EH
CJNER4,#0,INC88
MOV7EH,#02
SJMPNN4
INC77:
DEC7DH
SJMPNN4
INC88:
DEC7EH
NN4:
MOVR6,#60
DDDD:
LCALLSMXS
DJNZR6,DDDD
RETI
;====================================INT:
PUSHPSW
PUSHACC
MOVTL1,#0CDH
MOVTH1,#0BH
MOVA,30H;秒加1
DECA
MOV30H,A
JNZRET0
MOV30H,#08H
MOVR0,#7AH
LCALLDAAD1
MOVA,R2;分加1
XRLA,#60H
JNZRET0
LCALLBEEP_BL;跳转到音频子程序(每分钟报时一次)
LCALLCLR0
MOVR0,#7CH;时加1
LCALLDAAD1
MOVA,R2
XRLA,#60H
JNZRET0
LCALLCLR0
MOVR0,#7EH
LCALLDAAD1
MOVA,R2
XRLA,#24H
JNZRET0
LCALLCLR0
RET0:
POPACC
POPPSW
RETI
;====================================
DAAD1:
MOVA,@R0
DECR0
SWAPA
ORLA,@R0
ADDA,#01H
DAA
MOVR2,A
ANLA,#0FH
MOV@R0,A
MOVA,R2
INCR0
ANLA,#0F0H
SWAPA
MOV@R0,A
RET
;====================================
CLR0:
CLRA;溢出清零
MOV@R0,A
DECR0
MOV@R0,A
RET
;====================================SMXS:
PUSHACC;中断程序-----实现位选和段选
MOV25H,R0
MOVA,#03H
MOVDPTR,#0FF20H
MOVX@DPTR,A
DIR:
MOVR0,#79H
MOVR3,#01H
MOVA,#00H
MOVDPTR,#0FF21H
MOVX@DPTR,A
LD1:
MOVA,@R0
MOVDPTR,#SEG
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVDPTR,#0FF21H
MOVA,R3
MOVX@DPTR,A
MOVR7,#0FFH
DJNZR7,$
INCR0
JBACC.5,LD2
RLA
MOVR3,A
SJMPLD1
LD2:
SJMPDIR
POPACC
MOVR0,25H
RET
;====================================
BEEP_BL:
MOVP1,#100;音频子程序
BL1:
LCALLBL2
CPLP1.0
DJNZR6,BL1
MOVR5,#25
RET
BL2:
MOVR7,#180
BL3:
NOP
DJNZR7,BL3
RET
SEG:
字节段码
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
六、心得体会
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。
但当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,问老师,在老师的帮助下,历时一个星期,解决一个又一个的困难,终于完成任务。
在这次课程设计中,运用到了很多以前课堂上学的专业知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。
另外,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
。
七、主流程图