ORG 0000H
LJMP IN
ORG 30H
MOV R2,#0H
IN: MOV P3,#0FFH
CLR A
MOV A,P3
CJNE A,#0FFH,AST
ACALL InitTimer0
AJMP IN
AST: ACALL InitTimer0
CJNE A,#0FFH,START
AJMP IN
START:MOV DPTR,#TAB
MOV A,R2
CLR C
ADD A,R2
JNC NADD
INC DPH
NADD: JMP @A+DPTR
TAB: AJMP PM0
AJMP PM1
AJMP PM2
AJMP PM3
LOOP:
MOV P2,#0H
LCALL InitTimer0
MOV P2,#0FFH
LCALL InitTimer0
RET
InitTimer0:
MOV TMOD,#00H
MOV TH0,#1CH
MOV TL0,#08H
SETB TR0
RET
PM0:MOV A,P3
ORL A,#0FBH
MOV P2,A
JB P3.1,PM0
MOV R2,#1H
AJMP IN
PM1:MOV A,P3
ORL A,#0FDH
MOV P2,A
LCALL LOOP
JB P3.2,PM1
MOV R2,#2H
AJMP IN
PM2:MOV A,P3
ORL A,#0EFH
MOV P2,A
JB P3.4,PM2
MOV R2,#3H
AJMP IN
PM3:MOV A,P3
ORL A,#0BFH
MOV P2,A
JB P3.6,PM3
MOV R2,#1H
AJMP IN
END
|