12C508 ultrasonic range finder program

Test - lowercase jpg
Kaixin micro test
Test probe P100-M3
Filter 18.432M

12C508 Ultrasonic Range Finder Program
;Internal Oscillator, WDT enabled

Include

Loop equ 10h
dlyCTR equ 11h
Tone_cnt equ 12h; reflection period count
Period equ 13h; TMR0 overflow time


Org 0
MOVwf OSCCAL
MOVlw '10001001'
Option; 1: 2WDTON
MOVlw '00001101'
tris GPIO
MOVwf 0
bcf GPIO, 1; output pulse

;============================================
Main clrwdt
btfss GPIO, 0; wait for the trigger signal
goto Main
M2 clrwdt
btfsc GPIO, 0
goto M2

Call burst
bsf GPIO, 1; start output timing pulse
m1 btfsc GPIO, 2
goto m1
bcf GPIO, 1; end output timing pulse
goto Main

;============================================
Burst clr loop
MOVlw 8
MOVwf loop

burst1 MOVlw '00010000'
MOVwf GPIO

MOVlw 3
MOVwf dlyctr
Burst2 decfsz dlyctr, f
goto Burst2; 12uS

MOVlw '00010100'
MOVwf GPIO
MOVlw 2; (2*3inst*1uS) - 1uS = 5uS
MOVwf dlyctr; 5uS + (8*1uS) = 13uS
Burst3 decfsz dlyctr, f
goto Burst3

Nop
Decfsz loop, f
goto burst1
MOVlw 0x00
MOVwf GPIO
Retlw 0

;=================================
tone clr TMR0
t1 btfsc GPIO, 2
goto t1
MOVfw TMR0
clrf TMR0
MOVwf Period

MOVlw 21; if (Period > 22 && Period < 30)
Subwf Period, w
btfss STATUS, C
goto t2
MOVlw 30
Subwf Period, f
btfsc STATUS, C
goto t2
Decfsz tone_cnt, f; 25uS period OK, so
goto t1; if not yet 3 of them, keep looking
Retlw 0; else - success - return

t2 MOVlw 3
MOVwf tone_cnt
goto t1

;==============================================
End

Capacitor For Power Transmission And Transformation

Capacitor for power transmission and transformation

New Parallel Capacitor 100Kvar,Capacitor Banks,High Voltage Capacitor Banks,Parallel Capacitor 200kar

YANGZHOU POSITIONING TECH CO., LTD. , https://www.yzpst.com