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.
;**********************************************************************
; 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: https://mega.co.nz/#!YkN3DQYJ!gZWVCOvUBBIf8Rilskane5q9W2iYfQodYKiKqbjRea8 (https://mega.co.nz/#!YkN3DQYJ!gZWVCOvUBBIf8Rilskane5q9W2iYfQodYKiKqbjRea8)