Yo he hecho una pequeña funcion para esto:
unsigned char read_adc(void)
{
char buf[15];
int i=0;
int j=0;
int cont=0;
if( ADIF==1){ //An A/D conversion completed (must be cleared in software)
palabra_low= ADRESL;
palabra_high=ADRESH;
ADIF=0;
}
for(i=0,i=7,i++)
{
if(palabra_low & 2^i)
buf[i] = '1';
else
buf[i] = '0';
cont++;
if(cont==8)
j=8;
}
for(j=8,j=15,j++)
{
if(palabra_high & 2^j)
buf[j] = '1';
else
buf[j] = '0';
}
return buf;
}
No se si esta bien, aun no me he parado a mirarla en question pero la idea ahi la tienes. Un saludo