Электроника для всех
Блог о электронике
Сдвиговый регистр
Иногда требуется ОЧЕНЬ много выходных портов. Особенно если хотим сделать что нибудь на светодиодах. Гирлянду какую-нибудь навороченную. Что делать? Брать под это дело ATMega128 с ее полусотней выводов? Избыточно — для ламеров. Ставить i 2 с расширитель портов? Дорого. Для мажоров. Тут на помощь из вековых глубин выплывает старая добрая дискретная логика. На этот раз нас выручит грошовый сдвиговый регистр. Возьму, для примера, 74HC164 он же, для любителей совковых трешевых микросхем в неубиваемом каменном корпусе, наш КM555ИР8.
![]() |
От МК, как видно, требуется только четыре выхода. Одним (RESET) мы сбрасываем состояние регистра. Из второго (Data) побитно вылазит байтик, а тактовый CLC обеспечивает продвижение битов по регистру. Самих регистров тут три. Они сцеплены паровозом. Когда переполняется первый, то биты из него вылазят во второй, потом в третий. Итого, 24 вывода.
Катоды диодов подключены все вместе через транзистор и как только будет слово мы подаем сигнал Ready и зажигаем всю эту ботву.
Наполнять регистр просто:
1) Поднимаем и держим RESET в 1
2) Выдаем первый (старший) бит на Data.
3) Опускаем в 0 и поднимаем в 1 тактовый выход. На восходящем фронте происходит занос в регистр и сдвиг всей цепочки на один шаг.
4) Повторить со второго пункта пока все биты не выдадим.
А для сброса достаточно уронить Reset в ноль на пару микросекунд.
Все просто 🙂
Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
120 thoughts on “Сдвиговый регистр”
mc14094 получше
я управлял 3мя индикаторами по 2м проводам
Принцип работы РСЛОС
Введение
Регистр сдвига с линейной обратной связью (РСЛОС, англ. Linear Feedback Shift Register, LFSR) — сдвиговый регистр битовых слов, у которого значение входного бита однозначно задается некоторой функцией, исходя из значений остальных битов регистра до сдвига. Регистр сдвига может представлять собой некоторую электрическую схему, составленную из дискретных компонентов: транзисторов, резисторов, также может быть интегрирован в микросхему или же реализован в программе. Добавление обратной связи превращает регистр сдвига в генератор псевдослучайных чисел, который находит широкое применение в криптографии. В статье мы разберем принцип работы РСЛОС от hardware до различных его применений.
Регистр, в общем случае – это схема, состоящая из связанных между собой однобитовых элементов памяти. Такие схемы умеют записывать, хранить, считывать n-разрядные двоичные данные. В статье рассматривается вид регистра, называемый регистром сдвига. Чаще всего регистр сдвига собирается на основе последовательно соединенных D-триггеров, притом количество этих триггеров равно числу разрядов n. С принципов работы D-триггера мы и начинаем статью.
D-триггер
Кратко затронем самые основы. Глобально, электронику можно разделить на два раздела: аналоговый и цифровой. Принципиальная особенность второго заключается в том, что сигналы задаются дискретными уровнями напряжения. Притом дискретных уровня всего два. Таким образом, вместо того, чтобы записывать напряжение в вольтах, достаточно просто называть один из двух дискретных уровней. Так и появляются названия «ноль» и «единица». В действительности, они определяют некоторые уровни напряжения, которые могут быть какими угодно. Хотя, в большинстве случаев, «ноль» обозначает уровень 0 Вольт, а «единица» уровень 5 В, 3.3 В, 1.8 В, 1.5 В и т.д. Таким образом, фраза «на входе ноль, на выходе единица» обозначает: «на входе напряжение, соответствующее уровню ноль, на выходе напряжение, соответствующее уровню единица».
Двигаемся далее. Теперь у нас есть цифровой сигнал, что же интересного можно с ним сделать? Подать на D-триггер и посмотреть, что будет! Но сначала дадим пару определений.
Триггер – электронное устройство, обладающее способностью длительно находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.
D-триггер – триггер, сохраняющий состояние входа. Притом, это состояние отображается на выходе
На электрической схеме устройства D-триггер выглядит ровно так же, как на рисунке ниже. Такой вид триггера обязательно имеет три вывода: D (вход), C (вход синхронизации, вход тактирования, тактовый вход, clk, clock) и Q (выход). Помимо них могут иметься еще: инвертированный выход, входы сброса и установки значения на выходе, вход разрешения работы. Однако, суть работы заключается именно во взаимодействии трех обязательных выводов, поэтому именно их мы и рассмотрим.
Принцип работы D-триггера следующий: при подаче тактового сигнала на вход C, состояние на выходе становится равным состоянию на входе. Т. е. если в какой-то момент времени на входе был «ноль», а на выходе «единица», то в момент подачи тактового сигнала выход примет состояние входа и станет «нулём».
Что такое регистр?
Регистр. Регистр сдвига
Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим RS-триггером.
Обычно используются регистры, состоящие из 4, 8, или 16 триггеров. Изображение четырёхразрядного регистра на принципиальных схемах может быть таким.
На рисунке не показаны инверсные выхода триггеров и сигнал R. Регистры всегда обозначаются латинскими буквами RG. Если регистр сдвигающий, то под обозначением рисуется стрелка направленная влево, вправо или двойная.
Сдвигающие регистры или регистры сдвига.
Регистр сдвига это устройство, состоящее из нескольких последовательно соединённых триггеров, число которых определяет разрядность регистра. Регистры широко используются в вычислительной технике для преобразования кодов. Параллельного в последовательный и наоборот.
Кроме того сдвигающие регистры являются основой (АЛУ) арифметико-логического устройства, так как при сдвиге записанного в регистр двоичного числа на один разряд влево производится умножение числа на два, а при сдвиге числа на один разряд вправо число делится на два. Поэтому наибольшее распространение получили реверсивные или двунаправленные регистры.
Регистр работает следующим образом. Первый информационный бит поступает на вход D0. Одновременно с этим битом приходит тактовый синхроимпульс на вход С. Входы С всех триггеров входящих в регистр, объединены между собой. С приходом первого тактового импульса уровень, находящийся на входе D0 записывается в первый триггер и с выхода Q0 приходит на вход следующего триггера, но записи во второй триггер не происходит, так как синхроимпульс уже закончился.
При поступлении следующего тактового импульса уровень, присутствующий на входе второго триггера запоминается в нём и поступает на вход третьего триггера. Одновременно следующий информационный бит запоминается в первом триггере. После прихода четвёртого тактового импульса в четырёх триггерах регистра будут записаны логические уровни, которые последовательно поступали на вход D0.
Допустим это уровни 01102. Тогда это двоичное число можно отобразить, подключив к выходам триггеров светодиоды. Так рассмотренный регистр изображается на принципиальной схеме.
Регистр содержит четыре 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 |
Реферат: Регистры сдвиги
| Название: Регистры сдвиги Раздел: Рефераты по астрономии Тип: реферат Добавлен 21:01:48 18 декабря 2003 Похожие работы Просмотров: 2701 Комментариев: 19 Оценило: 4 человек Средний балл: 4 Оценка: неизвестно Скачать | |
![]() |
![]() |
Рисунок 14. Трехтактный регистр сдвига на RS-триггерах
3.4. Универсальные регистры
Есть множество серий ИС регистров многорежимных (многофункциональных) или универсальных, способных выполнять набор микроопераций. Многорежимность достигается композицией в одной и той же схеме частей, необходимых для выполнения различных операций. Управляющие сигналы, задающие вид выполняемой в данное время операции, активизируют необходимые для этого части схемы.
Рисунок 15. Универсальные регистры сдвига: а – К155ИР13, б – К500ИР141, в – КМ155ИР1
На рисунке 15 показано три типичных представителя универсальных сдвиговых регистров серии К155, КМ155 и К500.
Микросхема ИР13 (рисунок 15 а ) – это восьмиразрядный реверсивный сдвигающий регистр с допустимой тактовой частотой до 25 МГц при токе потребления до 40 мА. Имеет параллельные входы и выходы, вход асинхронного сброса 
Микросхема ИР141 (рисунок 15 б ) – это универсальный четырёх-разрядный сдвиговый регистр, построенный на эмитерно-связной логике. Тактовая частота – до 150 МГц. Потребляемый ток – не менее 120 мА. При S0 = 0, S1 = 1 происходит сдвиг информации вправо, при S0 = 1, S1 = 0 – влево, а при S0 = S1 = 1 – хранение числа, при S0 = S1 = 0 – установка числа.
Микросхема ИР1 (рисунок 15 в ) – это сдвигающий регистр с синхронной записью информации на RS-триггерах. Входы 1 – 4 предназначены для параллельной записи информации, вход D – для последовательной записи. Вход V – управляющий. При V = 0 схема работает как сдвигающий регистр по отрицательному перепаду (с 1 на 0) сигнала С1, а при V = 1 схема работает в режиме синхронной записи в регистр сигналов входов 1 – 4 по отрицательному перепаду сигнала С2.
Регистры, имеющие разнотипные вход и выход, служат основными блоками преобразователей параллельных кодов в последовательные и обратно. На рисунке 16 показана схема преобразователя параллельного кода в последовательный на основе восьмиразрядного регистра типа SI/PO/SO. В этой схеме отрицательный стартовый импульс St, задающий уровень логического нуля на верхнем входе элемента 1, создаёт единичный сигнал параллельного приёма данных на вход L (Load – загрузка), по которому в разряды 1 – 7 регистра загружается преобразуемое слово, а в нулевой разряд – константа 0. На последовательный вход DSR подана константа 1. Таким образом, после загрузки в регистре формируется слово. Тактовые импульсы, поступающие на вход С, вызывают сдвиг слова вправо. Сдвиги выводят слово в последовательной форме через выход Q7. Вслед за информационными разрядами идёт 0, после которого цепочка единиц. Пока ноль не выведен из регистра, на выходе элемента 2 действует единичный сигнал. После вывода нуля все входы элемента 2 становятся единичными, его выход приобретает нулевое значение и через элемент 1 формирует сигнал автоматической загрузки следующего слова, после чего цикл преобразования повторяется.
Рисунок 16. Схема преобразователя параллельного кода в последовательный
Современные регистры мало приспособлены для выполнения поразрядных логических операций, но при необходимости их можно выполнить пользуясь регистрами на RS-триггерах. Для выполнения операции ИЛИ на S вход статического регистра с исходным нулевым состоянием подаётся первое слово, единичные разряды которого устанавливают соответствующие триггеры. Затем без сброса регистра на S выходы подаётся второе слово.
При выполнении поразрядной операции И в первом такте на S входы регистра подаётся первое слово, устанавливающее те разряды регистра, в которых это слово имеет единицы. Затем следует подать на регистр второе слово. Чтобы в регистре сохранились единицы только в тех разрядах, в которых оба слова имеют единицы, второе слово подаётся на входы R триггеров в инверсном виде.
Сложение по модулю 2 может быть выполнено схемой с триггерами типа Т в разрядах путём последовательной во времени подачи на неё двух слов.
4. Разработка схемы регистра сдвига
4.1. Исходные данные
Заданы тактовые импульсы положительной полярности.
4.2. Порядок разработки регистра сдвига
а) Рассмотрение общих требований к схеме регистра.
б) Разработка регистра сдвига.
в) Описание работы разработанной схемы.
4.3. Разработка четырёхфазного регистра сдвига
Необходимо разработать четырёхфазный регистр сдвига на RS-триггерах. Пусть он будет правосдвигающим. Для этого нам понадобится четыре синхронных RS-триггера с синхронизацией по фронту тактирующего импульса и некоторое число логических элементов для создания цепей переноса. Так как сдвигающие регистры с последовательными входом и выходом имеют низкое быстродействие, разработаем схему с параллельными входом и выходом.
Рисунок 17. Разработанная схема правосдвигающего синхронного регистра на RS-триггерах
Выполняя инвертирование сигнала на входах триггеров мы добиваемся того, что подача напряжений одинаковых уровней на входы S и R невозможна. Значит, при S = 0, R = 1 – на выходе получим 0, при S = 1, R = 0 – на выходе получим 1. На входах сдвигающего регистра необходимо установить четыре элемента со следующей таблицей истинности:

















Динамический вход может быть прямым и инверсным. Прямое динамическое управление подразумевает разрешение на переключение при изменении тактового сигнала с нулевого значения на единичное ( ). Инверсное динамическое управление – изменение тактового сигнала с единичного на нулевой ( ).
Управление фронтом тактирующего импульса:
Управление спадом тактирующего импульса:
Управление верхним уровнем тактирующего импульса:
. Выход Q называют прямым, a
— инверсным. Уровни напряжения на обоих выходах взаимно инверсны: если сигнал Q = 1, то 
— триггер: его условное графическое обозначение и схема с двумя логическими элементами И-НЕ
— триггера
и
. При этом, если такие сигналы поступят на оба входа одновременно, то после их прекращения состояние триггера станет неопределенным (состояние Q = 0 или Q = 1 равновероятно). Поэтому одновременная подача сигналов низкого уровня на оба входа не разрешается.


= 1), а если на вход S, то в единичном состоянии (Q = 1 и
= 0).
-триггера тем, что к каждому входу добавлено по инвертору (DD3 и DD4), которые только обеспечивают необходимый уровень входных сигналов.
-триггера. Единственное различие касается инверсии уровней входных сигналов (R вместо
и S вместо
).





— сдвиг влево
— сдвиг вправо
— с входом R. Тактовые входы всех триггеров соединены вместе, и поступление сигнала синхронизации осуществляется одним общим импульсом через логический элемент И-НЕ (DD7). Состояние первого триггера определяется входными сигналами на входах Х1, Х2 логического элемента И-НЕ (DD5). На вход Х1 подаётся текущая информация, а на вход Х2 сигнал разрешения её передачи. Логический элемент НЕ используется (DD6) используется для инвертирования входного сигнала, подаваемого на вход S.
a)






