Схема сдвигового регистра: Сдвиговый регистр | Электроника для всех

Содержание

Сдвиговый регистр | Электроника для всех

Иногда требуется ОЧЕНЬ много выходных портов. Особенно если хотим сделать что нибудь на светодиодах. Гирлянду какую-нибудь навороченную. Что делать? Брать под это дело ATMega128 с ее полусотней выводов? Избыточно — для ламеров. Ставить i2с расширитель портов? Дорого. Для мажоров. Тут на помощь из вековых глубин выплывает старая добрая дискретная логика. На этот раз нас выручит грошовый сдвиговый регистр. Возьму, для примера, 74HC164 он же, для любителей совковых трешевых микросхем в неубиваемом каменном корпусе, наш КM555ИР8.

У него есть 8 выходов и четыре входа. R-сброс, С-тактовый, А1 и А2 вход. На самом деле, внутри они заведены через логический элемент 2И-НЕ и идут на D триггеры. D — это такой тип триггера, который по тактовому импульсу схватывает и отправляет на выход то, что у него на входе. Как видишь, тут они цепью стоят ,передавая бит от одного к другому и нет принципиальной разницы сколько их тут будет, восемь штук или восемь миллиардов. Но чем больше, тем дольше по этой эстафете гнать данные до конца. Поэтому мы смело можем эти регистры соединять последовательно.

Получается вот такая схема:

От МК, как видно, требуется только четыре выхода. Одним (RESET) мы сбрасываем состояние регистра. Из второго (Data) побитно вылазит байтик, а тактовый CLC обеспечивает продвижение битов по регистру. Самих регистров тут три. Они сцеплены паровозом. Когда переполняется первый, то биты из него вылазят во второй, потом в третий. Итого, 24 вывода.
Катоды диодов подключены все вместе через транзистор и как только будет слово мы подаем сигнал Ready и зажигаем всю эту ботву.

Наполнять регистр просто:
1) Поднимаем и держим RESET в 1
2) Выдаем первый (старший) бит на Data.
3) Опускаем в 0 и поднимаем в 1 тактовый выход. На восходящем фронте происходит занос в регистр и сдвиг всей цепочки на один шаг.
4) Повторить со второго пункта пока все биты не выдадим.

А для сброса достаточно уронить Reset в ноль на пару микросекунд.
Все просто 🙂

З.Ы.
Кружок на входе регистра означает, что вход инверсный. Т.е. подал ноль — сработало

Треугольник на входе показывает по какому фронту произойдет срабатывание. Запомнить просто: _/ \_ — это, типа, импульс. А треугольник, как стрелочка, указывает на нужный фронт. ->_/ \_ передний (восходящий фронт) и _/ \_<- задний (нисходящий фронт)

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

Цифровые схемы - сдвиговые регистры

Мы знаем, что один триггер может хранить один бит информации. Чтобы хранить несколько битов информации, нам нужно несколько триггеров. Группа триггеров, которые используются для хранения (хранения) двоичных данных, называется регистром .

Если регистр способен сдвигать биты либо вправо, либо влево, это называется регистром сдвига . Регистр сдвига битов «N» содержит триггеры «N». Ниже приведены четыре типа регистров сдвига, основанные на применении входов и доступе к выходам.

  • Serial In — сдвиговый регистр Serial Out
  • Серийный вход — параллельный выходной регистр сдвига
  • Параллельный вход — сдвиговый регистр последовательного выхода
  • Параллельный вход — сдвиговый регистр параллельного выхода

Серийный вход — Серийный выход (SISO) Сдвиговый регистр

Сдвиговый регистр, который допускает последовательный ввод и производит последовательный вывод, известен как сдвиговый регистр Serial In — Serial Out (SISO) . Блок-схема 3-битного регистра сдвига SISO показана на следующем рисунке.

SISO

Эта блок-схема состоит из трех D-триггеров, которые каскадируются . Это означает, что выход одного D-триггера подключен как вход следующего D-триггера. Все эти триггеры синхронны друг с другом, поскольку к каждому из них применяется один и тот же тактовый сигнал.

В этом регистре сдвига мы можем посылать биты последовательно со входа самого левого D-триггера. Следовательно, этот вход также называется последовательным входом . При каждом срабатывании положительного фронта тактового сигнала данные перемещаются с одной ступени на другую. Таким образом, мы можем получать биты последовательно с выхода самого правого D-триггера. Следовательно, этот выход также называется

последовательным выходом .

пример

Давайте посмотрим, как работает 3-битный регистр сдвига SISO, посылая двоичную информацию «011» из LSB в MSB последовательно на входе.

Предположим, что начальный статус D-триггеров слева направо равен Q2Q1Q0=000. Мы можем понять работу 3-битного регистра сдвига SISO из следующей таблицы.

Нет положительного края часов Последовательный ввод Q 2 Q 1 Q 0
0 0 0 0
1 1 (LSB), 1 0 0
2 1 1 1 0
3 0 (СЗБ) 0 1 1 (LSB),
4 0 1
5 0 (СЗБ)

Начальное состояние D-триггеров в отсутствие тактового сигнала: Q2Q1Q0=000. Здесь последовательный вывод исходит из Q0. Таким образом, LSB (1) принимается на 3- м положительном фронте тактового сигнала, а MSB (0) принимается на 5- м положительном фронте тактового сигнала.

Следовательно, 3-битный сдвиговый регистр SISO требует пяти тактовых импульсов для получения действительного выхода. Аналогично, N-битный сдвиговый регистр SISO требует 2N-1 тактовых импульсов для сдвига «N» битовой информации.

Сдвиговый регистр Serial In — Parallel Out (SIPO)

Сдвиговый регистр, который допускает последовательный ввод и производит параллельный вывод, известен как сдвиговый регистр Serial In — Parallel Out (SIPO) . Блок-схема 3-битного регистра сдвига SIPO показана на следующем рисунке.

СИПО

Эта схема состоит из трех D-триггеров, которые каскадно. Это означает, что выход одного D-триггера подключен как вход следующего D-триггера. Все эти триггеры синхронны друг с другом, поскольку к каждому из них применяется один и тот же тактовый сигнал.

В этом регистре сдвига мы можем посылать биты последовательно со входа самого левого D-триггера. Следовательно, этот вход также называется последовательным входом . При каждом срабатывании положительного фронта тактового сигнала данные перемещаются с одной ступени на другую. В этом случае мы можем получить доступ к выходам каждого D триггера параллельно. Итак, мы получим параллельные выходы из этого регистра сдвига.

пример

Давайте посмотрим, как работает 3-битный регистр сдвига SIPO, посылая двоичную информацию «011» из LSB в MSB последовательно на входе.

Предположим, что начальный статус D-триггеров слева направо равен Q2Q1Q0=000. Здесь Q2 & Q0 — это MSB и LSB соответственно. Мы можем понять работу 3-битного сдвигового регистра SIPO из следующей таблицы.

Нет положительного края часов Последовательный ввод Q 2 (MSB) Q 1 Q 0 (LSB)
0 0 0 0
1
1 (LSB),
1 0 0
2 1 1 1 0
3 0 (СЗБ) 0 1 1

Начальное состояние D-триггеров в отсутствие тактового сигнала: Q2Q1Q0=000. Двоичная информация «011» получается параллельно на выходах D триггеров для третьего положительного фронта тактового сигнала.

Итак, 3-битный сдвиговый регистр SIPO требует три тактовых импульса для получения действительного выхода. Аналогично, N-битный сдвиговый регистр SIPO требует N тактовых импульсов для сдвига «N» битовой информации.

Сдвиговый регистр параллельного входа — последовательного выхода (PISO)

Сдвиговый регистр, который допускает параллельный ввод и производит последовательный выход, известен как сдвиговый регистр Parallel In-Serial Out (PISO) . Блок-схема 3-битного регистра сдвига PISO показана на следующем рисунке.

PISO

Эта схема состоит из трех D-триггеров, которые каскадно. Это означает, что выход одного D-триггера подключен как вход следующего D-триггера. Все эти триггеры синхронны друг с другом, поскольку к каждому из них применяется один и тот же тактовый сигнал.

В этом регистре сдвига мы можем применить параллельные входы к каждому D-триггеру, установив Preset Enable в 1. Для каждого срабатывания положительного фронта тактового сигнала данные сдвигаются от одного этапа к следующему. Итак, мы получим последовательный вывод с самого правого D-триггера.

пример

Давайте посмотрим, как работает 3-битный регистр сдвига PISO, применяя двоичную информацию «011» параллельно через предустановленные входы.

Так как предустановленные входные данные применяются до положительного фронта тактового сигнала, начальное состояние D-триггеров от крайнего левого к правому будет Q2Q1Q0=011. Мы можем понять работу 3-битного регистра сдвига PISO из следующей таблицы.

Нет положительного края часов Q 2 Q 1 Q 0
0 0 1 1 (LSB),
1 0 1
2 0 (LSB)

Здесь последовательный вывод исходит из Q0. Таким образом, LSB (1) принимается до применения положительного фронта тактового сигнала, а MSB (0) принимается на 2- ом положительном фронте тактового сигнала.

Следовательно, 3-битный регистр сдвига PISO требует двух тактовых импульсов для получения действительного выхода. Аналогично, N-битный регистр сдвига PISO требует N-1 тактовых импульсов, чтобы сдвигать N-битную информацию.

Регистр сдвига параллельного входа — параллельного выхода (PIPO)

Сдвиговый регистр, который допускает параллельный ввод и производит параллельный вывод, известен как сдвиговый регистр Parallel In — Parallel Out (PIPO) . Блок-схема 3-битного регистра сдвига PIPO показана на следующем рисунке.

PIPO

Эта схема состоит из трех D-триггеров, которые каскадно. Это означает, что выход одного D-триггера подключен как вход следующего D-триггера. Все эти триггеры синхронны друг с другом, поскольку к каждому из них применяется один и тот же тактовый сигнал.

В этом регистре сдвига мы можем применить параллельные входы к каждому D-триггеру, установив Preset Enable в 1. Мы можем применить параллельные входы через предустановку или сброс. Эти два являются асинхронными входами. Это означает, что триггеры производят соответствующие выходные данные, основываясь на значениях асинхронных входных данных. В этом случае влияние выходов не зависит от тактового перехода. Итак, мы получим параллельные выходы от каждого D-триггера.

пример

Давайте посмотрим, как работает 3-битный регистр сдвига PIPO, применяя двоичную информацию «011» параллельно через предустановленные входы.

Так как предустановленные входные данные применяются до положительного фронта тактового сигнала, начальное состояние D-триггеров от крайнего левого к правому будет Q2Q1Q0=011. Таким образом, двоичная информация «011» получается параллельно на выходах D триггеров перед применением положительного фронта тактового сигнала.

Следовательно, 3-битный регистр сдвига PIPO требует нулевых тактовых импульсов для получения действительного выхода. Аналогично,

N-битный регистр сдвига PIPO не требует никакого тактового импульса для сдвига информации «N» битов.

Что такое регистр? Регистр сдвига.

Регистр. Регистр сдвига

Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим RS-триггером.

Наиболее простая функция регистров - это запоминание числа и его длительное хранение. Эти устройства так и называются – регистры хранения. Вот простейший пример.

Пример схемы регистра

На входы D0 – D2 подаётся число, которое необходимо сохранить. Как только на входе С появляется импульс синхронизации, число записывается в триггер, изменяя их состояние. На рисунке показан трёхразрядный регистр хранения. При подаче на входы числа 1112 оно же появится на прямых выходах триггеров (Q0 - Q2). На инверсных выходах (Q0 - Q2) будет, естественно 0002. Сигналом R (Reset) или сброс, триггеры устанавливаются в нулевое состояние.

Обычно используются регистры, состоящие из 4, 8, или 16 триггеров. Изображение четырёхразрядного регистра на принципиальных схемах может быть таким.

Условное графическое изображение регистра на схеме

На рисунке не показаны инверсные выхода триггеров и сигнал R. Регистры всегда обозначаются латинскими буквами RG. Если регистр сдвигающий, то под обозначением рисуется стрелка направленная влево, вправо или двойная.

Сдвигающие регистры или регистры сдвига.

Регистр сдвига это устройство, состоящее из нескольких последовательно соединённых триггеров, число которых определяет разрядность регистра. Регистры широко используются в вычислительной технике для преобразования кодов. Параллельного в последовательный и наоборот.

Кроме того сдвигающие регистры являются основой (АЛУ) арифметико-логического устройства, так как при сдвиге записанного в регистр двоичного числа на один разряд влево производится умножение числа на два, а при сдвиге числа на один разряд вправо число делится на два. Поэтому наибольшее распространение получили реверсивные или двунаправленные регистры.

Рассмотрим четырёхразрядный регистр сдвига, преобразующий последовательный двоичный код в параллельный. Применение последовательного кода оправдано тем, что по одной линии можно передавать огромные массивы информации. Таким примером может служить универсальная последовательная шина - USB порт любого устройства. Число триггеров в данном регистре может быть любым. Достаточно соединить прямой выход Q3 с D входом следующего триггера и так далее до достижения необходимой разрядности.

Состав регистра сдвига

Регистр работает следующим образом. Первый информационный бит поступает на вход D0. Одновременно с этим битом приходит тактовый синхроимпульс на вход С. Входы С всех триггеров входящих в регистр, объединены между собой. С приходом первого тактового импульса уровень, находящийся на входе D0 записывается в первый триггер и с выхода Q0 приходит на вход следующего триггера, но записи во второй триггер не происходит, так как синхроимпульс уже закончился.

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

Допустим это уровни 01102. Тогда это двоичное число можно отобразить, подключив к выходам триггеров светодиоды. Так рассмотренный регистр изображается на принципиальной схеме.

Обозначение регистра сдвига на схеме

Видно, что на условном изображении присутствует стрелка - указатель того, что это сдвиговый регистр.

Рассмотрим, как работает четырёх разрядный универсальный регистр сдвига К155ИР1 (аналог - SN7495N). Вот его внутреннее устройство.

Внутренняя структура микросхемы-регистра К155ИР1

Регистр содержит четыре D-триггера, которые соединены между собой с помощью дополнительных логических элементов И – ИЛИ, которые позволяют реализовать различные функции. На схеме:

  • V2 – вход управления. С его помощью выбирается режим работы регистра.

  • Q1 – Q4 выходы триггеров с которых снимается параллельный код.

  • V1 – вход для подачи последовательного кода.

  • C1, C2 – тактовые синхроимпульсы.

  • D1 – D4 – входы для записи параллельного кода.

Алгоритм работы регистра следующий. Если на вход V2 подать низкий потенциал, тактовые импульсы на C1, а на вход V1 подавать информационные биты, то регистр осуществляет сдвиг вправо. После приёма четырёх разрядов на выходах триггеров Q1 – Q4 мы получаем параллельный код. Таким образом осуществляется преобразование последовательного кода в параллельный.

Для обратного преобразования параллельный код записывается по входам D1 – D4, с подачей на вход V2 высокого потенциала и тактовых импульсов на вход С2. Затем подавая на вход V2 низкий потенциал, а тактовые импульсы на вход С1 мы сдвигаем записанный код, а с выхода последнего триггера снимается последовательный код.

По своей структуре это один из самых простых регистров сдвига.

Регистры сдвига в цифровой технике могут послужить основой, на которой собираются узлы с интересными свойствами. Это, например, кольцевые счётчики, которые называются счётчики Джонсона. Такой счётчик имеет количество состояний вдвое большее, чем число составляющих его триггеров. Например, если кольцевой счётчик состоит из трёх триггеров, то он будет иметь шесть устойчивых состояний. На вход счётчика ничего не подаётся кроме синхроимпульсов. В первоначальном состоянии все триггеры "сброшены", то есть на прямых выходах триггеров логические нули, а вот на входе D первого триггера с инверсного выхода третьего триггера находится логическая единица. Начнём подавать тактовые импульсы и процесс пошёл.

Схема счётчика Джонсона

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

N Q2 Q1 Q0
1 0 0 1
2 0 1 1
3 1 1 1
4 1 1 0
5 1 0 0
6 0 0 0

Теперь вы знаете, что такое регистр и как он может использоваться на практике. Основа любого регистра - это триггер. Число триггеров в регистре определяет его разрядность. Те, кто увлекается микроконтроллерами знает, что важнейший элемент любого микроконтроллера, будь то PIC, AVR, STM или MSP, это регистр.

Главная &raquo Цифровая электроника &raquo Текущая страница

Также Вам будет интересно узнать:

 

Больше чипов 74xx: сдвиговые регистры и декодеры

Благодаря заметке Два способа мультиплексирования светодиодов на примере микроконтроллеров AVR мы с вами знаем, что можно управлять сотней светодиодов, используя всего лишь 11 пинов микроконтроллера. Но что делать, если нужно управлять двумястами или, скажем, тысячью светодиодами? Оказывается, что изученные способы мультиплексирования могут быть улучшены, да так, что используя всего лишь три пина микроконтроллера можно управлять абсолютно любым количеством светодиодов! И в этом нам помогут следующие микросхемы.

Примечание: Если вы пропустили предыдущий пост, посвященный микросхемам 74xx, вот он — Интегральные схемы: чипы стандартной логики 74xx. Впрочем, тот пост был посвящен логическим вентилям, и для понимания представленного далее материала читать его не требуется.

SIPO сдвиговый регистр 74HC595

Сдвиговые регистры — это микросхемы, позволяющие, очень грубо говоря, добавить пинов вашему микроконтроллеру 🙂 Для добавления пинов на запись, используются SIPO сдвиговые регистры. SIPO означает «последовательный вход, параллельный выход». Если же нужно больше пинов на чтение, используются сдвиговые регистры PISO, «параллельный вход, последовательный выход». В данном разделе мы познакомимся с типичным SIPO сдвиговым регистром, 74HC595.

Какой пин 74HC595 для чего предназначен, можно узнать из даташита [PDF]:

SIPO сдвиговый регистр 74HC595

Если коротко, то:

  • VCC, GND — это питание.
  • OE — разрешение вывода. Чтобы вывод был всегда разрешен, можно подключить этот пин напрямую к минусу.
  • SRCLR — сброс. Если не используется, то нужно подключить напрямую к плюсу.
  • SER, SRCLK — используются для передачи данных. При подаче высокого напряжения на SRCLK происходит считывание одного бита данных с пина SER.
  • RCLK — при подаче сюда высокого напряжения происходит одновременный вывод принятых данных на параллельные выходы.
  • Qa-Qh — параллельные выходы. Сюда происходит вывод последних восьми полученных бит при подаче высокого напряжения на SRCLK.
  • Qh’ — при получении очередного бита информации и смещении значений по параллельным выходам бит Qh на самом деле не отбрасывается, а поступает на этот пин. Подключив его к пину SER другого сдвигового регистра, а также соединив выходы RCLK и SRCLK обоих сдвиговых регистров, можно получить 16-разрядный сдвиговый регистр. Второй сдвиговый регистр в свою очередь можно соединить с третьим и так далее, получив сколь угодно разрядный регистр сдвига.

Надеюсь, идея ясна — мы последовательно передаем на сдвиговый регистр восемь бит информации по одному биту. Затем сдвиговый регистр параллельно выводит полученные биты на восемь пинов. Отсюда и «последовательный вход, параллельный выход».

Пример кода:

const uint8_t hc595_data  = 6; /* SER */
const uint8_t hc595_latch = 7; /* RCLK */
const uint8_t hc595_clock = 8; /* SRCLK */

/* ... */

void setup()
{
  pinMode(hc595_data, OUTPUT);
  pinMode(hc595_latch, OUTPUT);
  pinMode(hc595_clock, OUTPUT);

  /* ... */
}

/* ... */

void loop()
{
  /* ... */
  digitalWrite(hc595_latch, LOW);
  shiftOut(hc595_data, hc595_clock, MSBFIRST, hc595_out);
  digitalWrite(hc595_latch, HIGH);
  /* ... */
  delay(100);
}

Нам даже не нужно писать никаких циклов. В Arduino уже предусмотрена готовая процедура shiftOut, которая делает все за нас.

В итоге три пина микроконтроллера эффективно превратились в восемь пинов. Если соединить несколько сдвиговых регистров, как это было описано выше, то можно вместо восьми пинов получить сколько угодно. При этом в микроконтроллере все так же будет задействовано только три пина.

Существует чип 74HC164, который предоставляет аналогичную функциональность, и имеет при этом 14 пинов вместо 16-и. Его даташит можно полистать здесь [PDF].

PISO сдвиговый регистр 74HC165

Типичным представителем PISO сдвиговых регистров является 74HC165.

Картинка из даташита [PDF]:

PISO сдвиговый регистр 74HC165

Назначение пинов:

  • VCC, GND — питание.
  • A-H — входы сдвигового регистра.
  • SH — когда на этом пине низкое напряжение, происходит считывание данных с пинов A-H.
  • CLK INH — что-то делает только при высоком напряжении на SH. Низкое напряжение означает разрешить использование часов (пин CLK). На практике можно подключить напрямую к земле.
  • CLK — когда на SH высокое напряжение и на CLK INH низкое, при подаче на CLK низкого напряжения происходит сдвиг данных.
  • Qh — выход сдвигового регистра. Одноименный выход с чертой — это инвертированный выход.
  • SER — при очередном сдвиге освободившийся бит принимает значение, поданное на этот пин. Пин может быть задействован при одновременном использовании нескольких сдвиговых регистров. Или можно просто подключить к земле.

Пример кода, считывающего состояние восьми кнопок, используя всего лишь три пина:

const uint8_t hc165_data = A5; /* QH */
const uint8_t hc165_latch = A4; /* SH */
const uint8_t hc165_clock = A3; /* CLK */

/* ... */

void setup()
{
  /* ... */

  pinMode(hc165_data, INPUT);
  pinMode(hc165_clock, OUTPUT);
  pinMode(hc165_latch, OUTPUT);
}

uint8_t shiftIn165(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder)
{
  uint8_t value = 0;
  uint8_t i;

  for (i = 0; i < 8; ++i)
  {
    digitalWrite(clockPin, LOW);
    if (bitOrder == LSBFIRST)
      value |= digitalRead(dataPin) << i;
    else
      value |= digitalRead(dataPin) << (7 - i);
    digitalWrite(clockPin, HIGH);
  }

  return value;
}

void loop()
{
  digitalWrite(hc165_latch, LOW);
  delayMicroseconds(5);
  digitalWrite(hc165_latch, HIGH);
  delayMicroseconds(5);

  hc595_out = shiftIn165(hc165_data, hc165_clock, MSBFIRST);

  /* ... */

  delay(100);
}

Встроенная процедура shiftIn для работы с 74HC165, к сожалению, не годится, так в ней используется обратный порядок подачи сигналов LOW и HIGH на clockPin. Поэтому в приведенном коде используется собственная реализация с правильным порядком.

Декодер / демультиплексор 74HC138

В данном контексте было бы большим упущением не рассказать про демультиплексоры, так как они могут быть использованы для управления светодиодными матрицами, так же, как и сдвиговые регистры. Грубо говоря, демультиплексоры занимаются тем, что декодируют числа из бинарного представления в унарное. Типичным представителем демультиплексоров является 74HC138.

Вот иллюстрация из его даташита [PDF]:

Декодер / демультиплексор 74HC138

Назначение пинов:

  • VCC, GND — питание.
  • A, B, C — три бита входа.
  • Y0-Y7 — выход. Если на вход подан ноль в бинарном представлении, на Y0 будет подано низкое напряжение, а на все остальные выходы высокое. Если подана единица в бинарном представлении, на Y1 будет низкое напряжение, а на всех остальных выходах высокое, и так далее.
  • G1, G2A, G2B — разрешение вывода. Чтобы на выходах Y0-Y7 было что-то осмысленное, на G1 должно быть подано высокое напряжение, а на G2A и G2B — низкое. Иначе на всех выходах Y0-Y7 будет высокое напряжение независимо от входов A, B и C. Пины G2A и G2B можно просто подключить к земле.

Пример кода:

const uint8_t hc138_a = 5;
const uint8_t hc138_b = 4;
const uint8_t hc138_c = 3;
const uint8_t hc138_enable = 9;

/* ... */

uint8_t hc138_out = 0;

void setup()
{
  /* ... */

  pinMode(hc138_a, OUTPUT);
  pinMode(hc138_b, OUTPUT);
  pinMode(hc138_c, OUTPUT);
  pinMode(hc138_enable, OUTPUT);

  /* ... */
}

/* ... */

void loop()
{
  /* ... */

  digitalWrite(hc138_enable, LOW);
  digitalWrite(hc138_a, hc138_out & (1 << 0));
  digitalWrite(hc138_b, hc138_out & (1 << 1));
  digitalWrite(hc138_c, hc138_out & (1 << 2));
  digitalWrite(hc138_enable, HIGH);
  hc138_out = (hc138_out + 1) & B00000111;

  delay(100);
}

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

Существует также чип 74HC154. Он аналогичен по функциональности, но более громоздок и является четырехбитным. Его даташит можно полистать здесь [PDF].

Как несложно догадаться, если есть демультиплексоры, значит бывают и мультиплексоры. Они в каком-то смысле аналогичны PISO сдвиговым регистрам, так как позволяют увеличить количество читающих пинов микроконтроллера. В качестве примеров можно привести чипы 74HC151 и 74HC153. Их даташиты доступны, соответственно, здесь [PDF] и здесь [PDF].

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

Полная версия кода

Вы, конечно же, поняли, что приведенные выше отрывки кода являются частью одной программы. Вот ее полный исходный код:

#include <Arduino.h>

const uint8_t hc595_data  = 6; /* SER */
const uint8_t hc595_latch = 7; /* RCLK */
const uint8_t hc595_clock = 8; /* SRCLK */

const uint8_t hc138_a = 5;
const uint8_t hc138_b = 4;
const uint8_t hc138_c = 3;
const uint8_t hc138_enable = 9;

const uint8_t hc165_data = A5; /* QH */
const uint8_t hc165_latch = A4; /* SH */
const uint8_t hc165_clock = A3; /* CLK */

uint8_t hc595_out = 0;
uint8_t hc138_out = 0;

void setup()
{
  pinMode(hc595_data, OUTPUT);
  pinMode(hc595_latch, OUTPUT);
  pinMode(hc595_clock, OUTPUT);

  pinMode(hc138_a, OUTPUT);
  pinMode(hc138_b, OUTPUT);
  pinMode(hc138_c, OUTPUT);
  pinMode(hc138_enable, OUTPUT);

  pinMode(hc165_data, INPUT);
  pinMode(hc165_clock, OUTPUT);
  pinMode(hc165_latch, OUTPUT);
}

uint8_t shiftIn165(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder)
{
  uint8_t value = 0;
  uint8_t i;

  for (i = 0; i < 8; ++i)
  {
    digitalWrite(clockPin, LOW);
    if (bitOrder == LSBFIRST)
      value |= digitalRead(dataPin) << i;
    else
      value |= digitalRead(dataPin) << (7 - i);
    digitalWrite(clockPin, HIGH);
  }

  return value;
}

void loop()
{
  digitalWrite(hc165_latch, LOW);
  delayMicroseconds(5);
  digitalWrite(hc165_latch, HIGH);
  delayMicroseconds(5);

  hc595_out = shiftIn165(hc165_data, hc165_clock, MSBFIRST);

  digitalWrite(hc595_latch, LOW);
  shiftOut(hc595_data, hc595_clock, MSBFIRST, hc595_out);
  digitalWrite(hc595_latch, HIGH);

  digitalWrite(hc138_enable, LOW);
  digitalWrite(hc138_a, hc138_out & (1 << 0));
  digitalWrite(hc138_b, hc138_out & (1 << 1));
  digitalWrite(hc138_c, hc138_out & (1 << 2));
  digitalWrite(hc138_enable, HIGH);
  hc138_out = (hc138_out + 1) & B00000111;

  delay(100);
}

Фотография соответствующего прототипа на макетной плате:

Пример использования сдвиговых регистров и демультиплексоров

Используемые чипы слева направо — микроконтроллер ATmega328P, SIPO сдвиговый регистр 74HC595, демультиплексор 74HC138, PISO сдвиговый регистр 74HC165. Состояние восьми кнопок считывается через 74HC165. Светодиоды слева, соответствующие нажатым кнопкам, не горят, а отпущенным — горят. Состояние этих светодиодов контролируется через 74HC595. На фото я зажал три правые кнопки карандашом и потому три соответствующих им светодиода не горят. Еще восемь светодиодов справа контролируются демультиплексором 74HC138. Их состояние зависит только от времени, по очереди гаснет один светодиод.

Примечание: Вас могут заинтересовать статьи Как собрать Arduino прямо на макетной плате и Собираем USB-программатор для AVR из ATmega328P и FT232.

Заключение

Еще из интересных чипов стоит упомянуть шинный формирователь 74HC244. Это штука, которая может как бы отрезать одну часть цепи от другой. Если добавить в цепь 74HC04 (логическое НЕ), то при помощи 74HC244 можно будет использовать одни и те же пины для работы с SIPO и PISO сдвиговыми регистрами, плюс один пин для переключения между ними. Итого, если микроконтроллер имеет четыре пина, он может работать с любым количеством кнопок и светодиодов. У самого маленького известного мне микроконтроллера ATtiny13 целых пять свободных пинов, что позволяет обойтись и без 74HC04. Подробности о 74HC244 ищите в даташите [PDF], там все очень просто.

Также заслуживает внимания чип 74HC4051. Эта штука позволяет соединить аналоговый канал с любым из 8 других аналогвых каналов, или разъединить их все. Мне нравится думать о 74HC4051, как о переключателе, управляемом программного. Подробности — в даташите [PDF].

В контексте увеличения числа пинов микроконтроллера стоит также упомянуть чипы MCP23017 / MCP23S17 [PDF] и специализированные чипы для управления светодиодными матрицами вроде MAX7221 [PDF]. Интересны они тем, что предлагая функциональность, аналогичную функциональности сдвиговых регистров и декодеров, могут занимать меньше места на плате. Если же вы хотите увеличить числ ШИМ-пинов, обратите внимание на микросхему TLC5940 (видеообзор, библиотека). Однако обсуждение данных микросхем уже сильно выходит за рамки данного поста. Вы без труда сможете изучить их самостоятельно в качестве домашнего задания.

Итак, теперь вы знаете все необходимое, чтобы делать при помощи светодиодов потрясающие вещи, вроде таких или даже таких. Полную версию исходников к посту вы найдете в этом репозитории на GitHub. Как обычно, буду весьма рад вашим вопросам и дополнениям.

Дополнение: Вас также могут заинтересовать посты Знакомство с компараторами на примере чипа LM339 и Изучаем работу операционного усилителя на примере NE5532.

Метки: Электроника.

Цифровые регистры - CoderLessons.com

Триггер представляет собой 1-битную ячейку памяти, которая может использоваться для хранения цифровых данных. Чтобы увеличить объем памяти с точки зрения количества бит, мы должны использовать группу триггеров. Такая группа триггеров называется Регистром . N-битный регистр будет состоять из n номеров триггера, и он способен хранить n-битное слово.

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

  • Последовательный вход Последовательный выход
  • Последовательный вход параллельный выход
  • Параллельный вход Последовательный выход
  • Параллельный вход Параллельный выход

Последовательный вход Последовательный выход

Пусть все триггеры изначально находятся в состоянии сброса, т.е. Q 3 = Q 2 = Q 1 = Q 0 = 0. Если в регистр внесена запись четырехбитового двоичного числа 1 1 1 1, это число должно быть применяется к биту D с битом LSB, примененным первым. Вход D FF-3, т. Е. D 3 , подключен к последовательному входу данных D in . Выход FF-3, т.е. Q 3 , подключен ко входу следующего триггера, т.е. D 2 и так далее.

Блок-схема

Блок-схема регистра SISO

операция

Перед применением тактового сигнала, пусть Q 3 Q 2 Q 1 Q 0 = 0000 и применяет бит LSB числа, которое нужно ввести в D in . Так что D в = D 3 = 1. Применить часы. На первом заднем фронте тактовой частоты устанавливается FF-3, и сохраненное слово в регистре имеет вид Q 3 Q 2 Q 1 Q 0 = 1000.

Операция SISO, шаг 1

Применить следующий бит к D в . Таким образом, D in = 1. Как только наступит следующий отрицательный фронт тактовых импульсов, FF-2 установится, и сохраненное слово изменится на Q 3 Q 2 Q 1 Q 0 = 1100.

Операция SISO, шаг 2

Примените следующий сохраняемый бит, т.е. от 1 до D in . Применить тактовый импульс. Как только третий отрицательный край тактового импульса достигнет значения, будет установлен FF-1 и выходной сигнал будет изменен на Q 3 Q 2 Q 1 Q 0 = 1110.

Операция SISO, шаг 3

Аналогично, с D in = 1 и с приходом четвертого отрицательного тактового фронта сохраненное слово в регистре равно Q 3 Q 2 Q 1 Q 0 = 1111.

Операция SISO, шаг 4

Таблица правды

Таблица истинности регистра SISO

Волновые

Форма волны в регистре SISO

Последовательный вход Параллельный выход

  • При таких типах операций данные вводятся последовательно и выводятся параллельно.

  • Данные загружаются по крупицам. Выходы отключены, пока данные загружаются.

  • Как только загрузка данных завершится, все триггеры содержат свои необходимые данные, выходы будут включены, чтобы все загруженные данные стали доступны по всем выходным линиям одновременно.

  • Для загрузки четырехбитного слова требуется 4 такта. Следовательно, скорость работы в режиме SIPO такая же, как в режиме SISO.

При таких типах операций данные вводятся последовательно и выводятся параллельно.

Данные загружаются по крупицам. Выходы отключены, пока данные загружаются.

Как только загрузка данных завершится, все триггеры содержат свои необходимые данные, выходы будут включены, чтобы все загруженные данные стали доступны по всем выходным линиям одновременно.

Для загрузки четырехбитного слова требуется 4 такта. Следовательно, скорость работы в режиме SIPO такая же, как в режиме SISO.

Блок-схема

Блок-схема Регистра СИПО

Параллельный вход Последовательный выход (PISO)

  • Биты данных вводятся параллельно.

  • Схема, показанная ниже, представляет собой четырехбитовый параллельный входной регистр последовательного выхода.

  • Выход предыдущего триггера соединен со входом следующего через комбинационную схему.

  • Двоичное входное слово B 0 , B 1 , B 2 , B 3 применяется через одну и ту же комбинационную схему.

  • Есть два режима, в которых может работать эта схема, а именно — режим смещения или режим нагрузки.

Биты данных вводятся параллельно.

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

Выход предыдущего триггера соединен со входом следующего через комбинационную схему.

Двоичное входное слово B 0 , B 1 , B 2 , B 3 применяется через одну и ту же комбинационную схему.

Есть два режима, в которых может работать эта схема, а именно — режим смещения или режим нагрузки.

Режим загрузки

Когда линия сдвига / полосы загрузки является низкой (0), логические элементы И, 2, 4 и 6 становятся активными, они передают биты B 1 , B 2 , B 3 на соответствующие триггеры. На низком фронте тактовой частоты двоичные входы B 0 , B 1 , B 2 , B 3 будут загружены в соответствующие триггеры. Таким образом происходит параллельная загрузка.

Режим сдвига

Когда линия сдвига / полосы нагрузки низкая (1), логические элементы И, 2, 4 и 6 становятся неактивными. Следовательно, параллельная загрузка данных становится невозможной. Но ворота 1,3 и 5 И становятся активными. Поэтому сдвиг данных слева направо по крупицам при применении тактовых импульсов. Таким образом, происходит параллельная операция последовательного вывода.

Блок-схема

Блок-схема регистра PISO

Параллельный вход Параллельный выход (PIPO)

В этом режиме 4-битный двоичный вход B 0 , B 1 , B 2 , B 3 применяется к входам данных D 0 , D 1 , D 2 , D 3 соответственно четырех триггеров. Как только отрицательный фронт такта применен, входные двоичные биты будут загружены в триггеры одновременно. Загруженные биты появятся одновременно на выходной стороне. Только тактовый импульс необходим для загрузки всех битов.

Блок-схема

Блок-схема Регистра PIPO

Двунаправленный регистр сдвига

  • Если двоичное число сдвигается влево на одну позицию, то это эквивалентно умножению исходного числа на 2. Аналогично, если двоичное число сдвигается вправо на одну позицию, то это эквивалентно делению исходного числа на 2.

  • Следовательно, если мы хотим использовать сдвиговый регистр для умножения и деления заданного двоичного числа, то мы должны иметь возможность перемещать данные влево или вправо.

  • Такой регистр называется двунаправленным регистром. Четырехбитный двунаправленный регистр сдвига показан на рис.

  • Имеется два последовательных входа, а именно последовательный ввод данных правого сдвига DR и последовательный ввод данных левого сдвига DL вместе с входом выбора режима (M).

Если двоичное число сдвигается влево на одну позицию, то это эквивалентно умножению исходного числа на 2. Аналогично, если двоичное число сдвигается вправо на одну позицию, то это эквивалентно делению исходного числа на 2.

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

Такой регистр называется двунаправленным регистром. Четырехбитный двунаправленный регистр сдвига показан на рис.

Имеется два последовательных входа, а именно последовательный ввод данных правого сдвига DR и последовательный ввод данных левого сдвига DL вместе с входом выбора режима (M).

Блок-схема

Блок-схема двунаправленного регистра сдвига

операция

SN Состояние операция
1 С М = 1 — сдвиг вправо

Если M = 1, то логические элементы AND 1, 3, 5 и 7 включены, тогда как остальные логические элементы AND 2, 4, 6 и 8 будут заблокированы.

Данные в D R сдвигаются вправо по битам от FF-3 к FF-0 при применении тактовых импульсов. Таким образом, при M = 1 мы получаем последовательную операцию правого сдвига.

2 С М = 0 — сдвиг влево

Когда регулятор режима М подключен к 0, тогда логические элементы И, 2, 4, 6 и 8 включены, а 1, 3, 5 и 7 отключены.

Данные в D L сдвигаются влево по битам от FF-0 до FF-3 при применении тактовых импульсов. Таким образом, при M = 0 мы получаем последовательную операцию правого сдвига.

Если M = 1, то логические элементы AND 1, 3, 5 и 7 включены, тогда как остальные логические элементы AND 2, 4, 6 и 8 будут заблокированы.

Данные в D R сдвигаются вправо по битам от FF-3 к FF-0 при применении тактовых импульсов. Таким образом, при M = 1 мы получаем последовательную операцию правого сдвига.

Когда регулятор режима М подключен к 0, тогда логические элементы И, 2, 4, 6 и 8 включены, а 1, 3, 5 и 7 отключены.

Данные в D L сдвигаются влево по битам от FF-0 до FF-3 при применении тактовых импульсов. Таким образом, при M = 0 мы получаем последовательную операцию правого сдвига.

Универсальный регистр сдвига

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

  • Параллельная загрузка
  • Сдвиг влево
  • Сдвиг вправо

Вход управления режимом подключен к логике 1 для параллельной загрузки, тогда как он подключен к 0 для последовательного переключения. Когда контакт управления режимом подключен к земле, универсальный регистр сдвига действует как двунаправленный регистр. Для последовательной левой операции ввод применяется к последовательному входу, который идет к логическому элементу AND gate-1, показанному на рисунке. Принимая во внимание, что для операции сдвига вправо, последовательный вход применяется к входу D.

Сдвиговые регистры в цифровой логике

Триггеры могут быть использованы для хранения одного бита двоичных данных (1 или 0). Однако для хранения нескольких бит данных нам нужно несколько триггеров. N триггеров должны быть подключены для хранения n бит данных. Регистр — это устройство, которое используется для хранения такой информации. Это группа триггеров, соединенных последовательно, для хранения нескольких бит данных.

Информация, хранящаяся в этих регистрах, может быть передана с помощью сдвиговых регистров . Shift Register — это группа триггеров, используемых для хранения нескольких бит данных. Биты, хранящиеся в таких регистрах, могут быть перемещены внутри регистров и входить / выходить из регистров путем применения тактовых импульсов. N-битный регистр сдвига может быть сформирован путем соединения n триггеров, где каждый триггер хранит один бит данных.
Регистры, которые будут сдвигать биты влево, называются «сдвигами регистров влево».
Регистры, которые сдвигают биты вправо, называются «регистры сдвига вправо».

Сдвиговые регистры в основном 4 типа. Эти:

  1. Serial In Serial Out сдвиговый регистр
  2. Серийный параллельно выходной сдвиговый регистр
  3. Сдвиговый регистр Parallel In Serial Out
  4. Параллельно-параллельно-сдвиговый регистр

Серийный входной регистр с последовательным выходом (SISO) —

Сдвиговый регистр, который допускает последовательный ввод (один бит за другим через одну строку данных) и создает последовательный выход, известен как сдвиговый регистр Serial-In Serial-Out. Поскольку имеется только один выход, данные покидают сдвиговый регистр по одному биту за раз в последовательной последовательности, таким образом, имя Serial-In Serial-Out Shift Register.

Приведенная ниже логическая схема показывает сдвиговый регистр последовательного входа в последовательный выход. Схема состоит из четырех D-триггеров, которые соединены последовательно. Все эти триггеры синхронизированы друг с другом, так как один и тот же тактовый сигнал применяется к каждому триггеру.

Вышеприведенная схема является примером сдвига правого регистра, в котором вводятся последовательные данные с левой стороны триггера. Основное использование SISO — это элемент задержки.

Сдвиговый регистр с параллельным выходом (SIPO) —

Сдвиговый регистр, который допускает последовательный ввод (один бит за другим через одну строку данных) и создает параллельный выход, называется сдвиговым регистром с последовательным выходом.

Приведенная ниже логическая схема показывает сдвиговый регистр с последовательным параллельным выходом. Схема состоит из четырех D-триггеров, которые связаны между собой. Сигнал очистки (CLR) в дополнение к тактовому сигналу подключается ко всем 4 триггерам для их СБРОСА. Выход первого триггера соединен со входом следующего триггера и так далее. Все эти триггеры синхронизированы друг с другом, так как один и тот же тактовый сигнал применяется к каждому триггеру.

Вышеприведенная схема является примером сдвига правого регистра, который берет последовательный ввод данных с левой стороны триггера и производит параллельный вывод. Они используются в линиях связи, где требуется демультиплексирование линии данных в несколько параллельных линий, поскольку основное использование регистра SIPO заключается в преобразовании последовательных данных в параллельные данные.

Сдвиговый регистр с параллельным выходом (PISO) —

Сдвиговый регистр, который допускает параллельный ввод (данные передаются отдельно на каждый триггер и одновременно) и генерирует последовательный выход, называется сдвиговым регистром с параллельным вводом-выходом.

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

Регистр сдвига Parallel in Serial out (PISO), который мы использовали для преобразования параллельных данных в последовательные.

Регистр сдвига с параллельным входом (PIPO) —

Сдвиговый регистр, который допускает параллельный ввод (данные передаются отдельно на каждый триггер и одновременно), а также создает параллельный вывод, известный как сдвиговый регистр с параллельным выходом.

Логическая схема, приведенная ниже, показывает сдвиговый регистр с параллельным параллельным выходом. Схема состоит из четырех D-триггеров, которые связаны между собой. Сигнал сброса (CLR) и тактовые сигналы подключены ко всем 4 триггерам. В этом типе регистров нет никаких взаимосвязей между отдельными триггерами, так как не требуется последовательное смещение данных. Данные вводятся в качестве входных данных отдельно для каждого триггера, и таким же образом вывод также собирается отдельно для каждого триггера.

Сдвиговый регистр Parallel in Parallel out (PIPO) используется в качестве временного запоминающего устройства и, подобно регистру сдвига SISO, он действует как элемент задержки.

Двунаправленный регистр сдвига —

Если мы сдвигаем двоичное число влево на одну позицию, это эквивалентно умножению числа на 2, а если мы сдвигаем двоичное число вправо на одну позицию, это эквивалентно делению числа на 2. Чтобы выполнить эти операции нам нужен регистр, который может сдвигать данные в любом направлении.

Двунаправленные регистры сдвига — это регистры, которые могут смещать данные вправо или влево в зависимости от выбранного режима. Если выбран режим 1 (высокий), данные будут смещены в правильном направлении, а если выбран режим 0 (низкий), данные будут смещены в левом направлении.

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

Счетчик регистра сдвига —

Счетчики сдвиговых регистров — это сдвиговые регистры, в которых выходы подключены обратно к входам для создания определенных последовательностей. Это в основном два типа:

  1. Кольцо Счетчик —

    Кольцевой счетчик — это, в основном, счетчик сдвиговых регистров, в котором выход первого триггера соединен со следующим триггером и т. Д., А выход последнего триггера снова возвращается на вход первого триггера, таким образом счетчик именных колец. Шаблон данных в регистре сдвига будет циркулировать, пока применяются тактовые импульсы.

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

    Счетчик звонка обычно используется, потому что он самодекодируется. Никакой дополнительной схемы декодирования не требуется, чтобы определить, в каком состоянии находится счетчик.

  2. Счетчик Джонсона —
    Счетчик Джонсона — это счетчик регистра сдвига, в котором выход первого триггера соединен со следующим триггером и т. Д., А инвертированный выход последнего триггера снова возвращается на вход первого триггера. Они также известны как счетчики витых колец.

    Приведенная ниже логическая схема показывает счетчик Джонсона. Схема состоит из четырех D-триггеров, которые связаны между собой. N-ступенчатый счетчик Джонсона дает последовательность счетчиков из 2n различных состояний, также известную как счетчик mod-2n. Поскольку схема состоит из четырех триггеров, шаблон данных будет повторяться каждые восемь тактовых импульсов, как показано в таблице истинности ниже:

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

Приложения сдвиговых регистров —

  • Сдвиговые регистры используются для временного хранения данных.
  • Сдвиговые регистры также используются для передачи данных и манипулирования данными.
  • Сдвиговые регистры с последовательным входом, последовательным выходом и параллельным выходом используются для создания временной задержки для цифровых цепей.
  • Сдвиговый регистр с последовательным параллельным выводом используется для преобразования последовательных данных в параллельные данные, поэтому они используются в линиях связи, где требуется демультиплексирование линии данных в несколько параллельных линий.
  • Сдвиговый регистр Parallel in Serial out используется для преобразования параллельных данных в последовательные данные.

Ссылка —
Регистры — ee.usyd.edu.au

Рекомендуемые посты:

Сдвиговые регистры в цифровой логике

0.00 (0%) 0 votes

Использование сдвиговых регистров в устройствах индикации.

Использование сдвиговых регистров в устройствах индикации.

Одной из проблем, возникающих при разработке микроконтроллерных устройств часто становится необходимость экономии линий портов ввода/вывода. Многие периферийные устройства, которые могут работать в связке с процессором, требуют для передачи информации большого количества соединительных проводников. Актуальность этой задачи не снизилась даже с появлением процессоров с большим количеством выводов, так как одновременно усложнились и периферийные устройства.   Для устройств индикации, одним из вариантов снижения количества требуемых линий может стать использование регистров сдвига (Shift register).

Регистр сдвига представляет собой цепочку из нескольких, последовательно соединенных D-триггеров. На первый триггер подключается информационный выход микроконтроллера. С каждым импульсом тактового сигнала, передаваемого по отдельной линии, уровень на входе каждого из триггеров записывается на выход. В итоге происходит сдвиг сигнала от начала к концу цепочки. Если использовать подключить выходные линии после каждого из триггеров, то сдвиговый регистр будет представлять собой последовательно-параллельный преобразователь. Это значит, что для организации каких-либо индикаторов, будет минимально необходимо использовать только два вывода микроконтроллера.

В настоящее время производители предлагают большое количество моделей регистров сдвига, с различными функциональными особенностями. Далее будут рассматриваться только микросхемы с последовательным входом и параллельным выходом. Также для описываемых целей можно использовать некоторые универсальные модели регистров.

Использование регистра 74164

Регистр сдвига 

Одной из наиболее простых и распространенных микросхем, реализующих функцию регистра сдвига, считается модель 74164 (555ИР8) и ее технологические варианты. Данная микросхема представляет собой 8-ми разрядный регистр с последовательной загрузкой и параллельным выходом. Используя 74164 можно сравнительно просто получить линейный индикатор из 8-ми светодиодов или односимвольный семисегментный индикатор. При необходимости, допускается последовательное соединение нескольких микросхем, что увеличит количество выходных линий, и подключенных к ним индикаторов.

Выходной ток каждой линии современных вариантов 74ACT164 и 74HCT164 составляет 25мА, что позволяет напрямую подключать маломощные одиночные светодиоды или семисегментные индикаторы. Время цикла этих микросхем может находиться на уровне 15нС, что соответствует возможности работы на частоте 66МГц. Учитывая, что подобная или более высокая частота работы процессоров встречается редко, для формирования тактовых импульсов достаточно просто включить и выключить выход контроллера, без какой-либо задержки.Для загрузки данного регистра сдвига достаточно двух линий: DATA и CLK. Это позволяет задействовать только две линии микроконтроллера, для управления устройством индикации. При этом во многих случаях может оказаться не важно, сколько микросхем будет соединено последовательно, и соответственно сколькими индикаторами управляет контроллер.

Подключение индикатора

Вариантов использования 74164 существует множество. Можно выделить несколько из них. Первый, вышеназванный индикатор на основе нескольких светодиодов. Второй – одиночный семисегментный индикатор или линейка из них. Пример линейки индикаторов показан в статье – Термометр на микроконтроллере PIC12F629.

Программирование индикации с использование регистра сдвига также не отличается высокой сложностью. Особенно если в микроконтроллере реализована такая операция, как сдвиг байта через бит переноса. Проверкой данного бита можно определить уровень, который требуется установить на линии данных. Циклически повторяя такой сдвиг и формируя тактовые импульсы можно полностью загрузить регистр сдвига.Следующим вариантом использования может стать схема динамической индикации, когда для снижения количества используемых линий микропроцессора, параллельный вывод на отдельные сегменты, заменяется на последовательный, с использованием последовательно-параллельного преобразователя. Этот же преобразователь может использоваться в схеме включения ЖК-индикатора на базе HD44780.

Подключение HD44780 с использованием регистра Каскадное включение регистров Использование ULN2803 совместно с регистром

Использование регистров 74595 и 4094

Применение регистров сдвига позволяет строить большие схемы с использованием светодиодных индикаторов. Но в случае, если индикаторы потребляют большой ток (состоят из множества отдельных светодиодов), выходного сигнала регистра становится недостаточно. Для усиления сигнала можно применять различные схемы, состоящие из отдельных транзисторов, или сборок. Наиболее просто и выгодно в этом случае использовать микросхему ULN2803, содержащую 8 транзисторных ключей. Каждый ключ способен коммутировать ток до 500мА при напряжении до 50В, что позволяет подключать к нему до нескольких десятков отдельных светодиодов, маломощных ламп накаливания, либо сегменты крупногабаритных матричных индикаторов. Единственным отличием от вышеприведенных схем, будет использование светодиодных индикаторов с общим анодом, так как ULN2803, по сути, представляет собой ключ нижнего плеча.При всех своих достоинствах, микросхема 74164 имеет некоторые недостатки. В первую очередь к ним следует отнести непосредственное подключение выходов схемы к выходным линиям триггеров. В медленных системах светодиодной индикации, при загрузке регистра, можно наблюдать движение информации от входа к выходу в виде посторонней засветки сегментов. В случае частого обновления информации, подобная засветка вызывает несколько неприятные ощущения. Для ее устранения следует применять регистры, оснащенные выходной защелкой. Примером таких элементов служат микросхемы 74595 и 4094. Каждая из них имеет дополнительный вход стробирования SCLK. При неизменном принципе загрузки, информация на выходе этих устройств сможет появиться только после прохождения импульса по данному входу. Такое решение требует использования дополнительного вывода микроконтроллера, но позволяет строить индикаторы с большим количеством сегментов, без появления различных неприятных эффектов. Особенно полезно использование регистров, оснащенных защелками совместно с микроконтроллерами, работающими на пониженных частотах или от внутренних генераторов.  

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

You have no rights to post comments

Что такое сдвиговый регистр? Работа, приложения и типы сдвиговых регистров

Что такое сдвиговый регистр:

Сдвиговые регистры - это последовательных логических схем , способных хранить и передавать данные. Они состоят из триггеров, которые подключены таким образом, что выход одного триггера может служить входом другого триггера, в зависимости от типа создаваемых регистров сдвига.

D-Flip Flop shift Register

Сдвиговые регистры - это тип регистра, который может передавать («сдвигать») данные.Регистры - это, как правило, устройства хранения, которые создаются путем последовательного соединения определенного количества триггеров, и объем данных (количество битов), которые могут быть сохранены регистром, всегда прямо пропорционален количеству триггеров, поскольку каждый триггер Флоп способен хранить только один бит за раз. Когда триггеры в регистре соединены таким образом, что выход одного триггера становится входом другого, создается сдвиговый регистр.

D Flip-Flop

Вьетнамки - это устройства с операцией, аналогичной операции защелки .Он может называться бистабильным вибратором, который может перемещаться между двумя состояниями (0 или 1) и способен хранить данные в битах. Новые данные считываются на триггере с каждым тактом, а предыдущие данные отправляются на выход. Это, однако, зависит от типа триггера, так как соотношение между входом, выходом и тактовым циклом между триггерами различается. Существуют различные виды триггеров, но наиболее часто используемые при создании регистров сдвига - это триггеры D (Delay) -flip.

Для работы D-триггеров, что делает их столь желательными для сдвиговых регистров, Всякий раз, когда происходит изменение тактового сигнала D-триггера (восходящий или падающий фронт, в зависимости от характеристик триггера).Данные на выходе «Q» становятся теми же данными, что и на входе «D». Выход «Q» триггера будет оставаться на этом значении до следующего тактового цикла, где он снова изменится на значение (High или low, 1 или 0) на входе.

D Flip Flop Truth Table

Типы регистров сдвига

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

подразделяются на типы в основном по режиму работы , последовательному или параллельному.

Существует шесть (6) основных типов регистров сдвига, которые перечислены ниже, хотя некоторые из них могут быть дополнительно разделены на основе направления потока данных: сдвиг вправо или сдвиг влево.

1. Последовательный вход - регистр переключения последовательного выхода (SISO)

2. Последовательный вход - параллельный сдвиговый регистр (SIPO)

3. Параллельный вход - регистр переключения параллельного выхода (PIPO)

4. Параллельный вход - регистр переключения последовательного выхода (PISO)

5. Двунаправленные регистры сдвига

6.Счетчики

1. Последовательный вход - регистры сдвига последовательного выхода

Серийный вход - Сдвиговые регистры с последовательным выходом - это сдвиговые регистры, в которые данные поступают последовательно (один бит за тактовый цикл) и тоже выводят данные одинаково, один за другим.

Serial in - Serial out Shift Registers

Простой последовательный входной последовательный 4-разрядный сдвиговый регистр показан выше, этот регистр состоит из 4 триггеров, а разбивка того, как он работает, поясняется ниже;

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

Существует двух основных способов переноса данных из через сдвиговый регистр;

  1. Неразрушающий отсчет
  2. Деструктивная индикация

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

Когда устройство находится в рабочем режиме «запись», сдвиговый регистр сдвигает все данные по одному биту за раз, ведя себя точно так же, как версия с деструктивным считыванием, и данные, таким образом, теряются, но когда рабочий режим переключается на «чтение», данные, которые сдвигаются на входе, возвращаются в систему и служат входом в регистр сдвига.Это помогает гарантировать, что данные остаются дольше (пока они находятся в режиме чтения)

При разрушительном считывании данные полностью теряются, поскольку триггер просто перемещает информацию. Предполагая, что для 4-битного сдвигового регистра выше мы хотим отправить слово «1101». После очистки регистра сдвига выходные данные всех триггеров становятся равными 0, поэтому во время первого тактового цикла, когда мы последовательно применяем эти данные (1101), выходные данные триггеров выглядят как в таблице ниже.

Первый тактовый цикл:

Второй тактовый цикл:

Третий тактовый цикл:

Четвертый тактовый цикл:

2. Последовательный вход - параллельный выход из сдвигового регистра

Второй тип сдвигового регистра, который мы будем рассматривать, - это сдвиговый регистр с последовательным выходом. Эти типы регистров сдвига используются для преобразования данных из последовательного в параллельный.Данные поступают один за другим за тактовый цикл и могут либо сдвигаться и заменяться, либо считываться на каждом выходе . Это означает, что при считывании данных каждый бит считывания становится доступным одновременно на соответствующей выходной линии (Q0 - Q3 для 4-битного сдвигового регистра, показанного ниже).

4-битный последовательный вход - регистр сдвига с параллельным выходом показан на рисунке ниже.

Serial in – Parallel out Shift Register

Таблица, показывающая, как данные сдвигаются из последовательного в 4-битный регистр сдвига с параллельным выходом, показана ниже с данными как 1001.

Очистить

FF0

FF1

FF2

FF3

1001

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

0

1

0

0

1

Хорошим примером последовательного сдвигового регистра с параллельным выходом является сдвиговый регистр 74HC164, , который является 8-разрядным сдвиговым регистром.

Устройство имеет два последовательных ввода данных (DSA и DSB), восемь параллельных выходов данных (с Q0 по Q7). Данные вводятся последовательно через DSA или DSB, и любой вход может использоваться в качестве активного разрешения ВЫСОКОГО уровня для ввода данных через другой вход. Данные сдвигаются на переходах LOW-HIGH на входе синхронизации (CP). НИЗКИЙ на главном входе сброса (MR) очищает регистр и приводит в действие все выходы НИЗКОГО, независимо от других входов. Входы включают диоды зажима. Это позволяет использовать токоограничивающие резисторы для сопряжения входов с напряжениями, превышающими VCC.

74HC164 Functional Diagram

3. Параллельный вход - Серийный выход Сдвиговый регистр

Для этого типа сдвигового регистра данные подаются параллельно, например, рассмотрим 4-битный сдвиговый регистр, показанный ниже.

Parallel in – Serial out Shift Register

Этот регистр может использоваться для хранения и сдвига 4-битного слова с помощью управляющего входа записи / сдвига (WS), управляющего режимом работы регистра сдвига. Когда линия управления WS имеет низкий уровень (режим записи), данные могут быть записаны и синхронизированы через D0-D3.Для последовательного сдвига данных линия управления WS переводится в ВЫСОКОЕ состояние (режим Shift), а затем регистр сдвигает данные на тактовом входе.

Хорошим примером параллельного сдвигового регистра с последовательным выходом является 74HC165 8-битный сдвиговый регистр , хотя он также может работать как последовательный сдвоенный выходной сдвиговый регистр.

Устройство имеет последовательный вход данных (DS), восемь параллельных входов данных (от D0 до D7) и два дополнительных последовательных выхода (Q7 и Q7 ’). Когда вход параллельной нагрузки (PL) НИЗКИЙ, данные от D0 до D7 загружаются в регистр сдвига асинхронно.Когда PL ВЫСОКИЙ, данные поступают в регистр последовательно в DS. Когда вход разрешения синхронизации (CE) НИЗКИЙ, данные сдвигаются на переходах НИЗКО-ВЫСОКИЙ на входе СР. Высокий на CE отключит вход CP. Входы выдерживают перенапряжение до 15 В. Это позволяет использовать устройство в приложениях с высоким на низкий уровень.

Функциональная схема регистра сдвига показана ниже;

74HC165 Shift Register Functional Diagram

Временная диаграмма системы показана на рисунке ниже;

4.Параллельный вход - параллельный сдвиговый регистр

Для параллельного параллельного выходного регистра сдвига выходные данные через параллельные выходы появляются одновременно с вводом входных данных.

4 Bits PIPO Shift Register

Входные данные на каждом из входных контактов от D0 до D3 считываются в то же время, когда устройство синхронизируется, и в то же время данные, считанные с каждого из входов, передаются на соответствующий выход (из С Q0 по Q3).

Сдвиговый регистр 74HC195 является многоцелевым сдвиговым регистром , который способен работать в большинстве режимов, описанных всеми типами, которые мы обсуждали до сих пор, особенно как параллельный параллельный сдвиговый регистр.

5. Двунаправленные сдвиговые регистры

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

Рассмотрим 4-битный регистр на изображении ниже.Пара вентилей NAND сконфигурированы как вентили ИЛИ и используются для управления направлением сдвига вправо или влево.

4-Bits Bidirectional shift register

Линия управления влево / запись используется для определения направления смещения данных, вправо или влево.

Хороший пример - сдвиговый регистр 74HC194 в двух направлениях. Регистр может работать во всех режимах и вариантах последовательного и параллельного ввода или вывода. Функциональная схема 74HC194 с выделением линии управления, тактового сигнала, входных и выходных контактов показана ниже.

74HC194 shift register Functional Diagram

Временная диаграмма устройства также показана ниже. Это поможет вам лучше понять, как контрольная линия контролирует действия регистра.

74HC194 Bidirectional shift Register Timing Diagram

6. Счетчики

Счетчики

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

Этот самый популярный тип счетчиков регистров сдвига - это счетчики колец.

Кольцевой счетчик

Кольцевые счетчики - это в основном тип счетчика, в котором выход старшего значащего бита возвращается как вход младшего значащего бита. 4-битный кольцевой счетчик показан на диаграмме ниже с использованием D-триггеров.

Ring Counter

Когда применяется тактовый импульс, выход каждого каскада смещается к следующему, и цикл продолжается.Когда очистка становится высокой, все триггеры, кроме первого (который устанавливается в 1), обнуляются.

Применение регистров сдвига

Сдвиговые регистры используются во многих приложениях, некоторые из которых;

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

2. Расширение ввода-вывода для микроконтроллеров . В современной электронике выводы ввода / вывода микроконтроллеров называются объектами недвижимости, и для определенного применения необходимо как можно больше, например, включение 100 светодиодов или считывание 100 герконов с помощью микроконтроллера Arduino или Atmeg328p. Например, приведенная ниже принципиальная схема иллюстрирует, как регистр сдвига от последовательного к параллельному может использоваться для управления 8 светодиодами, используя только три вывода ввода-вывода микроконтроллеров.

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

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

Время задержки обычно рассчитывается по формуле;

т = N * (1 / фк)

N - номер этапа триггера, на котором берется выход, Fc - частота тактового сигнала, а t, которое является определяемым значением, - это время, на которое выход будет задерживаться.

При выборе сдвигового регистра для конкретной задачи из-за широкого диапазона и ввода важно выбрать тот, который соответствует вашим конкретным потребностям, учитывая такие вещи, как режим работы, размер бита (количество триггеров), справа или левый или двунаправленный и т. д.

Некоторые из самых популярных сдвиговых регистров являются;

  1. 74HC 194 4-битный двунаправленный универсальный сдвиговый регистр
  2. 74HC 198 8-битный двунаправленный универсальный сдвиговый регистр
  3. 74HC595 Серийный сдвиговый регистр с последовательным выходом
  4. 74HC165 регистр сдвига с параллельным входом в последовательный выход
  5. IC 74291 4-битный универсальный сдвиговый регистр, двоичный счетчик вверх / вниз, синхронный.
  6. IC 74395 4-битный универсальный сдвиговый регистр с выходами с тремя состояниями.
  7. IC 74498 8-разрядный двунаправленный сдвиговый регистр с параллельными входами и выходами с тремя состояниями.
  8. IC 74671 4-битный двунаправленный сдвиговый регистр.
  9. IC 74673 16-разрядный последовательный сдвиговый регистр с последовательным выходом и выходными регистрами хранения.
  10. IC 74674 16-разрядный параллельный параллельный сдвиговый регистр с тремя состояниями.

Есть еще несколько, вам просто нужно найти, который лучше всего подходит для вашего приложения.

Спасибо за чтение, до следующего раза.

,

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

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

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

Это последовательное устройство загружает данные, присутствующие на его входах, а затем перемещает или «сдвигает» их на свои выходы один раз в каждом тактовом цикле, отсюда и название « сдвиговый регистр ».

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

Биты данных могут поступать в или из сдвигового регистра последовательно, то есть один за другим в левом или правом направлении, или все вместе в параллельной конфигурации.

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

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

Отдельные защелки данных, которые составляют один сдвиговый регистр, все управляются общим тактовым сигналом (Clk), что делает их синхронными устройствами.

Микросхемы

сдвиговых регистров обычно снабжены чистым соединением со сбросом или со сбросом , так что они могут быть «SET» или «RESET», как требуется.

Как правило, сдвиговые регистры работают в одном из четырех различных режимов с основным перемещением данных через сдвиговый регистр, например:

.
  1. Последовательный вход в последовательный выход (SISO): регистр загружается последовательными данными, по одному биту за раз, и последовательно сдвигается из регистра, по одному биту за раз в левом или правом направлении под управлением часов.
  2. Последовательный вход-параллельный выход (SIPO): в регистр загружаются последовательные данные, один бит за раз, с сохраненными данными, доступными на выходе в параллельной форме.
  3. Параллельный вход в последовательный выход (PISO): параллельные данные одновременно загружаются в регистр и последовательно выводятся из регистра по одному биту за раз под контролем тактовой частоты.
  4. Параллельный вход в параллельный выход (PIPO): параллельные данные одновременно загружаются в регистр и передаются вместе на их соответствующие выходы одним и тем же тактовым импульсом.

Эффект перемещения данных слева направо через регистр сдвига может быть представлен графически как:

1

Рис.1

Сдвиговый регистр последовательного входа в последовательный (SISO)

Пусть все триггеры изначально находятся в состоянии сброса, то есть Q A = Q B = Q C = Q D = 0.

Введем четырехбитное двоичное число 1 1 1 1 в регистр.

Этот номер следует применять к D в битах , причем сначала применяется бит LSB.Вход D FFA, т. Е. D A , подключен к последовательному входу данных D в . Выход FFA, то есть Q A , подключен ко входу следующего триггера, то есть D B и так далее.

Блок-схема

7

Рис.2

Операция

Перед применением тактового сигнала, пусть все триггеры изначально находятся в состоянии сброса, т.е. Q A = Q B = Q C = Q D = 0 и применяют бит LSB числа к быть введен в D в .Так D в = D A = 1.

Теперь примените часы.

На первом заднем фронте тактовой частоты устанавливается FFA, и сохраненное слово в регистре равно

.

Q A Q B Q C Q D = 1000.

8

Рис.3

Применить следующий бит к D в . Так D в = 1.

Как только наступит следующий отрицательный край тактового сигнала, FF-B установится, и сохраненное слово изменится на

Q A Q B Q C Q D = 1100.

9

Рис.4

Применить следующий сохраняемый бит, то есть от 1 до D в .

Применить тактовый импульс. Как только третий отрицательный тактовый импульс достигнет значения, будет установлен FF-C, и выходной сигнал будет изменен на Q A Q B Q C Q D = 1110.

10

Рис.5

Аналогично с D при = 1 и с четвертым отрицательным фронтом тактового сигнала сохраненное слово в регистре равно Q A Q B Q C Q D = 1111.

11

Рис.6

Таблица Истины

12

Форма волны

13

Рис.7

регистр последовательного переключения в параллельный выход (SIPO)

  • В таких операциях данные вводятся последовательно и выводятся параллельно.
  • Данные загружаются по крупицам. Выходы отключены, пока данные загружаются.
  • Как только загрузка данных завершена, все триггеры содержат свои необходимые данные, выходы активируются, так что все загруженные данные становятся доступными по всем выходным линиям одновременно.
  • Для загрузки четырехбитного слова требуется 4 такта. Следовательно, скорость работы в режиме SIPO такая же, как в режиме SISO

14

Рис.8

Последовательный выход параллельного входа (PISO)

В этом типе биты регистра сдвига вводятся параллельно.

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

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

Двоичное входное слово B 0 , B 1 , B 2 , B 3 применяется через одну и ту же комбинационную схему.

Есть два режима, в которых эта схема может работать, а именно режим смещения или режим нагрузки.

режим загрузки

Когда линия полосы переключения / переключения нагрузки является низкой, то есть логическая «0», логические элементы И 2,4 и 6 становятся активными.

Они передают B 1 , B 2 , B 3 бит на соответствующие триггеры.

На низком фронте тактовой частоты двоичные входы B 0 , B 1 , B 2 , B 3 будут загружены в соответствующие триггеры.Таким образом происходит параллельная загрузка.

SHIFT MODE

Когда линия сдвига / полосы нагрузки является высокой, т.е. логическая «1», логические элементы И 2,4 и 6 становятся неактивными.

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

Но ворота 1,3 и 5 И становятся активными.

Поэтому смещение тактовых импульсов происходит слева направо при применении тактовых импульсов. Таким образом, происходит параллельная операция последовательного вывода.

Блок-схема

15

Рис.9

Параллельный вход Параллельный выход (PIPO)

В этом режиме 4-разрядный двоичный вход B 0 , B 1 , B 2 , B 3 применяется к входам данных D 0 , D 1 , D 2 , D 3 соответственно из четырех шлепанцев.

Как только будет применен отрицательный тактовый такт, входные двоичные биты будут загружены в триггеры одновременно.

Загруженные биты появятся одновременно на стороне выхода.

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

Блок-схема

16

Рис.10

Двунаправленный регистр сдвига

  • Если двоичное число сдвигается влево на одну позицию, то это эквивалентно умножению исходного числа на 2. Аналогично, если двоичное число сдвигается вправо на одну позицию, то это эквивалентно делению исходного числа на 2.
  • Следовательно, если мы хотим использовать сдвиговый регистр для умножения и деления заданного двоичного числа, то мы должны иметь возможность перемещать данные влево или вправо.
  • Такой регистр называется двунаправленным регистром.
  • Четырехбитный двунаправленный регистр сдвига показан на рис.11
  • Имеется два последовательных входа, а именно: последовательный вход данных правого сдвига D R и последовательный вход данных левого сдвига D L вместе с входом выбора режима (M).
Блок-схема

17

Рис.11

Операция
При М = 1: Сдвиг вправо:
  • Если M = 1, то логические элементы AND 1,3,5 и 7 включены, тогда как остальные логические элементы AND 2,4,6 и 8 будут отключены.
  • Данные в D R сдвигаются вправо по битам от FF-3 к FF-0 при применении тактовых импульсов.
  • Таким образом, при M = 1 мы получаем последовательную операцию правого сдвига.
При М = 0: Сдвиг влево:
  • Когда управление режимом М подключено к 0, тогда логические элементы И 2,4,6 и 8 включены, а 1,3,5 и 7 отключены.
  • Данные в D L сдвигаются влево по битам с FF-0 на FF-3 при применении тактовых импульсов.
  • Таким образом, при M = 0 мы получаем последовательную операцию правого сдвига.
Универсальный сдвиговый регистр

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

  • Параллельная загрузка
  • Сдвиг влево
  • Сдвиг вправо

Вход управления режимом подключен к логике 1 для параллельной загрузки, тогда как он подключен к 0 для последовательного переключения.

Когда контакт управления режимом подключен к земле, универсальный сдвиговый регистр действует как двунаправленный регистр.

Для последовательной левой операции вход подается на последовательный вход, который идет к логическому элементу И-1, показанному на рис.12. Принимая во внимание, что для операции сдвига вправо последовательный вход применяется к входу D.

БЛОК-СХЕМА

18

Рис.12

,
новейших «сдвиговых регистров» Вопросы - переполнение стека
Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру
.
74HC595 Схема расположения, сдвиги, характеристики и схема
регистра сдвига

Конфигурация контактов

ПИН-код

ПИН-код

Описание

1,2,3,4,5,6,7

выходных контактов (с Q1 по Q7)

74hc595 имеет 8 выходных контактов, из которых 7 являются этими контактами.Они могут контролироваться серийно

8

Земля

подключен к заземлению цепи

9

(Q7) Серийный выход

Этот вывод используется для подключения более одного 74hc595 в качестве каскадного

10

(MR) Мастер Сброс

Сбрасывает все выходы как низкие.Должен быть высоко поднят для нормальной работы

11

(SH_CP) Часы

Это тактовый вывод, на который должен поступать тактовый сигнал от MCU / MPU

12

(ST_CP) Защелка

Контакт Latch используется для обновления данных на выходные контакты.Активно высоко

13

(OE) Выход включен

Разрешение выхода используется для отключения выходов. Должен удерживаться на низком уровне для нормальной работы

14

(DS) Серийные данные

Это вывод, на который отправляются данные, на основе которого управляются 8 выходов

15

(Q0) Выход

Первый выходной контакт.

16

Vcc

Этот вывод питает IC, обычно используется + 5В.

Особенности

  • 8-битный последовательный вход - параллельный выход сдвиговый регистр
  • Рабочее напряжение: от 2 В до 6 В
  • Потребляемая мощность: 80 мкА
  • Выходной ток источника / стока: 35 мА
  • Выходное напряжение равно Рабочему напряжению
  • Минимальное входное напряжение высокого уровня: 3.15 В @ (Vcc = 4,5 В)
  • Максимальное входное напряжение низкого уровня: 1,35 В @ (Vcc = 4,5 В)
  • Можно легко каскадировать с большим количеством микросхем, чтобы получить больше выходов
  • Максимальная тактовая частота: 25 МГц при 4,5 В
  • Доступен в 16-контактном корпусе PDIP, GDIP, PDSO.

Примечание. Полные технические детали можно найти в техническом описании 74hc595 , приведенном в конце этой страницы.

Альтернативы регистров сдвига

с.№

Наименование

Тип

1

4035

4-битный параллельный регистр сдвига с параллельным выходом

2

74LS379

регистр параллельного сдвига

3

4014

4-битный статический сдвиговый регистр

4

74LS166

8-битный сдвиговый регистр

5

74LS323

8-битный регистр сдвига / хранения

6

74LS164

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

7

4015

Двойной 4-битный статический регистр

8

74LS299

8-битный регистр сдвига / хранения

Где использовать 74HC595 IC

74HC595 - это 8-битный регистр сдвига с последовательным входом и параллельным выходом , т.е.е. он может получать (вводить) данные последовательно и параллельно контролировать 8 выходных контактов. Это очень удобно, когда на нашем MCU / MPU не хватает выводов GPIO для управления необходимым количеством выходов. Он часто используется в проектах, где относительно большое количество светодиодов должно контролироваться через микроконтроллер. Его также можно использовать для сопряжения ЖК-экрана, поскольку они могут выступать в качестве бита данных для ЖК-дисплеев. Он также может использоваться для управления нагрузками 5 В, такими как реле, через микроконтроллер 3,3 В, поскольку напряжение высокого уровня составляет всего 3.15. Так что, если вы ищете микросхему для сохранения на ваших выводах GPIO на микроконтроллере, тогда эта микросхема может быть правильным выбором для вас.

Как использовать 74HC595 IC

Сдвиговый регистр 74HC595 обычно используется с микроконтроллерами или микропроцессорами для расширения функциональности GIPO. Требуется только 3 контакта, подключенных к MCU, а именно Clock, Data и Latch. Имеет широкое рабочее напряжение от 2 до 6 В. Схема применения микросхемы показана ниже:

74HC595 Example Circuit

Контакты 11, 14 и 12 подключены к контактам GPIO микроконтроллера.В котором вывод 11 - это часы, которые посылают постоянный импульс, чтобы сохранить синхронизацию. Вывод 14 - это Данные, которые фактически отправляют Данные о том, какие выходные выводы должны оставаться низкими, а какие - высокими. Вывод 12 - это защелка, которая обновляет полученные данные до выходных выводов, когда они сделаны высокими, этот вывод также может постоянно удерживаться на высоком уровне. Изображение ниже поможет вам лучше понять.

Как вы можете видеть, часы продолжают серию импульсов, и данные повышаются только в том месте, где выходной сигнал должен быть высоким.Здесь, например, двоичное значение 0b10110011 передается в микроконтроллер. Главный сброс (MR) для вывода используется для сброса выходов, когда он не используется, он удерживается на высоком уровне до vcc, аналогично, вывод должен оставаться на низком уровне, когда он не используется.

Другим важным преимуществом 74hc595 IC является то, что он может каскадно управлять более чем 8 выходами. Для этого мы используем Q7 ’(контакт 9), этот контакт должен быть подключен к контакту данных второй 74HC595 IC. Таким образом, первый 8-битный сигнал, отправленный из MCU, будет использоваться первой IC, а второй 8-битный будет использоваться второй IC.

Приложения

  • Разверните вывод GPIO на MCU / MPU
  • LED Matrix / Cube Projects
  • Интерфейс LCD
  • Каскадные приложения
  • Контроллер высокого логического уровня

2D Модель 74HC595 (PDIP)

IC 74HC595 Dimensions

,

Отправить ответ

avatar
  Подписаться  
Уведомление о