Hi Flotulopex,

Where are your DEFINES for the LCD?

Your program should start like this:
OSCCON = %01100000 'Internal RC set to 4MHZ

DEFINE LCD_DREG PortA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

TRISA = %00000000 'make Port A outputs
TRISB = %00000000 'make Port B outptuts

ADCON1 = 7 ' turns off adc
CMCON = 7 'turns off comparators

Pause 1000 'Wait for display to initialise

Main:
lcdout $FE, 1 'Clear LCD
lcdout $FE, 2 'Position cursor at home
lcdout "Hello World" 'Send "Hello World" to LCD on line 1
lcdout $FE, $C0 'Position cursor second line
lcdout "Second line" 'Send "Second line" to LCD on line 2
pause 1000 'Pause 1 second to see it
goto Main
end


The next problem I believe you have is you don't power your circuit from the programmer power. I'm assuming you are using ICSP programming. You should power the circuit from its own separate power supply. Do you have capacitors on the power supply lines? 10uF and .1uF on the 5 volt side of the voltage regulator going to the PIC. Make sure you have a .1uF across the PICs power leads as close as possible. Have a 100uF or 10uF and a .1uf across the input side of the voltage regulator also.

If you don't have a copy of the PBP manual then download one! There is a real nice example of how LCDOUT is suppose to be connected and programmed. Also the contrast pin of the LCD display is suppose to be connected to the wiper or center pin of a 5K potentiometer with one of the two remaining pins connected to +5vdc and the other side to ground. After you have all of this setup, if you are still getting blocks on the screen, then adjust the pot until the blocks are just barely seen. Then try your program.

This should help you get going!

BobK