No problem, just a question (LCD: 4 bit v. 8 bit)

Now to address some of the previous answers.

What would the other 4 pins get me?

To give a meaningful answer, it is most likely necessary to know what specific LCD you are using.

Most of the time I would agree with you, but not in this case. Since he is talking about "(LCD: 4 bit v. 8 bit)" he obviously is referring to the character mode LCDs driven by an HD44780 compatible controller. He verified this when he responded in reply #2. The answer is the same for all of them.

The display starts up in 4-bit mode. It uses 4 wires to communicate.

No and yes. The device actually starts up in 8-bit mode. Since it may actually be hooked up in a 4-bit system the first few instructions in the initialization sequence, the ones that are used to switch it out of the 8-bit mode if that is necessary, only require the use the of the upper four bits - the lower four bits are ignored even if they are hooked up.

You do cut down the transmission time considerably in 8-bit mode: rather than presenting your data once in 8 bits, you now have to represent your data twice in 4 bits. That does speed up the time.

That is true, but it may not help things in the long run. Lets do the math:

8-bit mode:
put the data in a register
output the data
pulse the enable line
wait until the controller is ready for the next byte of information

4-bit mode:
put the data in a register
output the upper four bits of datadata
pulse the enable line
(IMPORTANT: no delay is needed here)
shift or otherwise manipulate the data
output the data
pulse the enable line
wait until the controller is ready for the next byte of information

The instructions used to perform the tasks of manipulating the data and pulsing the enable line each take some small multiple of 62.5nS. The time it takes to do these instructions in either mode is much less than the time that you have to wait until the LCD controller is ready for the next byte of data.

So, if you are simply sending a string of characters to the LCD it really doesn't matter which mode you use. There are at least two ways you can speed things up: (1) by testing the busy flag to avoid having to wait the full 40 uS and (2) by doing something else while waiting for the 40 uS to elapse or for the busy flag to expire.

If you use either of these methods it may be possible to make the 8-bit interface perform better than the 4-bit interface, but don't forget to make sure not to get it too fast since you cannot pulse the enable bit more often than every 500nS.

Don