DISPARO VAR PORTA.2 'PIN USADO PARA EL PULSO DE DISPARO
ECO VAR PORTA.3 'PIN USADO PARA EL ECO
MEDIDA VAR WORD 'VARIABLE de 16 bits PARA ALMACENAR LA MEDIDA
'las pausas estan acortadas para reducir el tiempo de simulacion
Define LCD_DREG PORTB 'bit de datos del LCD empezando
Define LCD_DBIT 0 'por B.0 ,B.1, B.2 y B.3
Define LCD_RSREG PORTB 'bit de registro del LCD conectar
Define LCD_RSBIT 5 'en el puerto B.5
Define LCD_EREG PORTB 'bit de Enable conectar en el
Define LCD_EBIT 4 '"puerto B.4
proceso:
pause 1 'pausa inicial para estabilizar el circuito (50ms)
disparo=0 'Inicializa el valor de DISPARO
PULSOUT DISPARO,1 'Manda un pùlso de disparo para empezar a medir
gosub leer_eco 'Llamada a funcion para leer el ancho del eco recibido
goto proceso 'Vuelve e iniciar cuando se ha leido el eco
leer_eco: 'Funcion de leer el eco
select case eco 'si hay eco no manda pulso de disparo
case 1 'Si no nay eco
GOTO PROCESO 'Vuelve a iniciar el proceso
case 0 'Si hay eco
PULSIN ECO,1,MEDIDA 'Lee el acho del pulso de eco y lo guarda en medida
medida= medida/54 'para convertir en cm
Lcdout $fe, 1, "DISTANCIA:", #medida, " cm" 'Muestra el valor medido en el LCD
if medida <10 then
lcdout $FE, $C0
Lcdout "Cuidado" 'Aviso 'Aviso
endif
GOTO PROCESO 'Vuelve a lanzar el proceso
end select
end