Существует множество приложений, в которых для перехода схемы в следующее логическое состояние используется одна кнопка. Как правило, существуют только состояния «включено» и «выключено», но их может быть и больше. Сердцем схемы является счетный триггер (или, для большего количества состояний, счетчик или сдвиговый регистр), который реагирует на фронт тактового сигнала.
Правильно сделанная схема подавляет дребезг контактов механической кнопки, приводящий к возникновению более чем одного «тактового импульса» при каждом нажатии и отпускании кнопки. Также желательно, чтобы при включении питания схема инициализировалась, устанавливаясь в определенное состояние, а нажатие кнопки вызывало немедленное (с точки зрения человека) изменение состояния. Этим требованиям отвечает базовая схема на Рисунке 1.
При отключении источника питания VDD диоды Шоттки разряжают конденсаторы C1 и C2 практически до нуля. Постоянная времени R1C1 должна быть как минимум в 10 раз больше времени включения источника питания, чтобы последовательность включения начиналась и заканчивалась очисткой выхода Q триггера U2.
Первоначально высокий при включении питания логический уровень на выходе инвертора U1, становится низким после того, как конденсатор C2 зарядится через резистор R2. Поскольку переключение триггера U2 происходит по переднему фронту, это не приводит к изменению его состояния, и после инициализации уровень на выходе Q остается низким. Постоянная времени R2C2 должна быть порядка 1 секунды.
Резистор R3 является необязательным; он ограничивает начальные токи разряда конденсатора C2 при нажатии нормально разомкнутой кнопки. Если этот резистор используется, его следует выбрать таким образом, чтобы кратковременный дребезг контактов почти полностью разряжал конденсатор C2 за 10 мс или менее.
Элементы C2 и R2 и инвертор с триггером Шмитта U1 предотвращают появление дополнительных переходов из-за дребезга контактов, которые в противном случае переключали бы триггер U2. После отпускания кнопки и начала зарядки конденсатора C2 через резистор R2 последующие нажатия кнопки не приведут к переключению U2. Это связано с тем, что уровень выхода инвертора U1 все еще остается высоким, и на нем не может сформироваться отрицательный перепад для переключения триггера U2. Это аргумент против слишком большого значения постоянной времени R2C2.
На Рисунке 2 показано, как схема, представленная на Рисунке 1, может быть расширена до 10-позиционного переключателя, в котором в каждый момент времени активный высокий уровень присутствует только на одном выходе, или до цифро-аналогового преобразователя (ЦАП).
![]() |
|
Рисунок 2. | 10-позиционный переключатель, в котором одновременно активен только один выход, а также ЦАП. |
Если требуется менее 10 состояний переключателя, вход D микросхемы U2a можно подключить к другому выходу счетчика U3. Разрешение ЦАП можно увеличить до 12 бит с помощью 12 резисторов. Но монотонность будет несколько хуже, и точность, даже при использовании резисторов с допуском 0.1%, будет еще ниже. Чтобы избежать чрезмерной нагрузки на выходы, сопротивление ни одного резистора не должно быть меньше 10 кОм.