Hi all,
I have a couple of projects with 16F877a's and 4 line LCD panels working fine.
I wanted to do something smaller scale, and have a 16F84a and a 2x16 LCD. I have used this LCD in the past and it was fine. I have written a very short program just to get the LCD going, but alas it doesn't show anything... Below is my code:
On turn-on, the LCD enables (1st row black boxes, 2nd row blank) then waits the 1000 and clears the LCD. After that, I get nothing at all on the LCD, but the led blinks away happily.Code:define osc 4 ' Define LCD registers and bits DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 3 TRISA = %11111 butup var porta.0 butdn var porta.1 light var portb.1 light = 0 pause 1000 light = 1 lcdout $fe,1 Start: lcdout $fe,$80,"line one" lcdout $fe,$C0,"line two" pause 500 toggle light goto Start
I've done this before on a 16F88 I think (albeit a while ago) which is why it is frustrating me so.
Can anyone point out anything I've done wrong in the code? Do I need to declare anything else, etc? I have checked and rechecked the wiring many times, if no-one can point out anything I will have to source and test another LCD incase that is the problem.
Thanks in advance.
Dave




Bookmarks