ORG 0000H
LJMP 1000H
ORG 1000H
MAIN:CALL INI8255
MOV 30H,#00H
LOOP:DPTR,#TAB
MOV A,30H
MOVC A,@A+DPTR
CALL DELAY
SETB P1.7
JB P1.7,FUNCTION
DEC 30H
MOV A,30H
CJNE A,#0FFH,NEXT1
MOV 30H,#3
NEXT1:SJMP LOOP
FUNCTION:INC 30H
MOV A,30H
CJNE A,04H,NEXT2
MOV 30H,#0
NEXT2:SJMP LOOP
INI8255:MOV P2,#80H
MOV R0,#03H
MOV A,#80H
MOVX @R0,A
RET
DELAY:MOV R7,#40
DEL1:MOV R6,#500
DEL2:DJNZ R6,DEL2
DJNZ R7,DEL1
RET
TAB:DB 03H,06H,0CH,09H
END