📄 时钟程序.txt
字号:
ORG 0000H
AJMP MAIN
MAIN: ;对LCD进行初始化
ACALL DELAY5MS
ACALL JIANCE38H
ACALL DELAY15MS
ACALL JIANCE38H
ACALL DELAY15MS
ACALL JIANCE38H
ACALL F_BUSY
ACALL JIANCE38H
ACALL F_BUSY
ACALL JIANCE08H
ACALL F_BUSY
ACALL QINGPING
ACALL F_BUSY
ACALL JIANCE06H
ACALL F_BUSY
ACALL JIANCE0CH
START:ACALL QINGPING ;时钟初始值设为00 00 00
ACALL F_BUSY
ACALL GONGNENG
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,#30H ;第一位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H ;第二位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#20H ;第三位显示空
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H ;第四位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H ;第五位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#20H ;第六位显示空
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H ;第七位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H ;第八位显示0
MOVX @DPTR,A
ACALL DELAY1S
MOV R2,#30H
MOV R3,#30H
MOV R4,#30H
MOV R5,#30H
MOV R6,#30H
MOV R7,#30H
LOOP7:
MOV DPTR,#0000H
MOV A,#87H
MOVX @DPTR,A ;开始计时 第八位显示秒的个位
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R2
MOVX @DPTR,A
ACALL F_BUSY
ACALL DELAY1S
INC R2
CJNE R2,#3AH,LOOP7
ACALL F_BUSY
MOV R2,#30H
PANDUANR3:
INC R3
CJNE R3,#36H,LOOP8
MOV R3,#30H
ACALL PANDUANR4
ACALL LOOP7
LOOP8:
MOV DPTR,#0000H ;第七位显示秒的十位
MOV A,#86H
ACALL F_BUSY
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R3
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7
PANDUANR4:
INC R4
CJNE R4,#3AH,LOOP9
MOV R4,#30H
ACALL PANDUANR5
ACALL LOOP7
LOOP9:
MOV DPTR,#0000H
MOV A,#84H
ACALL F_BUSY ;第五位显示分的个位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R4
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7
PANDUANR5:
INC R5
CJNE R5,#36H,LOOP10
MOV R5,#30H
ACALL PANDUANR6
ACALL LOOP7
LOOP10:
MOV DPTR,#0000H
MOV A,#83H
ACALL F_BUSY
MOVX @DPTR,A ;第四位显示分的十位
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R5
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7
PANDUANR6:
INC R6
MOV 30H,R6
MOV R0,30H
CJNE R6,#3AH,LOOP11
MOV R6,#30H
ACALL PANDUANR7
ACALL LOOP7
LOOP11:
MOV DPTR,#0000H
MOV A,#81H
ACALL F_BUSY
;第二位显示时的个位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R6
MOVX @DPTR,A
ACALL F_BUSY
CJNE R6,#3AH,LOOP7
CJNE R7,#32H,LOOP7
CJNE R6,#34H,START
PANDUANR7:
INC R7
CJNE R7,#32H,LOOP12
CJNE R0,#34H,LOOP12
AJMP START
LOOP12
MOV DPTR,#0000H
MOV A,#80H
ACALL F_BUSY
;第一位显示时的十位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R7
ACALL F_BUSY
MOVX @DPTR,A
ACALL LOOP7
QINGPING: MOV DPTR,#0000H ;清屏子程序程序
MOV A,#01H
MOVX @DPTR,A
RET
GONGNENG:MOV A,#30H ;功能设置子程序
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#0EH
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#06H
MOVX @DPTR,A
RET
DELAY5MS:MOV R0,#05H ;延时5MS
LOOP1:MOV R1,#0F9H
LOOP2:NOP
NOP
DJNZ R1,LOOP2
DJNZ R0,LOOP1
RET
DELAY15MS:MOV R0,#0FH ;延时15MS
LOOP3:MOV R1,#0F9H
LOOP4:NOP
NOP
DJNZ R1,LOOP4
DJNZ R0,LOOP3
RET
DELAY250MS:MOV R0,#0FDH ;延时250MS
LOOP5:MOV R1,#0F9H
LOOP6:NOP
NOP
DJNZ R1,LOOP6
DJNZ R0,LOOP5
RET
DELAY1S:ACALL DELAY250MS ;延时1S
ACALL DELAY250MS
ACALL DELAY250MS
ACALL DELAY250MS
RET
F_BUSY:PUSH DPH ;判忙程序
PUSH DPL
PUSH PSW
PUSH A
LOOP:MOV DPTR,#0100H
MOVX A,@DPTR
JB ACC.7,LOOP
POP A
POP PSW
POP DPL
POP DPH
RET
JIANCE38H:MOV DPTR,#0000H ;初始化子程序
MOV A,#38H
MOVX @DPTR,A
RET
JIANCE08H:MOV DPTR,#0000H ;初始化子程序
MOV A,#08H
MOVX @DPTR,A
RET
JIANCE06H:MOV DPTR,#0000H ;初始化子程序
MOV A,#06H
MOVX @DPTR,A
RET
JIANCE0CH:MOV DPTR,#0000H ;初始化子程序
MOV A,#0CH
MOVX @DPTR,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -