ORG 0000H
SJMP START
ORG 0003H
LJMP WARN
ORG 0030H
START:
SETB IT0
SETB EX0
SETB EA
MOV P1,#0EFH
MOV P3,#0FFH
MAIN:
JNB P3.3,RING
JNB P3.4,WK0
SJMP $
WK0 : MOV P1,#01111110B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK1 : MOV P1,#01111101B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK2 : MOV P1,#01111011B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK3 : MOV P1,#01110111B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK4: MOV P1,#01101111B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK5: MOV P1,#01011111B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
WK6: MOV P1,#00111111B
ACALL SWITCH2
ACALL SWITCH1
ACALL DELAY
AJMP WK0
SWITCH2:JNB P3.3,RING
RET
SWITCH1:JB P3.4,$
RET
DELAY : MOV R5,#20
DLY0: MOV R7,#100
DLY1: MOV R6,#98
DLY2: DJNZ R6,DLY2
DJNZ R7,DLY1
DJNZ R5,DLY0
RET
RING: SETB P1.7
ACALL DELAY
CPL P1.7
JNB P3.3,RING
RET
WARN:PUSH PSW
PUSH ACC
ACALL RING
POP ACC
POP PSW
RETI
END
DELAY : MOV R5,#20
DLY0: MOV R7,#100
DLY1: MOV R6,#98
DLY2: DJNZ R6,DLY2
DJNZ R7,DLY1
DJNZ R5,DLY0
RET
RING: SETB P1.7
ACALL DELAY
CPL P1.7
JNB P3.3,RING
RET
WARN:PUSH PSW
PUSH ACC
ACALL RING
POP ACC
POP PSW
RETI
END