LINEEQU 30H
ROW EQU 31H
VAL EQU 32H
ORG 00H
SJMPSTART
ORG 0BH
LJMPINT_T0
START: MOVP0,#00H
MOVTMOD,#01H
LSCAN: MOVP3,#0F0H
L1:
JNBP3.0,L2
LCALL DELAY
JNBP3.0,L2
MOVLINE,#00H
LJMP RSCAN
L2:
JNBP3.1,L3
LCALL DELAY
JNBP3.1,L3
MOVLINE,#01H
LJMP RSCAN
L3:
JNBP3.2,L4
LCALL DELAY
JNBP3.2,L4
MOVLINE,#02H
LJMP RSCAN
L4:
JNBP3.3,L1
LCALL DELAY
JNBP3.3,L1
MOVLINE,#03H
RSCAN: MOVP3,#0FH
C1:
JNBP3.4,C2
MOVROW,#00H
LJMP CALCU
C2:
JNBP3.5,C3
MOVROW,#01H
LJMP CALCU
C3:
JNBP3.6,C4
MOVROW,#02H
LJMP CALCU
C4:
JNBP3.7,C1
MOVROW,#03H
CALCU: MOVA,LINE
MOVB,#04H
MULAB
ADDA,ROW
MOVVAL,A
MOVDPTR,#TABLE2
MOVB,#2
MULAB
MOVR1,A
MOVC A,@A+DPTR
MOVTH0,A
INCR1
MOVA,R1
MOVC A,@A+DPTR
MOVTL0,A
MOVIE,#82H
SETB TR0
MOVA,VAL
MOVDPTR,#TABLE1
MOVC A,@A+DPTR
MOVP0,A
W0:
MOVA,P3
CJNE A,#0FH,W1
MOVP0,#00H
CLRTR0
LJMP LSCAN
W1:
MOVA,P3
CJNE A,#0F0H,W2
MOVP0,#00H
CLRTR0
W2:
SJMP W0
INT_T0: MOVDPTR,#TABLE2
MOVA,VAL
MOVB,#2
MULAB
MOVR1,A
MOVC A,@A+DPTR
MOVTH0,A
INCR1
MOVA,R1
MOVC A,@A+DPTR
MOVTL0,A
CPLP1.0
RETI
DELAY: MOVR6,#10
D1:
MOVR7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TABLE1: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
TABLE2: DW64021,64103,64260,64400
DW64524,64580,64684,64777
DW64820,64898,64968,65030
DW65058,65110,65157,65178
|