Перейти к содержанию

Сдвиговый регистр

Сдвиговый регистр принимает данные по одному биту и выдаёт их сразу на всех выходах — или наоборот. Так несколькими выводами микроконтроллера управляют десятками светодиодов, реле и индикаторов.

Обновлено Редакция GAW

Сдвиговый регистр — цепочка триггеров, в которой по каждому тактовому импульсу содержимое каждого разряда переходит в следующий, а в первый записывается бит со входа. После восьми тактов восьмиразрядный регистр содержит байт, переданный по одному проводу.

Чаще всего в схемах с микроконтроллером встречается регистр с последовательным входом и параллельными выходами — например, 74HC595. По даташиту onsemi в нём два независимо тактируемых блока: 8-битный сдвиговый регистр и 8-битная защёлка с выходами, у которых есть третье состояние. Бит со входа данных вдвигается по нарастающему фронту такта сдвига, а фронт такта защёлки переносит весь регистр на выходы. Последний разряд выведен отдельно — это последовательный выход для каскадирования: соединив его со входом следующей микросхемы, получают регистр на 16, 24 и более бит с теми же тремя управляющими линиями.

Такая схема удобна для светодиодов, семисегментных индикаторов и реле, когда выводов микроконтроллера не хватает. Передачу удобно вести аппаратным SPI: вход данных — на MOSI, такт — на SCK. Выводы, временные требования, токи и каскадирование разобраны в карточке 74HC595, а устройство триггеров и логических элементов — в статье «Цифровая логика».

Частые вопросы

Зачем нужен сдвиговый регистр?

Чтобы получить много выходов из нескольких выводов микроконтроллера. 74HC595 даёт 8 выходов по трём линиям — данным, такту и защёлке, — а цепочка из N микросхем даёт 8 · N выходов по тем же трём линиям. Регистр с параллельным входом и последовательным выходом решает обратную задачу — читает много кнопок.

Зачем в 74HC595 защёлка?

Чтобы выходы не менялись, пока биты вдвигаются в регистр. Сдвиговый регистр и защёлка тактируются отдельно: восемь тактов сдвига заполняют регистр, а один импульс на тактовом входе защёлки переносит весь байт на выходы одновременно.

Можно ли управлять сдвиговым регистром через SPI?

Да. Вход данных подключают к MOSI, такт сдвига — к SCK, и байт уходит одной транзакцией SPI; onsemi указывает, что 74HC595 подключается к SPI микроконтроллера напрямую. Защёлку тактируют отдельным выводом после передачи.

Источники

  1. onsemi. MC74HC595A, MC74HCT595A: 8-Bit Serial-Input/Serial or Parallel-Output Shift Register with Latched 3-State Outputs (MC74HC595A/D, Rev. 27, February 2025) — сдвиговый регистр на 8 бит и защёлка с независимыми тактами, таблица функций, подключение к SPI
  2. Texas Instruments. SN54HC595, SN74HC595 8-Bit Shift Registers With 3-State Output Registers (SCLS041J, revised October 2021) — последовательный выход QH' для каскадирования, выходы с третьим состоянием

Нашли ошибку?