时钟的单片机设计Word文件下载.docx
《时钟的单片机设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《时钟的单片机设计Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
4、可切换显示闹钟和当前时间(本机地址02H,当接到上位机发的02H,则回发02H,当接到上位机发的AAH,则当前时间发给上位机,当收到上位机发的55H,则修改当前时间-时分秒)
三、课程设计思路
本次的课程设计的总体的思路是采用查询的方式对键盘进行查询扫描,判断是否有功能键按下,有就跳到相应的服务子程序中,如果没有的话,就去计算分秒值并在数码管上显示。
键盘扫描采用的是逐列送0,读回行并判断键号的方法。
数码管的显示采用动态显示,其中闹钟设置部分采用静态显示,数码管与两个锁存器74HC573相连,完成动态显示的位选与段选的控制。
三、硬件电路设计
四、使用说明
上电后,按下电路板的开关键,四段数码管开始从0000显示,此时的数码管所显示的为分钟值和秒值,前两个数码管显示分钟,后两个数码管显示秒值,每隔一秒,数码管所显示的内容加1,当显示到59秒后,再过一秒,显示分钟的前两个数码管显示值加1,显示秒的后两个数码管清零,并重新从零开始显示,本设计还设置了四个功能键,分别是键盘上的A、B、C、D四个键,A键实现的是闹钟查看的功能,B是闹钟报警后的停止键,C键实现的是闹钟的设置,D键是时分、分秒的显示切换键。
当按下A键时,此时数码管会显示所设闹钟的小时和分钟,大约一两秒后显示所设闹钟的分秒,再经过短暂延时后,数码管返回显示当前时间的分秒值;
当B键按下后,闹钟的报警会清零;
当C键按下后,数码管会切换显示当前时间的小时和分钟值,一两秒后,数码管返回显示当前时间的分秒值;
当按下D键时,数码管灭,需输入六个有效的时间键设置闹钟,每输入一次,数码管会以静态的形式显示,,当按完六次有效的键后,数码管返回显示当前时间的分秒值。
当上位机发送命令时,先去执行上位机的命令。
当上位机发送地址02H时,丛机则回发上位机02H,当上位机发送55H时,则将此时的时间发给上位机,上位机的数码管显示当前时间的分秒值,短暂延时,切换显示时分值,当主机发送AAH时,则丛机通过键盘输入所要修改的时间值。
五、流程图设计
1、主程序流程图
N
Y
2、子程序设计流程图
(1)时、分、秒计算子程序
N
Y
(2)数码管的动态显示子程序
(3)闹钟设置子程序流程图
6、程序设计如下
ORG0000H
AJMPMAIN
ORG0023H
AJMPTITI
ORG0030H
MAIN:
MOVSP,#60H
CLRP2.0
CLRP2.1;
清位选段选
CLR23H
CLRP0.7
SETBEA
SETBTR1
SETBES
SETBPS
MOV31H,#0
MOV32H,#0
MOV33H,#0
MOV34H,#0
MOV35H,#0
MOV36H,#0
MOV41H,#0
MOV42H,#0
MOV43H,#0
MOV44H,#0
MOV45H,#0
MOV46H,#0
MOVR1,#0
MOVR2,#0
MOVR3,#0
MOVR4,#0
MOVR5,#0
MOVR6,#0
LP:
JBC23H,LLOP
AJMPMAIN2
LLOP:
LJMPLEE3
MAIN2:
MOVSP,#60H
JIANPAN:
;
键盘
MOVP3,#00H
MOVP3,#0F0H;
列
JIAN1:
MOV4DH,#00H;
左右移动次数
MOVA,P3
CPLA
ANLA,#0F0H
JNZLZP1
LJMPLEE0
LZP1:
LCALLDELAY
BEGAIN:
JNZLZP2
AJMPLEE0
LZP2:
MOVP3,#0F7H
MOV4EH,#10H
DJNZ4EH,$
JZLZP5
LZP4:
CLRC
RLCA
INC4DH
JCLZP3
AJMPLZP4
LZP3:
DEC4DH
MOVA,4DH
MOVB,#4
MULAB
AJMPKEYBO
LZP5:
MOVP3,#0FBH
JZLZP6
LZP7:
RLCA
JCLZP8
AJMPLZP7
LZP8:
ADDA,#1
LZP6:
MOVP3,#0FDH
JZLZP9
LZP10:
JCLZP11
AJMPLZP10
LZP11:
ADDA,#2
LZP9:
MOVP3,#0FEH
JZLZP12
LZP13:
JCLZP14
AJMPLZP13
LZP14:
ADDA,#3
LZP12:
LJMPLEE0
KEYBO:
CJNEA,#0CH,YYY1
LJMPLEE1
YYY1:
CJNEA,#0DH,YYY2
LJMPLEE2
YYY2:
CJNEA,#0BH,YYY3
CLRP0.7
YYY3:
CJNEA,#0AH,YYY4
LJMPLEE4
YYY4:
LEE2:
;
闹钟
LCALLALERT
MOV46H,R0
LCALLTIME
MOV45H,R0
LCALLTIME
MOV44H,R0
MOV43H,R0
MOV42H,R0
LCALLTIME
MOV41H,R0
SETB20H
LJMPLP
LEE1:
SETBP2.0
CLRP2.1
MOV5BH,#250
MOV5DH,#5
LCALLSHOW
LEE3:
SETBPSW.3
SETBPSW.4
MOVA,50H
CJNEA,#02H,LOOP1
CLRES
MOVSBUF,A
JNBTI,$
LEE4:
LCALLLOOK
LEE0:
LCALLTIME
INCR1
CJNER1,#10,LP2
INCR2
CJNER2,#6,LP2
INCR3
CJNER3,#10,LP2
INCR4
CJNER4,#6,LP2
INCR5
CJNER5,#10,LP2
INCR6
CJNER6,#02H,LP2
CJNER5,#04,LP2
LP2:
JBC20H,OPEN
LP3:
MOV31H,R1
MOV32H,R2
MOV33H,R3
MOV34H,R4
MOV35H,R5
MOV36H,R6
LCALLCHANGE
OPEN:
MOVA,R1
CJNEA,41H,LP3
MOVA,R2
CJNEA,42H,LP3
MOVA,R3
CJNEA,43H,LP3
MOVA,R4
CJNEA,44H,LP3
MOVA,R5
CJNEA,45H,LP3
MOVA,R6
CJNEA,46H,LP3
SETBP0.7
LOOP1:
CJNEA,#0AAH,LOOP2
MOVR7,#06H
MOVR0,#31H
ABC6:
MOVA,@R0
INCR0
DJNZR7,ABC6
CLRPSW.3
CLRPSW.4
LOOP2:
CJNEA,#55H,LOOP3
LCALLCURRECT
LOOP3:
CLRPSW.3
TITI:
JBCRI,JIE
JBCTI,FA
RETI
JIE:
CLRRI
MOVA,SBUF
MOV50H,A
SETB23H
FA:
CLRTI
显示时分
SHOW:
MOVA,36H
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP1,A
SETBP2.1
MOVP1,#0EH
MOV5EH,#100
DJNZ5EH,$
MOVP1,#0FH
MOVA,35H
MOVP1,#0DH
MOV