LCD + 74HC595 Module

It’s been a while since this idea (to control a LCD module with a shift register) appeared.
There are several variants, different registers, different schematics, different libraries.

Even if using a shift register to increase the number of digital outputs it is a common technique (even trivial), using it to drive a LCD module is little tricky.

At first, Hitachi HD44780 LCD compatible can be controlled in two modes: 8-bit mode and 4-bit mode.

Though the name “8 bit” suggests that we need only 8 pins, in fact we need 8 data pins + 1 EN pin + 1 RS pin = 10 pins/bits. A single 8-bit register is insufficient. Either we use two 8-bits registry, or use LCD in 4-bit mode.

In 4-bit mode we need 4 data pins + 1 EN pin + 1 RS pin = 6 pins/bits. This is the solution that I have chosen for myself. Also I opted for register SN74HC595. It is easy to find and at a low price (and I already had a pile…).

So I decided to try my own project with the following motivation:

  • I want to validate hardware (schematic, specific IC)
  • … to validate software (try/adapt/test library)
  • … and to make a reusable project with gEDA, ready to be included in future designs
  • not least, I want to have a quick, temporary and less messy solution when experimenting with different development boards

After searching more or less, I stopped at this article:


I followed the connections mentioned in the above article, but I made small modifications. To keep things as simple as possible I did not use the two remaining bits to control backlight or another LED. You will also notice that I did not put current limiting resistor for backlight LED. No need, because all LCD modules (text lcd modules) already have this resistor. I fed this LED from a lab source and I notice that current consumption was ~20 mA at 5V.




Using LiquidCrystal595.h library and modified example:



Updated: July 19, 2016 — 5:58 pm


Add a Comment
  1. I am really impressed with your design. However, I have difficulty cascading using a 2nd ‘595 to drive some additional outputs.
    For details please see
    If you can help please let me know.
    Warm wishes,

  2. Tried this circuit.Works well..thanks .

    1. You’re welcome! I’m glad to hear that. Thank you for feedback!

Leave a Reply

Your email address will not be published. Required fields are marked *

OpenHardware.Ro © 2017 Frontier Theme