📄 io.asm
字号:
SDA BIT P1.0
SCL BIT P1.1
WSLA_8563 EQU 0A2H
RSLA_8563 EQU 0A3H
WSLA_7290 EQU 70H
RSLA_7290 EQU 71H
ORG 8000H
LJMP 8100H
ORG 8013H
LJMP INT_RCT
ORG 8003H
LJMP INT_7290
ORG 8100H
START: MOV SP,#60H
CLR P1.7
LCALL DELAY
SETB P1.7
MOV 10H,#00H
MOV 11H,#1FH
MOV 12H,#55H
MOV 13H,#59H
MOV 14H,#16H
MOV 15H,#15H
MOV 16H,#04H
MOV 17H,#05H
MOV 18H,#08H
MOV 19H,#00H
MOV 1AH,#00H
MOV 1BH,#00H
MOV 1CH,#00H
MOV 1DH,#83H
MOV 48H,#08H
MOV 49H,#00H
MOV 50H,#00H
MOV 51H,#11H
MOV 52H,#30H
MOV 53H,#00H
MOV 54H,#12H
MOV 55H,#30H
MOV 56H,#00H
MOV 57H,#17H
MOV 58H,#00H
MOV 59H,#00H
MOV R7,#0EH
MOV R0,#10H
MOV R2,#00H
MOV R3,#WSLA_8563
LCALL WRNBYT
SETB EA
SETB EX1
CLR IT1
SETB EX0
CLR IT0
ok: Lcall alarm
SJMP OK
INT_RCT:
MOV R7,#03H
MOV R0,#20H
MOV R2,#02H
MOV R3,#WSLA_8563
MOV R4,#RSLA_8563
LCALL RDADD
LCALL ADJUST
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
JNB P1.2,YES
MOV R0,#38H
SJMP DISP
YES: MOV R0,#28H
DISP: LCALL WRNBYT
JNB P3.3,$
RETI
INT_7290:
PUSH 00H
PUSH 02H
PUSH 03H
PUSH 04H
PUSH 07H
PUSH ACC
PUSH PSW
LCALL RDKEY
AKEY: CJNE A,#0AH,BKEY
PUSH 3FH
MOV 3FH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3FH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,AKEY
LCALL RDKEY
SWAP A
MOV 14H,A
LCALL WR8563
ANL 22H,#0FH
ORL 22H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
akey2:
PUSH 3EH
MOV 3EH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3EH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,AKEY2
LCALL RDKEY
ANL 14H,#0F0H
ORL 14H,A
LCALL WR8563
lJMP DOWN
BKEY: CJNE A,#0BH,CKEY
PUSH 3cH
MOV 3cH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3cH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,bKEY
LCALL RDKEY
SWAP A
MOV 13H,A
LCALL WR8563
ANL 21H,#0FH
ORL 21H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
bkey2:
PUSH 3bH
MOV 3bH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3bH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,bKEY2
LCALL RDKEY
ANL 13H,#0F0H
ORL 13H,A
LCALL WR8563
lJMP DOWN
CKEY: CJNE A,#0CH,DOWN1
JB P3.2,$
LCALL RDKEY
SWAP A
MOV 12H,A
LCALL WR8563
ANL 20H,#0FH
ORL 20H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
JB P3.2,$
LCALL RDKEY
ANL 12H,#0F0H
ORL 12H,A
LCALL WR8563
DOWN1: LCALL MODIFY
DOWN: CLR IE0
Pop PSW
POP ACC
POP 07H
POP 04H
POP 03H
POP 02H
POP 00H
RETI
RDKEY: MOV R0,#1FH
MOV R7,#01H
MOV R2,#01H
MOV R3,#WSLA_7290
MOV R4,#RSLA_7290
LCALL RDADD
MOV A,1FH
DEC A
RET
WR8563: MOV R7,#0EH
MOV R0,#10H
MOV R2,#00H
MOV R3,#WSLA_8563
LCALL WRNBYT
RET
ORG 8300H
CHAFEN: PUSH PSW
PUSH ACC
PUSH 03H
PUSH 04H
MOV A,20H
LCALL CF
MOV 38H,R3
MOV 39H,R4
MOV 3AH,#02H
MOV A,21H
LCALL CF
MOV 3BH,R3
MOV 3CH,R4
MOV 3DH,#02H
MOV A,22H
LCALL CF
MOV 3EH,R3
MOV 3FH,R4
MOV A,23H
LCALL CF
MOV A,R3
ORL A,#01H
MOV R3,A
MOV 28H,R3
MOV 29H,R4
MOV A,25H
LCALL CF
MOV A,R3
ORL A,#01H
MOV R3,A
MOV 2AH,R3
MOV 2BH,R4
MOV A,26H
LCALL CF
MOV A,R3
ORL A,#01H
MOV R3,A
MOV 2CH,R3
MOV 2DH,R4
MOV 2EH,#0FCH
MOV 2FH,#0DAH
POP 04H
POP 03H
POP ACC
POP PSW
RET
CF: PUSH 02H
PUSH DPH
PUSH DPL
MOV DPTR,#LEDSEG
MOV R2,A
ANL A,#0FH
MOVC A,@A+DPTR
MOV R3,A
MOV A,R2
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV R4,A
POP DPL
POP DPH
POP 02H
RET
LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H
DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
ADJUST: PUSH ACC
MOV A,20H
ANL A,#7FH
MOV 20H,A
MOV A,21H
ANL A,#7FH
MOV 21H,A
MOV A,22H
ANL A,#3FH
MOV 22H,A
MOV A,23H
ANL A,#3FH
MOV 23H,A
MOV A,24H
ANL A,#07H
MOV 24H,A
MOV A,25H
ANL A,#1FH
MOV 25H,A
POP ACC
RET
delay: push 00h
push 01h
mov r0,#00h
delay1: mov r1,#00h
djnz r1,$
djnz r0,delay1
pop 01h
pop 00h
ret
WRNBYT: PUSH PSW
PUSH ACC
WRADD: MOV A,R3
LCALL STA
LCALL WRBYT
LCALL CACK
JB F0,WRADD
MOV A,R2
LCALL WRBYT
LCALL CACK
JB F0,WRADD
WRDA: MOV A,@R0
LCALL WRBYT
LCALL CACK
JB F0,WRADD
INC R0
DJNZ R7,WRDA
LCALL STOP
POP ACC
POP PSW
RET
RDADD: PUSH PSW
PUSH ACC
RDADD1: LCALL STA
MOV A,R3
LCALL WRBYT
LCALL CACK
JB F0,RDADD1
MOV A,R2
LCALL WRBYT
LCALL CACK
JB F0,RDADD1
LCALL STA
MOV A,R4
LCALL WRBYT
LCALL CACK
JB F0,RDADD1
RDN: LCALL RDBYT
MOV @R0,A
DJNZ R7,ACK
LCALL MNACK
LCALL STOP
POP ACC
POP PSW
RET
ACK: LCALL MACK
INC R0
SJMP RDN
STA: SETB SDA
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SDA
NOP
NOP
NOP
NOP
NOP
CLR SCL
RET
STOP: CLR SDA
SETB SCL
NOP
NOP
NOP
NOP
NOP
SETB SDA
NOP
NOP
NOP
NOP
NOP
CLR SCL
CLR SDA
RET
MACK: CLR SDA
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
SETB SDA
RET
MNACK: SETB SDA
SETB SCL
NOP
NOP
NOP
NOP
CLR SCL
CLR SDA
RET
CACK: SETB SDA
SETB SCL
CLR F0
MOV C,SDA
JNC CEND
SETB F0
CEND: CLR SCL
RET
WRBYT: PUSH 06H
MOV R6,#08H
WLP: RLC A
MOV SDA,C
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
DJNZ R6,WLP
POP 06H
RET
RDBYT: PUSH 06H
MOV R6,#08H
RLP: SETB SDA
SETB SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,SDA
MOV A,R2
RLC A
MOV R2,A
CLR SCL
DJNZ R6,RLP
POP 06H
RET
alarm:
MOV A,22H
CJNE A,48H,AL2
MOV A,21H
CJNE A,49H,AL2
MOV A,20H
CJNE A,50H,BB
clr p1.3;灯1
CALL SOUND
RET
AL2:
CJNE A,51H,AL3
MOV A,21H
CJNE A,52H,AL3
MOV A,20H
CJNE A,53H,BB
CLR p1.3; LED1
CLR P1.4; LED2
CALL SOUND
RET
AL3:
CJNE A,54H,AL4
MOV A,21H
CJNE A,55H,AL4
MOV A,20H
CJNE A,56H,BB
CLR p1.3; LED1
SETB P1.4; LED2
CALL SOUND
RET
AL4:
CJNE A,57H,BB
MOV A,21H
CJNE A,58H,BB
MOV A,20H
CJNE A,59H,BB
CLR p1.3; LED1
CALL SOUND1
BB: RET
SOUND: MOV TMOD,#10H
MOV TL1,#033H
MOV TH1,#0FEH
SETB TR1
LOOP: JNB TF1,$
CLR TF1
MOV TL1,#033H
MOV TH1,#0FEH
CPL P1.5
MOV A,20H
CJNE A,#02H,LOOP
SETB P1.3
RET
SOUND1: MOV TMOD,#10H
MOV TL1,#033H
MOV TH1,#0FEH
SETB TR1
LOOP1: JNB TF1,$
CLR TF1
MOV TL1,#033H
MOV TH1,#0FEH
CPL P1.5
MOV A,20H
CJNE A,#05H,LOOP1
SETB P1.3
RET
MODIFY: CJNE A,#0DH,RE1
AMOD:
PUSH 3FH
MOV 3FH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3FH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,AMOD
LCALL RDKEY
SWAP A
MOV 48H,A
ANL 22H,#0FH
ORL 22H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
aMOD2:
PUSH 3EH
MOV 3EH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3EH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,AMOD2
SJMP KK1
RE1:LJMP RE2
KK1:
LCALL RDKEY
ORL 48H,A
ANL 22H,#0F0H
ORL 22H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
BMOD:
PUSH 3cH
MOV 3cH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3cH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,BMOD
LCALL RDKEY
SWAP A
MOV 49H,A
ANL 21H,#0FH
ORL 21H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
BMOD2:
PUSH 3bH
MOV 3bH,#00H
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
POP 3bH
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
LCALL DELAY
JB P3.2,bMOD2
SJMP KK2
RE2:LJMP RE
KK2:
LCALL RDKEY
ORL 49H,A
ANL 21H,#0F0H
ORL 21H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
CMOD:
JB P3.2,$
LCALL RDKEY
SWAP A
MOV 50H,A
ANL 20H,#0FH
ORL 20H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
CMOD2:
JB P3.2,$
LCALL RDKEY
ORL 50H,A
ANL 20H,#0F0H
ORL 20H,A
LCALL CHAFEN
MOV R7,#08H
MOV R2,#10H
MOV R3,#WSLA_7290
MOV R0,#38H
LCALL WRNBYT
RE: RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -