You are on page 1of 8

LIST p=16F84A

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

INCLUDE <P16F84A.INC>

STATUS EQU 0X03

PORTA EQU 0X05

PORTB EQU 0X06

TRISA EQU 0X85

TRISB EQU 0X86

LCD_LINEA1 EQU 80

LCD_LINEA2 EQU 0C0

LCD_CLR EQU 01

LCD_CASA EQU 02

LCD_INC EQU 06

LCD_DEC EQU 04

LCD_ON EQU 0C

LCD_OFF EQU 08

CURSOR_ON EQU 0E

CURSOR_OFF EQU 0C

CURSOR_PARP EQU 0F

LCD_IZDA EQU 18

LCD_DECHA EQU 1C

CURSOR_IZDA EQU 10

CURSOR_DECHA EQU 14

LCD_FUNCIN EQU 38

LCD_CGRAM EQU 40
CBLOCK 0x0D

ENDC

ORG 00

INICIO

bsf STATUS,RP0

movlw b'00011000'

movwf TRISA

clrf TRISB

bcf STATUS,RP0

clrf PORTA

clrf PORTB

movlw LCD_FUNCIN

call LCD_COMANDO

call PAUSA_5ms

movlw LCD_FUNCIN

call LCD_COMANDO

call PAUSA_5ms

movlw LCD_FUNCIN

call LCD_COMANDO

call PAUSA_5ms

movlw LCD_CLR

call LCD_COMANDO

movlw LCD_INC

call LCD_COMANDO

movlw LCD_ON
call LCD_COMANDO

movlw 80

call LCD_COMANDO

ver

movlw 80

call LCD_COMANDO

movlw 'B'

call LCD_CARACTER

movlw 'L'

call LCD_CARACTER

movlw 'O'

call LCD_CARACTER

movlw 'G'

calL LCD_CARACTER

movlw ' '

calL LCD_CARACTER

movlw 'R'

call LCD_CARACTER

movlw 'O'

call LCD_CARACTER

movlw 'B'

call LCD_CARACTER

movlw 'O'

calL LCD_CARACTER
movlw 'T'

call LCD_CARACTER

movlw ' '

call LCD_CARACTER

movlw 'R'

call LCD_CARACTER

movlw 'H'

call LCD_CARACTER

movlw 0C0

call LCD_COMANDO

movlw 'E'

call LCD_CARACTER

movlw 'L'

call LCD_CARACTER

movlw 'E'

call LCD_CARACTER

movlw 'C'

calL LCD_CARACTER

movlw 'T'

calL LCD_CARACTER

movlw 'R'

call LCD_CARACTER

movlw 'O'

call LCD_CARACTER

movlw 'N'
calL LCD_CARACTER

movlw 'I'

calL LCD_CARACTER

movlw 'C'

call LCD_CARACTER

movlw 'A'

call LCD_CARACTER

sleep

subrutinas

CBLOCK

CONTA1

CONTA2

GUARDA_CARCTER

ENDC

PAUSA_5ms

movlw 7

movwf CONTA2

clrf CONTA1

RETRASO1

decfsz CONTA1,1

goto RETRASO1

decfsz CONTA2,1

goto RETRASO1

return

LCD_COMANDO
clrf PORTA

movwf PORTB

call LCD_CHEQUEA

goto LCD_HABILITA

LCD_CARACTER

clrf PORTA

call LCD_CARCTER_ESPECIAL

movwf PORTB

call LCD_CHEQUEA

bsf PORTA,0

goto LCD_HABILITA

LCD_CARCTER_ESPECIAL

movwf GUARDA_CARCTER

sublw ''

btfss STATUS,Z

goto LCD_EE_MAYSCULA

movlw b'11101110'

movwf GUARDA_CARCTER

goto LCD_FIN_CARACTER_ESP

LCD_EE_MAYSCULA

movfw GUARDA_CARCTER

sublw ''

btfss STATUS,Z

goto LCD_GRADO
movlw b'11101110'

movwf GUARDA_CARCTER

goto LCD_FIN_CARACTER_ESP

LCD_GRADO

movfw GUARDA_CARCTER

sublw ''

btfss STATUS,Z

goto LCD_FIN_CARACTER_ESP

movlw b'11011111'

movwf GUARDA_CARCTER

LCD_FIN_CARACTER_ESP

movfw GUARDA_CARCTER

return

LCD_CHEQUEA

bsf STATUS,RP0

movlw 0FF

movwf TRISB

bcf STATUS,RP0

bcf PORTA,0

bsf PORTA,1

BUCLE

bsf PORTA,2

movf PORTB,0

bcf PORTA,2
addlw 84

btfsc STATUS,C

goto BUCLE

bsf STATUS,RP0

clrf TRISB

bcf STATUS,RP0

bcf PORTA,1

return

LCD_HABILITA

bsf PORTA,2

nop

bcf PORTA,2

return

END

You might also like