You are on page 1of 7

ERRORLEVEL -302

ERRORLEVEL -305
ERRORLEVEL -306
LIST P=16F877A
#INCLUDE <P16F877A.INC>
CBLOCK 20H
TMP
BITS
PRI
DOS
RECEP
CONT0
CONT1
CONT2
APUNTADOR
FLAG
NUM
Tecla
CONT
VAR
CONTA
P1
P2
P3
P4
NI
C1
PA
PB
ENDC
RS EQU 00H
;PORTA,0 MANEJA EL RS
E EQU 01H
;PORTA,1 MANEJA EL E
TX EQU 00H
;PORTA,0 MANEJA EL TX
RX EQU 01H
;PORTA,1 MANEJA EL RX
UP EQU 02H
ENTER EQU 03H

ORG 00H
GOTO INICIO
ORG 05H

INICIO CALL CONFPORTS


CALL BORRARAM
CALL INILCD
PRU CLRF P1
CLRF P2
CLRF P3
CLRF P4
MOVLW .128
CALL CONTROL
BCF STATUS,C
MOVF PORTB,W
MOVWF RECEP
MOVLW .48
ADDWF RECEP,W
MOVWF RECEP
MOVWF TMP
MOVLW .8
MOVWF VAR
CALL DENUEVO
MOVLW ':'
CALL DATO
MOVF PORTB,W
MOVWF RECEP
CALL DATO
MOVLW .192
CALL CONTROL
CALL PARIDADES
;CALL HAMMING
MOVF P1,W
CALL TABLA
CALL DATO
MOVF P2,W
CALL TABLA
CALL DATO
MOVF P3,W
CALL TABLA
CALL DATO
MOVF P4,W
CALL TABLA
CALL DATO
MOVLW ':'
CALL DATO
MOVF CONTA,W
CALL TABLA
CALL DATO
GOTO PRU

DENUEVO RLF RECEP,F


BTFSC STATUS,C
GOTO UNO
MOVLW .0
MOVWF CONT
CALL TABLA
CALL DATO
CERO DECFSZ VAR
GOTO DENUEVO
RETURN
UNO MOVLW .1
MOVWF CONT
CALL TABLA
CALL DATO
GOTO CERO
PARIDADES MOVLW .8
MOVWF NUM
MOVLW .91
ANDWF TMP,W
MOVWF NI
PARIDAD1 MOVLW .1
ANDWF NI,W
MOVWF C1
MOVLW .1
XORWF C1,W
BTFSC STATUS,Z
GOTO A1
INCF P1
A1 RRF NI
DECFSZ NUM
GOTO PARIDAD1
MOVF P1,W
MOVWF PA
RRF PA
BTFSS STATUS,C
GOTO B1
MOVLW .1
IORWF CONTA,W
MOVWF CONTA
B1 MOVLW .8
MOVWF NUM
MOVLW .109
ANDWF TMP,W
MOVWF NI
PARIDAD2 MOVLW .1
ANDWF NI,W
MOVWF C1
MOVLW .1
XORWF C1,W
BTFSC STATUS,Z
GOTO A2
INCF P2
A2 RRF NI
DECFSZ NUM
GOTO PARIDAD2
MOVF P2,W
MOVWF PB
RRF PB
BTFSS STATUS,C
GOTO B2
MOVLW .2
IORWF CONTA,W
MOVWF CONTA
B2 MOVLW .8
MOVWF NUM
MOVLW .142
ANDWF TMP,W
MOVWF NI
PARIDAD3 MOVLW .1
ANDWF NI,W
MOVWF C1
MOVLW .1
XORWF C1,W
BTFSC STATUS,Z
GOTO A3
INCF P3
A3 RRF NI
DECFSZ NUM
GOTO PARIDAD3
MOVLW .8
MOVWF NUM
MOVLW .240
ANDWF TMP,W
MOVWF NI
PARIDAD4 MOVLW .1
ANDWF NI,W
MOVWF C1
MOVLW .1
XORWF C1,W
BTFSC STATUS,Z
GOTO A4
INCF P4
A4 RRF NI
DECFSZ NUM
GOTO PARIDAD4
RETURN

HAMMING RRF P4,F


BTFSS STATUS,C
GOTO PAR
MOVLW .1
CALL TABLA
CALL DATO
MOVLW .8
IORWF CONTA
INCF FLAG
VA3 RRF P3,F
BTFSS STATUS,C
GOTO PAR
MOVLW .1
CALL TABLA
CALL DATO
MOVLW .4
IORWF CONTA
INCF FLAG
VA2 RRF P2,F
BTFSS STATUS,C
GOTO PAR
MOVLW .1
CALL TABLA
CALL DATO
MOVLW .2
IORWF CONTA
INCF FLAG
VA1 RRF P1,F
BTFSS STATUS,C
GOTO PAR
MOVLW .1
CALL TABLA
CALL DATO
MOVLW .1
IORWF CONTA
CLRF FLAG
RETURN
PAR MOVLW .0
CALL TABLA
CALL DATO
MOVLW .0
XORWF FLAG,W
BTFSC STATUS,Z
GOTO TWO
INCF FLAG
GOTO VA3
TWO MOVLW .1
XORWF FLAG,W
BTFSC STATUS,Z
GOTO THER
INCF FLAG
GOTO VA2
THER MOVLW .2
XORWF FLAG,W
BTFSC STATUS,Z
GOTO FIN
INCF FLAG
GOTO VA1
FIN CLRF FLAG
RETURN

LETRERO1 CLRF APUNTADOR


SH MOVF APUNTADOR,W
CALL TABLA1
CALL DATO
INCF APUNTADOR,F
MOVLW .3
XORWF APUNTADOR,W
BTFSS STATUS,Z
GOTO SH
CLRF APUNTADOR
RETURN
TABLA ADDWF PCL,F
RETLW '0'
;POSICION 0 DE LA TABLA
RETLW '1'
RETLW '2'
RETLW '3'
RETLW '4'
RETLW '5'
RETLW '6'
RETLW '7'
;POSICION 7 DE LA TABLA
RETLW '8'
RETLW '9'
RETLW 'A'
RETLW 'B'
RETLW 'C'
RETLW 'D'
RETLW 'E'
RETLW 'F'
TABLA1 ADDWF PCL,F
RETLW 'P'
RETLW 'A'
;Tecla nº1 = 1
RETLW 'R'
;Tecla nº2 = 4

CONFPORTS BSF STATUS,RP0


MOVLW B'00000011'
MOVWF OPTION_REG
MOVLW .6
MOVWF ADCON1
MOVLW B'000010'
MOVWF TRISA
MOVLW B'11111111'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISD
MOVLW B'000'
MOVWF TRISE
BCF STATUS,RP0
CLRF PORTB
CLRF PORTC
RETURN

BORRARAM MOVLW 0X20


MOVWF FSR
SIGACLEAR CLRF INDF
INCF FSR
MOVLW 0X30
XORWF FSR,W
BTFSS STATUS,Z
GOTO SIGACLEAR
RETURN
;******************RUTINA DE INICIALIZACION DE LA LCD********************
INILCD MOVLW .6
CALL CONTROL
MOVLW .56
CALL CONTROL
MOVLW .12
CALL CONTROL
MOVLW .1
CALL CONTROL
MOVLW .128
CALL CONTROL
RETURN
;***********FIN DE RUTINA DE INICIALIZACION DE LA LCD********************
DATO BSF PORTE,RS
GOTO AHI1
CONTROL BCF PORTE,RS
AHI1 BSF PORTE,E
MOVWF PORTD
CALL RETARDOLESS
BCF PORTE,E
RETURN

RETARDOLESS MOVLW .5
MOVWF CONT1
CICLO1 MOVLW .250
MOVWF CONT0
CICLO0 NOP
DECFSZ CONT0,F
GOTO CICLO0
DECFSZ CONT1,F
GOTO CICLO1
RETURN
END

You might also like