Есть задача, которую хочется решить без использования микроконтроллера. Суть заключается в следующем.
Есть три светодиода, зеленый, желтый и красный, а также есть управляющая кнопка. В начальном состоянии постоянно горит зелёный светодиод. При коротком нажатии на кнопку (случайном во времени) происходит событие, после которого зеленый светодиод горит 1 секунду, а затем тухнет и загорается желтый. Желтый светодиод работает аналогично зеленому: нажимается кнопка, он еще светит 1 секунду после чего выключается и загорается красный. После красного по такому же алгоритму опять зеленый и так далее.
В идеале хочется иметь защиту от слишком быстрых нажатий: как бы часто кнопка не нажималась, каждый светодиод должен отсветить свою положенную секунду, и только потом начинать ожидать новое нажатие с кнопки.
На самом деле в моей реальной задаче нет ни светодиодов, ни кнопок, да и времена совсем другие, но принцип работы такой же. И все хочется реализовать на жесткой логике, чтобы работало надежно и очень быстро. Интуитивно первое что приходит в голову – приспособить сдвиговый регистр, но почему-то не могу сообразить, как именно.
Буду благодарен за советы и предложения!


