

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 (IO) | ±35 mA |
| Maximum Clock Frequency | 25 MHz (at 5V Vcc) |
| Operating Temperature | -40°C to +125°C |
| Package Type | DIP-16, SOIC-16, or 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) - Clears all data in the shift register |
| 11 | SH_CP | Shift Clock Pin - Shifts data on the rising edge |
| 12 | ST_CP | Storage Clock Pin - Transfers data from the shift register to the storage latch |
| 13 | OE | Output Enable (active low) - Enables/disables the parallel outputs |
| 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 the 74*595 with an Arduino UNO to drive 8 LEDs:
// Define pins for the 74*595 shift register
const int dataPin = 11; // DS pin of 74*595
const int clockPin = 12; // SH_CP pin of 74*595
const int latchPin = 8; // ST_CP pin of 74*595
void setup() {
// Set pins as outputs
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
// Example pattern to display on LEDs
for (int i = 0; i < 256; i++) {
digitalWrite(latchPin, LOW); // Disable storage register updates
shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to shift register
digitalWrite(latchPin, HIGH); // Update storage register to display data
delay(500); // Wait for 500ms
}
}
Q1: Can I cascade multiple 74*595 shift registers?
Yes, you can cascade multiple shift registers by connecting the Q7' pin of one register to the DS pin of the next. This allows you to control more outputs with the same microcontroller.
Q2: What is the purpose of the OE pin?
The OE (Output Enable) pin is used to enable or disable the parallel outputs. When OE is high, the outputs are in a high-impedance state.
Q3: Can the 74*595 drive high-power devices?
No, the 74*595 is not designed to drive high-power devices directly. Use external transistors or MOSFETs for high-power applications.
Q4: What is the difference between SH_CP and ST_CP?
By following this documentation, you can effectively use the 74*595 shift register in your projects!