despues de mil años la tierra prometida.
#include <16F877A.h>
#use delay(clock=8000000)
#fuses NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOPROTECT,HS,NOWRT,NODEBUG
#use fast_io(A)
#use fast_io(B)
#use fast_io(C) /// con esta instruccion evitamos que
#use fast_io(D) /// se este configurando cada vez que usamos
#use fast_io(E) /// alguna instruccion de entrada o salida
#byte porta = 5
#byte portb = 6
#byte portc = 7 /// se definen direcciones de memoria
#byte portd = 8
#byte porte = 9
#bit porte0 = 0x09.0
int canal0=0;
int unidades=0;
int decenas=0;
int centenas=0;
void main ()
{
set_tris_b(0b00000000);
set_tris_c(0b00000000);
set_tris_d(0b00000000);
set_tris_e(0b11111111);
SETUP_ADC(ADC_CLOCK_INTERNAL); // declaramos que el reloj del adc sera
interno
setup_adc_ports(all_analog); // todos los canales analogicos habilitados
SET_ADC_CHANNEL(0); // seleccionamos canal 0
DISABLE_INTERRUPTS(global);
while(1)
{
canal0= READ_ADC(); // retardo para esperar que el adc termine
// conversion fabricante menciona que al
// menos 50 microsegundos
delay_ms(1);
centenas=canal0/100;
decenas=(canal0 - (centenas*100))/10;
unidades=(canal0 - (centenas*100) - (decenas*10));
portb=centenas;
portc=decenas;
portd=unidades;
delay_ms(100);
}
}
http://rapidshare.com/files/100399663/ADC-DISPLAYS.rar.html