Searching \ for 'Re[2]: HD44780 LCD and 4-bit mode using 16F84' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: massmind.org/techref/io/lcd/pic.htm?key=lcd
Search entire site for: 'HD44780 LCD and 4-bit mode using 16F84'.

Truncated match.
PICList Thread
'Re[2]: HD44780 LCD and 4-bit mode using 16F84'
1997\12\09@171729 by ERIC SCHLAEPFER

flavicon
face
Hi Dave,  ( And everyone else who replied to my cry for help. )

Looks good. I'll have to try the file out. Also, if the I/O is write only,
that means a shift register could be put in to shift out 4-bit data using
only 2 I/O lines. Add 2 data lines to the E line and the C/D line, and you
have 4 I/O pins for the LCD. Not bad.

Thanks for all your help.

Later,

Eric




______________________________ Reply Separator _________________________________
Subject: Re: HD44780 LCD and 4-bit mode using 16F84
Author:  DREITEK <spam_OUTDREITEKTakeThisOuTspamAOL.COM> at INTERNET
Date:    12/9/97 4:06 PM


In a message dated 97-12-09 15:49:45 EST, you write:

<<

     Thanks in advance,

     Eric
 >>
Eric,
One more thing.....The code I sent in the previous Email, assumes that the RW
line on the LCD display is tied low.  That will save you one more I/O line.
For most things you don't need to read from the display anyway.

Dave Duley

1997\12\10@113138 by Tom Handley

picon face
  Eric, Dave and others have provided good advice but if your are going
to use the display in a write-only mode, study the timing of the commands.
For example, the Clear Display and Cursor Home commands require at least
1.64mS. The rest of the commands (excluding reading the Busy Flag which
does'nt apply in your case) requires at least 40uS.

  - Tom

At 02:15 PM 11/8/97 -0800, you wrote:
{Quote hidden}

_________________________________
{Quote hidden}

1997\12\10@120256 by Keith Howell

flavicon
face
Hi.

I've been using a VFD with a micro interface like many LCDs.
We learnt several things:
1. Takes a few 100 ms to get ready to read
2. Most actions are a few us but it was quicker to write a screen full of spaces
than to
use the Clear Display command.
3. The display will flicker if you repeatedly write characters to the screen.
       Dots that are off have no problem, but when they are on they do.
       Even if the characters stay the same, the intensity dips.
       Probably not noticed on LCDs though.
4. It was a real pig to ensure getting into the right mode (4-bit).
       You can't guarantee which mode it starts up in, so you need a procedure
       that gets to the mode you want from either mode.
5. I really wish the original designer had used 8-bit interface.
       This speeds up data transfer, and opens doors for optimisation.
       You could always have the high-nibble bits doing double duty.
       Keep the bit order clean. Saves many code bytes!

1997\12\10@124838 by DREITEK

picon face
In a message dated 97-12-09 18:12:19 EST, you write:

<<
Hi Dave,  ( And everyone else who replied to my cry for help. )

Looks good. I'll have to try the file out. Also, if the I/O is write only,
that means a shift register could be put in to shift out 4-bit data using
only 2 I/O lines. Add 2 data lines to the E line and the C/D line, and you
have 4 I/O pins for the LCD. Not bad.

Thanks for all your help.
 >>
Hello Eric,
There is one more thing... I think you have to have the port B weak pullups
turned off.  That is a faint and feeble memory so I would try it both ways.

Good luck
Dave

1997\12\10@125224 by DREITEK

picon face
In a message dated 97-12-10 11:36:03 EST, you write:

<<
   Eric, Dave and others have provided good advice but if your are going
to use the display in a write-only mode, study the timing of the commands.
For example, the Clear Display and Cursor Home commands require at least
1.64mS. The rest of the commands (excluding reading the Busy Flag which
does'nt apply in your case) requires at least 40uS.

   - Tom >>
Hello Tom!
I knew if I posted my quick and dirty code someone would pick it apart!  The
code was intended to get a display working in a bare minimum form to use as a
debugging tool.
The code does work as I have several devices around the shop that use it.  You
are correct in thinking that the timing might need to be altered for different
clock frequencies.  Oh well....

Dave Duley

1997\12\10@191032 by Peter Gee

picon face
Well, I am not normally into one up mans ship, but I think people may want to know that I have got an LCD working in 4 bit mode with three pins on the PIC.  Now, I am using compiled basic, so it will be slower than the guys using asm, who will have to pay more attention to timing.
I am using a standard PICF84, with an 8 bit serial to parallel shift register.

The PIC is connected to shift_data, shift_clock, and LCD_enable.
Data is sent to the writeLCD routine via an 11 bit variable in the form (8bit/4bit),RS,RW,D7-D0
The 8bit/4bit is required by my routine because the LCD would not initialise properly if I did not send the initial set up chars in 8bit (as mentioned somewhere in the dox)
Anyway my routine just shifts 4 bits of data, RS, RW then an enable pulse to the LCD (twice).

The other great thing is that I was all about to read bit7 to test the busy status of the LCD, but it worked fine without it, so I didn't bother !! ;-)
Another titbit is that if you don't want to change the character position of the display (ie move to second row, that sort of thing) and you aren't using the extended character set, then there is no need to use DB7

I still want to get I2C working with my LCD....... ;-)


At 02:15 PM 11/8/97 -0800, you wrote:
>Hi Dave,  ( And everyone else who replied to my cry for help. )
>
>Looks good. I'll have to try the file out. Also, if the I/O is write only,
>that means a shift register could be put in to shift out 4-bit data using
>only 2 I/O lines. Add 2 data lines to the E line and the C/D line, and you
>have 4 I/O pins for the LCD. Not bad.
>

1997\12\10@191432 by Peter Gee

picon face
Well, I am not normally into one up mans ship, but I think people may want to know that I have got an LCD working in 4 bit / write only mode with three pins on the PIC.  Now, I am using compiled basic, so it will be slower than the guys using asm, who will have to pay more attention to timing.
I am using a standard PIC F84 with an 8 bit serial to parallel shift register.

The pic is connected to shift_data, shift_clock, and LCD_enable.
Data is sent to the writeLCD routine via an 11 bit variable in the form (8bit/4bit),RS,RW,D7-D0
The 8bit/4bit is required by my routine because the LCD would not initialise properly if I did not send the initial set up chars in 8bit (as mentioned somewhere in the dox)
Anyway my routine just shifts 4 bits of data, RS, RW then an enable pulse to the LCD (twice).

The other great thing is that I was all about to read bit7 to test the busy status of the LCD, but it worked fine without it, so I didn't bother !! ;-)  This meant that I didn't really need to connect the RW wire, (RW is required to read busy status) but by that stage it was there and working.....  (if it don't broke don't fix it) ;-)

Another titbit is that if you don't want to change the character position of the display (ie move to second row, that sort of thing) and you aren't using the extended character set, then there is no need to use DB7

I still want to get I2C working with my LCD....... ;-)


At 02:15 PM 11/8/97 -0800, you wrote:
>Hi Dave,  ( And everyone else who replied to my cry for help. )
>
>Looks good. I'll have to try the file out. Also, if the I/O is write only,
>that means a shift register could be put in to shift out 4-bit data using
>only 2 I/O lines. Add 2 data lines to the E line and the C/D line, and you
>have 4 I/O pins for the LCD. Not bad.
>

1997\12\11@105252 by Tom Handley

picon face
  Dave, I was'nt referring to your code. Just pointing out to Eric that
he needs to watch the timing ;-)

  - Tom

At 12:43 PM 12/10/97 EST, you wrote:
{Quote hidden}

More... (looser matching)
- Last day of these posts
- In 1997 , 1998 only
- Today
- New search...