Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Сопряжение матрицы клавиатуры с микроконтроллером. Несколько вариантов.

Сопряжение матрицы клавиатуры с микроконтроллером. Несколько вариантов.



Раздел: Микроконтроллеры

Общий случай. Можно использовать стандартную матрицу кнопок. Их количество определяется числом строк и столбцов линий сканирования.

Для этой схемы выводы Тn программируется как выходы, а Kn как входы. При сканировании на одну из линий Т поочередно подается лог "0" и проверяется состояние линий К. Если одна из линий К имеет уровень лог "0", то соответствующая кнопка считается замкнутой. Диоды VDn защищают сканирующие выходы от пробоя при нажатых нескольких кнопках, резисторы Rn подтягивают  входы. Иногда, для предотвращения ложных срабатываний, имеется смысл устанавливать конденсаторы Cn. Если имеется возможность подключить ко входам портов внутренние подтягивающие резисторы, то внешние резисторы (R1, R2) можно исключить.

При использовании "резиновой" клавиатуры с микроконтроллером, на диодах, защищающих сканирующие выходы, падает 0,7 вольт. Нажатая клавиша тоже имеет некоторое сопротивление. В результате, иногда, на входах не хватает напряжения для "распознавания" лог "0". В таком случае вместо диодов можно поставить резисторы 150 - 200 Ом.

Вариант 1. Вот еще пример подключения клавиатуры с использованием меньшего числа портов микроконтроллера. Для стандартного включения матрицы 4*3 понадобится 7 портов, а в этом примере, за счет более сложной программной обработки понадобится всего 4. При опросе поочередно на одной из четырех линий устанавливают лог "0", а другие программируют как входы. При этом, они обязательно должны быть подтянуты к высокому уровню. В этом примере подтяжка осуществляется внутренними резисторами. По состоянию входов вычисляется нажатая кнопка.  

 

В схеме используются стандартные диоды (например импортные 1N4148). Автор программы предупреждает, что возможно наличие ошибок, но при трансляции в MPLAB все проходит гладко. Код был написан для микроконтроллера 16F84, но при желании может быть легко перенесен на другой тип. 

Загрузить код программы обработки клавиатуры под 16F84. Размер примерно 5 Кбайт.


Источник: disaal.narod.ru

от профессиональной фирмы тонировочная пленка цена жми тут || BetBoom
 © 2003—2024 «Электронный портал»Обр@тная связь