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 upper(MYCOM) MOVWF TBLPTRU MOVLW high(MYCOM) MOVWF TBLPTRH MOVLW low(MYCOM) MOVWF TBLPTRL C1 TBLRD*+ MOVF TABLAT,W IORLW 0x0 BZ SEND_DAT CALL COMNWRT CALL DELAY BRA C1 SEND_DAT MOVLW upper(MYDATA) MOVWF TBLPTRU MOVLW high(MYDATA) MOVWF TBLPTRH MOVLW low(MYDATA) MOVWF TBLPTRL DT1 TBLRD*+ MOVF TABLAT,W IORLW 0x0 BZ OVER CALL DATAWRT CALL DELAY BRA DT1 OVER BRA OVER COMNWRT MOVWF LCD_DATA BCF LCD_CTRL,RS BCF LCD_CTRL,RW BSF LCD_CTRL,EN CALL SDELAY BCF LCD_CTRL,EN RETURN DATAWRT MOVWF LCD_DATA BSF LCD_CTRL,RS BCF LCD_CTRL,RW BSF LCD_CTRL,EN CALL SDELAY BCF LCD_CTRL,EN RETURN ORG 500H MYCOM DB 0x38,0x0E,0x01,0x06,0x84,0 MYDATA DB "HELLO",0 END