ORG 0000H
SJMP DISPLAY
ORG 0003H
LJMP BUTTON
ORG 000BH
LJMP DINGSHI
RS EQU P3.0
RW EQU P3.1
E EQU P3.4
ORG 0030H
DISPLAY: SETB EA
SETB EX0
SETB IT0
MOV TMOD, #01H
MOV TL0, #0FFH
MOV TH0, #0FFH
SETB ET0
CLR P0.5
CLR P0.6
CLR P0.7
SETB TR0
MOV DPTR, #TAB
MOV R0, #00H
MOV R1, #16
MOV R3, #00H
MOV R4, #00H
LP9: LCALL CHUSHI
LP2: ACALL BUSY
MOV A, #00H
MOVC A, @A+DPTR
MOV P1, A
ACALL DATAS
INC DPTR
DJNZ R1, LP2
LP3: CJNE R3, #00H, LP4
CJNE R4, #00H, LP4
SJMP LP3
LP4: MOV R7, #00H
MOV R5, #09H
ACALL BUSY
MOV P1, #0C0H
ACALL ENABLE
MOV DPTR, #MMTAB
ACALL BUSY
LP5: MOV A, #00H
MOVC A, @A+DPTR
MOV P1, A
INC DPTR
ACALL DATAS
ACALL BUSY
DJNZ R5, LP5
MOV DPTR, #STAB
MOV A, R2
MOV P1, A
ACALL DATAS
ACALL BUSY
MOV A, R3
MOVC A, @A+DPTR
MOV P1, A
ACALL DATAS
ACALL BUSY
MOV A, R4
MOVC A, @A+DPTR
MOV P1, A
ACALL DATAS
LP8: CJNE R7, #00H, LP7
LJMP LP8
LP7: SJMP LP4
CHUSHI: ACALL BUSY
MOV P1, #00000001B
ACALL ENABLE
ACALL BUSY
MOV P1, #00111000B
ACALL ENABLE
ACALL BUSY
MOV P1, #00001111B
ACALL ENABLE
ACALL BUSY
MOV P1, #00000110B
ACALL ENABLE
ACALL BUSY
MOV P1, #80H
ACALL ENABLE
RET
ENABLE: SETB E
CLR RS
CLR RW
CLR E
RET
DATAS: SETB E
SETB RS
CLR RW
CLR E
RET
BUSY: CLR E
MOV P1, #0FFH
CLR RS
SETB RW
SETB E
JB P1.7, BUSY
RET
ORG 2000H
DINGSHI: CPL P0.7
JNB P0.7, Z1
MOV A, #0FFH
SUBB A, R0
MOV TH0, A
SETB TR0
RETI
Z1: MOV TH0, R0
SETB TR0
RETI
BUTTON: PUSH ACC
CLR EX0
CLR EA
INC R7
MOV A, #0FFH
MOV P2, A
MOV A, P2
JNB ACC.0, AA0
JNB ACC.1, KK0
JNB ACC.2, ZZ0
JNB ACC.3, FF0
JNB ACC.4, WW0
AJMP QQ
AA0: CJNE R0, #0FFH, AA1
AJMP QQ
AA1: MOV A, R0
ADD A, #5
MOV R0, A
AJMP QQ
KK0: CJNE R0, #00, MM
AJMP QQ
MM: MOV A, R0
SUBB A, #5
MOV R0, A
AJMP QQ
ZZ0: CJNE R0, #01, ZZ1
AJMP QQ
ZZ1: MOV A, R0
INC A, #10
MOV R0, A
AJMP QQ
FF0: CJNE R0, #01, FF1
AJMP QQ
FF1: MOV A, R0
DEC A, #1
MOV R0, A
QQ: MOV A, R0
MOV B, #5
DIV AB
MOV B, #10
DIV AB
MOV R3, A
MOV R4, B
SETB EX0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EA
POP ACC
RETI
WW0: CLR P0.5
CLR P0.6
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB EA
POP ACC
RETI
DELAY: MOV R5, #0E0H
MM0: MOV R6, #30H
MM1: DJNZ R6, MM1
DJNZ R5, MM0
RET
TAB: DB 53H, 45H, 54H, 20H
DB 53H, 50H, 45H, 45H
DB 44H, 20H, 50H, 4CH
DB 45H, 41H, 53H, 45H
STAB: DB 30H, 31H, 32H, 33H
DB 34H, 35H, 36H, 37H
DB 38H, 39H, 41H, 42H
DB 43H, 44H, 45H, 46H
MMTAB: DB 43H, 4FH, 52H, 52H
DB 45H, 4EH, 54H, 20H
DB 3AH
END
|