ORG 0000H
AJMP RD24C
ORG 0001H
AJMP RD24C
ORG 001BH
AJMP TIME1
ORG 000BH
AJMP TIME
ORG 0013H
AJMP MAIN
ORG 0023H
AJMP MAIN
ORG 80H
RD24C: MOV 20H,#00H
MOV 45H,#00H
MOV 46H,#00H
MOV 47H,#00H
MOV DPTR,#P_ADR
RD24C1: CLR EA
ACALL FBZM
ACALL CSXY
JB XYBZ,RD24C1
ACALL FDPL
ACALL FJSM
INC R3
MOV A,R3
ACALL FSMW
ACALL CSXY
JB XYBZ,RD24C1
MOV R0,#BUF
MOV R2,#00H
RD24C2: MOV R1,#08H
RD24C3: SETB SCL
SETB SDA
MOV C,SDA
RLC A
CLR SCL
DJNZ R1,RD24C3
MOV @R0,A
INC R0
INC R2
CJNE R2,#05H,WW
ACALL FJSM
MOV TMOD,#16H
MOV TH1,#0BH
MOV TL1,#0DCH
MOV TH0,#01BH
MOV TL0,#01BH
MOV IP,#04H
MOV IE,#8EH
CLR TR1
SETB TR0
MOV SP,#70H
NEXT: LCALL DISP
LCALL KEY
SJMP NEXT
NOP
NOP
NOP
WW: ACALL FYD
AJMP RD24C2
FBZM: SETB SDA
SETB SCL
MOV A,DPH
CLR C
RLC A
ANL A,#0FH
ORL A,#0A0H
MOV R3,A
FSMW: CLR SDA
FSMW1: MOV R1,#08H
FSMW2: CLR SCL
RLC A
MOV SDA,C
SETB SCL
DJNZ R1,FSMW2
CLR SCL
RET
CSXY: SETB SDA
SETB SCL
CLR XYBZ
JNB SDA,CSXY1
SETB XYBZ
CSXY1: CLR SCL
RET
FYD: CLR SDA
SETB SCL
NOP
CLR SCL
SETB SDA
RET
FJSM: CLR SDA
SETB SCL
NOP
SETB SDA
RET
FDPL: MOV A,DPL
FACC: ACALL FSMW1
ACALL CSXY
RET
TIME: PUSH ACC
PUSH PSW
SETB P2.7
INC 20H
MOV A,20H
CJNE A,#02H,RETI2
MOV 20H,#00H
MOV A,32H
ADD A,#01H
MOV 32H,A
CJNE A,#64H,RETI1
MOV 32H,#00H
MOV A,33H
ADD A,#01H
MOV 33H,A
CJNE A,#64H,RETI1
MOV 33H,#00H
RETI1: MOV A,33H
MOV A,30H
MOV A,31H
MOV A,32H
CJNE A,30H,RETI2
MOV A ,33H
CJNE A,31H,RETI2
CLR P2.7
MOV A,34H
ADD A,#01H
MOV 34H,A
CJNE A,#64H,RETI3
MOV 34H,#00H
LJMP RETI3
NOP
RETI3: MOV 32H,#00H
MOV 33H,#00H
CLR TR0
SETB TR1
NOP
NOP
RETI2: POP PSW
POP ACC
RETI
NOP
NOP
DISP: MOV DPTR,#TABLE
LOOP1: MOV B,#10
MOV A,32H
DIV AB
MOV 79H,B
MOV 7AH,A
MOV B,#10
MOV A,33H
DIV AB
MOV 7BH,B
MOV 7CH,A
MOV B,#10
MOV A,34H
DIV AB
MOV 7DH,B
MOV 7EH,A
MOV A,79H
MOVC A,@A+DPTR
MOV P0,A
CLR P1.0
ACALL DELAY1
SETB P1.0
MOV A,7AH
ADD A,#0AH
MOVC A,@A+DPTR
MOV P0,A
CLR P1.1
ACALL DELAY1
SETB P1.1
MOV A,7BH
MOVC A,@A+DPTR
MOV P0,A
CLR P1.2
ACALL DELAY1
SETB P1.2
MOV A,7CH
MOVC A,@A+DPTR
MOV P0,A
CLR P1.3
ACALL DELAY1
SETB P1.3
MOV A,7DH
MOVC A,@A+DPTR
MOV P0,A
CLR P1.4
ACALL DELAY1
SETB P1.4
MOV A,7EH
MOVC A,@A+DPTR
MOV P0,A
CLR P1.5
ACALL DELAY1
SETB P1.5
RET
NOP
NOP
TABLE: DB 05H,0BDH,26H,34H
DB 9CH,54H,44H,3DH
DB 04H,14H,01H,0B9H
DB 22H,30H,98H,50H
DB 40H,39H,00H,10H
NOP
NOP
KEY: JNB P2.0,RETE
JNB P2.4,RETE
JNB P2.5,RETE
RET
NOP
NOP
RETE: LCALL DISP
JNB P2.0,ANKEY
JNB P2.4,L7
JNB P2.5,L8
RETX: RET
NOP
NOP
ANKEY: CLR EA
MOV 48H,#0FFH
LX: MOV A,48H
DEC A
JZ L9
MOV 48H,A
LCALL DE10MS
JNB P2.0,L1
JNB P2.1,L9
JNB P2.4,L7
JNB P2.5,L8
LCALL DISP
AJMP LX
NOP
NOP
LX2: MOV A,48H
DEC A
JZ L2
MOV 48H,A
LCALL DE10MS
JNB P2.1,L2
JNB P2.2,L31
JNB P2.3,L31
AJMP LX2
NOP
NOP
L7: LJMP L71
L8: LJMP L81
L21: MOV A,32H
MOV 30H,A
MOV A,33H
MOV 31H,A
L2: JNB P2.1,L25
MOV A,44H
MOV 34H,A
MOV A,43H
MOV 33H,A
MOV A,42H
MOV 32H,A
L9: SETB EA
LJMP NEXT
NOP
NOP
L25: LCALL DISP
LJMP L21
NOP
NOP
L1: MOV 4AH,#0FFH
JNB P2.0,L11
MOV A,34H
MOV 44H,A
MOV A,33H
MOV 43H,A
MOV A,32H
MOV 42H,A
MOV A,30H
MOV 32H,A
MOV A,31H
MOV 33H,A
MOV 34H,#01H
LCALL DISP
L31: MOV 49H,#06BH
MOV 48H,#0FFH
MOV 40H,#0FFH
L32: MOV A,40H
DEC A
JZ LX2
MOV 40H,A
LCALL DE10MS
JNB P2.2,L311
JNB P2.3,L5
JNB P2.1,L21
AJMP L32
NOP
NOP
L11: LCALL DISP
AJMP L1
NOP
NOP
L313: DEC A
MOV 49H,A
AJMP L12
L311: MOV A,49H
CJNE A,#02H,L313
L12: LCALL DE10MS
MOV A,32H
ADD A,#01H
MOV 32H,A
CJNE A,#64H,L312
MOV 32H,#00H
MOV A,33H
ADD A,#01H
MOV 33H,A
CJNE A,#64H,L312
MOV 33H,#00H
L312: JNB P2.2,L311
LJMP L31
NOP
NOP
L52: DEC A
MOV 49H,A
AJMP L55
L5: MOV A,49H
CJNE A,#02H,L52
L55: LCALL DE10MS
MOV A,32H
DEC A
MOV 32H,A
CJNE A,#0FFH,L51
MOV 32H,#63H
MOV A,33H
DEC A
MOV 33H,A
CJNE A,#0FFH,L51
MOV 33H,#63H
L51: JNB P2.3,L5
LJMP L31
NOP
NOP
TIME1: PUSH ACC
PUSH PSW
MOV TH1,#0BH
MOV TL1,#0DCH
MOV A,45H
ADD A,#01H
MOV 45H,A
CJNE A,#10H,TIME2
MOV 45H,#00H
MOV A,46H
ADD A,#01H
MOV 46H,A
CJNE A,#02H,TIME2
MOV 46H,#00H
SETB P2.7
CLR TR1
SETB TR0
NOP
NOP
TIME2: POP PSW
POP ACC
RETI
NOP
NOP
L71: CLR EA
JNB P2.4,L73
MOV 32H,#00H
MOV 33H,#00H
MOV A,34H
ADD A,#01H
MOV 34H,A
CJNE A,#64H,L72
MOV 34H,#00H
L72: LJMP L9
L73: LCALL DISP
AJMP L71
L81: CLR EA
JNB P2.5,L82
MOV 34H,#00H
LJMP L9
L82: LCALL DISP
AJMP L81
MAIN: PUSH ACC
PUSH PSW
MOV DPTR,#P_ADR
WR24C1: CLR EA
ACALL FBZM
ACALL CSXY
JB XYBZ,WR24C1
ACALL FDPL
MOV R0,#BUF
MOV R2,#00H
WR24C2: MOV A,@R0
ACALL FACC
INC R0
INC R2
CJNE R2,#05H,WR24C2
ACALL FJSM
MOV 49H,#10H
ACALL DE10MS
SETB EA
POP PSW
POP ACC
RETI
NOP
DE10MS: MOV A,49H
MOV R7,A
NOP
LOOP2: LCALL DISP
DJNZ R7,LOOP2
RET
NOP
DELAY1: MOV R6,#80H
DJNZ R6,$
RET
NOP
NOP
END