LCD_DATA EQU PORTD LCD_CTRL EQU PORTB RS EQU RB0 RW EQU RB1 EN EQU RB2 CLRF TRISD CLRF TRISB BCF LCD_CTRL,EN CALL LDELAY MOVLW 0x38 CALL COMMAND CALL LDELAY MOVLW 0x0E CALL COMMAND CALL READY MOVLW 0x01 CALL COMMAND CALL READY MOVLW 0x06 CALL COMMAND CALL READY MOVLW 0x86 CALL COMMAND CALL READY MOVLW A'N' CALL DATA_DISPLAY CALL READY MOVLW A'O' CALL DATA_DISPLAY HERE BRA HERE COMMAND MOVWF LCD_DATA BCF LCD_CTRL,RS BCF LCD_CTRL,RW BSF LCD_CTRL,EN CALL SDELAY BCF LCD_CTRL,EN RETURN DATA_DISPLAY MOVWF LCD_DATA BSF LCD_CTRL,RS BCF LCD_CTRL,RW BSF LCD_CTRL,EN CALL SDELAY BCF LCD_CTRL,EN RETURN READY SETF TRISD BCF LCD_CTRL,RS BSF LCD_CTRL,RW BACK BSF LCD_CTRL,EN CALL SDELAY BCF LCD_CTRL,EN BTFSC LCD_DATA,7 BRA BACK CLRF TRISD RETURN END