Programación Específica > Soluciones de Hard y Soft

 Uso Del Convertidor A/d

(1/1)

Kain589:
Pues esta rutina esta preparada para configurar el conversor y sacar el resultado por los puertos B y C del micro, esta diseñada para el 16f876


--- Código: Text ---;dispositivo  LIST P=PIC16F876   INCLUDE <P16f876.INC> ;declara puerto(opcional);variables necesariasDATOALTO EQU 20H DATOBAJO EQU 21H  ; programa   Org 05H Inicio  CLRF CUENTA1  &#59;Ponemos a 0  CLRF CUENTA2   BCF STATUS,5  &#59;BANCO 0   MOVLW 81H  &#59;FOSC/32 SELECCION DE RA0 configuramos adcon 0   MOVWF ADCON0   BSF STATUS,5  &#59;CAMBIO DE BANCO 1   MOVLW 8EH  &#59;configuramos adcon1  MOVWF ADCON1   MOVLW 01H  &#59;DEJANDO COMO ENTRADA A AN0   MOVWF TRISA   CLRF TRISB  &#59;PUERTO B COMO SALIDA        CLRF TRISC  &#59;PUERTO C SALIDA  CLRF DATOALTO   &#59;Ponemos a 0  CLRF DATOBAJO;MANEJO DE LA CONVERSION UNO   CLRF ADRESL   BCF STATUS,5   &#59;VOLVEMOS AL BANCO 0   MOVF DATOALTO,W   MOVWF PORTC  MOVF DATOBAJO,W   MOVWF PORTB   &#59;Sacamos variable por puerto B  CALL DELAY   &#59;retardo ;INICIO DEL PROCESO   CLRF ADRESH   &#59;limpiamos resultado parte superior  BSF ADCON0,2   &#59;EMPEZAR LA CONVERSION CONVIERTE   BTFSC ADCON0,2   &#59;VERIFICACION DE                                                                &#59;FINALIZACION  DE CONVERSION   GOTO CONVIERTE   MOVF ADRESH,W; (TAMBIEN 00)  MOVWF DATOALTO;PASAMOS LA PARTE ALTA DE LA CONVERSION                                            &#59;A DATO ALTO  BSF STATUS,5&#59;PASAMOS A BANCO 1   MOVF ADRESL,w;(TAMBIEN 00)   BCF STATUS,5&#59;BANCO0  MOVWF DATOBAJO&#59;PASAMOS LA PARTE ALTA DE LA CONVERSION                                             &#59;A DATO BAJO   GOTO UNO   DELAY;escribir aqui rutina de retardo adecuada    END 
La rutina de retardo depende del cristal, se utiliza para que se estabilice el convertidor y para un cristal de 4 Mhz bastara con 20 microsegundos
Alguna modificacion interesante es en lugar de justificar a la derecha,llenando de ceros los bits mas sifnificativos del registro ADRESH justificar a izquierda(llena de ceros los bits menos significativos de ADRESL), asi los 8 bits mas significativos estan en un mismo registro ADRESH, y podemos usar el convertidor como si fuera de 8 bits, mejorando la respuesta ante el ruido(al tener menos sensibilidad) y facilitando el manejo de la conversion, siempre que no sea critica la precision en la conversion

Navegación

[0] Índice de Mensajes

Ir a la versión completa