Driving static LCD displays

Most projects need to output information to people. Many projects use text LCD displays, which are very flexible and can provide a lot of readable information.

But many projects need to display only a little information. Maybe they need to be even cheaper. Perhaps there's only a small battery available and it needs to run for a long time. In these cases a statically driven LCD display or panel may be all that's needed.

IMAGE_00064.jpg

----------

Please support this site: If you find this information useful, interesting, or entertaining, please help me by voting for my entry on the MyPIC32 contest, and learn more about Microchip's new line of 32 bit microcontrollers. By viewing a few of the contest entries each week you will be eligible for community prizes, such as an iPod Touch. Thanks!

----------

How liquid crystal displays work
LCD stands for Liquid Crystal Display. The liquid crystal is sandwiched between two transparent electrodes on the inside of the pieces of glass. This material scatters light randomly when there's no voltage across the electrodes. When there is an AC current between the two electrodes the liquid crystal changes and forces any passing light to twist 90 degrees.

An LCD display has two polarizing filters, one on each side of the display (outside the glass, electrode, and liquid crystal sandwich). The polarizing filters only pass light at a certain angle. Further there's a mirror on the back of the entire sandwich.

Light is only allowed in the display at a certain angle through the front polarizer, it then passes through the back polarizer (which is at the same angle), bounces off the mirror, then goes back through the display and polarizers. Each time it goes through the display it scatters a little bit which is why they often appear grey when turned off.

When the electrodes are energized the liquid crystal material twists the incoming light 90 degrees - which is then blocked by the rear polarizer. That portion of the display then looks black.

If you rotate one of the polarizers then the display normally looks black, and energized segments appear grey.

Static vs. 1/2 vs. 1/3 vs. 1/4 vs. etc displays
A static LCD display generally has one large electrode on one side of the liquid crystal material called a "common", and a lot of smaller electrodes on the other side called "segments". This is the easiest to drive, and is what we'll be covering in this article.

1/2, 1/3, and 1/4 drive LCDs are multiplexed. This means that there are 2, 3, or 4 common, large electrodes on one side. The other segment electrodes are shared, so one segment electrode could activate several different areas of the display depending on which common is active. These are more complex, and require special drive waveforms. A future investigation of "bit-banging" these using a simple type of PWM signal would prove interesting, but there are many chips with built in controllers for these.

Matrix displays, such as used in the text LCD displays, cell phone LCDs, and larger panels use a different drive method which requires specialized driving chips. For the most part all these panels include the driving chips since the connections are so numerous. Many of the these panels also include controller chips, such as the ubiquitous HD44780, which allow simple commands to write text, draw, scroll, and even perform windowing operations on the display.

Driving a Static LCD display
So we finally come to the meat of this article - how do you drive a static LCD display?

There is a common line, and there are segment lines.

Step 1. Drive common to ground, drive "on" segments high, "off"
segments to ground.
Step 2. Wait for a period of time.
Step 3. Drive common high, drive "on" segments to ground, "off" segments high.
Step 4. Wait for a period of time.
Step 5. Goto 1

The period of time is determined by the display and manufacturer
suggestions - 30-90 complete cycles per second (ie, common will appear as a 30Hz to 90Hz square wave) are normal.

Static or non-multiplexed displays such as this are fairly simple, and easy to run with any microcontroller.

Note that LCDs are voltage sensitive - some are 5 volt, some are 3 volt. You can damage one by running it higher than designed. Running it lower than designed may not display anything, or it may simply appear as low contrast. Since the update rate is relatively slow you can easily drive them with several latches or directly with microcontroller pins.

The reason the common is driven high and low instead of just being tied to ground is that as the LCD builds up charge, the material stops twisting the light and it appears to disappear. Further the liquid crystal material may actually become damaged if you maintain a DC voltage on it for too long.

You have to keep switching the polarity of the electrodes to keep the segments "on". This is what makes multiplexed LCDs so difficult to drive - the off pins are actually running at a lower voltage than the on pins due to conflicts between the commons and the segments.

Example
Parts needed:

  • Microchip PIC16F877A (or another microcontroller with at least 24 I/O)
  • Lumex LCD-S301C31TR (simple 3 digit 7-segment LCD with decimals)
  • 32.768kHz crystal and associated caps (not needed if your microcontroller has an internal clock)
  • Breadboard and breadboard wire
  • Two AA batteries and a battery holder (or 3-5V power supply)

Tools needed:

  • PIC programmer and software (or programmer suitable for your chosen microcontroller)
  • CC5X C Compiler Free Edition (or something suitable for your microcontroller)

Files:

Schematic:

Click to enlarge

Notes:

  • When you program the PIC, turn off brown out detect, and set the oscillator to low speed crystal mode. The hex file does not include these settings.
  • The LCD display specified is actually designed for 5V. At the 3V I'm running at the display has low contrast - use a 5V supply for darker segments.