• Miércoles 6 de Noviembre de 2024, 02:31

Autor Tema:  Uso Del Convertidor A/d  (Leído 2420 veces)

Kain589

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Uso Del Convertidor A/d
« en: Jueves 5 de Enero de 2006, 22:45 »
0
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
  1. ;dispositivo
  2.   LIST P=PIC16F876
  3.   INCLUDE <P16f876.INC>
  4. ;declara puerto(opcional)
  5. ;variables necesarias
  6. DATOALTO EQU 20H
  7. DATOBAJO EQU 21H  
  8. ; programa
  9.   Org 05H
  10.  
  11. Inicio
  12.   CLRF CUENTA1  &#59;Ponemos a 0
  13.   CLRF CUENTA2
  14.   BCF STATUS,5  &#59;BANCO 0
  15.   MOVLW 81H  &#59;FOSC/32 SELECCION DE RA0 configuramos adcon 0
  16.   MOVWF ADCON0
  17.   BSF STATUS,5  &#59;CAMBIO DE BANCO 1
  18.   MOVLW 8EH  &#59;configuramos adcon1
  19.   MOVWF ADCON1
  20.   MOVLW 01H  &#59;DEJANDO COMO ENTRADA A AN0
  21.   MOVWF TRISA
  22.   CLRF TRISB  &#59;PUERTO B COMO SALIDA      
  23.   CLRF TRISC  &#59;PUERTO C SALIDA
  24.   CLRF DATOALTO   &#59;Ponemos a 0
  25.   CLRF DATOBAJO
  26. ;MANEJO DE LA CONVERSION
  27. UNO
  28.   CLRF ADRESL
  29.   BCF STATUS,5   &#59;VOLVEMOS AL BANCO 0
  30.   MOVF DATOALTO,W
  31.   MOVWF PORTC
  32.   MOVF DATOBAJO,W
  33.   MOVWF PORTB   &#59;Sacamos variable por puerto B
  34.   CALL DELAY   &#59;retardo
  35.  
  36. ;INICIO DEL PROCESO
  37.   CLRF ADRESH   &#59;limpiamos resultado parte superior
  38.   BSF ADCON0,2   &#59;EMPEZAR LA CONVERSION
  39. CONVIERTE
  40.   BTFSC ADCON0,2   &#59;VERIFICACION DE
  41.                                                                &#59;FINALIZACION  DE CONVERSION
  42.   GOTO CONVIERTE
  43.   MOVF ADRESH,W; (TAMBIEN 00)
  44.   MOVWF DATOALTO;PASAMOS LA PARTE ALTA DE LA CONVERSION
  45.                                            &#59;A DATO ALTO
  46.   BSF STATUS,5&#59;PASAMOS A BANCO 1
  47.   MOVF ADRESL,w;(TAMBIEN 00)
  48.   BCF STATUS,5&#59;BANCO0
  49.   MOVWF DATOBAJO&#59;PASAMOS LA PARTE ALTA DE LA CONVERSION
  50.                                             &#59;A DATO BAJO
  51.   GOTO UNO
  52.  
  53.  
  54. DELAY;escribir aqui rutina de retardo adecuada
  55.    
  56. END
  57.  

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