Опрос состояния кнопочной клавиатуры в схемах на микроконтроллере

March 16, 2014 by admin Комментировать »

При опросе кнопочной клавиатуры возникает дилемма — как уложиться в доступное число свободных линий MK и не слишком усложнить подпрограмму обслуживания кнопок. С целью уменьшения количества цепей применяют метод совмещения функций портов MK, когда одни и те же выводы используются по разному в зависимости от ситуации.

Кнопочную клавиатуру, конструктивно оформленную единым блоком в виде матрицы 3×4, 3×5 или 4×4 кнопок (как в телефонном номеронабирателе), принято называть тастатурой. Кнопки строк и столбцов в тастатуре электрически соединяются общими шинами. Итого наружу от 16 кнопок выходят всего лишь 8 проводов, т.е. в 2…4 раза меньше, чем обычно. Опрос тастатурных кнопок производится по специальному алгоритму, который придумывает программист.

На Рис. 3.5, а…ф показаны схемы подключения различных кнопочных клавиатур (тастатур) к входным/выходным линиям MK.

Рис. 3.5. Схемы подключения кнопочных клавиатур к входным/выходным линиям MK

(начало):

а) для опроса кнопок SB1…SB16 на выходных линиях MK «0»…«3» программно организуется «бегущая единица», т.е. в любой момент времени только в одной цепи имеется ВЫСОКИЙ уровень, а оставшиеся переводятся в режим входа без «pull-uр» резистора. В момент нажатия кнопки на одной из входных линий «4»…«7» появляется ВЫСОКИЙ уровень. Зная, какая выходная линия в этот момент была активна, вычисляется номер кнопки. Допускается замыкание двух любых контактов одновременно. Но не более, иначе получаются ложные показания. Например, одновременное нажатие кнопок SB1, SB5, SB6 эквивалентно нажатию кнопок SB1, SB2 и т.д.;

б) аналогично Рис 3.5, а, но с формированием «бегущего нуля» и с «pull-uр» резисторами;

в) совмещение «приятного с полезным» — по одним и тем же линиям МК  выводится информация на светодиодный индикатор HG1 и через них же опрашиваются кнопки SB1…SBn. Переключение режимов «Опрос» и «Индикация» производится с частотой примерно 50…100 Гц, чтобы не было мигания цифр на табло HG1. В режиме индикации на нижнем выходе MK выставляется НИЗКИЙ уровень, а на 8-битной шине данных — код символа, выводимого на индикатор HG1. В режиме опроса кнопок на нижнем выходе MK выставляется ВЫСОКИЙ уровень, а все линии шины данных перестраиваются как входы с «pull-uр» резисторами. При нажатии любой из кнопок на соответствующей входной линии будет НИЗКИЙ уровень. Зная комбинацию сигналов на 8-битной шине, можно определить, какие кнопки были нажаты. Сопротивления резисторов ЯА должны быть больше 1 кОм, иначе может снизиться яркость свечения индикатора HG1\

г) аналогично Рис. 3.5, в, но для повышения яркости свечения индикатора HG1 вводится транзисторный ключ VT1 и уменьшаются сопротивления резисторов R1…R8. Общая цепь кнопок SB1…SBn соединяется не с GND, а с нижним выходом MK, переключающим режимы «Опрос» и «Индикация». Это повышает помехоустойчивость и снижает потребление тока во время длительного удерживания кнопок в замкнутом состоянии;

д) сначала конденсатор C1 обнуляется НИЗКИМ уровнем с выхода MK, затем линия перестраивается в режим входа без « pull-up» резистора. По каналу АЦП и таймеру измеряется время заряда конденсатора C1 до определённого порога через один или несколько резисторов R . Их суммарное сопротивление зависит от того, какая по счёту кнопка SB1…SBn была замкнута. При одновременном нажатии нескольких кнопок определяться будет лишь крайняя слева из них;

 Рис. 3.5. Схемы подключения кнопочных клавиатур к входным/выходным линиям MK

(продолжение):

е) одновременный опрос кнопок с самовозвратом SB1…SB4 и джамперных соединителей Sl…S4. Последние опрашиваются только при ВЫСОКОМ уровне на выходе MK и при отсутствии нажатия кнопок SB1…SB4. При НИЗКОМ уровне на выходе МК  опрос невозможен. Резисторы R1..R4 «привязывают» входные линии MK к общему проводу. Их сопротивление должно попасть в «золотую середину» — быть не слишком малым, иначе увеличится расход тока, и не быть слишком большим, иначе кнопки могут неустойчиво срабатывать на микротоках;

ж) аналогично Рис. 3.5, в, но для ЖКИ HG1 В режиме опроса переключателей 67…54МКвтавляет на верхнем выходе НИЗКИЙ уровень, а остальные переводит в режим входа с «ри11-ир» резистором. Затем анализирует состояние линий и определяет, какие переключатели были нажаты. В режиме индикации HG1 MK формирует на верхнем выходе положительный импульс, установив на остальных выходах требуемую комбинацию сигналов на шине данных «DB4»…«DB7»;

з) аналогично Рис. 3.5, б, но для клавиатуры электромузыкального инструмента Sl…S64. По электрической схеме — это матрица 8×8 замыкающих контактов с самовозвратом;

и) подключение параллельно шине данных ЖКИ промышленной тастатуры, состоящей из 15 кнопок SB1…SB15 (матрица 3×5). Режим опроса тастатуры производится при запрете записи информации в ЖКИ (этот сигнал тоже формируется от MK, но на схеме для упрощения не показан). Для опроса состояния кнопок на выходных линиях MK организуется «бегущий нуль», при этом свободные линии переводятся в режим входа с Z-состоянием; Ф

 Рис. 3.5. Схемы подключения кнопочных клавиатур к входным/выходным линиям MK

(продолжение):

к) опрос кнопок SB1..SB4 производится при НИЗКОМ уровне на выходных линиях MK. Эти линии параллельно управляют и другими узлами устройства. Замена диодов VD1…VD4 — 1N4148, КД522Б. Резистор R1 может отсутствовать, если кнопки  /… Т устойчиво срабатывт при протекании через них микротоков по цепи «питание +5 В — высокоомный внутренний «pull-цр» резистор МК »;

л) аналогично Рис. 3.5, к, но с активным ВЫСОКИМ уровнем на выходных линиях MK. Резистор R1 обязателен. Замена диодов VD1…VD4 — BAT85 или аналогичные с барьером Шоттки. Чуть хуже будет помехоустойчивость при применении кремниевых диодов 1 N4148;

м) на трёх выходах MK последовательно формируются двоичные коды от 000 до 111, которые поступают на дешифратор DD1 Сигналы на выходах дешифратора имеют вид «бегущего нуля» или посылаются адресно в произвольном порядке. Допускается одновременное нажатие переключателей SL..S8, поскольку микросхема DD1 имеет выходы с открытым коллектором. Резистор R1 может отсутствовать, если переключатели 57…5£устойчиво работают в режиме микротоков от внутреннего «pull-uр» резистора MK;

н) сначала все линии MK переводятся в режим входа с «pull-uр» резисторами. Затем производится опрос состояния кнопок SB1…SBn. Если одна из них нажата, то соответствующая линия MK переводится в режим выхода с НИЗКИМ уровнем, при этом загорается определённый светодиод HL1…HLn. Далее МК  блокирует (на время или постоянно) дальнейший опрос состояния уже нажатой кнопки;

о) аналогично Рис. 3.5, б, но с произвольной матрицей кнопок, содержащей «п»-столбцов и «т»-строк. Цепочки фильтров R1…Rn, C1…Cn служат для устранения ложных срабатываний от наводок. Правые по схеме линии МК  настраиваются в режим «О/R» или «О/Z». Не рекомендуется настраивать их в режим «0/1», т.к. при одновременном нажатии двух кнопок на одной вертикали произойдёт короткое замыкание ВЫСОКОГО и НИЗКОГО уровней на выходах MK; п) ВЫСОКИМ уровнем с выхода MK разрешается опрос кнопок SB1…SB4\ p) отличие от аналогичных схем — три (а не четыре) диода VD1…VD3, конденсатор фильтра С/, защитный резистор R1 на случай ошибок в программе;

с) особенность схемы — защитные резисторы Л/…Л7ишестьактивных входов MK: 3 штатных слева и 3 дополнительных справа. На входах слева анализируется «бегущий нуль» и определяется нажатая кнопка. На входах справа «вычисляются» одновременно нажатые кнопки в столбце;

т) опрос кнопок S1, 52производится только при ВЫСОКОМ уровне на выходе MK, что повышает экономичность устройства. Кнопки и резисторы можно поменять местами;

 Рис. 3.5. Схемы подключения кнопочных клавиатур к входным/выходным линиям MK

(окончание):

у) сокращение числа выходных линий с четырёх до трёх. Плата за удовольствие — точная регистрация нажатия любой, но только одной (а не нескольких) кнопок;

ф) на восьми верхних выходах МК программно организуется «бегущая единица», которая через ключи микросхемы DD1 поочерёдно засвечивает одно из восьми знакомест индикатора HG1. Частота индикации высокая, поэтому мерцание цифр на индикаторе HG1 отсутствует. Номер нажатого переключателя * /… определяется по НИЗКОМУ уровню на входе MK и номеру выходной линии MK, на которой в тот момент был ВЫСОКИЙ уровень. Резистор ЯР задаёт общий ток для всех переключателей Sl…S8.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты