12

Click here to load reader

Modulo Análogo-Digital

Embed Size (px)

Citation preview

Page 1: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 1Microcontroladores PIC

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 2Microcontroladores PIC

Características generales en el PIC16F877 (A)Ocho canales de conversión.

Convierte la señal analógica en un número digital de 10 bits.

Tensiones de referencia VREF+ y VREF- seleccionables por software.

Puede seguir funcionando cuando el PIC está en modo SLEEP ya quedispone de un oscilador RC interno propio

Hay 11 registros asociados a este periférico.Definición de pines de entrada y señales aplicadas

TRISA – PORTA – TRISE - PORTEManejo de interrupciones

INTCON – PIE1 – PIR1Control del conversor A/D

ADCON0 – ADCON1 – ADRESH - ADRESL

Pueden ser VDD y VSS o las tensiones aplicadas en los pines RA3 / RA2.

Cinco pines de PORTA y los tres de PORTE.

Page 2: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 3Microcontroladores PIC

Estructura interna

000

001

010

011

100

101

110

111

RA0/AN0

RA1/AN1

RA2/AN2/VREF-

RA3/AN3/VREF+

RA5/AN4

RE0/AN5

RE1/AN6

RE2/AN7

CHS2:CHS0

MóduloA/D

PCFG3:PCFG0

PCFG3:PCFG0

VDD

VSS

VREF+

VREF-

VAIN (Input Voltage)

Seleccióndel canalanalógico

Multiplexor analógico 8 a 1

SS RSS

CHOLDCircuito deMuestreo

y Retención

A/D

AD

RESL

AD

RESH

GO/DONE

Configuraciónentradas

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 4Microcontroladores PIC

Función de transferencia conversor A/DLa primera transición tiene lugar cuando la tensión analógica de

entrada alcanza el valor VREF- + (VREF+ - VREF-)/1024 ≡ 1LSb.

3FFh3FEh3FDh3FCh

004h003h002h001h

1 LS

b2

LSb

3 LS

b4

LSb

1021

LSb

1022

LSb

1023

LSb

1024

LSb

(VREF-) (VREF+)

400h11 bits

000h

Page 3: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 5Microcontroladores PIC

Función de transferencia conversor A/DCaso de que V REF+ = VDD y que V REF- = VSS

3FFh3FEh3FDh3FCh

004h003h002h001h

1 LS

b2

LSb

3 LS

b4

LSb

1021

LSb

1022

LSb

1023

LSb

1024

LSb

VDD

400h11 bits

000h0 V

Ve

1 LSB = VDD/1024

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 6Microcontroladores PIC

Registro ADCON0 (1Fh)

GO/DONEADCS1 ADCS0 CHS1 CHS0CHS2 ADON-

bit 7-6 ADCS1:ADCS0: Selección del reloj para la conversión A/D00 = fOSC / 2 01 = fOSC / 8 10 = fOSC / 32 11 = fRC

bit 5-3 CHS2:CHS0: Selección del canal de conversión000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7

bit 2 GO/DONE: Estado de la conversiónSi ADON=1:1 = Conversión en progreso 0 = Conversión finalizada

bit 0 ADON: Bit de encendido del convertidor A/D1 = Módulo A/D encendido 0 = Módulo A/D apagado

caso de los PIC16F87x

y versiones “antiguas”

Page 4: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 7Microcontroladores PIC

Registro ADCON0 (1Fh)

GO/DONEADCS1 ADCS0 CHS1 CHS0CHS2 ADON-

bit 7-6 ADCS1:ADCS0: Selección del reloj para la conversión A/D junto con ADCS2 que está en ADCON1

00 = fOSC / 2 01 = fOSC / 8 10 = fOSC / 32 11 = fRC

bit 5-3 CHS2:CHS0: Selección del canal de conversión

000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7

bit 2 GO/DONE: Estado de la conversión

Si ADON=1:1 = Conversión en progreso 0 = Conversión finalizada

bit 0 ADON: Bit de encendido del convertidor A/D

1 = Módulo A/D encendido 0 = Módulo A/D apagado

caso de los PIC16F87xA

00 = fOSC / 4 01 = fOSC / 16 10 = fOSC / 64 11 = fRC

ADCS2= 0ADCS2= 1

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 8Microcontroladores PIC

Registro ADCON1 (9Fh)

ADFM PCFG3-

bit 7 ADFM: Selección de formato del resultado1 = Ajuste a la derecha 0 = Ajuste a la izquierda

- - PCFG2 PCFG1 PCFG0

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

000000010010001101000101011x10001001101010111100110111101111

AADDDDDADDDDDDD

AN7RE2

PCFG3:PCFG0

AN6RE1

AADDDDDADDDDDDD

AN5RE0

AADDDDDAAAADDDD

AN4RA5

AAAADDDAAAAADDD

AN3RA3

AVREF+

AVREF+

D

A

D

AVREF+

VREF+

VREF+VREF+VREF+VREF+

VREF+

AN2RA2

A

A

D

A

D

VREF-

AVREF-VREF-VREF-

VREF-

A

A

DD

AN1RA1

A

A

D

A

D

A

AAAA

A

AAA

D

AN0RA0

A

A

D

AA

AAAA

A

AAA

AA

caso de los PIC16F87x

y versiones “antiguas”

Page 5: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 9Microcontroladores PIC

Registro ADCON1 (9Fh)

ADFM PCFG3-

bit 7 ADFM: Selección de formato del resultado1 = Ajuste a la derecha 0 = Ajuste a la izquierda

- - PCFG2 PCFG1 PCFG0

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

000000010010001101000101011x10001001101010111100110111101111

AADDDDDADDDDDDD

AN7RE2

PCFG3:PCFG0

AN6RE1

AADDDDDADDDDDDD

AN5RE0

AADDDDDAAAADDDD

AN4RA5

AAAADDDAAAAADDD

AN3RA3

AVREF+

AVREF+

D

A

D

AVREF+

VREF+

VREF+VREF+VREF+VREF+

VREF+

AN2RA2

A

A

D

A

D

VREF-

AVREF-VREF-VREF-

VREF-

A

A

DD

AN1RA1

A

A

D

A

D

A

AAAA

A

AAA

D

AN0RA0

A

A

D

AA

AAAA

A

AAA

AA

caso de los PIC16F87xA

ADCS2

bit 6 ADCS2: Selección de reloj para conversión A/D junto con ADCS1 y ADCS0véase carga del registro ADCON0 en PIC16F87xA

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 10Microcontroladores PIC

Registro INTCON (0Bh , 8Bh , 10Bh , 18Bh)

T0IFGIE PEIE INTE RBIET0IE RBIFINTF

bit 7 GIE: Habilitación global de interrupciones

bit 6 PEIE: Habilitación de interrupciones de periféricos

Registro PIE1 (8Ch)

CCP1IEPSPIE ADIE TXIE SSPIERCIE TMR1IETMR2IE

bit 6 ADIE: Habilitación de la interrupción del convertidor A/D

Registro PIR1 (0Ch)

CCP1IFPSPIF ADIF TXIF SSPIFRCIF TMR1IFTMR2IF

bit 6 ADIF: Flag de la interrupción del convertidor A/D1 = Conversión A/D completada. 0 = Conversión A/D aún no completada.

Page 6: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 11Microcontroladores PIC

2. Configurar la interrupción por conversión A/D.

Pasos en una conversión A/D1. Configurar el módulo A/D.

- Definir entradas analógicas y tensión de referencia. (ADCON1)- Seleccionar el canal de la conversión. (ADCON0)- Seleccionar el reloj de la conversión. (ADCON0)- Encender el módulo A/D. (ADCON0)

- Bajar el flag ADIF. (PIR1)- Habilitar la interrupción del convertidor A/D. (PIE1)- Habilitar las interrupciones de los periféricos. (INTCON)- Habilitar la máscara global de interrupciones. (INTCON)

3. Esperar a que transcurra el tiempo de adquisición.- Tiempo necesario para capturar el valor analógico a convertir.- Los valores típicos del tiempo de adquisición son del orden de 20µs.

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 12Microcontroladores PIC

5. Esperar a que se complete la conversión A/D.

4. Comenzar la conversión.- Poner a “1” el bit GO/DONE. (ADCON0)

No activar este bit a la vez que se enciende el convertidor A/D

a) Controlando cuándo el bit GO/DONE se pone a “0”.b) Esperando a que llegue la interrupción del convertidor.

6. Leer el resultado de la conversión.- Disponible en los registros ADRESH:ADRESL.- Bajar el flag ADIF si se están usando interrupciones.

7. Llevar a cabo la siguiente conversión.- Volver al paso 1 ó 2, según convenga.- Espera mínima antes de empezar la siguiente adquisición: 2·TAD

TAD: Tiempo necesario para la conversión de un bit.

(Esta espera no es necesaria en el caso de los PIC16F87xA porque el interruptor de captura se “cierra” en cuanto se obtiene el resultado)

Page 7: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 13Microcontroladores PIC

Tiempo de adquisiciónTiempo necesario para cargar el condensador de mantenimiento (CHOLD).

SS RSS

VA

RS ANX

CPIN5pF

CHOLD120pF

RIC ≤ 1K

IFUGAS±500nA

VDD

VSS

Hasta que no acabe la conversión, no empieza otra adquisición (SS abierto)Esperar TACQ : a) tras una conversión; b) tras seleccionar un nuevo canal;

c) tras encender el módulo A/D.

Máxima impedancia recomendada para la fuente: Rs<10K.En estas condiciones, TACQ=Amplifier Settling Time +Hold Capacitor Charging Time +Temperature Coefficient

=TAMP + TC + TCOFF =2µs + TC + [(Temperature -25°C)(0.05µs/°C)]TC = - CHOLD (RIC + RSS + RS) Ln(1/2047) = -120pF (1k. + 7k. + 10k.) Ln(0.0004885) = 16.47µs

TACQ=2µs + 16.47µs + [(50°C -25°C)(0.05µs/°C) = 19.72µs ≈ 20µs

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 14Microcontroladores PIC

Tiempo de conversiónLa conversión de 10 bits dura 12·TAD.

TAD configurable en ADCON0 (reloj de la conversión).TAD=2·TOSC - TAD=8·TOSC - TAD=32·TOSC - TAD=2µs÷6µs (típ. 4µs)

También TAD=4·TOSC - TAD=16·TOSC - TAD=64·TOSC en PIC16F87xA

Para un funcionamiento correcto se necesita un valor mínimo de TAD=1,6µs.

Tciclo ÷ TAD TAD TAD

b9

TAD

b8

TAD

b7

TAD

b6

TAD

b5

TAD

b4

TAD

b3

TAD

b2

TAD

b1

TAD

b0

GO/DONE ← 1

Se abre SS (típ. 100ns)

Comienza la conversión Se carga ADRESSe pone GO/DONE a “0”Se levanta el flag ADIF

CHOLD conectado a entrada analógica

Page 8: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 15Microcontroladores PIC

Tiempo de conversión y Tiempo de adquisición

T. de conversiónEl interruptor de muestreo

se “abre” al cabo de 100ns de GO=1

T. de adquisiciónInterruptor de muestreo cerrado para“alcanzar” el nuevo valor a convertir

SS RSS

CHOLD

VSS

SS RSS

CHOLD

VSS

Inicio de conversión

GO/DONE ← 1

Fijo: 12 TAD Depende de Rs externa

Fin de conversión

A partir de aquí es posible

una nueva conversión

CONDICIÓN a cumplir:

T muestreo > T conversión + 2TAD +T adquisición

caso de los PIC16F87x

y enversiones “antiguas”

2 TAD

Interruptor abierto Interruptor cerrado

Desde el fin de conversión hastaque se vuelve a cerrar el interruptortranscurren 2TAD

GO/DONE ← 0

t

Int. abierto Int. cerrado

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 16Microcontroladores PIC

Tiempo de conversión y Tiempo de adquisición

T. de conversiónEl interruptor de muestreo

se “abre” al cabo de 100ns de GO=1

T. de adquisiciónInterruptor de muestreo cerrado para“alcanzar” el nuevo valor a convertir

SS RSS

CHOLD

VSS

SS RSS

CHOLD

VSS

Inicio de conversiónGO/DONE ← 1

Fijo: 12 TAD Depende de Rs externa

Fin de conversión:Se cargan ADRESH:ADRESL

Se pone GO/DONE a “0”Se levanta el flag ADIF

t

t. conversión t. adquisición

A partir de aquí se podríalanzar una nueva conversiónporque ya se ha alcanzadoel valor de la tensión aconvertir

V analógica

V condensadorCONDICIÓN a cumplir:

T muestreo > T conversión + T adquisición

caso de los PIC16F87xA

Page 9: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 17Microcontroladores PIC

Registro ADCON1 (9Fh)

ADFM PCFG3- - - PCFG2 PCFG1 PCFG0

bit 7 ADFM: Selección de formato del resultado1 = Ajuste a la derecha 0 = Ajuste a la izquierda

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

1 0 0 1 0

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

000000010010001101000101011x10001001101010111100110111101111

AADDDDDADDDDDDD

AN7RE2

PCFG3:PCFG0

AN6RE1

AADDDDDADDDDDDD

AN5RE0

AADDDDDAAAADDDD

AN4RA5

AAAADDDAAAAADDD

AN3RA3

AVREF+

AVREF+

D

A

D

AVREF+

VREF+

VREF+VREF+VREF+VREF+

VREF+

AN2RA2

A

A

D

A

D

VREF-

AVREF-VREF-VREF-

VREF-

A

A

DD

AN1RA1

A

A

D

A

D

A

AAAA

A

AAA

D

AN0RA0

A

A

D

AA

AAAA

A

AAA

AA

Ejemplo: Configuración para conversión de la tensión analógica presente en el canal 3 (RA3/AN3)…

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 18Microcontroladores PIC

Registro ADCON0 (1Fh)

GO/DONEADCS1 ADCS0 CHS1 CHS0CHS2 ADON-

bit 7-6 ADCS1:ADCS0: Selección del reloj para la conversión A/D00 = fOSC / 2 01 = fOSC / 8 10 = fOSC / 32 11 = fRC

bit 5-3 CHS2:CHS0: Selección del canal de conversión000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7

bit 2 GO/DONE: Estado de la conversiónSi ADON=1:1 = Conversión en progreso 0 = Conversión finalizada

bit 0 ADON: Bit de encendido del convertidor A/D1 = Módulo A/D encendido 0 = Módulo A/D apagado

1 1 1 10 10

00 = fOSC / 2 01 = fOSC / 8 10 = fOSC / 32 11 = fRC

000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7

1 = Módulo A/D encendido 0 = Módulo A/D apagado

Si ADON=1:1 = Conversión en progreso 0 = Conversión finalizada

… y reloj TAD a partir de la red RC interna

Page 10: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 19Microcontroladores PIC

Módulo A/D cuando el micro entra en modo dormido (SLEEP)

* El módulo A/D puede funcionar durante el modo dormido si se selecciona como reloj para la conversión el RC interno (ADCS1:ADCS0 = 11).

* Si se elige como reloj el RC, el módulo A/D espera 1 ciclo de instrucción antes de iniciar la conversión. Esto permitiría la ejecución de la instrucción SLEEP que se coloque a continuación, esto eliminaría todo posible ruido de conmutación (debido al paso de normal a dormido) durante la conversión.

* Cuando se haya completado la conversión, el bit GO/DONE se pondrá a “0” y el resultado se cargará en los registros ADRESH y ADRESL. Si la interrupción del conversor A/D está habilitada (ADIE y PEIE a “1”) el dispositivo se “despertará”. Si no estuviera habilitada, el módulo A/D se apagará aunque el bit ADON siga a “1”.

* Si la fuente de reloj para la conversión no es la RC interna, una instrucción SLEEP provocará que la conversión que se esté ejecutando se aborte y que el módulo A/D se apague aunque el bit ADON siga a “1”.

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 20Microcontroladores PIC

Efectos de un RESET sobre el módulo A/D

Un RESET del dispositivo provoca que los registros del módulo A/D se inicialicen a los valores indicados en la tabla. Por tanto, un RESET provoca que el módulo A/D se apague y que cualquier conversión que se estuviera realizando cuando se produce el RESET se aborte. Todos los pines asociados al módulo A/D pasan a ser entradas analógicas. Los valores acumulados en ADRESH:ADRESL no se modifican por un Power-On-Reset. El valor que contendrán los registros ADRESH:ADRESL tras un POR serán desconocidos inicialmente.

Page 11: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 21Microcontroladores PIC

Ejemplo sencillo de uso del modulo A/D (1 solo canal e interrupciones);; Este es un programa ejemplo de uso del conversor A/D; en un PIC16F877, donde se usa un solo canal (CH0); y se usan interrupciones; El conversor A/D se configura como sigue:; Vref = +5V interna.; A/D Osc. = RC interna; Canal A/D = CH0; Se puede usar como Hardware para probar este ejemplo; la tarjeta PICDEM 2. El programa convierte el valor del; potenciometro conectado a RA0 en 10 bits, de los que los; 8 bits más significativos se muestran en los leds conectados; al PORTB.;

include <P16F877.INC>;TEMP equ 20h ; Variable de almacenamiento temporal;

ORG 0x00 ; Vector de Reset;

goto start;

org 0x04 ; Vector de interrupcióngoto service_int

;;

org 0x10start movlw 0FFh ; PORTB = 11111111b

movwf PORTBbsf STATUS,RP0 ; Banco 1movwf TRISA ; PORTA son entradasclrf TRISB ; PORTB son salidabcf STATUS,RP0 ; Banco 0call InitializeADcall SetupDelay ; Delay para Tadbsf ADCON0,GO ; Inicia conversión A/D

loop goto loop;

; Rutina de interrupción A/D:; muestra valor en los leds del PORTB

service_int btfss PIR1,ADIF ; ¿Interrupcion del modulo A/D?retfie ; Si no retornamosmovf ADRESH,W ; Cojo los 8 bits altos de la conversiónmovwf PORTB ; los muestro en los LEDS del PORTBbcf PIR1,ADIF ; Reseteo el flagcall SetupDelay ; Delay de adquisicióncall SetupDelay ; mayor de 20 usbsf ADCON0,GO ; lanzo una nueva conversiónretfie ; retorno, habilito GIE

; InitializeAD, inicializa el modulo A/D.; Selecciona CH0 a CH3 como entradas analógicas, reloj RC y lee el CH0.;InitializeAD bsf STATUS,RP0 ; Banco 1

movlw B'00000100' ; RA0,RA1,RA3 entradas analogicasmovwf ADCON1 ; Justificado a la izquierda

; 8 bits mas significativos en ADRESHbsf PIE1,ADIE ; Habilitamos interrupciones A/D bcf STATUS,RP0 ; Banco 0movlw b’11000001’ ; Oscilador RC, Entrada analógica CH0movwf ADCON0 ; Modulo A/D en funcionamientobcf PIR1,ADIF ; Limpio flag interrupciónbsf INTCON,PEIE ; Habilito interrupciones de perifericosbsf INTCON,GIE ; Habilito interrupciones globalesreturn

; Esta rutina es un retardo software de más de 10us si; se usa un oscilador de 4MHz que se usa para asegurar; un tiempo de adquisición de más de 20 us mediante una doble llamada; antes de lanzar una nueva conversión.

SetupDelay movlw 3 ; Carga Temp con 3movwf TEMP

SD decfsz TEMP, F ; Bucle de retardogoto SDreturn

END

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 22Microcontroladores PIC

Ejemplo de uso del módulo A/D (conversión de 8 canales secuencialmente) (1);**************************************************************************;; Programa de ejemplo de manejo del conversor A/D ; para realización de conversiones secuenciales de los 8 canales; analógicos disponibles en un PIC16F877 y almacenamiento de los; resultados de la conversión en una pila circular de 16 posiciones; (dos para cada canal); Se supone una Fosc de 8 MHz;; Autor: Francisco Fernandez Linera;;**************************************************************************

list p=PIC16F877 ;Definimos MCU a utilizarinclude "p16f877.inc" ;Incluimos fichero de etiquetas

TEMP EQU 0x20 ; posición auxiliar temporalADTABLE EQU 0x30 ; posicion inicial de la pila para guardar resultados de lasconversiones

ORG 0x00goto START

;START

bsf STATUS,RP0 ; Pasamos al Banco 1movlw b'10000000' ; Definimos todos los pines como analógicosmovwf ADCON1 ; referencia de 5V

; y resultado ajustado a la derecha ; 8 bits menos significativos en ADRESL; 2 bits más significativos en ADRESH

bcf STATUS,RP0 ; Volvemos al Banco 0movlw b'10000001' ; Oscilador: Tad=32*Tosc=4us, A/D encendidomovwf ADCON0 ; y seleccion inicial en RA<0> (canal CH0)

Page 12: Modulo Análogo-Digital

Módulo de Conversión A/D

©ATE-Universidad de Oviedo 23Microcontroladores PIC

movlw ADTABLE ; colocamos el puntero del dir. indirecto (FSR)movwf FSR ; apuntando a la primera posicion de la tabla

new_ad call delay_adq ; espero el tiempo de adquisicion

bsf ADCON0,GO ; lanzo una conversión

LOOP btfsc ADCON0,GO_DONEgoto LOOP ; espero a que finalice la conversión

bsf STATUS,RP0 ; guardo el resultado de la conversión en la pilamovf ADRESL,W ; primero los 8 bits menos significativosmovwf INDF ; que están en ADRESL (en el banco 1)incf FSR ; Se incrementa el puntero de direcciones RAMbcf STATUS,RP0 ; Volvemos al banco 0movf ADRESH,W ; para recoger ahora los 2 bits más significativosmovwf INDF ; los guardamos en la siguiente posición apuntada por FSRincf FSR ; incrementamos de nuevo FSRmovlw 0x08 ; Incrementamos el número de canal a convertiraddwf ADCON0 ; para lo cual sumamos 1 al bit 3 de ADCON0btfss ADCON0,6 ; miro si ya he convertido los 8 canales, el bit 6 sería 1goto new_ad ; si no convierto otro, nueva conversión bcf ADCON0,6 ; en caso contrario, vuelvo a poner Tad=32*Tosc (b6=0)movlw ADTABLE ; de nuevo el puntero del dir. indirectomovwf FSR ; apuntando a la primera posicion de la tablagoto new_ad ; y vuelvo a convertir, empezando por el canal 0

;*********************************** Temporización del tiempo de adquisición *************************************delay_adq movlw 8 ; bucle del tiempo de adquisición

movwf TEMP ; 18,5 useg incluyendo call y returnadq nop ; 1 ciclo

decfsz TEMP,F ; decremento y comparación con cerogoto adq ; si no hemos llegado a cero, repetimosreturn ; si ya llegamos a cero, retornamos

Ejemplo de uso del modulo A/D (conversión de 8 canales secuencialmente) (2)