74HC165 — сдвиговый регистр с параллельным входом
74HC165 — обратная пара к 74HC595: он защёлкивает восемь входов разом и отдаёт их микроконтроллеру по одному проводу. Цепочка таких микросхем читает десятки кнопок и переключателей тремя выводами. Разбираем по даташитам TI и onsemi выводы, порядок чтения и подводные камни.
Обновлено Редакция GAW
74HC165 — восьмиразрядный сдвиговый регистр с параллельной загрузкой: он одновременно фиксирует уровни на восьми входах A–H, а затем выдвигает их по одному на выход QH. Это обратная задача к 74HC595, который принимает данные последовательно и выдаёт параллельно. Вместе они — классический способ расширить выводы микроконтроллера: TI называет среди применений клавиатуры и программируемые контроллеры.
Распиновка
| Вывод | Назначение |
|---|---|
| A–H (11–14, 3–6) | параллельные входы |
| SH/LD (1) | низкий уровень — загрузка входов, высокий — сдвиг |
| CLK (2) и CLK INH (15) | такт и запрет такта; по TI их функции взаимозаменяемы |
| QH (9) и Q̄H (7) | последовательный выход и его инверсия |
| SER (10) | последовательный вход — к QH предыдущей микросхемы цепочки |
Как работает
Таблица истинности по даташиту TI:
| SH/LD | CLK | CLK INH | Что происходит |
|---|---|---|---|
| 0 | любой | любой | параллельная загрузка входов A–H |
| 1 | 1 | любой | без изменений |
| 1 | любой | 1 | без изменений |
| 1 | 0 | фронт ↑ | сдвиг к QH |
| 1 | фронт ↑ | 0 | сдвиг к QH |
Загрузка асинхронная: пока SH/LD в нуле, регистр повторяет входы независимо от тактов. После перевода SH/LD в единицу на QH уже стоит бит H, и каждый фронт CLK выдвигает следующий: G, F, … A. В освободившийся первый разряд попадает уровень на входе SER. TI предупреждает: так как сдвиг происходит и по фронту CLK INH при низком CLK, менять CLK INH в единицу можно только при высоком CLK.
Порядок чтения восьми входов:
- Подать 0 на SH/LD и вернуть в 1 — входы зафиксированы.
- Прочитать QH — это вход H.
- Подать фронт на CLK и прочитать следующий бит; повторить ещё шесть раз.
Параметры
| Параметр | SN74HC165 (TI) | MC74HC165A (onsemi) |
|---|---|---|
| Питание | 2–6 В | 2–6 В (HC), 4,5–5,5 В (HCT) |
| Ток покоя | до 80 мкА (−40…85 °C) | — |
| Входной ток | до ±1 мкА | 1 мкА |
| Выход | ±4 мА при 5 В, 10 нагрузок LSTTL | 10 нагрузок LSTTL |
| Наибольшая частота при 4,5 В | 31 МГц минимум, 50 МГц типично при 25 °C | 30 МГц при 25 °C, 24 МГц при 85 °C, 20 МГц при 125 °C |
| Задержка | 13 нс типично | — |
Версия MC74HCT165A по onsemi рассчитана на входные уровни ТТЛ и служит преобразователем уровней от ТТЛ- и NMOS-выходов к КМОП.
Каскад и чтение по SPI
Микросхемы соединяют в цепочку: QH первой — к SER второй, тактовые линии и SH/LD — общие. Тогда за одну загрузку и 8 · N тактов читается N байт. Удобно подключить цепочку к аппаратному SPI: SCK — к CLK, MISO — к QH последней микросхемы, отдельный вывод — к SH/LD. Первый бит выходит до первого фронта, поэтому режим SPI выбирают так, чтобы чтение шло до сдвига.
Кнопки на входах
Входы КМОП нельзя оставлять висящими: TI требует подключать неиспользуемые входы к VCC или GND, а вход с разомкнутой кнопкой тоже висит. Обычная схема — кнопка между входом и общим проводом и резистор от входа к питанию: нажатая кнопка читается как 0. Дребезг контактов регистр не убирает — его подавляют в программе, опрашивая входы с интервалом в несколько миллисекунд. Другие логические микросхемы — в разделе «Логика».
Частые вопросы
Какая распиновка у 74HC165?
В корпусе DIP-16 и SOIC-16 по даташиту TI: 1 — SH/LD (загрузка и сдвиг), 2 — CLK, 3–6 — входы E, F, G, H, 7 — инверсный выход Q̄H, 8 — GND, 9 — последовательный выход QH, 10 — SER (последовательный вход для каскада), 11–14 — входы A, B, C, D, 15 — CLK INH (запрет тактов), 16 — VCC.
В каком порядке 74HC165 отдаёт биты?
Сразу после загрузки на выходе QH — состояние входа H. Каждый фронт CLK сдвигает данные к выходу, и следом выходят G, F, … A. Значит, микроконтроллер сначала читает H, а восемь бит получает за загрузку и семь фронтов тактов. Если подключён следующий регистр, в его вход SER уходят данные предыдущей микросхемы.
Можно ли читать 74HC165 по SPI?
Да: CLK подключают к SCK, QH — к MISO, а SH/LD управляют отдельным выводом — опускают в ноль для загрузки входов и поднимают перед чтением. CLK INH держат в нуле. Нужно учесть, что первый бит H уже стоит на выходе до первого фронта, поэтому режим SPI выбирают так, чтобы микроконтроллер читал бит до сдвига.
Нужны ли подтягивающие резисторы к кнопкам на входах 74HC165?
Да. Входы КМОП не должны висеть в воздухе: TI требует держать все неиспользуемые входы на VCC или GND, и то же касается входа с разомкнутой кнопкой. Кнопку подключают между входом и общим проводом, а вход подтягивают резистором к питанию — тогда нажатая кнопка читается как 0. Дребезг контактов при этом остаётся, его подавляют программно.
Источники
- Texas Instruments. SNx4HC165 8-Bit Parallel-Load Shift Registers (SCLS116H, revised December 2015) — разд. 1 и 3 — питание 2–6 В, 10 нагрузок LSTTL, ток покоя до 80 мкА, выход ±4 мА при 5 В, входной ток до 1 мкА, задержка 13 нс типично; загрузка при низком SH/LD независимо от тактов, сдвиг по фронту CLK при высоком SH/LD и низком CLK INH, CLK и CLK INH взаимозаменяемы, CLK INH менять только при высоком CLK; табл. Pin Functions — выводы; разд. 6.8 — fmax 31 МГц минимум и 50 МГц типично при 4,5 В; табл. 1 — таблица истинности; все неиспользуемые входы — на VCC или GND
- onsemi. MC74HC165A, MC74HCT165A: 8-Bit Serial or Parallel-Input/Serial-Output Shift Register (MC74HC165A/D, Rev. 13, April 2025) — асинхронная параллельная загрузка при низком SERIAL SHIFT/PARALLEL LOAD, сдвиг по фронту Clock или Clock Inhibit (2-входовое ИЛИ-НЕ); рис. 1 — выводы; HC 2–6 В, HCT 4.5–5.5 В для входов ТТЛ и NMOS; fmax при 4,5 В — 30, 24 и 20 МГц при 25, 85 и 125 °C; исполнения -Q по AEC-Q100
Нашли ошибку?
Смотрите также
- Логические микросхемыСерии 74HC и 74HCT: пороги, токи, частота, карточки микросхем
- 74HC595Сдвиговый регистр на 8 выходов: выводы, SPI, каскад, токи, уровни
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Сдвиговый регистрПоследовательный вход, параллельные выходы, каскад
- Расширитель портовДополнительные выводы по I²C и SPI: типы, адреса, прерывания
- Дребезг контактовСерия переключений вместо одного при нажатии кнопки