Thanks for the help, but...
The define I actually used was
Define LCD_DREG PORTD
Define LCD_DBIT 0
The '8' appeared as an artifact of my clumsy attempt to paste the code into the message.
As far as the 'missing' defines from page 173, they are listed on page 170 of the PBP3 manual as the defaults, so they shouldn't be needed. But... I copied the defines straight from the manual, put them in my code and the result was the same - not working.
I put in some code to flash an LED on portc.3 to confirm that the program was actually running. It is. The LED is flashing at the rate I would expect from the OSC frequency and pause statements.
I've triple checked that I have the appropriate .1uf capacitors across Vss and Vdd at the pins on the 887.
I've checked that the 20k trimmer is providing 0 to 5V to pin 3 of the display. I've tried adjusting the trimmer from one end to the other. The only display is a complete line of filled boxes on the first line and nothing on the second line.
I have checked the wiring from the chip pins to the LCD pins with an ohmmeter: They are connected as expected and there appear to be no shorts or cross-connections. I've checked Vdd to be at 5.1 volts (within spec). Unfortunately, my 'scope is out for repair so I can't really check the timing. My trusty (single line) logic probe shows activity on all of the LCD data pins and the RS and E pins.
I've messed with the timing defines, tried two different LCDs of different manufacture and two different 887 chips. As I said before, both LCDs work correctly with a pic-based MIDIBox core module.
The LCDs are 4 line x 16 character. I've tried both DEFINE LCD_LINES 2 and DEFINE LCD_LINES 4. Neither worked.
Needless to say I am very frustrated. It must be something simple I am missing, but I am at a loss. Has anyone actually tried these routines in PBP V3 and gotten them to work?
LCD Test v1-3a.txt
Bookmarks