Está en la página 1de 31

Microcontroladores

Convertidor AD

010

001

000
A/D

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 2


Diagrama del CAD del PIC16f877
EL microcontrolador PIC6F87X posee un conversor A/D de 10bit de resolución y 8 canales

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 3


Registros asociados al convertidor AD
El módulo del CAD tiene 11 registros asociados. Estos registros son:

Registros de control y configuración:


• ADCON0
• ADCON1

Registros del resultado de la conversión:


• ADRESH
• ADRESL

Registros del puerto (Pines de entrada):


• TRISA RA0/AN0, RA1/AN1, RA2/AN2, RA3/AN3, RA5/AN4
• TRISE RE0/AN5, RE1/AN6, RE2/AN7

Registros de la interrupción (Manejo de interrupciones):


• PIR1, ADIF
• PIE1, ADIE
• INTON, GIE PEIE
Prof. Ing Yoel Pire
PIC16F877 – Convertidor A/D

Tiempo de Adquisición (TACQ)

𝑇𝐴𝑑𝑞𝑢𝑖𝑐𝑖𝑐𝑖ó𝑛 𝑜 𝑇𝑎𝑐𝑞 ≈ 𝟐𝟎𝝁𝒔

Prof. Ing Yoel


Pire
PIC16F877 – Convertidor A/D

Tiempo de conversión de cada bit (𝑻𝑨𝑫 ) 5

Seleccionable por Software.

𝑇𝐴𝑑𝑞𝑢𝑖𝑐𝑖𝑐𝑖ó𝑛 = 12 ∗ 𝑇𝐴𝐷
20𝜇𝑠 = 12 ∗ 𝑇𝐴𝐷
𝐓𝐀𝐃≥𝟏,𝟔𝛍𝐬

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 6


Registro ADCON0
ADCON0
ADCS1 ADCS0 CH2 CH1 CH0 GO/#DONE - ADON

<7,6> ADCS1:ADCS0
Selección de la frecuencia de reloj para el Convertidor A/D.
00 = 2 Tosc
01 = 8 Tosc
10 = 32 Tosc
11 = RC (Procede del oscilador RC interno)

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 7


Registro ADCON0
ADCON0
ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/#DONE - ADON

<5,3> CH2:CH0 Selección del canal de conversión

000 = Canal 0, (RA0/AN0)


001 = Canal 1, (RA1/AN1)
010 = Canal 2, (RA2/AN2)
011 = Canal 3, (RA3/AN3)
100 = Canal 4, (RA5/AN4)
101 = Canal 5, (RE0/AN5)
110 = Canal 6, (RE1/AN6)
111 = Canal 7, (RE2/AN7)

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 8


Registro ADCON0
ADCON0
ADCS1 ADCS0 CH2 CH1 CH0 GO/#DONE - ADON

Bit <2> GO/#DONE Bit de estado de la conversión A/D Si ADON=1

1 = La conversión A/D está en marcha (mientras está a 1 se


está realizando la conversión)

0 = La conversión ha finalizado. (el bit se pone a cero


automáticamente por hardware la conversión A/D finaliza)
el resultado de la conversión aparece en ADRESH:ADRESL

Bit <0> ADON Bit de encendido del convertidor A/D

1 = Módulo A/D encendido


0 = Módulo A/D apagado
Prof. Ing Yoel Pire
Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 9


Registro ADC0N1
ADCON1
ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0

Bit <7> ADFM: bit de selección del formato del resultado A/D

1 = Ajuste a la derecha
0 = Ajuste a la izquierda

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 10


Registro ADC0N1
ADCON1
ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0

bit <3-0> PCFG3:PCFG0 Configuración de las entradas al módulo A/D

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 11


Registro ADC0N1 del PIC16F877 y PIC16F877A
ADCON1 (PIC16F877)
ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0

ADCON1 (PIC16F877A)
ADFM ADCS2 - - PCFG3 PCFG2 PCFG1 PCFG0

Bit <6> ADCS2

ADCS2=0 00=2Tosc 01=8 Tosc 10=32 Tosc 11=RC

ADCS2=1 00=4 Tosc 01=16 Tosc 10=64 Tosc 11=RC

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 12


Diagrama del CAD del PIC16f877
EL microcontrolador PIC6F87X posee un conversor A/D de 10bit de resolución y 8 canales

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 13


Pasos para una conversión A/D
1. Configurar el módulo A/D. (ADCON1)
a) Definir entradas analógicas, tensión de referencia y la justificación (ADCON1)
b) Configurar puertos como entrada según sea el caso. (TRISA, TRISE)

CONFIGURAR_PUERTOS
BCF STATUS,RP1
BSF STATUS,RP0

MOVLW B'10001110’ ; CONF CANAL AN0 COMO ANALOGICO, JUSTIFICADO A


MOVWF ADCON1 ; LA DERECHA (ADFM=1)
MOVLW B'00111111’
MOVWF TRISA
MOVLW B'00000111'
MOVWF TRISE
BCF STATUS,RP0
RETURN

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 14


Pasos para una conversión A/D
2. Configurar el módulo A/D. (ADCON0)
a) Seleccionar el reloj de la conversión. (ADCON0)
b) Seleccionar el canal de la conversión. (ADCON0)
c) Encender el módulo A/D. (ADCON0)

CONFIGURAR_CAD
MOVLW B'10000001’ ; 20MHZ
MOVWF ADCON0
CALL RETARDO_20US
RETURN

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 15


Pasos para una conversión A/D
3. Configurar la interrupción del convertidor A/D (opcional)
a) Habilitar la interrupción del convertidor A/D. (PIE1).
b) Habilitar las interrupciones de los periféricos. (INTCON).
c) Bajar el flag ADIF. (PIR1).
d) Habilitar la máscara global de interrupciones. (INTCON)

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 16


Pasos para una conversión A/D
4. Comenzar la conversión (por poleo)
a) Poner a “1” el bit GO/DONE. (ADCON0) No activar este bit a la vez que se enciende el convertidor A/D
b) Controlando cuándo el bit GO/DONE se pone a “0”.
c) O Esperar que se produzca la interrupción del convertidor.

INICIAR_CAD
BSF ADCON0,GO
BTFSC ADCON0,GO
GOTO $-1
RETURN

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 17


Pasos para una conversión A/D
5. Leer el resultado de la conversión.
a) Disponible en los registros ADRESH:ADRESL.
b) Bajar el flag ADIF si se están usando interrupciones.

RESULTADO_CAD
BSF STATUS,RP0
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF RESULTADO_L
MOVF ADRESH,W
MOVWF RESULTADO_H
RETURN

7. Llevar a cabo la siguiente conversión.


a) Volver al paso 1 ó 3, según convenga.

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D
Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 18


Resolución
𝑉𝑟𝑒𝑓+ − 𝑉𝑟𝑒𝑓−
𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 =
210

Si el voltaje de referencia es la fuente:

5𝑉 − 0𝑉
𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 = = 4,88𝑥10−3 𝑉
1024

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 19


Tratamiento de la señal

1023 1023

CAD CAD=?

0°C °C=? 120°C 0°C SP 120°C


0 0

𝐶𝐴𝐷 ∗ 120°𝐶 𝑆𝑃 ∗ 1023


°𝐶 = 𝐶𝐴𝐷 =
1023 120°𝐶
Por ejemplo: para 60°C CAD=?

60∗1023
𝐶𝐴𝐷 = CAD=511 Prof. Ing Yoel Pire
120°𝐶
Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 20


Acondicionamiento de una señal de corriente típica de 4mA a 20mA.

Microcontrolador

Como ventaja, es mas estables a mayores distancia y mas imune a


los ruidos.

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 21


Acondicionamiento de una señal de corriente típica de 4mA a 20mA.

Microcontrolador

Calculo de la resistencia R=?

Asumir para 20mA → 𝑉𝑟𝑒𝑓 + = 5𝑣

5𝑣
Por ley de ohn 𝑅 = 20𝑚𝐴 → R=250Ω

Calculo del 𝑉𝑟𝑒𝑓 − =?

Se tiene R=250Ω y 4mA

Por ley de ohn 𝑉𝑟𝑒𝑓 − = 4𝑚𝐴 ∗ 250Ω → 𝑉𝑟𝑒𝑓 − = 1𝑣

Prof. Ing Yoel Pire


Microcontroladores – Tema 11

Convertidor analógico digital (CAD) 22


Acondicionamiento de una señal de corriente típica de 4mA a 20mA.

Microcontrolador

Calculo de la resistencia R=? 120°C


Asumir para 20mA → 𝑉𝑟𝑒𝑓 + = 5𝑣

5𝑣
Por ley de ohn 𝑅 = 20𝑚𝐴 → R=250Ω

Calculo del 𝑉𝑟𝑒𝑓 − =? 0°C 1v 5v


Se tiene R=250Ω y 4mA y2 − 𝑦1 = 𝑚 𝑥2 − 𝑥1
Por ley de ohn 𝑉𝑟𝑒𝑓 − = 4𝑚𝐴 ∗ 250Ω → 𝑉𝑟𝑒𝑓 − = 1𝑣
Voltaje de referencia positivo y
negativo son 5v y 1v Prof. Ing Yoel Pire
PIC16F877 – Convertidor A/D

23
Ejercicio: Se tiene un transmisor de temperatura de un rango de 0°C
a 120°C. dicho transmisor se conecta mediante dos hilos (Conexión a
dos hilos) y se comunica con una señal de corriente típica de 4mA a
20mA.

PIC16f877A
a) Seleccione la resistencia mas adecuada para la conversión
analógica para el PIC16F877A con la mayor precisión.

b) Diseñe un sistema de control de temperatura on/off que encienda


en 40°C y apague en 45°C

c) Configure todos los registros y selección de puertos analógico


para que el micro realice la conversión. Utilice instrucciones en
código assembler.
Prof. Ing Yoel Pire
PIC16F877 – Convertidor A/D

Solución: Parte a) Seleccione la resistencia mas adecuada para la 24


conversión analógica para el PIC16F877A con la mayor precisión.

se tiene que: si 4mA >> 0°C y 20mA >> 120°C


Para seleccionar la resistencia hacemos que: 120°C >> 5V
Por ley de ohm: 5V=20mA*R >> R= 250 ohm

Se selecciona una resistencia de 250 ohm

Luego: V=4mA*250 ohm >> V=1V


Por lo tanto: 4mA >> 0°C >> 1V 20mA >> 120°C >> 5V

Se selecciona una resolución de 10bit con los voltajes de referencia


de 5v y de 1V
Resolución = (5V-1V)/(1024-1) = 3,91mA

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D

Solución: Parte b) Diseñe un sistema de control de temperatura 25


on/off que encienda en 40°C y apague en 45°C

120°C
y2 − 𝑦1 = 𝑚 𝑥2 − 𝑥1
120°C − 0°𝐶 = 𝑚 5𝑉 − 1𝑉

120°C − 0°𝐶
𝑚= => 𝑚 = 30 °𝐶 𝑉
5𝑉 − 1𝑉

0°C
1v 5v

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D

Solución: Parte b) Diseñe un sistema de control de temperatura 26


on/off que encienda en 40°C y apague en 45°C

120°C
y2 − 𝑦1 = 𝑚 𝑥2 − 𝑥1

120°C − 40°𝐶 = 𝑚 5𝑉 − 𝑠𝑝1


45°C
120°C − 40°𝐶
sp1 = 5V − => 𝑠𝑝1 = 2,33𝑣
40°C 𝐶
30 ° 𝑉

0°C 120°C − 45°𝐶 = 𝑚 5𝑉 − 𝑠𝑝1


1v sp1 sp2 5v
120°C − 45°𝐶
sp2 = 5V − => 𝑠𝑝2 = 2,5𝑣
𝐶
30 ° 𝑉
Prof. Ing Yoel Pire
PIC16F877 – Convertidor A/D

Solución: Parte b) Diseñe un sistema de control de temperatura 27


on/off que encienda en 40°C y apague en 45°C

1023
y2 − 𝑦1 = 𝑚 𝑥2 − 𝑥1
1023 − 0 = 𝑚 5𝑉 − 1𝑉
B
1023 − 0
𝑚= => 𝑚 = 255,75
5𝑉 − 1𝑉
A

0
1 2,33 2,5 5 V

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D

Solución: Parte b) Diseñe un sistema de control de temperatura 28


on/off que encienda en 40°C y apague en 45°C

1023
y2 − 𝑦1 = 𝑚 𝑥2 − 𝑥1

1023 − 𝐴 = 𝑚 5𝑉 − 2,33𝑉
B
A = 1023 − 255,75 5𝑉 − 2,33𝑉 => 𝐴 = 340,1
A

0
1 2,33 2,5 5 V 1023 − 𝐵 = 𝑚 5𝑉 − 2,5𝑉

B = 1023 − 255,75 5𝑉 − 2,5𝑉 => 𝐵 = 383,6

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D

Solución: Parte c) Configure todos los registros y selección de 29


puertos analógico para que el micro realice la conversión. Utilice
instrucciones en código assembler.

Con 40°C >> 340 = 01 01010100


= 84

Con 45°C >> 384 = 01 10000000


= 128

Justificado a la derecha ADFM=1


Voltaje de referencia 1V y 5V

Prof. Ing Yoel Pire


PIC16F877 – Convertidor A/D

Solución: Parte c) Configure todos los registros y selección de 30


puertos analógico para que el micro realice la conversión. Utilice
instrucciones en código assembler.

INICIO
CALL CONFIGURAR_PUERTOS
CALL CONFIGURAR_CAD MOVLW .128
. SUBWF RESULTADO_L,W
. BTFSC STATUS,Z
. GOTO OFF
GOTO PROGRAMA GOTO convertir

PROGRAMA ON BSF PORT_


convertir CALL INICIAR_CAD GOTO convertir
CALL RESULTADO_CAD
OFF BCF PORT_
MOVLW .1 GOTO convertir
SUBWF RESULTADO_H,W
BTFSS STATUS,Z END
GOTO convertir

MOVLW .84
SUBWF RESULTADO_L,W
BTFSC STATUS,Z
GOTO ON
Prof. Ing Yoel Pire
PIC16F877 – Convertidor A/D

BIBLIOGRAFÍA

 Data Sheet: PIC16F87X Microcontrollers.pdf

 Libro: 1ra parte Microcontroladores PIC - Diseño Práctico de


Aplicaciones.pdf

 Libro: 2da Parte Microcontroladores PIC, Diseño Práctico de


Aplicaciones 16F87x.pdf

 Libro: Fundamentos y Aplicaciones con PIC Valdez Pallas.pdf

Prof. Ing Yoel


Pire

También podría gustarte