📄 lamp6.txt
字号:
Z8279 EQU 0FF82H
D8279 EQU 0FF80H
LEDMOD EQU 00H
LEDFEQ EQU 2FH
LEDCLS EQU 0C1H
LEDWR0 EQU 80H
READKB EQU 40H
ORG 0000H
LJMP FUWU
ORG 0040H
FUWU: LCALL INIT8279
WAIT: LCALL GETKEY
CJNE A,#0FFH,WAIT
MOV A,B
CJNE A,#0AH, BB
LJMP START
BB: MOV A,B
CJNE A,#0BH,CC
LJMP ERROR
CC: MOV A,B
CJNE A,#0CH,DD
LJMP KEYC
DD: MOV A,B
CJNE A,#0DH ,WAIT
LJMP KEYD
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: MOV R5,B
MOV R4,#06H
LCALL DISLED
RET
KEYB: MOV R5,#0BH
MOV R4,#06H
LCALL DISLED
RET
KEYC: LCALL INIT8279
MOV R5,#0CH
MOV R4,#06H
LCALL DISLED
WAIT1: LCALL GETKEY
CJNE A,#0FFH,WAIT1
MOV R5,B
MOV R4,#01H
LCALL DISLED
WAIT2: LCALL GETKEY
CJNE A,#0FFH,WAIT2
MOV R5,B
MOV R4,#0
LCALL DISLED
RET
KEYD: MOV A,81H
MOV B,#10
MUL AB
MOV B,80H
ADD A,B
MOV 16H,A
MOV 11H,16H
LJMP CIRCLE
RET
START: MOV DPTR,#8406H
MOV A, #80H
MOVX @DPTR,A
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 INIT8279
LCALL DISPLAY
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
LCALL INIT8279
MOV 11H,#5
STA2: LCALL LC
MOV 14H,#4
LCALL DISPLAY
DJNZ 11H,STA2
RET
STATUS3:
MOV DPTR , #8400H
MOV A,#69H
MOVX @DPTR, A
MOV 11H,#35
LCALL INIT8279
STA3: LCALL LC
MOV 15H,#03H
MOV 14H, #02H
LCALL DISPLAY
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,#05H
LCALL INIT8279
STA4: LCALL LC
MOV 14H,#00H
LCALL DISPLAY
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
MOV R5,#00H
MOV R4,14H
LCALL DISLED
RET
LC: MOV A, 11H
MOV B,#0AH
DIV AB
MOV 12H,A
MOV 13H,B
RET
ERROR: LCALL STATUS0
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
CTRL:
SETB PSW.1
LCALL GETKEY
CJNE A,#0FFH,CTRL
MOV A,B
CJNE A,#14,GP1
LJMP JIAN1
GP1: MOV A,B
CJNE A,#15,GP2
SJMP JIAN2
GP2: MOV A,B
CJNE A,#40,GP3
SJMP JIAN3
GP3: MOV A,B
CJNE A,#41,GP4
SJMP JIAN4
GP4: LJMP RG
JIAN1: LCALL RGSAN
LCALL DG1
LJMP RG
JIAN2: LCALL RGSAN
LCALL DG2
LJMP RG
JIAN3: LCALL RGSAN
LCALL DG3
LJMP RG
JIAN4: LCALL RGSAN
LCALL DRED
LJMP RG
RGSAN: MOV DPTR,#8406H
MOV A,#80H
MOVX @DPTR,A
MOV DPTR,#8400H
MOV R3,#2
SAN3: MOV A,#0C7H
MOVX @DPTR,A
LCALL DELAY9
MOV A,#00H
MOVX @DPTR,A
LCALL DELAY9
DJNZ R3,SAN3
RET
DG1: MOV R1,#DML1
MOV R2,#07H
LCALL RGSOX
RET
DG2: MOV R1,#DML2
MOV R2,#0C5H
LCALL RGSOX
RET
DG3: MOV R1,#DML3
MOV R2,#0C7H
LCALL RGSOX
RET
DRED: MOV R1,#8FH
MOV R2,#0C0H
LCALL RGSOX
RET
RGSOX:
MOV DPTR,#8406H
MOV A,#80H
MOVX @DPTR,A
MOV DPTR,#8402H
MOV A,R2
MOVX @DPTR,A
RET
DELAY9: PUSH 2
PUSH 1
PUSH 0
MOV R2,#03
DELAY10: MOV R1,#00H
DELAY20: MOV R0,#0B2H
DJNZ R0,$
DJNZ R1,DELAY20
DJNZ R2,DELAY10
POP 0
POP 1
POP 2
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 + -