Формирователь кода нажатых кнопок с подавлением "дребезга" для встраивания в ПЛИС


Б. СОКОЛ, д. Чашниково Московской обл.

В предлагаемом узле использован метод подавления "дребезга" контактов кнопок, не требующий использования конденсаторов. Это позволяет встраивать его в ПЛИС, содержащие, как известно, только активные логические элементы и не рассчитанные на подключение внешних пассивных вре-мязадающих цепей. Схема узла показана на рисунке. При нажатиях на кнопки SB1—SB9 он формирует на выходах 1, 2, 4, 8 двоично-десятичные коды цифр, соответствующие номеру нажатой кнопки. При нажатии на SB10 выдается нулевой код.

Разряды кода, сформированные логическими элементами D1—D4, поступают на D-входы триггерного регистра D7. Как известно, нажатие и отпускание кнопки сопровождаются нестабильностью переходного сопротивления контакта — так называемым "дребезгом" продолжительностью до десятков миллисекунд. Для четкой фиксации факта изменения состояния кнопки необходимо дождаться окончания этого процесса. В рассматриваемом узле выдержка времени создается с помощью сдвигового регистра D9, на вход С которого поданы внешние тактовые импульсы с периодом 10... 15 мс.

В исходном состоянии (все кнопки отпущены) на выходе элемента D6 присутствует логическая единица. Поступая на вход R регистра D9, она удерживает его в состоянии с нулями во всех разрядах. При нажатии на любую кнопку будут установлены единицы на одном или нескольких входах элемента D6, а на его выходе единица сменится нулем.

Теперь с приходом каждого тактового импульса логическая единица, записанная со входа D регистра D9, будет сдвигаться от выхода Q0 к Q3. С четвертым импульсом (если состояние входа R за это время не изменялось) единица достигнет выхода Q3 регистра и будет подана на соединенный с ним вход С регистра D7. Это приведет к записи кода нажатой кнопки в регистр D7. На его выходах записанный код сохранится неизменным до следующего нажатия на любую кнопку.

В момент отпускания кнопки регистр D9 вновь переходит в исходное состояние. Нарастающий в этот момент пере-

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

Резисторы R1—R10 должны иметь номинал от единиц килоом для "жестких" кнопок до 100 кОм для кнопок с малым усилием нажатия. Обычные малогабаритные "тактовые" кнопки перед их применением рекомендуется проверить, измерив сопротивление их замкнутых контактов. У отдельных экземпляров оно бывает довольно большим (десятки ом) и нестабильным. Для таких кнопок следует выбирать резисторы R1—R10 возможно меньшего номинала.

Описанный формирователь кода был испытан в составе ПЛИС. Фирма Maxim выпускает семейство построенных по похожему принципу микросхем-подавителей дребезга МАХ6816—МАХ6818, не требующих внешних элементов. К сожалению, они рассчитаны на работу с одиночными кнопками (контактами) и формируют лишь независимые сигналы нажатия на каждую из них.


Добавил:  Павел (Admin)  [email protected] | 

Автор:  Б. СОКОЛ (Радио №3, 2011 год)  Рейтинг@Mail.ru