Keszoox
SN74HC165N 8-Bit Shift Register IC DIP-16 – Serial/Parallel Input, Pack of 5 (74HC165)
SN74HC165N 8-Bit Shift Register IC DIP-16 – Serial/Parallel Input, Pack of 5 (74HC165)
Couldn't load pickup availability
SN74HC165N (74HC165) 8-Bit Parallel-In Serial-Out Shift Register — DIP-16, 2–6V (5-Pack)
The SN74HC165N is an 8-bit parallel-in serial-out (PISO) shift register in a DIP-16 through-hole package, operating from 2V to 6V. It captures 8 parallel digital inputs simultaneously on a load pulse and shifts them out serially over a single data line, enabling 8 digital inputs to be read by a microcontroller using only 3 signal wires. Multiple SN74HC165N ICs can be daisy-chained for 16, 24, or more inputs with the same 3-wire interface.
Key Specifications
| Parameter | Value |
|---|---|
| Package | DIP-16 (through-hole) |
| Data Width | 8-bit |
| Operation | Parallel-In, Serial-Out (PISO) |
| Clock Edge | Positive edge (rising) |
| Supply Voltage | 2V – 6V |
| Output Current | ±25mA per pin |
| Max Clock Frequency | ~100MHz (VCC=5V) |
| Operating Temperature | -40°C to +125°C |
| Quantity | 5 pieces |
74HC165 vs 74HC595 — Input vs Output Expansion
| IC | Direction | Function | Use Case |
|---|---|---|---|
| SN74HC165N | Input expansion | 8 parallel inputs → serial out | Read 8 buttons/switches with 3 MCU pins |
| SN74HC595 | Output expansion | Serial in → 8 parallel outputs | Control 8 LEDs/relays with 3 MCU pins |
| MCP23017 | Bidirectional (I²C) | 16 GPIO via I²C | Mixed I/O expansion, fewer wires |
Why Choose SN74HC165N?
- 8-to-1 input multiplexing — read 8 digital inputs using only 3 MCU pins (CLK, SH/LD, QH)
- Daisy-chainable — connect QH of first IC to SER of second for 16, 24, 32+ inputs
- Synchronous parallel load — all 8 inputs captured simultaneously on load pulse for glitch-free reading
- 2–6V operation — compatible with 3.3V (ESP32, STM32) and 5V (Arduino) systems
- 5-pack value — enough for a 40-input button matrix (5×8)
Compatible With
-
Arduino UNO/Nano:
shiftIn(dataPin, clockPin, MSBFIRST)reads 8 bits in one call - ESP32: SPI hardware or GPIO bit-bang at 3.3V
- STM32: SPI MISO or GPIO bit-bang
- Raspberry Pi: SPI or GPIO bit-bang with RPi.GPIO
- MicroPython: machine.SPI or manual bit-bang
Frequently Asked Questions
Q: How do I read 8 buttons with SN74HC165N on Arduino?
A: Connect SH/̅L̅D̅ to D4, CLK to D5, QH to D6. Pull SH/̅L̅D̅ LOW to latch inputs, then HIGH. Read: byte data = shiftIn(6, 5, MSBFIRST); Each bit (D7–D0) corresponds to inputs H–A. A LOW bit means that input is connected to GND (button pressed with pull-up). Add 10kΩ pull-up resistors on each input pin.
Q: How do I daisy-chain two SN74HC165N for 16 inputs?
A: Connect the QH (serial output) of the first IC to the SER (serial input) of the second IC. Share CLK and SH/̅L̅D̅ between both ICs. Read 16 bits with two consecutive shiftIn() calls: byte high = shiftIn(dataPin, clockPin, MSBFIRST); byte low = shiftIn(dataPin, clockPin, MSBFIRST); The first call reads IC2 (last in chain), the second reads IC1.
Q: Can SN74HC165N be used with SPI hardware on Arduino?
A: Yes — connect QH to MISO, CLK to SCK, SH/̅L̅D̅ to a digital pin (not SS). Pulse SH/̅L̅D̅ LOW then HIGH to latch, then use SPI.transfer(0) to clock out 8 bits. Hardware SPI is faster than bit-bang shiftIn() for high-speed or time-critical applications.
Package Contents
- 5× SN74HC165N (74HC165) 8-Bit Parallel-In Serial-Out Shift Register IC (DIP-16)
