Code PIC
Code PIC
MAIN
MOVLW START_ADDR ; SET THE STARTING
ADDRESS FOR EEPROM
MOVWF ADDR_INDEX
READ_CHAR
MOVF ADDR_INDEX,0 ; STARTING EEPROM
ADDRESS
MOVWF EEADR
BSF STATUS,RP0 ; SWITCH TO BANK 1
BSF EECON1,RD
BCF STATUS,RP0 ; SWITCH TO BANK 0
MOVF EEDATA,0
MOVWF CHAR ; LOAD THE CHAR THAT
WAS READ FROM EEPROM TO W
CALL WRITE_CHAR ; WRITE THE CHAR TO
DISPLAY
INCF ADDR_INDEX,1
INCF CHAR_COUNT,1
SHIFTRIGHT
MOVLW 0x1C ; SHIFT RIGHT
INSTRUCTION TO LCD
CALL MOVE_CURSOR_SHIFT_DISPLAY
DECFSZ TEMP,1
GOTO SHIFTRIGHT
SHIFTLEFT
MOVLW 0x18 ; SHIFT LEFT
INSTRUCTION TO LCD
CALL MOVE_CURSOR_SHIFT_DISPLAY
DECFSZ TEMP,1
GOTO SHIFTLEFT
GOTO SHIFTING
; FUNCTIONS
CLEAR_DISPLAY
MOVLW 0x01
MOVWF PORTB
BCF PORTA,1 ; R/S = 0 R/W = 0
BCF PORTA,0
CALL TOGGLE
RETURN
ENAB_DISPLAY_CURSOR
MOVLW 0x0D
MOVWF PORTB
BCF PORTA,1 ; R/S = 0 R/W = 0
BCF PORTA,0
CALL TOGGLE
RETURN
MOVE_CURSOR_SHIFT_DISPLAY
MOVWF PORTB ; THE VALUE PASSED IN W IS
SET TO PORTB
BCF PORTA,1 ; R/S = 0 R/W = 0
BCF PORTA,0
CALL TOGGLE
RETURN
WRITE_CHAR
MOVF CHAR,0 ; MOVE CHAR TO PORTB
MOVWF PORTB
BSF PORTA,1 ; R/S = 1 R/W = 0
BCF PORTA,0
CALL TOGGLE
RETURN
TOGGLE
BSF PORTA,2 ; SET ENABLE BIT
BCF PORTA,2 ; CLEAR ENABLE BIT
RETURN
END