📄 countdown2.asm
字号:
PTR EQU 28H
ORG 00H
JMP START
ORG 03H
JMP EXT0
ORG 0BH
JMP TIM0
ORG 13H
JMP EXT1
START:MOV SP,#70H
MOV PTR,#00
MOV 2AH,#00
MOV 2BH,#12
MOV 2CH,#24
MOV TMOD,#00000001B
MOV TH0,#0F0H
MOV TL0,#60H
MOV IE,#10000111B
MOV TCON,#000000001B
MOV R4,#250
LOOP:
CALL DISPLAY
CALL SCAN
JNB P0.0,SEC
JNB P0.1,MIN
JNB P0.2,UPHUR
JNB P0.3,SE
JNB P0.4,DOWNHUR
JMP LOOP
SEC:CALL DELAY
MOV 2CH,#24
CALL DELAY
JNB P0.0,$
CALL DELAY
JMP LOOP
MIN:CALL DELAY
MOV A,2BH
CJNE A,#20,N3
MOV A,#00
JMP N4
N3:ADD A,#01
N4:MOV 2BH,A
JNB P0.1,$
CALL DELAY
JMP LOOP
UPHUR:CALL DELAY
MOV A,2AH
CJNE A,#59,N5
MOV A,#00
JMP N6
N5:ADD A,#01
N6:MOV 2AH,A
JNB P0.2,$
CALL DELAY
JMP LOOP
SE:CALL DELAY
MOV A,2CH
CJNE A,#24,N7
MOV A,#00
JMP N8
N7:ADD A,#01
N8:MOV 2CH,A
JNB P0.3,$
CALL DELAY
JMP LOOP
DOWNHUR:CALL DELAY
MOV A,2AH
CJNE A,#12,N9
MOV A,#00
JMP N10
N9: CLR C
SUBB A,#01
N10:MOV 2AH,A
JNB P0.4,$
CALL DELAY
JMP LOOP
EXT0:SETB TR0
MOV IP,#00000110B
CALL DELAY
RETI
TIM0:MOV TH0,#0F0H
MOV TL0,#60H
PUSH ACC
PUSH PSW
MOV IP,#00000100B
SETB RS0
CLR RS1
DJNZ R4,X1
MOV R4,#250
CALL TDOWN1
CALL TDOWN
CALL DISPLAY
X1:CALL SCAN
POP PSW
POP ACC
RETI
SCAN: MOV A,PTR
CJNE A,#6,X2
MOV PTR,#00
X2: MOV A,PTR
ADD A,#20H
MOV R1,A
MOV A,PTR
SWAP A
ORL A,@R1
MOV p2,A
INC PTR
RET
TDOWN:
MOV A,2AH
CJNE A,#00,SEC1
MOV A,2BH
CJNE A,#00,MIN1
CALL DELAY
JMP DONE
TDOWN1:
MOV A,2CH
CJNE A,#01,HUR1
CALL DELAY
SUBB A,#01
MOV 2CH,A
CALL DELAY
JMP DONE
SEC1:SUBB A,#01
MOV 2AH,A
JMP X3
MIN1:SUBB A,#01
MOV 2BH,A
MOV A,#59
MOV 2AH,A
JMP X3
HUR1:SUBB A,#01
MOV 2CH,A
X3:RET
DISPLAY:MOV R1,#20H
MOV A,2AH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,2BH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,2CH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
RET
EXT1: PUSH ACC
PUSH PSW
CLR TR0
MOV IP,#00000001B
SETB RS1
CLR RS0
DISP:MOV R1,#20H
MOV A,2AH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,2BH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,2CH
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
CALL SCAN0
POP PSW
POP ACC
RETI
SCAN0:MOV A ,PTR
CJNE A,#6,X4
MOV PTR,#00
X4:MOV A,PTR
ADD A,#20H
MOV R1,A
MOV A,PTR
SWAP A
ORL A,@R1
MOV p2,A
INC PTR
RET
DELAY:MOV R6,#60
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DONE: SETB P0.5
JMP EXT1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -