Charles,
Is there any particular reason that the 4 data bits and the controlling pins (ie. E, RW, RS) should be on different ports as I seem to see in most examples??
Or can they be "defined" to the same port without problem?
Hoops
Charles,
Is there any particular reason that the 4 data bits and the controlling pins (ie. E, RW, RS) should be on different ports as I seem to see in most examples??
Or can they be "defined" to the same port without problem?
Hoops
They can be defined on the same port. The only limitation that I'm aware of is that the DATA lines must start on a nybble boundary (either on bit 0 or 4)of a port.
Charles Linquist
hi thanks for your replys.
so to alter this code to run on a pic16h84 witch has o port h only A and B i make the following changes
start:
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_RWREG PORTA
DEFINE LCD_RWBIT 4
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 3000
DEFINE LCD_DATAUS 300
Main:
pause 1000
LCDOUT $FE, 1
LCDOUT $FE, 2, “Hello”
pause 1000
goto Main
with connections
1 - VSS
2 - VDD
3 - VC
4 - RS - PortA.4
5 - R/W - portA.4
6 - E - PortB.3
7 - Db0 -open
8- DB1 - open
9 - DB2 - open
10 DB3 - open
11 DB4 - portA.0
12 DB5 - portA.1
13 DB6 - portA.2
14 DB7 - portA.3
could some one please have a look at my data sheet for the display and check hat this setup will work with it
http://www.maplin.co.uk/Media/PDFs/N28AZ.pdf
thank you for your patience your help has shed a lot of light on the subject of lcd's for this newbie.
Assuming you have a Pull-Up resistor on the PORTA.4 pin, i think you MUST set them to LOW yourself.
You don't need to use the LCD R/W pin, just ground it and remove the according DEFINEs
AND you have two things on PORTA. RW and RS![]()
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
hi there thanks for the reply. ia have resistor on that pin
i have noticed the prob with rw and rs
here are my changes in code
start:
portA = low
PortB = low
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 3000
DEFINE LCD_DATAUS 300
Main:
pause 1000
LCDOUT $FE, 1
LCDOUT $FE, 2, “Hello”
pause 1000
goto Main
with connections
1 - VSS
2 - VDD
3 - VC
4 - RS - PortA.4
5 - R/W - Ground
6 - E - PortB.3
7 - Db0 -open
8- DB1 - open
9 - DB2 - open
10 DB3 - open
11 DB4 - portA.0
12 DB5 - portA.1
13 DB6 - portA.2
14 DB7 - portA.
Bookmarks