Thanks for the suggestion, I changed the code to
Code:
DEFINE OSC 8
        DEFINE LCD_DREG PORTB       ' Set LCD Data port
        DEFINE LCD_DBIT 0           ' Set starting Data bit (0 or 4) if 4-bit bus i.e, PortD.4-PORTD.7
        DEFINE LCD_RSREG PORTB      ' Set LCD Register Select port
        DEFINE LCD_RSBIT 4          ' Set LCD Register Select bit i.e, PORTC.5
        DEFINE LCD_EREG PORTB       ' Set LCD Enable port
        DEFINE LCD_EBIT 5           ' Set LCD Enable bit i.e, PORTE.4
        DEFINE LCD_BITS 4           ' Set LCD bus size ot 4 bit Upper Nibble (4 or 8 bits)
        DEFINE LCD_LINES 2         ' Set number of lines on LCD to 4 Lines
        DEFINE LCD_COMMANDUS 2000   ' Set command delay time in us
        DEFINE LCD_DATAUS 50        ' Set data delay time in us
but all I get is the same, a row of blocks on the 1st line of the LCD same as when you plug it in first with no program in the pic