Beruflich Dokumente
Kultur Dokumente
__CONFIG _BOREN_ON&_CP_OFF&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_ON&_XT_OSC
;*******************************************************************************
;* PAGINACAO DE MEMORIA *
;*******************************************************************************
BANK0 MACRO ;MACRO PARA SELECAO DO BANCOO
BCF STATUS,RP0 ;IMPOE 0 NO BIT 5 DO REGISTRADOR STATUS
BCF STATUS,RP1 ;IMPOE O NO BIT 6 DO REGISTRADOR STATUS
ENDM ;FIM DE MACRO
BANK1 MACRO ;MACRO PARA SELECAO DO BANCO 1
BSF STATUS,RP0 ;IMPOE 1 NO BIT 5 DO REGISTRADOR STATUS
BCF STATUS,RP1 ;IMPOE O NO BIT 6 DO REGISTRADOR STATUS
ENDM ;FIM DE MACRO
BANK2 MACRO ;MACRO PARA SELECAO DO BANCO 2
BCF STATUS,RP0 ;IMPOE 0 NO BIT 5 DO REGISTRADOR STATUS
BSF STATUS,RP1 ;IMPOE 1 NO BIT 6 DO REGISTRADOR STATUS
ENDM ;FIM DE MACRO
BANK3 MACRO ;MACRO PARA SELECAO DO BANCO 3
BSF STATUS,RP0 ;IMPOE 1 NO BIT 5 DO REGISTRADOR STATUS
BSF STATUS,RP1 ;IMPOE 1 NO BIT 6 DO REGISTRADOR STATUS
ENDM ;FIM DE MACRO
;******************************************************************************
;* VARIAVEIS *
;******************************************************************************
CBLOCK 0x20 ;ENDERECO INICIAL DA MEMORIA DE STATUS
W_TEMP
STATUS_TEMP
TEMPO0 ;VARIAVEL DE TEMPO DA ROTINA DELAY_MS
TEMPO1 ;VARIAVEL DE TEMPO DA ROTINA DELAY_MS
TMPLCDREGISTER:2 ;VARIAVEL TMPLCDREGISTER 2 BYTES
DEZESEIS1
DEZESEIS2
VAR1
VAR2
MAX
MIN
FLAG01 ;FLAG O1 REGISTRADOR DE FLAGS
ENDC ;FIM DO BLOCO DE MEMORIA
;******************************************************************************
;* FLAGS INTERNOS *
;******************************************************************************
; DEFINICAO DE TODOS OS FLAGS DO SISTEMA
;
;******************************************************************************
;* CONSTANTES *
;******************************************************************************
;NOME DA VARIAVEL EQU LITERAL
;******************************************************************************
;* DEFINCAO DAS ENTRADAS *
;******************************************************************************
;******************************************************************************
; DEFINICAO DAS SAIDAS *
;******************************************************************************
#DEFINE LCD_RS PORTB,1 ;DEFINE LCD_RS COMO BIT1 DO PORTB
#DEFINE LCD_E PORTB,0 ;DEFINE LCD_E COMO BIT0 DO PORTB
#DEFINE LCD_DB4 PORTA,0 ;DEFINE LCD_DB4 COMO BIT2 DO PORTA
#DEFINE LCD_DB5 PORTA,1 ;DEFINE LCD_DB5 COMO BIT4 DO PORTA
#DEFINE LCD_DB6 PORTA,2 ;DEFINE LCD_DB6 COMO BIT6 DO PORTA
#DEFINE LCD_DB7 PORTA,3 ;DEFINE LCD_DB7 COMO BIT7 DO PORTA
;******************************************************************************
; VETOR DE RESET *
;******************************************************************************
ORG 0X00 ;ENDERECO INICIAL DE PROCESSAMENTO
GOTO INICIO ;IR PARA O INICIO
;******************************************************************************
;* INICIO DA INTERRUPCAO *
;******************************************************************************
ORG 0x04 ;ENDERECO INICIAL DA INTERRUPCAO
MOVWF W_TEMP ;COPIA W PARA W_TEMP
SWAPF STATUS,W ;SWAPF NO VALOR DE STATUS E GUARDA EM W
MOVWF STATUS_TEMP ;MOVE VALOR DE W PARA SATATUS_TEMP
;******************************************************************************
;* ROTINA DE INTERRUPCAO *
;******************************************************************************
;AQUI SERAO ESCRITAS AS ROTINAS DE RECONHECIMENTO E TRATAMENTO DAS INTERRUPCOES
;******************************************************************************
;* ROTINA DE SAIDA DE INTERRUPCAO *
;******************************************************************************
SAI_INT
SWAPF STATUS_TEMP,W ;SWAPF NO VALOR DE STATUS E GUARDA EM W
MOVWF STATUS ;MOVE STATUS_TEMP PARA STATUS
SWAPF W_TEMP,F ;SWAPF NO VALOR DE W_TEMP E GUARDA EM F
SWAPF W_TEMP,W ;MOVE W_TEMP PARA W
RETFIE ;FINAL DA ITERRUPCAO
;******************************************************************************
;* ROTINAS *
;******************************************************************************
DELAY_50MS
MOVLW .99 ;MOVE LITERAL PARA W
MOVWF TEMPO0 ;MOVE VALOR DE W PARA O ARQUIVO TEMPO0
LOOP1 ;MARCADOR
MOVLW .167 ;MOVE VALOR DE LITERAL PARA W
MOVWF TEMPO1 ;MOVE VALOR DE W PARA O ARQUIVO TEMPO
LOOP2 ;MARCADOR
DECFSZ TEMPO1,F ;DECREMENTA VARIAVEL TEMPO1, E GUARDA NELA MESMA
GOTO LOOP2 ;RETORNA PARA O LOOP 2
DECFSZ TEMPO0,F ;DECREMENTA VARIAVEL TEMPO0, E GUARDA NELA MESMA
GOTO LOOP1 ;RETORNA PARA O LOOP 1
RETURN ;ENCERRA ROTINA
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ROTINA DE DELAY (DE 1MS AT� 256MS) *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA � UMA ROTINA DE DELAY VARI�VEL, COM DURA��O DE 1MS X O VALOR PASSADO
; EM WORK (W).
; EXEMPLO DE 250MS
; MOVLW .250
; CALL DELAY_MS
; EXEMPLO DE 50MS
; MOVLW .50
; CALL DELAY_MS
DELAY_MS
MOVWF TEMPO1 ;CARREGA TEMPO1 (UNIDADES DE 10MS)
LOOP4
MOVLW .198
MOVWF TEMPO0 ;MOVE VALOR DE W PARA O ARQUIVO TEMPO
LOOP3
DECF TEMPO0,F
MOVF TEMPO0,W
BTFSS STATUS,Z
GOTO LOOP3
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
DECFSZ TEMPO1,F ; FIM DE TEMPO1 ?
GOTO LOOP4 ; N�O - VOLTA 11 INSTRU��ES
; SIM
RETURN ; RETORNA
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ROTINA DE DELAY DE 1S *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
DELAY_1S
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
RETURN ;ENCERRA ROTINA
;******************************************************************************
;* SUBROTINAS *
;******************************************************************************
;**********************************************************************
; SUBROTINAS PARA ESCRITA EM LCD 16X2, COMUNICACAO A 4 BITS
; INIT LCD
; THIS SUBROUTINE MUST BE CALLED BEFORE EACH OTHER LCD SUBROUTINE
;**********************************************************************
LCDINIT
MOVLW 30 ;WAIT 30 MS
CALL DELAY_MS
;****************
; RESET SEQUENCE
;****************
BSF LCD_DB4
BSF LCD_DB5
BCF LCD_DB6
BCF LCD_DB7
BSF LCD_E ;ENABLES LCD
MOVLW 5 ;WAIT 5 MS
CALL DELAY_MS
BCF LCD_E ;DISABLES LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BSF LCD_E ;ENABLES LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BCF LCD_E ;DISABLES LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BSF LCD_E ;ENABLES E
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BCF LCD_E ;DISABLES E
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BCF LCD_DB4
BSF LCD_DB5
BCF LCD_DB6
BCF LCD_DB7
BSF LCD_E ;ENABLES LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BCF LCD_E ;DISABLED LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
MOVLW 06H;00000110
CALL LCDSENDCOMMAND
GOTO LCD01
;DISPLAY ON, CURSON ON, BLINK OFF
;GOTO LCD01
;GOTO LCD02
LCD01 ;DISPLAY ON, CURSON OFF, BLINK OFF
MOVLW 0CH
CALL LCDSENDCOMMAND
;CLEAR DISPLAY
; CALL LCDCLEAR
RETURN
LCD02 ;DISPLAY ON, CURSOR OFF, PULSANTE BLOCO NEGRO
MOVLW 0DH
CALL LCDSENDCOMMAND
;CLEAR DISPLAY
; CALL LCDCLEAR
RETURN
LCD03 ;DISPLAY ON, CURSOR ON, PULSANTE BLOCO NEGRO
MOVLW 0FH
CALL LCDSENDCOMMAND
;CLEAR DISPLAY
; CALL LCDCLEAR
RETURN
LCD04 ;DISPLAY ON, CURSOR ON, PULSANTE OFF
MOVLW 0EH
CALL LCDSENDCOMMAND
;CLEAR DISPLAY
; CALL LCDCLEAR
RETURN
;**********************************************************************
; CLEAR LCD
;**********************************************************************
LCDCLEAR
;CLEAR DISPLAY
MOVLW 01H
CALL LCDSENDCOMMAND
MOVLW 2 ;WAIT 2 MS
CALL DELAY_MS
MOVLW 80H;
CALL LCDSENDCOMMAND
RETURN
;**********************************************************************
; LOCATE CURSOR ON LCD
; W = D7-D4 ROW, D3-D0 COL
;**********************************************************************
LCDLOCATE
MOVWF TMPLCDREGISTER+0
MOVLW 80H
MOVWF TMPLCDREGISTER+1
MOVF TMPLCDREGISTER+0,W
ANDLW 0FH
IORWF TMPLCDREGISTER+1,F
BTFSC TMPLCDREGISTER+0,4
BSF TMPLCDREGISTER+1,6
MOVF TMPLCDREGISTER+1,W
CALL LCDSENDCOMMAND
RETURN
;**********************************************************************
; SEND A DATA TO LCD
;**********************************************************************
LCDSENDDATA
BSF LCD_RS
CALL LCDSENDBYTE
RETURN
;**********************************************************************
; SEND A COMMAND TO LCD
;**********************************************************************
LCDSENDCOMMAND
BCF LCD_RS
CALL LCDSENDBYTE
RETURN
;**********************************************************************
; SEND A BYTE TO LCD BY 4 BIT DATA BUS
;**********************************************************************
LCDSENDBYTE
;SAVE VALUE TO SEND
BCF LCD_DB4
BCF LCD_DB5
BCF LCD_DB6
BCF LCD_DB7
BTFSC TMPLCDREGISTER,0
BSF LCD_DB4
BTFSC TMPLCDREGISTER,1
BSF LCD_DB5
BTFSC TMPLCDREGISTER,2
BSF LCD_DB6
BTFSC TMPLCDREGISTER,3
BSF LCD_DB7
BSF LCD_E ;ENABLES LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
BCF LCD_E ;DISABLED LCD
MOVLW 1 ;WAIT 1MS
CALL DELAY_MS
RETURN
;
***********************************************************************************
*************************
;ALFABETO
LA
MOVLW 'A' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LB
MOVLW 'B' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LC
MOVLW 'C' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LD
MOVLW 'D' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LE
MOVLW 'E' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LF
MOVLW 'F' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LG
MOVLW 'G' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LH
MOVLW 'H' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LI
MOVLW 'I' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LJ
MOVLW 'J' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LL
MOVLW 'L' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LM
MOVLW 'M' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LN
MOVLW 'N' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LO
MOVLW 'O' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LP
MOVLW 'P' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LQ
MOVLW 'Q' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LR
MOVLW 'R' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LS
MOVLW 'S' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LT
MOVLW 'T' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LU
MOVLW 'U' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LV
MOVLW 'V' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LX
MOVLW 'X' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
LZ
MOVLW 'Z' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L0
MOVLW '0' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L1
MOVLW '1' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L2
MOVLW '2' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L3
MOVLW '3' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L4
MOVLW '4' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L5
MOVLW '5' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L6
MOVLW '6' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L7
MOVLW '7' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L8
MOVLW '8' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
L9
MOVLW '9' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
ESPACO
MOVLW ' ' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
PONTO
MOVLW '.' ;ENVIA O CARACTER PARA O WORK
CALL LCDSENDDATA ;SALTA PARA SUBROTINA DE ESCRITA NO LCD
RETURN
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;ROTINA QUE LIGA TODOS OS CARACTERES POR 3 SEGUNDOS
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
TESTA_LCD
VERSAO
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X1C ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW .250
CALL DELAY_MS ;CHAMAR ROTINA DE TEMPO DE 250m SEGUNDOS;
MOVLW 0X18 ; DESLOCA O TEXTO PARA DIREITA
CALL LCDSENDCOMMAND
MOVLW 0X20 ;MOVE O VALOR HEXADECIMAL PARA WORK
CALL LCDLOCATE
CALL LD
MAIN
GOTO MAIN
;******************************************************************************
END ;FIM DA PROGRAMACAO