hola amigos tengo un problema con un programa que esta en lenguaje C con el pic 16f877, se trata de un voltimetro digital que se visualiza en una pantalla LCD, la verdad es que no entiendo muy bien el programa asi que queria saber si alguien me puede ayudar con las instrucciones, necesito saber que hace cada una de las instrucciones. se los agradeceria mucho ah y si tambien me pudieran decir en donde puedo encontrar el funcionamiento del codificador de analogo a digital que posee este pic, ayudenme por favor nose que hacer...!!!!
aca les dejo mi programa para que me ayuden....
aca les dejo mi programa para que me ayuden....
PHP:
#INCLUDE <C:\Archivos de programa\PICC\Devices\16F877A.H>
#DEVICE ADC=8 //SCONVERSION A 8 BITS
#FUSES XT,NOWDT,NOLVP,NOPROTECT
#USE fast_io(b)
#use delay(clock=4000000)
#byte portb=6
#byte portc=7
#use standard_io(D)
#use standard_io(B)
#INCLUDE <C:\Archivos de programa\PICC\Drivers\lcd.c>
void main(void)
{
long x;
long centena;
long decena;
long unidad;
int unidadout;
int decenaout;
int centenaout;
set_tris_b(0);
set_tris_c(255);
SETUP_ADC_PORTS(AN0_AN1_AN3);
SETUP_ADC(ADC_CLOCK_DIV_32);
do{
int x;
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SET_ADC_CHANNEL(0);
delay_ms(500);
x=read_adc();
delay_ms(500);
centena=x/100;
decena=(x-centena*100)/10;
unidad=(x-centena*100-decena*10);
if (!input(PIN_C0)) // inicio del envío de un byte
{
lcd_init();
lcd_putc("principal\n");
lcd_putc(centena+48);
lcd_putc(decena+48);
lcd_putc(unidad+48);
lcd_putc("V");
}
else
{
lcd_init();
lcd_putc("respaldo\n");
lcd_putc(centena+48);
lcd_putc(decena+48);
lcd_putc(unidad+48);
lcd_putc("V");
}
}while(TRUE);
}
Última edición por un moderador: