Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use 74HC595 Display: Examples, Pinouts, and Specs

Image of 74HC595 Display
Cirkit Designer LogoDesign with 74HC595 Display in Cirkit Designer

Introduction

The 74HC595 is an 8-bit serial-in, parallel-out shift register with an output latch. It is widely used in electronics projects to expand the number of output pins available on a microcontroller. By serially shifting data into the 74HC595, you can control up to 8 output pins using only 3 pins from your microcontroller. This makes it ideal for applications such as driving LED displays, controlling relays, or managing other digital outputs.

Explore Projects Built with 74HC595 Display

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano Controlled TFT Display with Multiple Pushbuttons
Image of rey: A project utilizing 74HC595 Display in a practical application
This circuit features an Arduino Nano microcontroller connected to a ST7735 128x128 1.44 TFT I2C Color display and multiple pushbuttons. The display is interfaced with the Arduino via digital pins for control signals and SPI pins for data transfer. The pushbuttons are connected to various digital and analog input pins on the Arduino, likely intended for user input to control the display or other functions within the code.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino 101 OLED Display Animation Project
Image of wokwi animater test: A project utilizing 74HC595 Display in a practical application
This circuit consists of an Arduino 101 microcontroller connected to a 0.96" OLED display via I2C communication. The Arduino runs a program that initializes the OLED and continuously displays an animated sequence of frames on the screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled LCD Interface with Pushbutton Inputs
Image of MacroDisplay: A project utilizing 74HC595 Display in a practical application
This circuit features a Nano 3.0 ATmega328P microcontroller connected to a 16x2 I2C LCD display for output. Two pushbuttons, each with a 10k Ohm pull-down resistor, are connected to digital pins D2 and D3 of the microcontroller for input. The LCD and pushbuttons are powered by the 5V output from the microcontroller, and all components share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO-Based OLED Display with Dual Pushbutton Control
Image of pong game: A project utilizing 74HC595 Display in a practical application
This circuit features an Arduino UNO microcontroller interfaced with a 0.96" OLED display and two pushbuttons. The OLED display is connected to the Arduino via the I2C protocol (SCK to A5 and SDA to A4), while the pushbuttons are connected to digital pins D2 and D3 for user input. The setup is likely intended for a simple interactive display application.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with 74HC595 Display

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of rey: A project utilizing 74HC595 Display in a practical application
Arduino Nano Controlled TFT Display with Multiple Pushbuttons
This circuit features an Arduino Nano microcontroller connected to a ST7735 128x128 1.44 TFT I2C Color display and multiple pushbuttons. The display is interfaced with the Arduino via digital pins for control signals and SPI pins for data transfer. The pushbuttons are connected to various digital and analog input pins on the Arduino, likely intended for user input to control the display or other functions within the code.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of wokwi animater test: A project utilizing 74HC595 Display in a practical application
Arduino 101 OLED Display Animation Project
This circuit consists of an Arduino 101 microcontroller connected to a 0.96" OLED display via I2C communication. The Arduino runs a program that initializes the OLED and continuously displays an animated sequence of frames on the screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MacroDisplay: A project utilizing 74HC595 Display in a practical application
Arduino Nano Controlled LCD Interface with Pushbutton Inputs
This circuit features a Nano 3.0 ATmega328P microcontroller connected to a 16x2 I2C LCD display for output. Two pushbuttons, each with a 10k Ohm pull-down resistor, are connected to digital pins D2 and D3 of the microcontroller for input. The LCD and pushbuttons are powered by the 5V output from the microcontroller, and all components share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of pong game: A project utilizing 74HC595 Display in a practical application
Arduino UNO-Based OLED Display with Dual Pushbutton Control
This circuit features an Arduino UNO microcontroller interfaced with a 0.96" OLED display and two pushbuttons. The OLED display is connected to the Arduino via the I2C protocol (SCK to A5 and SDA to A4), while the pushbuttons are connected to digital pins D2 and D3 for user input. The setup is likely intended for a simple interactive display application.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Driving 7-segment LED displays
  • Controlling LED matrices
  • Expanding GPIO pins on microcontrollers
  • Managing relays or other digital devices
  • Creating cascading shift registers for larger output arrays

Technical Specifications

The 74HC595 is a versatile and efficient component. Below are its key technical details:

Parameter Value
Supply Voltage (Vcc) 2V to 6V
Input Voltage Range 0V to Vcc
Maximum Clock Frequency 25 MHz (at 4.5V)
Output Current (per pin) ±6 mA
Total Output Current 70 mA (maximum for all pins)
Operating Temperature -40°C to +125°C
Package Types DIP-16, SOIC-16, TSSOP-16

Pin Configuration and Descriptions

The 74HC595 has 16 pins, as described in the table below:

Pin Number Pin Name Description
1 Q1 Parallel output pin 1
2 Q2 Parallel output pin 2
3 Q3 Parallel output pin 3
4 Q4 Parallel output pin 4
5 Q5 Parallel output pin 5
6 Q6 Parallel output pin 6
7 Q7 Parallel output pin 7
8 GND Ground (0V)
9 Q7' Serial data output for cascading multiple 74HC595 chips
10 MR Master reset (active low, clears all outputs when pulled low)
11 SH_CP Shift register clock input (data is shifted on the rising edge of this clock)
12 ST_CP Storage register clock input (latches data to outputs on the rising edge)
13 OE Output enable (active low, enables outputs when pulled low)
14 DS Serial data input
15 Q0 Parallel output pin 0
16 Vcc Positive supply voltage

Usage Instructions

The 74HC595 is straightforward to use in a circuit. Below are the steps and considerations for using it effectively:

Connecting the 74HC595

  1. Power Supply: Connect the Vcc pin (16) to a 5V or 3.3V power source, depending on your microcontroller, and the GND pin (8) to ground.
  2. Control Pins:
    • Connect the DS pin (14) to the microcontroller's data output pin.
    • Connect the SH_CP pin (11) to the microcontroller's clock pin.
    • Connect the ST_CP pin (12) to the microcontroller's latch pin.
  3. Outputs: Connect the Q0-Q7 pins (15, 1-7) to the devices you want to control (e.g., LEDs, relays).
  4. Optional Pins:
    • Connect the OE pin (13) to ground to enable outputs.
    • Leave the MR pin (10) high unless you need to reset the outputs.

Example Circuit with Arduino UNO

Below is an example of how to connect the 74HC595 to an Arduino UNO to control 8 LEDs:

74HC595 Pin Arduino Pin
DS (14) D11
SH_CP (11) D12
ST_CP (12) D8
OE (13) GND
MR (10) Vcc
Vcc (16) 5V
GND (8) GND

Arduino Code Example

The following Arduino code demonstrates how to control the 74HC595 to light up LEDs in sequence:

// Define the 74HC595 control pins
const int dataPin = 11;  // DS pin
const int clockPin = 12; // SH_CP pin
const int latchPin = 8;  // ST_CP pin

void setup() {
  // Set the control pins as outputs
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
}

void loop() {
  for (int i = 0; i < 256; i++) {
    digitalWrite(latchPin, LOW); // Disable latch to shift data
    shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to 74HC595
    digitalWrite(latchPin, HIGH); // Enable latch to output data
    delay(200); // Wait for 200ms before the next iteration
  }
}

Important Considerations

  • Current Limiting: Use resistors (e.g., 220Ω) in series with LEDs to limit current and prevent damage to the 74HC595.
  • Cascading: To control more than 8 outputs, connect the Q7' pin (9) of the first 74HC595 to the DS pin (14) of the next chip.
  • Decoupling Capacitor: Place a 0.1µF capacitor between Vcc and GND to stabilize the power supply.

Troubleshooting and FAQs

Common Issues

  1. LEDs Not Lighting Up:

    • Check the wiring of the control pins and ensure they are connected to the correct Arduino pins.
    • Verify that the OE pin (13) is connected to ground.
    • Ensure the LEDs are connected with the correct polarity and have current-limiting resistors.
  2. Outputs Not Updating:

    • Confirm that the ST_CP pin (12) is being toggled correctly in the code.
    • Check for loose connections or faulty soldering.
  3. Erratic Behavior:

    • Ensure a decoupling capacitor (0.1µF) is placed between Vcc and GND.
    • Verify that the power supply voltage is within the specified range (2V to 6V).

FAQs

Q: Can I use the 74HC595 with a 3.3V microcontroller?
A: Yes, the 74HC595 operates with supply voltages as low as 2V, making it compatible with 3.3V systems.

Q: How many 74HC595 chips can I cascade?
A: Theoretically, you can cascade as many as you need, but practical limitations like signal degradation and timing constraints may arise after 4-8 chips.

Q: What is the purpose of the OE pin?
A: The OE pin enables or disables the outputs. When pulled high, all outputs are turned off, regardless of the data in the shift register.

By following this documentation, you can effectively use the 74HC595 to expand your microcontroller's output capabilities and drive various devices.