Está en la página 1de 3

#include "p16f877a.

inc"

; CONFIG
; __config 0xFF32
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_OFF & _CPD_OFF &
_WRT_OFF & _CP_OFF

CBLOCK 0X20
BYTE1
BYTE2
BYTE3
BYTE4
SUMAC

REG1
REG2
REG3
GUARDA_W
GUARDA_S
CUENTA
ENDC

ORG 00
GOTO INICIO
ORG 04
INTERRUPCION
MOVWF GUARDA_W
SWAPF STATUS,W
MOVWF GUARDA_S

GOTO FIN_I

FIN_I
SWAPF GUARDA_S,W
MOVWF STATUS
SWAPF GUARDA_W,F
SWAPF GUARDA_W,W

RETFIE

;***********************************
INICIO
bsf STATUS,RP0
CLRF TRISB
CLRF TRISD
movlw b'00100010'
MOVWF TXSTA
MOVLW .31
MOVWF SPBRG ;DETERMINA VELOCIDAD DE BAUDIO

bCf STATUS,RP0
movlw b'10010000'
MOVWF RCSTA
CLRF PORTB

BUCLE BCF PIR1,RCIF

btfss PIR1,RCIF
GOTO $-1

MOVF BYTE2,W
MOVWF BYTE1
MOVF BYTE3,W
MOVWF BYTE2
MOVF BYTE4,W
MOVWF BYTE3
MOVF SUMAC,W
MOVWF BYTE4

MOVF RCREG,0
MOVWF SUMAC

CLRW
ADDWF BYTE1,W
ADDWF BYTE2,W
ADDWF BYTE3,W
ADDWF BYTE4,W

XORWF SUMAC,W
BTFSS STATUS,Z
GOTO BUCLE

MOVF BYTE3,W
MOVWF PORTB
MOVF BYTE4,W
MOVWF PORTD

GOTO BUCLE
; MOVLW B'10100000'
; MOVWF INTCON

;*******rutina de retardo**********************
RETARDO
MOVLW .16
MOVWF REG3
RETBUCL3
MOVLW .100
MOVWF REG2
RETBUCL2
MOVLW .100
MOVWF REG1
RETBUCL
DECFSZ REG1,F
GOTO RETBUCL

DECFSZ REG2,F
GOTO RETBUCL2

DECFSZ REG3,F
GOTO RETBUCL3

RETURN

END

También podría gustarte