

The 74HC595 is an 8-bit serial-in, parallel-out shift register manufactured by Texas Instruments. It is designed to expand the number of output pins available in microcontroller applications. By using a serial data input, the 74HC595 allows users to control up to 8 output pins with just 3 control pins from a microcontroller. This makes it ideal for applications where pin availability is limited.








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) |
| Output Current (per pin) | ±6 mA |
| Total Power Dissipation | 500 mW |
| Operating Temperature | -40°C to 125°C |
| Package Types | SOIC, PDIP, TSSOP, SSOP |
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 |
| 11 | SH_CP | Shift register clock input - shifts data into the register on rising edge |
| 12 | ST_CP | Storage register clock input - transfers data to output pins on rising edge |
| 13 | OE | Output enable (active low) - enables/disables outputs |
| 14 | DS | Serial data input |
| 15 | Q0 | Parallel output pin 0 |
| 16 | Vcc | Supply voltage (2V to 6V) |
The 74HC595 is commonly used to expand the number of output pins in a circuit. Below are the steps and considerations for using the component:
Below is an example of how to connect and control the 74HC595 with an Arduino UNO to drive 8 LEDs:
// Define the control pins for the 74HC595
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 the control pins as outputs
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
// Example: Turn on LEDs in a binary counting pattern
for (int i = 0; i < 256; i++) {
digitalWrite(latchPin, LOW); // Prepare to send data
shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to 74HC595
digitalWrite(latchPin, HIGH); // Latch the data to output pins
delay(500); // Wait for 500ms
}
}
Q: Can I cascade multiple 74HC595 chips?
A: Yes, connect the Q7' pin of the first chip to the DS pin of the next chip. All chips share the same clock and latch signals.
Q: What is the purpose of the OE pin?
A: The OE (Output Enable) pin allows you to enable or disable all outputs simultaneously. It is active low, so connect it to ground to enable outputs.
Q: Can the 74HC595 drive high-power devices?
A: No, the 74HC595 is designed for low-power digital devices. Use a transistor or MOSFET to drive high-power devices.
By following this documentation, you can effectively use the 74HC595 shift register in your projects!