Yo lo haría así:
Codigo:
#include <16F877A.h>
#device adc=10
#fuses XT, NOPROTECT, PUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock=4000000)
#include <LCD.c> //Fichero que pertenece a CCS, viene en la instalación
void main( void )
{
long valor;
float const resoluc= 5.0/1024.0;
float valorconescala,regimen=0.2443,offset=0.15;
setup_adc_ports ( ALL_ANALOG );
setup_adc ( ADC_CLOCK_INTERNAL );
set_adc_channel ( 0 );
lcd_init();
while ( 1 )
{
valor = read_adc();
lcd_gotoxy(1,1);
valorconescala= valor * regimen + offset;
printf ( lcd_putc, "valor=%lu", valor);
lcd_gotoxy(1,2);
printf ( lcd_putc, "escala=%2.5f", valorconescala );
delay_ms(200);
}
}
¡Comprobado y funcionando!
Un saludo