OK... if you have it wired as per your DEFINEs... then add PAUSE 1000 before you do your first output to the LCD... most LCD's need time to wake up following a power-on, you could be throwing data at it before it's ready and initialised.