Регистр сдвига – это цифровое, программируемое устройство, которое принимает последовательное битовое значение и выводит их на контакты. Регистр сдвига используется для управления семисегментными индикаторами, светодиодной матрицей, и другими устройствами,  где есть большое количество светодиодов. Главная его особенность в  том, что для управления 8 светодиодами нам понадобиться всего 3 контакта питания.

Рассмотрим стандартный регистр сдвига  74HC595 и его схему.

 

Данный микроконтроллер имеет 16 ножен. Нумерация ножен всех микроконтроллеров начинается с небольшого выреза или кружка. Это считается верхом  микроконтроллера и отчет идет слева вниз, вот для примера картинка.

По такому принципу номеруются все микроконтроллеры.

Итак, перейдем к распиновке регистра сдвига 74HC595.

Контакты Q0-Q7, восемь выходных контактов, к ним подключают светодиоды.

 GND – это стандартное обозначение земли, надо запомнить. К этому контакту подключаем контакт GND от Arduino.

DS  или SER на этот контакт посылаются битовые значения, которые будут на выходах и называют его DATA.

SHCP или SRCLK при подаче напряжения на этот контакт происходит отправка одного бита с контакта DS на контакт Q0(Q7). Для полной отправки всех 8 битовых данных, нужно подать 8 импульсов на этот контакт. (CLOCK)

STCP или RCLK – этот вход называется защелкой, служит для сдвига значений на один бит. (LATCH)
 — это контакт для сброса всех данных на регистре сдвига. Черточка сверху обозначает  активный уровень для данного контакта – низкое напряжение, т.е. минус или земля. Поэтому подаем на этот контакт 5В.

 – этим контактом можно включать и выключать все выходные контакты . Видим черту сверху значит при низком напряжении все выходные контакты включены.

Vcc – контакт питания микроконтроллера (5В).

Принцип действия сдвигового регистра

Рассмотрим, как работает регистра сдвига по порядку.

При подаче низкого сигнала на контакт LATCH (защелка) начинается запись битов на входные контакты.

При подаче высокого сигнала на контакт DATA происходит присвоение одно бита в первую ячейку, при подаче низкого сигнала, ячейке присваивается значение 0.

При подаче импульса на контакт CLOCK идет смещение значение на одну ячейке.

Каскадное подключение регистров сдвига

Как мы уже говорили, контакт Q7S предназначен для хранения значения, которое будет перемешаться с контакта Q7. Этот контакт можно использовать для подключения еще одного регистра сдвига, для увеличения входных контактов.  Q7S подключаем к контакту DATA на новом регистре сдвига. Ну а контакты LATCH и CLOCK подключаем отдельно. И так можно подключить бесконечное множество сдвиговых регистров.