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

How to Use 74xx595 / Shift Register: Examples, Pinouts, and Specs

Image of 74xx595 / Shift Register
Cirkit Designer LogoDesign with 74xx595 / Shift Register in Cirkit Designer

Introduction

The 74HC595 is an 8-bit serial-in, parallel-out shift register with output latches, manufactured by Texas Instruments (TI). It is widely used for serial-to-parallel data conversion, allowing microcontrollers to control multiple outputs using fewer pins. The device features a storage register and a shift register, enabling data to be shifted in serially and latched for stable parallel output.

Explore Projects Built with 74xx595 / Shift Register

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-Controlled 74HC595 Shift Register LED Driver
Image of cube: A project utilizing 74xx595 / Shift Register in a practical application
This circuit consists of multiple 74HC595 shift registers daisy-chained together, controlled by an Arduino UNO. The shift registers are used to expand the number of digital outputs from the Arduino, allowing for control of multiple outputs with only a few pins. The circuit likely drives an array of LEDs or similar devices, as indicated by the series resistors connected to the outputs of the shift registers.
Cirkit Designer LogoOpen Project in Cirkit Designer
STM32-Controlled LED Display with 74HC595 Shift Register and 12-Bit DAC
Image of Harry Stim Breadboard: A project utilizing 74xx595 / Shift Register in a practical application
This circuit uses a 74HC595 shift register to control multiple LEDs via a common ground configuration, with a microcontroller providing serial data input. It includes decoupling capacitors for stability and a 12-Bit DAC, potentially for analog signal generation or reference voltage application.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Controlled LED Display with 74HC595 Shift Register
Image of 74HC595 Shift Register: A project utilizing 74xx595 / Shift Register in a practical application
This circuit utilizes an Arduino UNO to control a 74HC595 shift register, which sequentially activates a series of red LEDs connected through 200 Ohm resistors. The Arduino sends data to the shift register via three digital pins, allowing for the individual control of each LED in a timed sequence.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Controlled 8-LED Pattern Display with 74HC595 Shift Register
Image of serial to parallel register : A project utilizing 74xx595 / Shift Register in a practical application
This circuit uses an Arduino UNO to control a 74HC595 shift register, which in turn drives multiple LEDs through current-limiting resistors. The Arduino alternates the LEDs between two patterns with a specified delay, demonstrating the use of the shift register to expand output capabilities. The resistors ensure that the LEDs are protected from excessive current.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with 74xx595 / Shift Register

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 cube: A project utilizing 74xx595 / Shift Register in a practical application
Arduino-Controlled 74HC595 Shift Register LED Driver
This circuit consists of multiple 74HC595 shift registers daisy-chained together, controlled by an Arduino UNO. The shift registers are used to expand the number of digital outputs from the Arduino, allowing for control of multiple outputs with only a few pins. The circuit likely drives an array of LEDs or similar devices, as indicated by the series resistors connected to the outputs of the shift registers.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Harry Stim Breadboard: A project utilizing 74xx595 / Shift Register in a practical application
STM32-Controlled LED Display with 74HC595 Shift Register and 12-Bit DAC
This circuit uses a 74HC595 shift register to control multiple LEDs via a common ground configuration, with a microcontroller providing serial data input. It includes decoupling capacitors for stability and a 12-Bit DAC, potentially for analog signal generation or reference voltage application.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of 74HC595 Shift Register: A project utilizing 74xx595 / Shift Register in a practical application
Arduino UNO Controlled LED Display with 74HC595 Shift Register
This circuit utilizes an Arduino UNO to control a 74HC595 shift register, which sequentially activates a series of red LEDs connected through 200 Ohm resistors. The Arduino sends data to the shift register via three digital pins, allowing for the individual control of each LED in a timed sequence.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of serial to parallel register : A project utilizing 74xx595 / Shift Register in a practical application
Arduino-Controlled 8-LED Pattern Display with 74HC595 Shift Register
This circuit uses an Arduino UNO to control a 74HC595 shift register, which in turn drives multiple LEDs through current-limiting resistors. The Arduino alternates the LEDs between two patterns with a specified delay, demonstrating the use of the shift register to expand output capabilities. The resistors ensure that the LEDs are protected from excessive current.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Expanding the number of output pins in microcontroller-based systems
  • Driving LED arrays, 7-segment displays, or dot matrix displays
  • Controlling relays or other digital outputs
  • Applications requiring daisy-chaining of multiple shift registers for extended outputs

Technical Specifications

The following are the key technical details of the 74HC595:

Parameter Value
Supply Voltage (Vcc) 2V to 6V
Input Voltage Range 0V to Vcc
Maximum Clock Frequency 25 MHz (at 4.5V to 5.5V Vcc)
Output Current (per pin) ±6 mA
Total Power Dissipation 500 mW
Operating Temperature Range -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 daisy-chaining multiple shift registers
10 MR Master Reset (active LOW) - Clears all shift register data
11 SH_CP Shift Register Clock Input - Shifts data on rising edge
12 ST_CP Storage Register Clock Input (Latch) - Transfers data to output on rising edge
13 OE Output Enable (active LOW) - Enables/disables parallel outputs
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 proper usage:

Connecting the 74HC595

  1. Power Supply: Connect the Vcc pin (16) to a 5V or 3.3V power supply and the GND pin (8) to ground.
  2. Data Input: Connect the DS pin (14) to the microcontroller's data output pin.
  3. Clock Signals:
    • Connect the SH_CP pin (11) to a microcontroller pin for the shift register clock.
    • Connect the ST_CP pin (12) to another microcontroller pin for the storage register clock (latch).
  4. Output Enable: Connect the OE pin (13) to ground to enable the outputs. If dynamic control is needed, connect it to a microcontroller pin.
  5. Outputs: Use the Q0-Q7 pins (15, 1-7) to drive LEDs, relays, or other devices.
  6. Optional Daisy-Chaining: To expand outputs, connect the Q7' pin (9) of the first shift register to the DS pin (14) of the next shift register.

Example Circuit with Arduino UNO

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

Circuit Connections

  • 74HC595 Pin 14 (DS) → Arduino Pin 11 (MOSI)
  • 74HC595 Pin 11 (SH_CP) → Arduino Pin 12
  • 74HC595 Pin 12 (ST_CP) → Arduino Pin 8
  • 74HC595 Pin 13 (OE) → GND
  • 74HC595 Pin 10 (MR) → Vcc
  • 74HC595 Pin 16 (Vcc) → 5V
  • 74HC595 Pin 8 (GND) → GND
  • Q0-Q7 Pins → LEDs (with current-limiting resistors)

Arduino Code Example

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

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

void loop() {
  // Example: Light up LEDs in a binary counting pattern
  for (int i = 0; i < 256; i++) {
    digitalWrite(latchPin, LOW); // Disable output while shifting data
    shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to shift register
    digitalWrite(latchPin, HIGH); // Latch data to output pins
    delay(500); // Wait for 500ms
  }
}

Best Practices

  • Use current-limiting resistors (e.g., 220Ω) on the output pins when driving LEDs to prevent damage.
  • Keep the clock signals clean and free of noise to ensure reliable operation.
  • For daisy-chaining, ensure the Q7' pin is properly connected to the next shift register's DS pin.

Troubleshooting and FAQs

Common Issues

  1. Outputs Not Responding:
    • Ensure the OE pin (13) is connected to GND.
    • Verify that the latch pin (ST_CP) is toggled HIGH after shifting data.
  2. Incorrect Output States:
    • Check the timing of the clock signals (SH_CP and ST_CP).
    • Ensure the data is shifted in the correct order (MSB or LSB first).
  3. No Output on Daisy-Chained Registers:
    • Verify the Q7' pin of the first register is connected to the DS pin of the next register.
    • Ensure the clock and latch signals are shared across all registers.

FAQs

Q: Can the 74HC595 drive high-current loads like motors?
A: No, the 74HC595 can only source or sink up to 6mA per pin. Use external transistors or drivers for high-current loads.

Q: How many 74HC595 chips can be daisy-chained?
A: Theoretically, there is no limit, but practical constraints like signal integrity and timing delays may limit the number to around 8-10 chips.

Q: Can I use the 74HC595 with a 3.3V microcontroller?
A: Yes, the 74HC595 operates with supply voltages as low as 2V. Ensure the output current requirements are met.

By following this documentation, you can effectively integrate the 74HC595 into your projects for reliable and efficient serial-to-parallel data conversion.