You are on page 1of 3

;PROGRAMA DE ADC CON INTERRUPCION

#include "p16f877a.inc"

; CONFIG

; __config 0x3F3A

__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF
& _WRT_OFF & _CP_OFF

ACU EQU 0X20

RESP EQU 0X21

DIS1 EQU 0X22

DIS2 EQU 0X23

DIS3 EQU 0X24

ORG 0

GOTO INIT

ORG 4

GOTO INTER

INIT BCF STATUS,RP0

BCF STATUS,RP1; BANCO 0

CLRF PORTA

BSF STATUS,RP0 ;BANCO 1

MOVLW B'10001110'
MOVWF ADCON1 ; ANALOGICO RA0

BSF TRISA,0 ;ENTRADA RA0

BSF PIE1,ADIE ; HABILITADA INTERRUPCION ADC

BCF STATUS,RP0 ; BANCO 0

MOVLW B'00000001'

MOVWF ADCON0

BCF PIR1,ADIF; RESETEAMOS BANDERA ADC

BSF INTCON,PEIE ; HABILITAMOS INTERRUPCIONES PERIFERICAS

BSF INTCON,GIE ;HABILITAMOS INTERRUPCIONES GLOBALES

BSF ADCON0,GO_DONE

MAIN NOP

GOTO MAIN

INTER MOVWF ACU

BSF STATUS,RP0 ;BANCO 1

MOVF ADRESL,W

BCF STATUS,RP0 ; BANCO 0

MOVWF RESP

ANDLW B'00001111'

MOVWF DIS1

SWAPF RESP,W ; MOVEMOS LOS MSB A LSB

ANDLW B'00001111'

MOVWF DIS2

MOVF ADRESH,W
MOVWF DIS3

BCF PIR1,ADIF

BSF ADCON0,GO_DONE

MOVF ACU,W

RETFIE

END

You might also like