;P1.0 = object detected, P1.1 no object detected P0.0 connected to the trigger pin of SRF05. Echo
;line reponse appears 700uS after the end of trigger pulse
AGAIN: MOV A, #0
MOV P0, A ;output port
SETB P0.0
ACAll DELAY_TWENTY
CLR P0.0 ;Trigger
MOV A, #0FFH
MOV P0, A ;input port
STAY: JNB P0.0, STAY
ACALL MONITOR
ACALL DELAY_FIFTY
SJMP AGAIN
;================================================
;=========DELAY_TWENTY=================================
DELAY_TWENTY: MOV TMOD, #01 ;(1)
MOV TL0, #0F1H ;(1) ;Will count up 14D, TOT 20
MOV TH0, #0FFH ;(1)
SETB TR0 ;(1)
AGAIN1: JNB TF0, AGAIN1
CLR TR0 ;(1)
CLR TF0 ;(1)
RET
;==============================================================
;======DELAY_FIFTY============================
DELAY_FIFTY: MOV TMOD, #01 ;(1)
MOV R5, #7
FIRE: MOV TL0, #0
MOV TH0, #0
SETB TR0 ;(1)
AGAIN2: JNB TF0, AGAIN2
CLR TR0 ;(1)
CLR TF0 ;(1)
DJNZ R5, FIRE
RET
;#0FCH ;(1)
;#04BH ;(1)
;============================================================
;=================Monitor=================
MONITOR: CLR C ;clear carry
MOV TMOD, #01 ;(1)
MOV TL0, #0H
MOV TH0, #0H
MOV A, #100 ;(1)
SETB TR0
REMAIN1: JB P0.0, REMAIN ;(1)
SETB P1.0
CLR P1.1
SJMP FINISH
REMAIN: MOV R5, TL0 ;(1)
;CJNE A, #32H, REMAIN1 ;(2)
NOP ;(1)
NOP ;(1)
SUBB A, R5 ;(1)
JNC REMAIN1 ;(2)
SETB P1.1
CLR P1.0
FINISH: CLR TR0
CLR TF0
RET