TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
30.03.2020, 15:35
|
#1
|
Прохожий
Регистрация: 30.03.2020
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Как реализовать логику?
Всем привет!
Есть задача, которую хочется решить без использования микроконтроллера. Суть заключается в следующем.
Есть три светодиода, зеленый, желтый и красный, а также есть управляющая кнопка. В начальном состоянии постоянно горит зелёный светодиод. При коротком нажатии на кнопку (случайном во времени) происходит событие, после которого зеленый светодиод горит 1 секунду, а затем тухнет и загорается желтый. Желтый светодиод работает аналогично зеленому: нажимается кнопка, он еще светит 1 секунду после чего выключается и загорается красный. После красного по такому же алгоритму опять зеленый и так далее.
В идеале хочется иметь защиту от слишком быстрых нажатий: как бы часто кнопка не нажималась, каждый светодиод должен отсветить свою положенную секунду, и только потом начинать ожидать новое нажатие с кнопки.
На самом деле в моей реальной задаче нет ни светодиодов, ни кнопок, да и времена совсем другие, но принцип работы такой же. И все хочется реализовать на жесткой логике, чтобы работало надежно и очень быстро. Интуитивно первое что приходит в голову – приспособить сдвиговый регистр, но почему-то не могу сообразить, как именно.
Буду благодарен за советы и предложения!
|
|
|
|
30.03.2020, 16:01
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,365
Сказал спасибо: 85
Сказали Спасибо 625 раз(а) в 377 сообщении(ях)
|
Re: Как реализовать логику?
Сообщение от hlkbr
|
и очень быстро
|
Огласите желаемую степень быстроты?
Наносекунды?
Надежность в каких условиях? Жесткое ионизирующее излучение?
А так, дешевле всего - микроконтроллер.
Сообщение от hlkbr
|
На самом деле в моей реальной задаче нет ни светодиодов, ни кнопок, да и времена совсем другие
|
Ну так может и решение будет "совсем другое"?
|
|
|
|
30.03.2020, 16:40
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,049
Сказал спасибо: 3,040
Сказали Спасибо 3,209 раз(а) в 2,179 сообщении(ях)
|
Re: Как реализовать логику?
Кнопка - моностабильный мультивибратор (one-shot) - сдвиговый регистр (shift).
Если этого недостаточно - то либо выкладывай свои мысли на эту тему, либо проследуй в раздел "Предложения о работе".
__________________
Экзорцист 40-го уровня.
|
|
|
|
30.03.2020, 16:44
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,126
Сказал спасибо: 2,809
Сказали Спасибо 2,735 раз(а) в 2,024 сообщении(ях)
|
Re: Как реализовать логику?
Примените одновибратор. Есть такие, которые не реагируют на повторный запуск, пока не истечет заданный интервал. Или можете реализовать указанный функционал на обычной синхронной логике - с генератором, счетчиками/делителями и прочим. Короче - цифровой автомат.
Сообщение от hlkbr
|
При коротком нажатии на кнопку (случайном во времени) происходит событие, после которого зеленый светодиод горит 1 секунду, а затем тухне
|
А разве само нажатие на кнопку не есть то самое событие?
|
|
|
|
30.03.2020, 16:51
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,045
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Как реализовать логику?
Разбиваем задачу на простые подзадачи:
кнопка-›
защита от дребезга-›
задержка 1с, которая когда работает, не реагирует на повторное нажатие кнопки-›
счетчик 0-2 (есть 4 разрядные счетчики со сбросом либо на 2х T-триггерах - надо предусмотреть схему сброса счетчика при 11 (тройка) в младших разрядах -›
дешифратор, к 3м младшим ногам которого подключены светодиоды.
В зависимости от уровня извращения это можно сделать на КМОП или ТТЛ(Ш) логике. Но если совсем по взрослому - то это надо делать на CPLD.
|
|
|
|
30.03.2020, 17:04
|
#6
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,126
Сказал спасибо: 2,809
Сказали Спасибо 2,735 раз(а) в 2,024 сообщении(ях)
|
Re: Как реализовать логику?
Сообщение от dgrishin
|
защита от дребезга-›
задержка 1с, которая когда работает, не реагирует на повторное нажатие кнопки-›
|
это можно совместить.
|
|
|
|
30.03.2020, 17:07
|
#7
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,045
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Как реализовать логику?
Сообщение от Yuri222
|
это можно совместить.
|
Базара нет
|
|
|
|
30.03.2020, 19:25
|
#8
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 733
Сказал спасибо: 363
Сказали Спасибо 808 раз(а) в 380 сообщении(ях)
|
Re: Как реализовать логику?
Сообщение от hlkbr
|
приспособить сдвиговый регистр, но почему-то не могу сообразить, как именно
|
hlkbr, возможно, по прочтении темы Как сделать простой переключатель ? у Вас появится зацепка.
Ну или кто-нибудь нарисует, развлекаясь на карантине
|
|
|
|
03.04.2020, 09:28
|
#9
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Как реализовать логику?
Последний раз редактировалось mike-y-k; 23.02.2022 в 17:44.
Причина: 7.15
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:10.
|
|