Вы находитесь на странице: 1из 7

Convertidor anlogo digital

1. RESULTADOS DE APRENDIZAJE 1. Elaborar un programa en ensamblador para un microcontrolador PIC utilizando puertos digitales y convertidor anlogo digital 2. MATERIAL Y EQUIPO A UTILIZAR. 1 computadora con XP 1 Simulador PIC 1 set de instrucciones PIC Software PIC-SIMULATOR 3. INTRODUCCION. Un convertidor anlogo digital tiene como entrada un nivel de voltaje (valor analgico) y produce en su salida un nmero binario de n bits proporcional al nivel de la entrada (valor digital). Los convertidores de seal anlogo a digital abrevian ADC o A/D. Uno de los parmetros que definen al A/D es la resolucin como la mnima variacin de voltaje en la entrada que produce cambio del valor digital en la salida. Por ejemplo un convertidor de 10 bits tiene un total de 210 valores (1024 valores de 0 a 1023). Si tenemos 10V a la entrada la resolucin seria de 9,765mV. En este caso el voltaje es de 10V a 0V pero pueden variar. Por ejemplo si tenemos de 10v a 5v la resolucin ser: Resolucin= (10v 5v)/1024=4.88 mV Una formula para el calculo ser: Resolucin= (Vref2-Vref1)/1024 donde las tensiones de referencia son 10V y 5V. 1. Descripcin General El mdulo convertidor Anlogo Digital (A/D) del PIC 16F877 tiene 8 canales de entrada. La conversin de la seal analgica aplicada (a uno de los canales) se plasma en nmero binario de 10 dgitos. El mdulo A/D posee voltajes de referencia que pueden ser seleccionados para emplear las tensiones VDD, VSS del microcontrolador o puede emplear tensiones aplicadas a los pines RA2 o RA3 (incluso es posible establecer combinaciones de los anteriores valores). Para operar el modulo ADC contamos con 4 registros: Registro de resultado de byte alto de la conversin A/D (ADRESH). Banco 0, 0x1E Registro de resultado de byte bajo de la conversin A/D (ADRESL). Banco 1, 0x9E Registro 0 de control del mdulo A/D (ADCON0). Banco 0, 0x1F Registro 1 de control del modulo A/D (ADCON1). Banco 1, 0x9F

Disear un programa que permita leer el voltaje aplicado al canal 0 del mdulo ADC, convertirlo a un valor digital de 10 bits y mostrar los ocho bits mas significativos en el PORTC

Pasos para realizar la conversin analgica digital: 1. Configure el mdulo A/D: (lo cual significa)

Configurar los pines de entrada de los canales analgicos a usar. Configure los voltajes de referencia. (en el registro ADCON1)

Movlw 0x8E Movwf ADCON1

Seleccione el canal de entrada al mdulo A/D (en el registro ADCON0) Seleccione el clock de conversin A/D (en el registro ADCON0) Ponga a funcionar el mdulo A/D (en el registro ADCON0)

Movlw 0x01 Movwf ADCON0

2.

Comienzo de la conversin

GO/-DONE=1-lgico (en el registro ADCON0)

BSF ADCON0, 2

3.

Esperar a que la conversin se complete. Para saber si la conversin termino podemos:

Revisar el bit GO/-DONE esperando que sea de nuevo 0 lgico ADCING: BTFSC ADCON0, 0X2 GOTO ADCING

4.

Leer el resultado del A/D en el par de registros (ADRESH:ADRESL). No debemos olvidar colocar el bit ADIF a 0-lgico (si se requiere) MOVFW ADRESH MOVWF PORTD BANKSEL ADRESL MOVFW ADRESH BANKSEL PORTC MOVWF PORTC

5.

Para la siguiente conversin, regrese al paso 1 o paso 2 dependiendo si solo se usa uno o mas canales.

Poniendo junto todo el programa, tenemos: (Agregar los comentarios) ORG BANKSEL CLRF CLRF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW BANKSEL MOVWF RUTINA: BTFSC CALL MOVFW MOVWF BANKSEL MOVFW BANKSEL MOVWF GOTO ADQADC: BSF BSF ADCING: BTFSC GOTO BCF RETURN END Creacion y compilacion de programa Los programas pueden ser generados en cualquier editor de texto pero tienen que ser guardados en formato ASM, por ejemplo en NotePad de Windows. Para compilacin del archivo ASM utilizaremos el programa MPLAB que lo provee gratuitamente Microchip. Procedimiento: 1- Crear un nuevo proyecto en MPLAB, escribir el programa anterior y guardarlo en la gua_adc_16f877, compilarlo y correrlo en el simulado, deber obtener la siguiente configuracin para el pic. 0X1F,2 ADCING 0X1F,0 ;___________________________ ;___________________________ ;___________________________ ;___________________________ 0X1F,0 0X1F,2 ;___________________________ ;___________________________ 0X05,5 ;___________________________ ADQADC ;___________________________ 0X1E ;___________________________ 0X08 ;___________________________ 0X9E ;___________________________ 0X9E ;___________________________ 0X07 ;___________________________ 0X07 ;___________________________ RUTINA ;___________________________ 0X00 0X87 0X87 0X88 0XFF 0X86 0XFF 0X85 0X8E 0X9F 0XC0 0X1F 0X1F ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________ ;___________________________

2- Modificar el dato anlogo de entrada de 0 a 186, dando clic en el botn A, ubicado en el pin 2 del pic, desplazando la barra y dando clic en aceptar, asi:

3- Complete la siguiente tabla con los estados observados en el puerto C y el puerto D:

4- Del clic en el botn T del RA5, pin7 del PIC, y complete la siguiente tabla con los estados observados en el puerto C y D:

5- Modificar el dato anlogo de entrada de 186 a 686 y completar la siguiente tabla con los estados observados en el puerto C y D

6- Convierta los valores 186 y 686 a binario y comparalos con los resultados obtenidos en el paso 4 y 5 respectivamente, complete la siguiente tabla:

Вам также может понравиться