A continuación se muestra un código de prueba básico para el uso del ADC sobre el PIC16F877A:
#include <system.h>
#pragma 0x2f09
void InitADC(void)
{
adcon1 = 0b00001110; // justificacion a la izquierda, 1 canal de referencia
adcon0 = 0b10000001; // FOSC/32, channel=0, ADON=1
}
unsigned char SampleADC(void)
{
set_bit(adcon0,GO); // Iniciar conversion, se pone en uno (con el set_bit) el bit del registro para iniciar conversion
while(test_bit(adcon0,GO)); //se espera un cambio en el bit de estado de conversion para saber cuando la conversion se ha hecho exitosamente
return(adresh); // se retorna el resultado de conversion (los 8 bits mas altos)
}
void main()
{
trisb=0x00; //declaracion del puerto b como salida
trisa=0xFF; //declaracion del puerto a como entrada
InitADC(); //se inicializa el ADC
while(1)
{
delay_ms(100);
portb=SampleADC(); //se saca por el puerto b el valor digital de la señal analoga que entra al ADC, es decir, se muestra la conversion de analogo a digital
}
}
No hay comentarios:
Publicar un comentario