Возможность сдвигового регистра!

Обсуждаем цифровые устройства...
Ответить
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Доброго времени суток! Товарищи, у меня такой очередной глупый вопрос.
Существует ли такой сдвиговый регистр, который позволяет параллельно загружать в него код, и параллельно выгружать код, сдвигая его на 1 разряд влево?Пример: на входе код: 101. на выходе 1010. Регистр типа ИР13 позволяет делать либо то, либо то, правильно? Если это невозможно, то какие схемотехнические решения существуют. Спасибо за советы друзья.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

grigory писал(а): на 1 разряд влево
подозреваю что это уже не регистр а некое арифметическое устройство делающий умножение на 2.

уж если очень нужно такое чудо природы, то можно применить контроллер с простенькой программкой: принимает на порты например 8 разрядов, по стробу делает сдвиг и выдает на выходные порты. все упирается только в быстродействие - насколько быстрая требуется реакция на выходе этого устройства
Реклама
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Именно, мне необходимо увеличить число импульсов со счетчика в 2 раза, путем сдвига на 1 разряд влево.
Но необходимо реализовать схемотехнически, чтобы в далеком будущем реализовать на плис.
Тоесть одним регистром необойтись, правильно?
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

не совсем правильно - арифметическое умножение не увеличит частоту на выходе.. если не ошибаюсь.

появилась идея как просто увеличить частоту в 2 раза - сделать одновибратор, который запускается по фронту и по спаду входного импульса. в этом случае ограничен диапазон входных частот - зависит от длительности импульса одновибратора.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Я немножко некорректно написал. Мне необходимо код со счетчика импульсов увеличить вдвое(пришло 5 импульсов сдвинули получили 10), не частоту. Т.е. как я и написал в предыдущем сообщении: пришел на регистр код 11001101 и на выходе из него(или каскада непонятного) код на 1 разряд <------- т.е. 110011010. Регистр позволяет это сделать я так понимаю, но для этого необходима последовательная загрузка входного кода, а мне нужна паралельная. Вот такая проблемка. Я могу полностью обрисовать задачу, но думаю это не интересно никому)) Вся это чупуха для того чтобы дальше была возможность сравнивать на компараторе)
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

а может изначально все это построить на микроконтроллере? тогда уж всю задачу надо обрисовать в общих чертах
Реклама
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Вот такая схемка, я пытался на выходе регистра 74198 получить сдвинутый код, ну и на 90% понял что это невозможно. потому-что как бы я не подключал ножки выбора режима, он или неработает, или повторяет входной код.
Вложения
yir4.rar
не работает.
(16.02 КБ) 220 скачиваний
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

На микроконтроллере построить это не проблема. Задача такая: мне необходимо посчитать количество импульсов за 1 сек и за 2 сек и так далее. И если количество импульсов за n-ую секунду в 2 раза больше чем за n-1 секунду то все, останавливаем всю лабуду, дело сделано. Компаратор позваляет сравнивать только >, <, или= , поэтому я решил код за предыдущую секунду сдвинуть( тем самым увеличив его в 2 раза) а после, спокойно сравнить с количествои импульсов последующей секундой.
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

а в JPG там схемки нету? протеус ставить неохота
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

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

Микросхема К155ИР13 — универсальный, восьмиразрядный, синхронный регистр сдвига. Каждая операция продолжается в регистре не более 20 нс, поэтому он пригоден для обслуживания скоростных процессоров и ЗУ как буферный накопитель байта. Синхронную работу регистру обеспечивают специальные входы выбора режима S0 и SS. В таблице указаны сочетания уровней на этих входах, позволяющие переводить регистр в режимы: хранения (на входах S0 и S1 напряжения низкого уровня), параллельной загрузки (на этих входах напряжения высокого уровня), сдвига влево (S1-в, S0-н) и сдвига вправо (S1-н, SO-в).

Кроме однотипных параллельных входов, у микросхемы К155ИР13, DO — D7, первый и последний разряды регистра имеют дополнительные D-входы: DSR — для сдвига вправо и DSL для сдвига влево. Состоянием входов SO и S1 определяется также прием тактового перепада от входа С. На входы SO и S1 перепад от высокого уровня к низкому можно подавать, когда на входе С присутствует напряжение высокого уровня. При параллельной загрузке (S1-в, SO-в) слово, подготовленное на входах DO—D7, появится на выходах QO — Q7 после прихода последующего положительного перепада тактового импульса.
Вложения
схема1.JPG
(152.69 КБ) 629 скачиваний
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Параллельная загрузка со входов D осуществляется при высоком уровне U1 на входе управления S0 по срезу тактового импульса С. Во время параллельной загрузки вход последовательного ввода ЕХ блокируется.

Сдвиг вправо осуществляется по срезу тактового импульса при низком уровне Uo на входе управления режимом S0. Информация в последовательном коде подается на вход DR.

Сдвиг влево происходит при высоком уровне U1 на входе S0, при этом выход каждого триггера должен быть соединен внешними перемычками со входом параллельной загрузки прдыдущего триггера (Q3 c D2 и т.д.), а информация в последовательном коде подается на вход D3.
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

в одно действие- вряд-ли, но регистры такого вида имеются
взять хотя-бы 561ИР6...
Держит паяльник хвостом
Сообщения: 903
Зарегистрирован: Сб сен 11, 2010 17:32:42

Сообщение cahek80 »

эм.. чет я недопонимаю. если надо умножать на два. то зачем подключать к выводу d0? а не сразу к выводу d1 и далее... :dont_know:
Не нужно дергать спящего тигра за усы! Не высыпается 3-ий день!
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

cahek80 писал(а):к выводу d0? а не сразу к выводу d1 и далее...
Понимаете после первой секунды мне нужно иметь сдвинутый код, а после 3ей секунды реальный код. Т.к. после первой секунды этот код будет сравниваться с реальным кодом второй секунды, потом сдвинутый код 2ой секунды будет сравниваться с реальным кодом 3ей секунды и т.д. пока не получу нужного результата. Т.е. в зависимости от секунды мне нужно сдвигать или не сдвигать))
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

BOB51 писал(а):взять хотя-бы 561ИР6...
На сколько я понял (может это не так, просвятите). Если я загружаю в параллельно коде, то сдвига не будет никак ни в лево, ни в право. А сдвинуть(в лево или право) можно только при последовательной загрузке-это у всех сдвиговых регистров???
Друг Кота
Аватара пользователя
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

А кто мешает одним импульсом записать параллельный код, а вторым - сдвинуть его ? Регистру пофиг сдвигать информацию независимо от того, каким образом она в него попала - параллельно или как.
А вообще, если там не наносекундное быстродействие - в век микроконтроллеров заморачиваться рассыпушным брейнфакингом не стоит - МК может и сдвигать, и компаратором работать, и еще много чего.
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

grigory писал(а):после первой секунды мне нужно иметь сдвинутый код, а после 3ей секунды реальный код.....
такие алгоритмы проще реализовать с МК - один корпус на печатке вместо десятка микросхем и 1 ампера потребления
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Если верно понял задачу, то самый простой вариант
Изображение
При необходимости стробом запоминать.
Вложения
псевдосдвиг.jpg
(6.5 КБ) 841 скачивание
Docendo discimus
Контактная информация:
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

Jack_A писал(а):МК может и сдвигать, и компаратором работать, и еще много чего.
В том то и дело, что нужно реализовать схемотехнически, рассыпухой)
Родился
Сообщения: 18
Зарегистрирован: Вт мар 27, 2012 13:05:56

Сообщение grigory »

pyzhman писал(а):Если верно понял задачу, то самый простой вариантПри необходимости стробом запоминать.
Да, для первой секунды именно такой код и нужен, а за третью секунду мне не нужно сдвигать))), и мне эта земляная ножка, уже ой как понадобится.
Ответить

Вернуться в «Цифровая техника»