📄 clock.asm
字号:
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP TIME
ORG 000BH
LJMP TIMER2
ORG 0030H
MAIN: MOV SP,#70H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R0,#40H ;建立译码器对应查找表
MOV @R0,#3FH ;0
INC R0
MOV @R0,#06H ;1
INC R0
MOV @R0,#5BH ;2
INC R0
MOV @R0,#4FH ;3
INC R0
MOV @R0,#66H ;4
INC R0
MOV @R0,#6DH ;5
INC R0
MOV @R0,#7DH ;6
INC R0
MOV @R0,#07H ;7
INC R0
MOV @R0,#7FH ;8
INC R0
MOV @R0,#6FH ;9
MOV 30H,#03H
MOV 31H,#00H
MOV 32H,#30H
;
MOV TMOD,#11H
MOV 20H,#28H
SETB ET1
SETB EA
MOV IP,#08H ;中断优先级控制,计时器1为高优先级
MOV TH1,#0A6H
MOV TL1,#00H
SETB TR1
SETB ET0
MOV TH0,#0F4H
MOV TL0,#00H
SETB TR0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SJMP $
JMAIN:
MOV R2,#07FH
WTEMP: MOV R1,#0FFH
TEMP: DJNZ R1,TEMP
DJNZ R2,WTEMP
AJMP JMAIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME: PUSH PSW ;计时器1中断服务程序,提供基准时间
PUSH ACC
MOV TH1,#0A6H
MOV TL1,#00H
DJNZ 20H,RETUNT
MOV 20H,#28H
MOV A,#01H
ADD A,32H
DA A
MOV 32H,A
CJNE A,#60H,RETUNT
MOV 32H,#00H
MOV A,#01H
ADD A,31H
DA A
MOV 31H,A
CJNE A,#60H,RETUNT
MOV 31H,#00H
MOV A,#01H
ADD A,30H
DA A
MOV 30H,A
CJNE A,#24H,RETUNT
MOV 30H,#00H
RETUNT: POP ACC
POP PSW
RETI
TIMER2: PUSH PSW
PUSH ACC
MOV TH0,#0F4H ;计时器2,扫描显示控制
MOV TL0,#00H
ACALL TDSP
POP ACC
POP PSW
RETI
TDSP: MOV A,38H
INC A
CJNE A,#07H,CREL
MOV A,#01H
CREL: MOV 38H,A
DEC A
JZ A01
DEC A
JZ A02
DEC A
JZ A03
DEC A
JZ A04
DEC A
JZ A05
DEC A
JZ A06
A01: MOV A,#0FH
ANL A,32H
AJMP RTT2
A02: MOV A,#0F0H
ANL A,32H
SWAP A
AJMP RTT2
A03: MOV A,#0FH
ANL A,31H
AJMP RTT2
A04: MOV A,#0F0H
ANL A,31H
SWAP A
AJMP RTT2
A05: MOV A,#0FH
ANL A,30H
AJMP RTT2
A06: MOV A,#0F0H
ANL A,30H
SWAP A
AJMP RTT2
RTT2: MOV 39H,A
ACALL DPLAY
RET
DPLAY: MOV R0,38H ;显示函数,将39里的内容显示到数码管第38位
CLR A
SETB CY
LOOPC: RLC A
DJNZ R0,LOOPC
MOV DPTR,#8000H
MOVX @DPTR,A
MOV A,39H
ADD A,#40H
MOV R0,A
MOV A,@R0
MOV DPTR,#9000H
MOVX @DPTR,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -