Codigo:
#include <16F876.h>
#device adc=10 // Conversión con 10 bits
//#device adc=8 // Conversión con 8 bits
// Si no se pone ningún device toma 8 bits
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT
#use delay (clock=4000000)
#include <LCD.c>
void main( void )
{
long valor;
// float const resoluc= 5.0/256.0; // Conversión es con 8 bits
float const resoluc= 5.0/1024.0; // Conversión es con 10 bits
float voltios;
setup_adc_ports ( ALL_ANALOG ); // Entrada analógica por RA0
setup_adc ( ADC_CLOCK_INTERNAL ); // Reloj interno para el ADC
set_adc_channel ( 0 ); // Canal 0 para convertir
lcd_init();
while ( 1 )
{
valor = read_adc();
lcd_gotoxy(1,1);
voltios= valor * resoluc;
printf ( lcd_putc, "%1.2f voltios ", voltios );
delay_ms(200); // Convierte cada 200ms
}
}