You could save them in EEPROM so they are saved on power cycles.
COUNT1 EQU 60H
COUNT2 EQU 61H
COUNT3 EQU 62H
TABLE_TEMP EQU 63H
TABLE EQU 64H
ORG 0000H
;INITIALIZATION
MOVLW 0FH ;INITIALIZE ALL PORTS AS DIGITAL INPUTS
MOVWF ADCON1
MOVLW 07H ;CONFIGURE COMPARATORS FOR DIGITAL INPUTS
MOVWF CMCON
CLRF TRISB
CLRF PORTB
MOVLW B'00000000' ;PORTD IS CONFIGURED AS OUTPUTS
MOVWF TRISD
CLRF LATD
CLRF PORTD
MAIN
CALL LONG_DELAY ;DELAY USED AT START-UP TILL SUPPLY REACHES FULL VOLTAGE
FUNCTION_SET
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'00111100' ;SET LCD TO 8 BIT INTERFACE, SET TO 4 LINE MODE, 5x7 DOT FORMAT. (SEE 'CONTROL CODES TABLE' IN LCD DATASHEET FOR REFERENCE)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
DISPLAY_ON
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'00001100' ;TURN DISPLAY ON, CURSOR UNDERLINE OFF, CERSOR BLINK OFF. (SEE 'CONTROL CODES TABLE' IN LCD DATASHEET FOR REFERENCE)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'10000011' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CLRF TABLE ;CLEAR THE TABLE REGISTER TO BE ON THE SAFE SIDE
MESSAGE
MOVF TABLE,W ;MOVE THE VALUE OF Wreg TO TABLE. THIS IS DONE TO INCREMENT THE POINTER
CALL TEXT ;CALL TEXT ROUTINE
ANDLW 0FFH ; Check for NULL
BTFSC STATUS,2 ;ARE ALL CHARACTERS DISPLAYED...
;GOTO SEND ;...IF YES, GO TO THIS LABEL WHEN THE CHARACTERS ARE ALL DISPLAYED
GOTO DISPLAY_VALUE ;USE THIS INSTRUCTION IF A VALUE NEEDS TO BE DISPLAYED. IF NOT, REMOVE THIS INSTRUCTION AND USE THE ONE ABOVE (I.E. GOTO SEND)
BSF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
MOVWF PORTD ;MOVE THE CHARACTER TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
INCF TABLE,F ;INCREMENT THE TABLE REGISTER TO MOVE TO NEXT CHARACTER
GOTO MESSAGE ;GO BACK TO MASSAGE LABLE TO DISPLAY NEXT CHARACTER
TEXT
MOVWF TABLE_TEMP ;MOVE THE VALUE OF Wreg TO TABLE_TEMP REGISTER
BCF STATUS,0
RLCF TABLE_TEMP,F
MOVLW HIGH(mess) ; Get High address
BTFSC STATUS,0 ; If > 255
INCF WREG,W
MOVWF PCLATH
MOVLW LOW(mess) ; Get low address
ADDWF TABLE_TEMP,W ; add message pointer
BTFSC STATUS,0 ; if > 255
INCF PCLATH,F
MOVWF PCL
mess
RETLW 'T'
RETLW 'e'
RETLW 's'
RETLW 't'
RETLW 0H
DISPLAY_VALUE
MOVFF VALUE,PORTD ;MOVE THE VALUE OF REGISER 'VALUE' TO THE DATA PORT (PORTD)
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
GOTO SEND ;GO TO THIS LABEL WHEN FINISHED
PULSE_E
BSF PORTB,7
NOP
BCF PORTB,7
RETURN
LONG_DELAY
MOVLW .2
MOVWF COUNT1
MOVLW .69
MOVWF COUNT2
MOVLW .169
MOVWF COUNT3
loop
DECFSZ COUNT3
GOTO loop
DECFSZ COUNT2
GOTO loop
DECFSZ COUNT1
GOTO loop
RETURN
SMALL_DELAY
MOVLW .10
MOVWF COUNT2
LABEL2
CLRF COUNT1
LABEL1
DECFSZ COUNT1
GOTO LABEL1
DECFSZ COUNT2
GOTO LABEL2
RETURN
SEND
GOTO $ ; THIS WILL STOP THE MICRO FROM STARTING TO EXECUTRE THE PROGRAME AGAIN EVEN AFTER
; SENDING IT TO THE END DIRECTIVE
END
COUNT1 EQU 60H
COUNT2 EQU 61H
COUNT3 EQU 62H
TEMP_CHAR EQU 63H
ORG 0000H
;INITIALIZATION
MOVLW 0FH ;INITIALIZE ALL PORTS AS DIGITAL INPUTS
MOVWF ADCON1
MOVLW 07H ;CONFIGURE COMPARATORS FOR DIGITAL INPUTS
MOVWF CMCON
CLRF TRISB
CLRF PORTB
MOVLW B'00000000' ;PORTD IS CONFIGURED AS OUTPUTS
MOVWF TRISD
CLRF LATD
CLRF PORTD
MAIN
CALL LONG_DELAY ;DELAY USED AT START-UP TILL SUPPLY REACHES FULL VOLTAGE
;FUNCTION SET
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'00111100' ;SET LCD TO 8 BIT INTERFACE, SET TO 4 LINE MODE, 5x7 DOT FORMAT. (SEE 'CONTROL CODES TABLE' IN LCD DATASHEET FOR REFERENCE)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
;DISPLAY ON
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'00001100' ;TURN DISPLAY ON, CURSOR UNDERLINE OFF, CERSOR BLINK OFF. (SEE 'CONTROL CODES TABLE' IN LCD DATASHEET FOR REFERENCE)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
;LCD LOCATION
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11010011' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW 'A'
CALL SEND_CHAR
MOVLW 'B'
CALL SEND_CHAR
MOVLW 'C'
CALL SEND_CHAR
MOVLW 'D'
CALL SEND_CHAR
MOVLW 'E'
CALL SEND_CHAR
MOVLW 'F'
CALL SEND_CHAR
MOVLW 'G'
CALL SEND_CHAR
MOVLW 'H'
CALL SEND_CHAR
MOVLW 'I'
CALL SEND_CHAR
MOVLW 'J'
CALL SEND_CHAR
MOVLW 'K'
CALL SEND_CHAR
MOVLW 'L'
CALL SEND_CHAR
LINEEE
BRA LINEEE
SEND_CHAR
MOVWF TEMP_CHAR
MOVFF TEMP_CHAR,PORTD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
RETURN
CLEAR_LCD
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'000000001' ;TURN DISPLAY ON, CURSOR UNDERLINE OFF, CERSOR BLINK OFF. (SEE 'CONTROL CODES TABLE' IN LCD DATASHEET FOR REFERENCE)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
RETURN
PULSE_E
BSF PORTB,7
NOP
BCF PORTB,7
RETURN
LONG_DELAY
MOVLW .2
MOVWF COUNT1
MOVLW .69
MOVWF COUNT2
MOVLW .169
MOVWF COUNT3
loop
DECFSZ COUNT3
GOTO loop
DECFSZ COUNT2
GOTO loop
DECFSZ COUNT1
GOTO loop
RETURN
SMALL_DELAY
MOVLW .10
MOVWF COUNT2
LABEL2
CLRF COUNT1
LABEL1
DECFSZ COUNT1
GOTO LABEL1
DECFSZ COUNT2
GOTO LABEL2
RETURN
SEND
GOTO $ ; THIS WILL STOP THE MICRO FROM STARTING TO EXECUTRE THE PROGRAME AGAIN EVEN AFTER
; SENDING IT TO THE END DIRECTIVE
END
LINE6_LCD_MENU
BTFSC PORTB,1 ;CHECK DOWN SW
GOTO DOWN_MENU_ARROW ;IF PRESSED, MOVE ARROW DOWN AND INCREMENT THE MENU_ARROW REGISTER
BTFSC PORTB,2 ;CHECK UP SW
GOTO UP_MENU_ARROW ;IF PRESSED, MOVE ARROW UP AND DECREMENT THE MENU_ARROW REGISTER
BRA LINE6_LCD_MENU ;IF NONE OF THE SWITCHES IS PRESSED, GO TO LINE6_LCD_MENU
DOWN_MENU_ARROW ;MOVE ARROW DOWN
INCF MENU_ARROW ;INCREMENT THE MENU_ARROW REGISTER TO INDICATE THE LOCATION OF THE ARROW
MOVLW MENU_ARROW ;MOVE THE VALUE TO THE WORKING REG
SUBLW .3 ;SUB BY 3
BTFSS STATUS,Z ;SKIP IF RESULT NOT = 0
CALL LCD_ARROW_1 ;IF EQUAL TO 0, DISPLAY ARROW IN ROW 1
MOVLW MENU_ARROW
SUBLW .2
BTFSS STATUS,Z
CALL LCD_ARROW_3
MOVLW MENU_ARROW
SUBLW .1
BTFSS STATUS,Z
CALL LCD_ARROW_2
MOVLW .1
MOVWF REG1
MOVLW REG1
SUBLW .3
BTFSS STATUS,Z
CALL LCD_ARROW_3
MOVLW REG1
SUBLW .2
BTFSS STATUS,Z
CALL LCD_ARROW_2
MOVLW REG1
SUBLW .1
BTFSS STATUS,Z
CALL LCD_ARROW_1
;DISPLAY FIRST ARROW
LCD_ARROW_1
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11000000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW '>'
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'10010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
RETURN
;DISPLAY SECOND ARROW
LCD_ARROW_2
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11000000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'10010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW '>'
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
RETURN
;DISPLAY THIRD ARROW
LCD_ARROW_3
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11000000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'10010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW ' '
CALL SEND_CHAR
BCF PORTB,5 ;R/S SET TO LOW TO INDICATE THAT DATA BELOW IS A COMMAND
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW B'11010000' ;SET THE LOCATION OF THE CHARACTERS. "0x80"= line1, "0xC0"= line2, "0x90"= line3, "0xD0"= line4. To set column increase the value (ex."0x82"= line1 column 2)
MOVWF PORTD ;SEND THE ABOVE COMAND TO THE LCD
CALL PULSE_E ;PULSE THE E PIN TO ENABLE COMMAND TO ENTER LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
BSF PORTB,5 ;R/S IS SET TO DATA TRANSFER
BCF PORTB,6 ;R/W SET TO LOW TO INDICATE THAT WRITE COMMAND TO LCD
CALL SMALL_DELAY ;SMALL DELAY WHILE LCD IS BUSY
MOVLW '>'
CALL SEND_CHAR
RETURN
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?