I wrote this to display Geez on a lcd and it showed nothing. Can this be due to the code. Circuitry is the one in the manual next to lcdout. PIC 16F628A.
GreetingsCode:Define OSC 20
Go:
LCDOUT "Geez"
Sleep 100
GOTO Go
Printable View
I wrote this to display Geez on a lcd and it showed nothing. Can this be due to the code. Circuitry is the one in the manual next to lcdout. PIC 16F628A.
GreetingsCode:Define OSC 20
Go:
LCDOUT "Geez"
Sleep 100
GOTO Go
Whe you read the book that came with your version of picbasic you will see that some declarations must be made for the LCD.
In the declartions the display driver will know how much pins and where the pins come from.
like this:
Code:DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
I thought this was only necessary if you do not use the standard setup....
I tried and it did not change anything. So.
I got this:
Code:Define OSC 20
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
Go:
LCDOUT "Geez"
Sleep 100
GOTO Go
Let us see how you connected everything from the chip to the display.
Try to adjust the background voltage, may be that is the problem!
Put a pause of 1 sec. between the declaration and your programm. Maybe the display was not yet setup.
I have not told you yet that the LCD's functionality is not proven. I was given it by someone in a waste utilization for free.
How do I figure out whether it works or not? I was able to make the lcd's points show(two rows, all matrices black). What can I conclude from that?
selbstdual, If you can see all black pixels then it sounds like the contrast is set too high. How do you have the contrast circuit setup? It should be at minimum a 5k pot between VCC and ground with the center wiper connected to the contrast input pin.
Dave Purola,
N8NTA
Dave, does seeing the matrices mean that the display is working at all?
Try adding these 2 things:
Code:Define OSC 20
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
PAUSE 100
Go:
LCDOUT $FE,1,$FE,2,"Geez"
Sleep 100
GOTO Go
First of all I want to make sure that the lcd is working at all. How do I do that?
first, make sure that when you apply power, the top line of the LCD displays solid blocks. If this is the case, try the additions i suggested above.
If this is not the case, you probably need to have a contrast control for the LCD. You need a variable resistor and hook it up like this:
Code:LCD pin 3
|
| +5v
| |
| |
| \
| /
---->\ variable resistor (10k or bigger)
/
\
|
|
gnd
I am not sure if this is your problem, but you might want to try changing "Define OSC 20" to all capitals "DEEFINE OSC 20". The compiler may not recognize lower case in DEFINE statements.
Ben
Can we come back to the topic whether the display works or not? Actually the blocks are black, when power is applied. But does that mean that symbols can be displayed? How to figure that out?