See attached, for settings and code.
On the Microchip forum, I was given this info:
Most example LCD code is written for chips operating a bit slower than the 48 MHz that the 18F USB chips can run. Much of the code also uses dead-loop timing (executing NOP instructions) to set the timing. You may very well be violating one or more of the timing requirements of the LCD.
You have several options:
1) Change the PIC's configuration to run the CPU at a slower clock rate to see if the timing is the problem. (Even with the PLL enabled, you can run the CPU as low as 16 MHz by just changing the CPUDIV value to divide-by-6. Lower frequencies can be set by disabling the PLL.) If the LCD works at the lower clock speed, you can proceed to either step 2 or 3 to resolve the problem. If not, there's something other than the timing causing the problem.
2) Check the code with the MPLAB simulator to ensure that all of the timing for the LCD control signals meets all of the timing requirements as specified in the LCD datasheet.
3) Check the controls signals with an oscilloscope rather than using the MPLAB simulator.
Bookmarks