Hi,

If you are not using the R/W pin then the communication is unidirectional. That is the PIC talks and the LCD listens. And there is a rare chance that your data lines are taking more current (if the LCD is not faulty). For the 18F452 you can start you program and dump the values of the stack and POR registers to a serial output. This way you know what is causing the PIC to reset. Assuming that your code is alright, the possibility is of a brownout. Try disconnecting the backlight (pin 15,16). This would drastically reduce the current consumtion of the LCD module and as suggested by dynamoben do use decoupling capacitors at both the PIC and LCD modules. If your LCD runs okay then you need to work on the PS. Maybe you are using a 78L05 which supplies a maximum current of 100ma. Also note that some LCD modules do not have limiting resistors in the backlight so you have to put one yourself. Also the LEDs inside the backlight are connected as series then parallel. So until unless you know the VFwd of the LED you would not be able to calculate your series resistor. A simple way of measuring this is put an arbitary resistor in the path of the backlight and measure the voltage across pin 15,16.

If you are using the R/W pin (only when you use the LCDIN command) then there can be a bus conflict (again rarely). Try increasing the command and data delays to the LCD. This may resolve your problem.

Regards

Sougata