Can't get any output in LCD with 18F2550
When using a parallel LCD in 4-bit mode you must take care about your initialisation routine.  By default the LCD will be in 8-bit mode, and you have to send it some very specific commands to put it into 4-bit mode.

You also have to worry about allowing enough delays between commands during the initialisation stage.  The datasheet for the LCD will tell you what delays must be observed for any pin-state change and also for any command that is executed.  Whilst debugging it would be a good idea to double these, and in practice it doesn't harm to leave them that way for the initialisation routine.

Once the LCD has initialised you have a choice about whether to use the LCD busy signal to determine when it is ready to receive data, or to use software delays.  If you use the latter you must take care to follow the advice in the datasheet.

In my experience, non-working LCDs almost always boil down to incorrect delays applied in the source code.