IE2009 - Programación de Microcontroladores: Pic16F887 - Módulo Convertidor Análogo Digital
IE2009 - Programación de Microcontroladores: Pic16F887 - Módulo Convertidor Análogo Digital
Microcontroladores
PIC16F887 – MÓDULO CONVERTIDOR ANÁLOGO DIGITAL
Convertidor ADC
Módulo analógico (ADC)
El convertidor genera un resultado binario de 10 bits utilizando el
método de aproximaciones sucesivas y almacena los resultados de
conversión en los registros ADC (ADRESL y ADRESH).
Dispone de 14 entradas analógicas
El convertidor convierte una señal de entrada analógica en un número
binario de 10 bits
10 bits
ADRESH:ADRESL
Módulo ADC
La resolución mínima o calidad de conversión se puede ajustar a
diferentes necesidades al seleccionar voltajes de referencia Vref- y
Vref+.
Convertidor ADC
El funcionamiento del convertidor A/D está bajo el control de los bits de
cuatro registros:
◦ ADRESH registro alto del resultado de la conversión A/D.
◦ ADRESL registro bajo del resultado de la conversión A/D.
◦ ADCON0 registro de control 0
◦ ADCON1 registro de control 1
TRIS = 1
;entrada
ANSEL = 1
; analógica
2. Selección de canal
Seleccionamos el canal donde deseamos realizar la conversión, para
esto los bits CHS del registro ADCON0<5:2> determinan cual canal
estará conectado al circuito de “sample and hold”.
Cuando cambiemos de canales, el módulo requiere un delay antes de
empezar la siguiente conversión.
ADCON0
CHS <5:2>
CALL DELAY
3. Selección del voltaje de
referencia
Seleccionamos el voltaje de referencia que se utilizara para realizar la
converisión, para esto debemos de configurar los bits VCFG del registro
ADCON1.
4. Fuente de reloj para realizar la
conversión
La fuente de reloj es seleccionable mediante software a través de los
bits ADCS del registro ADCON0<7:6>.
Hay 4 posibles fuentes de reloj:
◦ 00 - Fosc/2
◦ 01 - Fosc/8
◦ 10 - Fosc/32
◦ 11 - FRC (oscilador interno dedicado)
INTCON:
PIE1: ADIE PIR1: ADIF
PEIE
6. Formato del Resultado
El resultado obtenido después de convertir un valor analógico en digital
es un número de 10 bits que se almacenará en los registros ADRESH y
ADRESL.
Hay dos formas de manejar el resultado
◦ Justificación a la izquierda (más utilizado)
◦ Justificación a la derecha.
GO/DONE = 0
ADCON0 ADCON0 ADIF = 1
ADON <0> = 1 GO/DONE = 1 ADRESH:ADESL = RESULT
Operación ADC
Si una conversión debe ser terminada antes de tiempo, se puede parar
mediante el bit GO/DONE mediante software.
En este caso los registros ADRESH:ADRESL no serán actualizados.
Convertidor ADC
Ejemplo de configuración
1. Configurar puerto:
◦ Configurar pin como análogo
◦ Deshabilitar la salida del pin (TRIS)