[ASM] Programando un PIC (Conversión Análogo/Digital 8 bits)

Iniciado por kal23, Enero 24, 2014, 06:17:56 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Consiste en un programa básico desarrollado en ASM. para microcontrolador PIC 16f690. La función es entender y demostrar el funcionamiento de la conversión A/D. La señal análoga es proporcionada por un potenciometro, la cual es transformada en digital y se puede ver por el puerto C del microcontrolador.

Código: asm

;**********************************************************************
;    Conversión Análogo/Digital                                       *
;**********************************************************************
;    Requiere archivos: P16F690.INC
;                       RETARDOS.INC
;**********************************************************************
;    Notas:
;    Ejercicio para instrucciones básicas de conversión A/D           *
;**********************************************************************

#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

     cblock 0x20
     ;no se requieren variables auxiliares
     endc

     org 0
Start:
     bsf       STATUS,RP0     ; Abre página de registro 1
     movlw     0xFF
     movwf     TRISA          ; PORTA será sólo entradas
     clrf      TRISC          ; PORTC será sólo salidas
     movlw     0x10           ; Frecuencia de conversión = Fosc/8
     movwf     ADCON1

     bcf       STATUS,RP0     ; Abre página de registro 2
     bsf       STATUS,RP1
     movlw     0xFF           ; Todos los pines de PORTA serán entradas analógicas
     movwf     ANSEL
     bcf       STATUS,RP0     ; Regresa a página de registro 0
     bcf       STATUS,RP1

     movlw     b'00000001'    ; Configura conversión A/D
     movwf     ADCON0
               ; 0-------       Justificación izquierda
               ; -0------       Referencia a Vdd
               ; --0000--       Selecciona Canal 00 (AN0)
               ; -------1       Habilita conversor A/D

Principal:
     call      Retardo_5micros ; Retardo de 5 us para inicializar conversor
     bsf       ADCON0,GO       ; Inicia conversión
     btfss     ADCON0,GO       ; el bit cambiará a cero cuando la conversión se complete
     goto      $-1

     movf      ADRESH,w        ; Lee el resultado de la conversión
     movwf     PORTC           ; y lo envía a los leds.
     goto      Principal

     Include     <RETARDOS.INC>
     end                            ;Fin del programa



Video de funcionamiento del conversor, solo habia 4 led en la placa entrenadora del pickit 2, asi que no se ven los 8 bits de conversión, pero sirve para entender el funcionamiento.


Link de descarga del proyecto:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta