PDA

View Full Version : LCD dsiplay driving me up the wall!



agross
- 6th March 2008, 22:09
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

Dave
- 7th March 2008, 00:08
agross, It looks like you have forgotten a few lines of code, Try this sequence:

DEFINE LCD_DREG PORTB 'LCD DATA BUS ON PORT B
DEFINE LCD_DBIT 4 'LCD DATA BUS ON PORTB.4:7
DEFINE LCD_RSREG PORTB 'R/S REGISTER ON PORT B
DEFINE LCD_RSBIT 2 'R/S ON PORTB.2
DEFINE LCD_EREG PORTB 'E-CLOCK ON PORT B
DEFINE LCD_EBIT 3 'E-CLOCK ON PORTB.3
DEFINE LCD_BITS 4 'DATA BUS 4 BITS
DEFINE LCD_LINES 2 'LCD DISPLAY LINES

Dave Purola,
N8NTA

agross
- 7th March 2008, 19:20
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

Dave
- 7th March 2008, 19:51
agross, What actual display are you using? How do you have the contrast pin wired?

Dave Purola,
N8NTA

agross
- 7th March 2008, 23:16
I am using a powertip PC1602c LCD, I have the contrast set correctly because I can see the solid squares when I power the PIC and LCD panel up. The contrast pin is set by throing a pot on the bread board and then adjusting the wiper.

Archangel
- 8th March 2008, 06:05
Hello agross,
Install some code to flash an LED just so you know the PIC is working, set your contrast so the squares are barely visable, usually I simply ground that pin, and mine work. Check your breadboards connections, especially the Osc connections.
try:

FLAGS = 0 ' Forces LCD to initialize
pause 500 ' Allows the time
lcdout $FE,1 ' Clears LCD
lcdout $FE,2, "hello" ' Returns to beginning of line 1 and writes "string"

Check this link too . . .http://www.geocities.com/dinceraydin/lcd/commands.htm notice . . link has popup ads, not my link though . . .

Acetronics2
- 8th March 2008, 08:44
Hi, Agross

Did you see this Thread ???

http://www.picbasic.co.uk/forum/showthread.php?t=7871

Alain

mvs_sarma
- 8th March 2008, 09:15
While experts are already on job to help you on software front, I would suggest that you may put a schematic of what actually wired., in third dimension, irrespective of what your software speaks.

this will really help the experts to confirm your wiring with ref. to software, here again, we don't expect a schematic published by some one, as it won't help checking the actual wiring done by you.