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 ;Ponemos a 0 CLRF CUENTA2 BCF STATUS,5 ;BANCO 0 MOVLW 81H ;FOSC/32 SELECCION DE RA0 configuramos adcon 0 MOVWF ADCON0 BSF STATUS,5 ;CAMBIO DE BANCO 1 MOVLW 8EH ;configuramos adcon1 MOVWF ADCON1 MOVLW 01H ;DEJANDO COMO ENTRADA A AN0 MOVWF TRISA CLRF TRISB ;PUERTO B COMO SALIDA CLRF TRISC ;PUERTO C SALIDA CLRF DATOALTO ;Ponemos a 0 CLRF DATOBAJO;MANEJO DE LA CONVERSION UNO CLRF ADRESL BCF STATUS,5 ;VOLVEMOS AL BANCO 0 MOVF DATOALTO,W MOVWF PORTC MOVF DATOBAJO,W MOVWF PORTB ;Sacamos variable por puerto B CALL DELAY ;retardo ;INICIO DEL PROCESO CLRF ADRESH ;limpiamos resultado parte superior BSF ADCON0,2 ;EMPEZAR LA CONVERSION CONVIERTE BTFSC ADCON0,2 ;VERIFICACION DE ;FINALIZACION DE CONVERSION GOTO CONVIERTE MOVF ADRESH,W; (TAMBIEN 00) MOVWF DATOALTO;PASAMOS LA PARTE ALTA DE LA CONVERSION ;A DATO ALTO BSF STATUS,5;PASAMOS A BANCO 1 MOVF ADRESL,w;(TAMBIEN 00) BCF STATUS,5;BANCO0 MOVWF DATOBAJO;PASAMOS LA PARTE ALTA DE LA CONVERSION ;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
Ir a la versión completa