📄 新建 文本文档.txt
字号:
Z8279 EQU 0FF82H
D8279 EQU 0FF80H
LEDMOD EQU 00H
LEDFEQ EQU 2FH
LEDCLS EQU 0C1H
LEDWR0 EQU 80H
READKB EQU 40H
ORG 0000H
MOV DPTR,#8406H
MOV A, #80H
MOVX @DPTR,A
WAIT: LCALL GETKEY
CJNE A,#0FFH,WAIT
MOV 50H,B
MOV A,B
CJNE A,#0AH,WAIT
LCALL START
START: MOV 16H,#35
MOV 17H,#5
MOV 18H,#25
MOV 19H,#5
MOV SP,#60H
LCALL STATUS0
CIRCLE: LCALL STATUS1
LCALL STATUS2
LCALL STATUS3
LCALL STATUS4
LJMP CIRCLE
STATUS0:
MOV DPTR , #8400H
MOV A,#0FH
MOVX @DPTR, A
MOV R2,#10
LCALL DELAY
RET
STATUS1:
MOV DPTR , #8400H
MOV A,#96H
MOVX @DPTR, A
MOV 11H,16H
LCALL INIT8279
STA1: LCALL LC
MOV 15H,#07H
MOV 14H,#06H
LCALL DISPLAY
LCALL FUWU00
DJNZ 11H,STA1
RET
STATUS2:
MOV DPTR , #8400H
MOV R3,#03H
FLASH:
MOV A,#9FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#96H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#06H
MOVX @DPTR,A
MOV 11H,17H ;传5秒
LCALL INIT8279
STA2: LCALL LC
MOV 14H,#4
LCALL DISPLAY
LCALL FUWU01
DJNZ 11H,STA2
RET
STATUS3:
MOV DPTR , #8400H
MOV A,#69H
MOVX @DPTR, A
MOV 11H,18H;传25秒
LCALL INIT8279
STA3: LCALL LC
MOV 15H,#03H
MOV 14H, #02H
LCALL DISPLAY
LCALL FUWU02
DJNZ 11H,STA3
RET
STATUS4:
MOV DPTR , #8400H
MOV R3,#03H
FLASH1:
MOV A,#6FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#69H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#09H
MOVX @DPTR,A
MOV 11H,19H; 传支5秒
LCALL INIT8279
STA4: LCALL LC
MOV 14H,#00H
LCALL DISPLAY
LCALL FUWU03
DJNZ 11H,STA4
RET
INIT8279:
MOV DPTR,#Z8279
MOV A,#LEDMOD
MOVX @DPTR,A
MOV A,#LEDFEQ
MOVX @DPTR,A
MOV A,#LEDCLS
MOVX @DPTR,A
LCALL DELAY
RET
DISLED:
PUSH DPH
PUSH DPL
PUSH ACC
MOV A,#LEDWR0
ADD A,R4
MOV DPTR,#Z8279
MOVX @DPTR,A
MOV DPTR,#LEDSEG
MOV A,R5
MOVC A,@A+DPTR
MOV DPTR,#D8279
MOVX @DPTR,A
POP ACC
POP DPL
POP DPH
RET
DELAY:
PUSH 0
PUSH 1
PUSH 2
DELAY1: MOV 1,#0H
DELAY2:MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 2
POP 1
POP 0
RET
DISPLAY:
MOV R5,12H
MOV R4,15H
LCALL DISLED
MOV R5,13H
MOV R4,14H
LCALL DISLED
MOV R2,#10
LCALL DELAY
RET
LC: MOV A, 11H
MOV B,#0AH
DIV AB
MOV 12H,A
MOV 13H,B
RET
ERROR: MOV R5,#10H
MOV R4,#05H
LCALL DISLED
MOV R5,#11H
MOV R4,#04H
LCALL DISLED
MOV R5,#12H
MOV R4,#03H
LCALL DISLED
MOV R5,#13H
MOV R4,#02H
LCALL DISLED
RET
GETKEY: PUSH DPH
PUSH DPL
PUSH PSW
MOV DPTR,#Z8279
MOVX A,@DPTR
ANL A,#07H
JNZ GETVAL
MOV A,#00H
SJMP NKBHIT
GETVAL:
MOV A,#READKB
MOVX @DPTR,A
MOV DPTR,#D8279
MOVX A,@DPTR
ANL A,#3FH
MOV B ,A
MOV A,#0FFH
NKBHIT: POP PSW
POP DPL
POP DPH
RET
KEYA: LCALL INIT8279
MOV R5,#0AH
MOV R4,#06H
LCALL DISLED
AJMP CIRCLE
RET
KEYB: MOV R5,#0BH
MOV R4,#06H
;LCALL DISLED
LCALL ERROR
RET
KEYC: LCALL INIT8279
MOV R5,#0CH
MOV R4,#06H
LCALL DISLED
WAIT1: LCALL GETKEY
CJNE A,#0FFH,WAIT1
MOV R5,B
MOV 31H,B
MOV R4,#01H
LCALL DISLED
WAIT2: LCALL GETKEY
CJNE A,#0FFH,WAIT2
MOV R5,B
MOV 30H,B
MOV R4,#0
LCALL DISLED
RET
KEYD: MOV A,31H
MOV B,#10
MUL AB
MOV B,30H
ADD A,B
RET
KEYE: MOV DPTR,#8400H
MOV A,#96H
MOVX @DPTR,A
MOV R5,#0EH
MOV R4,#06H
LCALL DISLED
RET
KEYF: MOV DPTR,#8400H
MOV A,#96H
MOVX @DPTR,A
MOV R5,#0FH
MOV R4,#06H
LCALL DISLED
RET
FUWU00: PUSH 11H
PUSH PSW
LCALL GETKEY
CJNE A,#0FFH,JAP0
MOV 50H,B
MOV A,50H
CJNE A,#0BH,PADJ
LCALL KEYB
WAIT0: LCALL GETKEY
CJNE A,#0FFH,WAIT0
MOV 50H,B
MOV A,50H
CJNE A,#0AH,PADJ
SJMP JAP0
PADJ: MOV A,50H
CJNE A,#0CH,PADE0
LCALL KEYC
MOV R2,#10
LCALL DELAY
LCALL KEYD
RET
PADE0: MOV A,50H
CJNE A, #0EH, PADF0
LCALL KEYE
PADF0: MOV A,50H
CJNE A, #0FH, JAP0
LCALL KEYF
LJMP WAIT0
JAP0: POP PSW
POP 11H
LCALL KEYA
RET
LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;'0,1,2,3,4,5,6,7,'
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;'8,9,A,B,C,D,E,F,'
DB 73H,40H,40H,73H;'P,-,-,P,'
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -