#include <16f877a.h>
#device adc=10
#fuses xt,nowdt
#use delay(clock=4000000)
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
#define LCD_RS PIN_B2
#define LCD_E PIN_B3
#include <lcd1.c>
float r,v;
void main(){
lcd_init(); //Inicializa la pantalla lcd
setup_adc_ports(an0);//Selecciona el puerto a realizar la conversion
setup_adc(adc_clock_internal);//Selecciona el reloj de conversion
set_adc_channel(0);//Selecciona el canal de conversion
inicio:
r=read_adc();//Conversion A/D la almacena en r en un binario de 0-1024
v=(1/(r/1024))*4.5;//Convierte a cm
lcd_gotoxy(1,1);//Posiciona el cursor en la posicion 1,1 de la pantalla lcd
printf(lcd_putc,"dist. = %.2f cm,", v);//Imprime
delay_ms(50);//Demora
if(v==14){
output_high(pin_b0);
}
goto inicio;
}