SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
(c) Domingo Llorente 2010 1
EL módulo conversor A/D
(c) Domingo Llorente 2010 2
Características del conversor A/D
Ocho entradas de señal analógica. (5 para el 16F876x)
Resolución de la conversión de 10 bits. (0-1024)
Distintas fuentes de tensión de referencia seleccionadas por software.
Capacidad para operar en el modo Sleep.
Los registros asociados al módulo son:
• PORTA,TRISA,PORTE y TRISE: Definición de pines de entrada
• INTCON,PIE1 y PIR1: Manejo de interrupciones
• ADCON0,ADCON1,ADRESH y ADRESL: Control del conversor
(c) Domingo Llorente 2010 3
Registros asociados al conversor A/D (I)
El registro ADCON0 sirve para:
a) Seleccionar la señal de reloj del conversor, en funcion de Fosc
Nota: Fosc = Frecuencia del oscilador. (*) Dato del datasheet de Microchip para el pic 16F877x
El tiempo empleado en la
Conversion viene dado por
la expresion:
TACQ= TAMP+TC+TCOFF
Tiempo empleado en la
conversión ~= 20us
(*)
(c) Domingo Llorente 2010 4
Registros asociados al conversor A/D (II)
b) Seleccionar el canal analógico para realizar la conversión
c) Iniciar/parar la conversión
d) Encender/Apagar el conversor
b
c
d
(c) Domingo Llorente 2010 5
Registros asociados al conversor A/D (III)
El registro ADCON1 sirve para:
a) Seleccionar la justificación del resultado de la conversión.
ADFM = 1 : Los seis bits más significativos del registro ADRESH se leen como ‘0’.
ADFM = 0 : Los seis bits menos significativos del registro ADRESL le leen como ‘0’
(c) Domingo Llorente 2010 6
Registros asociados al conversor A/D (IV)
b) Configurar las entradas analógicas
(c) Domingo Llorente 2010 7
Interrupción del conversor (I)
Para habilitar la interrupción del conversor hay que:
a) Poner a uno los bits GIE y PEIE del registro INTCON
(c) Domingo Llorente 2010 8
Interrupción del conversor (II)
b) Poner a uno el bit ADIE del registro PIE1
c) Cada vez que se finalice una conversión se pondrá a uno la
bandera ADIF del registro PIR1.
(c) Domingo Llorente 2010 9
Conexión de las entradas analógicas en la
placa de ampliación
Para usar la entrada analógica de RA0 hay que poner el puente JP9 en pos. ANL0.
Para usar la entrada analógica de RA3 hay que poner el puente JP8 en pos. ANL3.
ANL0
ANL3
JP8 JP9
(c) Domingo Llorente 2010 10
Configuración del conversor en CCS (I)
Para configurar la entrada del conversor se utilizan la función:
setup_adc_ports( VALOR );
Donde VALOR puede ser:
NO_ANALOG, Ninguna entrada analógica
ALL_ANALOGS, Todas las entradas analógicas
AN0, Configura RA0 como única entrada analógica
AN0_AN1_AN3, Configura RA0, RA1 y RA3 como entradas analógicas
Para fijar la señal de reloj utilizada en la conversión se utiliza:
setup_adc(ADC_CLOCK_INTERNAL); // Reloj interno para la conv.
Otros valores posibles son:
ADC_OFF, Para parar el conversor
ADC_CLOCK_DIV_32, Utiliza un divisor por 32 de la Fosc.
Nota: La lista completa de valores se puede consultar en el archivo: 16F877A.h
(c) Domingo Llorente 2010 11
Configuración del conversor en CCS (II)
Para leer el valor analógico hay seguir los siguientes pasos:
1º) Fijar el canal a leer:
set_adc_channel(0); // Canal AN0 seleccionado
2º) Esperar, al menos 20us:
delay_us(20); // Retardo para asegurar la conversión
3º) Guardar el valor leído en una variable de 16 bits:
valor_leido=read_adc();
Adicionalmente, si queremos pasar a voltios la lectura obtenida:
voltios=5.0*valor_leido/1024.0;
Nota: No olvidar declarar las variables: int16 valor_leido; float voltios;
(c) Domingo Llorente 2010 12
Ejemplo de programa
Diseñar un programa que esté, constantemente leyendo la entrada analógica ANL0 y
mostrando en el LCD de la placa el valor leído y su valor en voltios.
(c) Domingo Llorente 2010 13
Solución en CCS (I)
Comenzamos utilizando el
asistente “PIC Wizard”
Luego creamos la carpeta para
nuestro proyecto y damos un
nombre al archivo con extensión .pjt
(c) Domingo Llorente 2010 14
Solución en CCS (II)
Elegir:
Pic: PIC17F877A
Frecuencia del oscilador: 4Mhz
Fuses: Crystal osc <=4Mhz
Memoria de programa: No protegida
(c) Domingo Llorente 2010 15
Solución en CCS (III)
En la pestaña de “Analog” configurar:
• Resolución: 1024 (10bits).
• Fuente de reloj para
la conversión: Internal
• La entrada analógica: A0
(c) Domingo Llorente 2010 16
Solución en CCS (IV)
En la pestaña “Code” podemos ver
el código que se añadirá en nuestro
programa.
(c) Domingo Llorente 2010 17
Solución en CCS (V)
El compilador nos genera la siguiente plantilla.
(c) Domingo Llorente 2010 18
Solución:
(c) Domingo Llorente 2010 19
Resumen
Para realizar un programa con la interrupción externa habilitada:
1º.- Antes de la función main(); declarar una varialbe de 16bits.
int16 valor_leido;
2º.- En la función main() configurar el conversor:
setup_adc_ports( AN0 );
setup_adc(ADC_CLOCK_INTERNAL);
3º.- Seleccionar la entrada y hacer la lectura:
set_adc_channel(0); // Canal AN0 seleccionado
delay_us(20); // Retardo para asegurar la conversión
valor_leido=read_adc(); // Lectura del conversor

Más contenido relacionado

La actualidad más candente

Laboratorio de Microcomputadoras - Práctica 02
 Laboratorio de Microcomputadoras - Práctica 02 Laboratorio de Microcomputadoras - Práctica 02
Laboratorio de Microcomputadoras - Práctica 02Cristian Ortiz Gómez
 
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009Jair BG
 
Micc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_solMicc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_solJair BG
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009Jair BG
 
Micp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucionMicp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucionJair BG
 
Parcial t1 2011 sol
Parcial t1 2011 solParcial t1 2011 sol
Parcial t1 2011 solJair BG
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...Victor Asanza
 
Tercer Laboratorio - Sistemas Digitales I
Tercer Laboratorio - Sistemas Digitales ITercer Laboratorio - Sistemas Digitales I
Tercer Laboratorio - Sistemas Digitales IAndy Juan Sarango Veliz
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...Victor Asanza
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 solJair BG
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 solucJair BG
 
Parcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 solParcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 solJair BG
 
Micc mej sept16_2010_solucion
Micc mej sept16_2010_solucionMicc mej sept16_2010_solucion
Micc mej sept16_2010_solucionJair BG
 
Mej feb17 2011_solucion
Mej feb17 2011_solucionMej feb17 2011_solucion
Mej feb17 2011_solucionJair BG
 
Parcial 2 tdic10_2010
Parcial 2 tdic10_2010Parcial 2 tdic10_2010
Parcial 2 tdic10_2010Jair BG
 
Laboratorio de Microcomputadoras - Práctica 01
Laboratorio de Microcomputadoras - Práctica 01Laboratorio de Microcomputadoras - Práctica 01
Laboratorio de Microcomputadoras - Práctica 01Cristian Ortiz Gómez
 
Primer Laboratorio - Sistemas Digitales I
Primer Laboratorio - Sistemas Digitales IPrimer Laboratorio - Sistemas Digitales I
Primer Laboratorio - Sistemas Digitales IAndy Juan Sarango Veliz
 

La actualidad más candente (18)

Laboratorio de Microcomputadoras - Práctica 02
 Laboratorio de Microcomputadoras - Práctica 02 Laboratorio de Microcomputadoras - Práctica 02
Laboratorio de Microcomputadoras - Práctica 02
 
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009
 
Micc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_solMicc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_sol
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
 
Micp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucionMicp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucion
 
Parcial t1 2011 sol
Parcial t1 2011 solParcial t1 2011 sol
Parcial t1 2011 sol
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 2 RESUELTA 2do PARCIAL (2019 2do ...
 
Tercer Laboratorio - Sistemas Digitales I
Tercer Laboratorio - Sistemas Digitales ITercer Laboratorio - Sistemas Digitales I
Tercer Laboratorio - Sistemas Digitales I
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 sol
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
Parcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 solParcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 sol
 
Micc mej sept16_2010_solucion
Micc mej sept16_2010_solucionMicc mej sept16_2010_solucion
Micc mej sept16_2010_solucion
 
Mej feb17 2011_solucion
Mej feb17 2011_solucionMej feb17 2011_solucion
Mej feb17 2011_solucion
 
Parcial 2 tdic10_2010
Parcial 2 tdic10_2010Parcial 2 tdic10_2010
Parcial 2 tdic10_2010
 
Laboratorio de Microcomputadoras - Práctica 01
Laboratorio de Microcomputadoras - Práctica 01Laboratorio de Microcomputadoras - Práctica 01
Laboratorio de Microcomputadoras - Práctica 01
 
Primer Laboratorio - Sistemas Digitales I
Primer Laboratorio - Sistemas Digitales IPrimer Laboratorio - Sistemas Digitales I
Primer Laboratorio - Sistemas Digitales I
 

Similar a El conversor adc

Micc final feb04_2010_soluc
Micc final feb04_2010_solucMicc final feb04_2010_soluc
Micc final feb04_2010_solucJair BG
 
Digitalio config 16f887a_886
Digitalio config 16f887a_886Digitalio config 16f887a_886
Digitalio config 16f887a_886luisvargasquinto
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)Victor Asanza
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Franz Amaya
 
Micc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_solMicc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_solJair BG
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)Victor Asanza
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553RoxanneLamas2
 
Laboratorio de convertidores Analógico a digital.docx
Laboratorio de convertidores Analógico a digital.docxLaboratorio de convertidores Analógico a digital.docx
Laboratorio de convertidores Analógico a digital.docxJesús Tarín
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Hamiltonn Casallas
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 solucJair BG
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...Victor Asanza
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontroladorJuan Gamboa P
 
28812521 Practica1 1
28812521 Practica1 128812521 Practica1 1
28812521 Practica1 1carlos
 

Similar a El conversor adc (20)

Micc final feb04_2010_soluc
Micc final feb04_2010_solucMicc final feb04_2010_soluc
Micc final feb04_2010_soluc
 
Conversor ADC
Conversor ADCConversor ADC
Conversor ADC
 
Digitalio config 16f887a_886
Digitalio config 16f887a_886Digitalio config 16f887a_886
Digitalio config 16f887a_886
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
Compilador CCS.ppt
Compilador CCS.pptCompilador CCS.ppt
Compilador CCS.ppt
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
 
Micc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_solMicc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_sol
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
 
Laboratorio de convertidores Analógico a digital.docx
Laboratorio de convertidores Analógico a digital.docxLaboratorio de convertidores Analógico a digital.docx
Laboratorio de convertidores Analógico a digital.docx
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Tarea final
Tarea finalTarea final
Tarea final
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN A RESUELTA 1er PARCIAL (2019 2do ...
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontrolador
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
28812521 Practica1 1
28812521 Practica1 128812521 Practica1 1
28812521 Practica1 1
 

El conversor adc

  • 1. (c) Domingo Llorente 2010 1 EL módulo conversor A/D
  • 2. (c) Domingo Llorente 2010 2 Características del conversor A/D Ocho entradas de señal analógica. (5 para el 16F876x) Resolución de la conversión de 10 bits. (0-1024) Distintas fuentes de tensión de referencia seleccionadas por software. Capacidad para operar en el modo Sleep. Los registros asociados al módulo son: • PORTA,TRISA,PORTE y TRISE: Definición de pines de entrada • INTCON,PIE1 y PIR1: Manejo de interrupciones • ADCON0,ADCON1,ADRESH y ADRESL: Control del conversor
  • 3. (c) Domingo Llorente 2010 3 Registros asociados al conversor A/D (I) El registro ADCON0 sirve para: a) Seleccionar la señal de reloj del conversor, en funcion de Fosc Nota: Fosc = Frecuencia del oscilador. (*) Dato del datasheet de Microchip para el pic 16F877x El tiempo empleado en la Conversion viene dado por la expresion: TACQ= TAMP+TC+TCOFF Tiempo empleado en la conversión ~= 20us (*)
  • 4. (c) Domingo Llorente 2010 4 Registros asociados al conversor A/D (II) b) Seleccionar el canal analógico para realizar la conversión c) Iniciar/parar la conversión d) Encender/Apagar el conversor b c d
  • 5. (c) Domingo Llorente 2010 5 Registros asociados al conversor A/D (III) El registro ADCON1 sirve para: a) Seleccionar la justificación del resultado de la conversión. ADFM = 1 : Los seis bits más significativos del registro ADRESH se leen como ‘0’. ADFM = 0 : Los seis bits menos significativos del registro ADRESL le leen como ‘0’
  • 6. (c) Domingo Llorente 2010 6 Registros asociados al conversor A/D (IV) b) Configurar las entradas analógicas
  • 7. (c) Domingo Llorente 2010 7 Interrupción del conversor (I) Para habilitar la interrupción del conversor hay que: a) Poner a uno los bits GIE y PEIE del registro INTCON
  • 8. (c) Domingo Llorente 2010 8 Interrupción del conversor (II) b) Poner a uno el bit ADIE del registro PIE1 c) Cada vez que se finalice una conversión se pondrá a uno la bandera ADIF del registro PIR1.
  • 9. (c) Domingo Llorente 2010 9 Conexión de las entradas analógicas en la placa de ampliación Para usar la entrada analógica de RA0 hay que poner el puente JP9 en pos. ANL0. Para usar la entrada analógica de RA3 hay que poner el puente JP8 en pos. ANL3. ANL0 ANL3 JP8 JP9
  • 10. (c) Domingo Llorente 2010 10 Configuración del conversor en CCS (I) Para configurar la entrada del conversor se utilizan la función: setup_adc_ports( VALOR ); Donde VALOR puede ser: NO_ANALOG, Ninguna entrada analógica ALL_ANALOGS, Todas las entradas analógicas AN0, Configura RA0 como única entrada analógica AN0_AN1_AN3, Configura RA0, RA1 y RA3 como entradas analógicas Para fijar la señal de reloj utilizada en la conversión se utiliza: setup_adc(ADC_CLOCK_INTERNAL); // Reloj interno para la conv. Otros valores posibles son: ADC_OFF, Para parar el conversor ADC_CLOCK_DIV_32, Utiliza un divisor por 32 de la Fosc. Nota: La lista completa de valores se puede consultar en el archivo: 16F877A.h
  • 11. (c) Domingo Llorente 2010 11 Configuración del conversor en CCS (II) Para leer el valor analógico hay seguir los siguientes pasos: 1º) Fijar el canal a leer: set_adc_channel(0); // Canal AN0 seleccionado 2º) Esperar, al menos 20us: delay_us(20); // Retardo para asegurar la conversión 3º) Guardar el valor leído en una variable de 16 bits: valor_leido=read_adc(); Adicionalmente, si queremos pasar a voltios la lectura obtenida: voltios=5.0*valor_leido/1024.0; Nota: No olvidar declarar las variables: int16 valor_leido; float voltios;
  • 12. (c) Domingo Llorente 2010 12 Ejemplo de programa Diseñar un programa que esté, constantemente leyendo la entrada analógica ANL0 y mostrando en el LCD de la placa el valor leído y su valor en voltios.
  • 13. (c) Domingo Llorente 2010 13 Solución en CCS (I) Comenzamos utilizando el asistente “PIC Wizard” Luego creamos la carpeta para nuestro proyecto y damos un nombre al archivo con extensión .pjt
  • 14. (c) Domingo Llorente 2010 14 Solución en CCS (II) Elegir: Pic: PIC17F877A Frecuencia del oscilador: 4Mhz Fuses: Crystal osc <=4Mhz Memoria de programa: No protegida
  • 15. (c) Domingo Llorente 2010 15 Solución en CCS (III) En la pestaña de “Analog” configurar: • Resolución: 1024 (10bits). • Fuente de reloj para la conversión: Internal • La entrada analógica: A0
  • 16. (c) Domingo Llorente 2010 16 Solución en CCS (IV) En la pestaña “Code” podemos ver el código que se añadirá en nuestro programa.
  • 17. (c) Domingo Llorente 2010 17 Solución en CCS (V) El compilador nos genera la siguiente plantilla.
  • 18. (c) Domingo Llorente 2010 18 Solución:
  • 19. (c) Domingo Llorente 2010 19 Resumen Para realizar un programa con la interrupción externa habilitada: 1º.- Antes de la función main(); declarar una varialbe de 16bits. int16 valor_leido; 2º.- En la función main() configurar el conversor: setup_adc_ports( AN0 ); setup_adc(ADC_CLOCK_INTERNAL); 3º.- Seleccionar la entrada y hacer la lectura: set_adc_channel(0); // Canal AN0 seleccionado delay_us(20); // Retardo para asegurar la conversión valor_leido=read_adc(); // Lectura del conversor