

The 74*595 is an 8-bit serial-in, parallel-out shift register with a storage register and tri-state outputs. It is widely used in digital electronics to expand the number of output pins available on a microcontroller or microprocessor. By cascading multiple shift registers, users can control a large number of outputs using only a few pins.








The 74*595 shift register is a versatile component with the following key specifications:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 2V to 6V |
| Input Voltage (VI) | 0V to Vcc |
| Output Current (IOH/IOL) | ±6mA (max) |
| Maximum Clock Frequency | 25 MHz (at 5V) |
| Operating Temperature | -40°C to +125°C |
| Package Types | DIP-16, SOIC-16, TSSOP-16 |
The 74*595 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 additional shift registers |
| 10 | MR | Master reset (active low) |
| 11 | SH_CP | Shift register clock input |
| 12 | ST_CP | Storage register clock input (latch pin) |
| 13 | OE | Output enable (active low) |
| 14 | DS | Serial data input |
| 15 | Q0 | Parallel output pin 0 |
| 16 | Vcc | Positive supply voltage |
The 74*595 shift register is easy to use in digital circuits. Below are the steps and considerations for using it effectively:
Below is an example of how to connect and control a 74*595 shift register with an Arduino UNO to drive 8 LEDs:
// Define pins for the 74*595 shift register
const int dataPin = 11; // DS pin
const int clockPin = 12; // SH_CP pin
const int latchPin = 8; // ST_CP pin
void setup() {
// Set pins as outputs
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
// Example: Turn on LEDs one by one
for (int i = 0; i < 256; i++) {
digitalWrite(latchPin, LOW); // Prepare to send data
shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to shift register
digitalWrite(latchPin, HIGH); // Latch data to outputs
delay(200); // Wait for 200ms
}
}
Q: Can I use the 74*595 with a 3.3V microcontroller?
A: Yes, the 74*595 operates with supply voltages as low as 2V, making it compatible with 3.3V systems.
Q: How many shift registers can I cascade?
A: Theoretically, you can cascade as many as you want, but practical limitations like signal degradation and timing constraints may arise after 8–10 registers.
Q: What is the purpose of the Q7' pin?
A: The Q7' pin outputs the last bit of the shift register and is used to cascade additional shift registers.
Q: Can I use the 74*595 to drive high-current loads?
A: No, the 74*595 can only source or sink up to 6mA per pin. Use external transistors or drivers for high-current loads.