程式注解及电路图请稍后
程式註解及電路圖請稍後...
SNDCNT EQU 30H SNDOK EQU 31H ORG 00H
START:
MOV SNDCNT,#0 MOV SNDOK,#0 SETB P2.4
CALL DELAY2
CLR P2.4
MOV R5,#1
CALL DELAY
MOV A,SNDOK
CJNE A,#0,STOP JB P1.0,LEFT
JB P1.1,RIGHT
MOV P2,#0
JMP START
STOP:
MOV P2,#00010000B JMP START
LEFT:
JB P1.1,MID
MOV P2,#00011000B JMP START
MID:
MOV P2,#00011010B JMP START
RIGHT:
MOV P2,#00010010B JMP START
;---------------------------------
;delay time=r5*(20mS) ;---------------------------------
DELAY:
MOV R6,#255
DEL: MOV R7,#100 WW: JNB P1.4,XX XX2: DJNZ R7,WW DJNZ R6,DEL
DJNZ R5,DELAY RET
XX:
INC SNDCNT
MOV A,SNDCNT CJNE A,#50,XX2 CLR C
MOV A,#1 ;MORE BIG MORE SHORT
SUBB A,R6
JC XX3
RET
XX3:
MOV SNDOK,#1 RET
;----------------------------- DELAY2:
MOV R5,#100
DEL1: MOV R6,#100 DEL2: MOV R7,#1 DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2
DJNZ R5,DEL1
RET
END