Proba asi
Código:
#include <16f877a.h>
#fuses hs,nowdt,noput,nolvp
#device adc=8
#use delay(clock=20M)
#define LCD_DATA_PORT getenv("SFR:PORTB")
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#include <lcd.c>
int8 q;
double p=0;
//****************** defino funcion ADC ***************
void modulo_adc();
//***************** programa principal ***************
void main(){
SETUP_ADC_PORTS(AN1); // defino el pin analogo a usar
setup_adc(ADC_CLOCK_INTERNAL); // define el tipo de clock a usar
lcd_init(); // inicializo el lcd
while(true){
modulo_adc();
lcd_gotoxy(4,1);
printf(lcd_putc,"VOLTS:%1.3f",p);
}
}
//*********** funcion ADC****************
void modulo_adc()
{ set_adc_channel(1);
delay_us(20); // tiempo de conversion
q= read_adc(); // lectura del valor
p=50.0*q/127.5; // conversion adc
}
Última edición por un moderador: