Documente Academic
Documente Profesional
Documente Cultură
/* Bibliotecas de funciones*/
#include <xc.h>
#define _XTAL_FREQ 20000000 // Usaremos rutinas de delay para el programa muestra.
/* Programa principal */
void main(void) // La función main en el uso con microcontroladores
{ // no acepta ni entrega argumentos.
TRISA = 1; // La terminal del puerto A que está asociada con AN0 es la terminal RA0, dentro
// del registro TRISA le asignamos el valor 1 para declararla como terminal de entrada.
ADCON1 = 0x0E; // Los bits 3 - 0 de éste registro se configuran para que sólo AN0 sea análoga y los
// otros 12 canales sean digitales, los bits 5 - 4 del mismo registro establecen el origen
// del voltaje de referencia y se selecciona interno, es decir, el mismo voltaje que
// alimenta al microcontrolador.
ADCON0 = 0;// Los bits 5 - 2 de éste registro nos permiten declarar cuál es el canal análogo que se
//activa y para nuestro caso, sólo se activa el canal 0.
ADCON2 = 0x9D; // En éste registro el bit 7 establece la justificación derecha, los bits 5 - 3
//determinan el tiempo de adquisición de 6TAD = 6(800ns) = 4.8µ que es superior a 2.45µs y
//los bits 2 - 0 establecen el reloj de conversión TAD = 16TOSC = 16 (1/FOSC)
// TAD=1/(FOSC?16)
while(ADCON0bits.GODONE); // Spooling, pues espera hasta que el bit GODONE sea cero