LCD dsiplay driving me up the wall!
I am still fairly new to the whole PIC enviorment but not to microcontrollers in general. I have a parallel LCD display 2x16 and am trying to use the LCDOUT commands native to the PIC. I am unsing a PIC 16F687 and no matter what I try the screen stays all solid black boexs. i have checked to make sure the screen is not broken and have tried the screen in other devices I have and it seems to work fine. I have only changed one varible in the definitions at the begining of the program and that is the enable pin (I changed it to PORTB.4) other than that I simply want to display "hello" on the LCD screen. all 8 lines of my code are posted below if anyone has a suggestion as to how I can get some letters to display on my screen please I am open to all suggestions. FYI the screen is a powertip PC1602c screen. Much thanks for any info on this subject. As an add on, I know the LCD display I'm using has an 8 bit bus and the default LCD command uses a 4 bit bus, but I would be perfectly happy using only one line on my display as long as I can use it.
DEFINE LCD_EREG PORTB 'set LCD enable port
DEFINE LCD_EBIT 4
Loop:
pause 500
lcdout $FE,2, "hello"
pause 500
Goto Loop
END
Made the additions to my code but still solid blocks on screen
I added the code you suggested to mine with a few alterations becasue my b register didn't have enough ports so I had to shift a few things around but I still am only seeing solid black boexs. I threw an LED in the circuit to make sure the code was repeating correctly and the light blinked in perfect step. I have the LCD using only the 4 bit bus and I am using the upper 4 bits on the LCD display so A.0-A.3 is connected to D3-D7. R/W is grounded, and Enable is on B.5 while RS is on B.4. I can see the pulses coming off the pin with my O-scope so the chip seems to be working The only thing I can think of now is to add pull down resistors to the buslines, Any other suggestions I might be able to try? Thanks for the help so far, The new code i have is posted below minus the blinking LED.
DEFINE LCD_DREG PORTA 'LCD DATA BUS ON PORT B
DEFINE LCD_DBIT 0 'LCD DATA BUS ON PORTB.0:3
DEFINE LCD_RSREG PORTB 'R/S REGISTER ON PORT B
DEFINE LCD_RSBIT 4 'R/S ON PORTB.4
DEFINE LCD_EREG PORTB 'E-CLOCK ON PORT B
DEFINE LCD_EBIT 5 'E-CLOCK ON PORTB.5
DEFINE LCD_BITS 4 'DATA BUS 4 BITS
DEFINE LCD_LINES 2 'LCD DISPLAY LINES
Loop:
pause 500
lcdout $FE,2, "hello"
pause 500
Goto Loop
END