Сопряжение матрицы клавиатуры с микроконтроллером. Несколько вариантов.
Общий случай. Можно использовать стандартную матрицу кнопок. Их количество определяется числом строк и столбцов линий сканирования.
Для этой схемы выводы Т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
Читайте далее: Интегральные микросхемы и работа с ними, Простой и быстрый способ расчета источников питания, Практическое применение таймера 555, Применение микросхем A277D (К1003ПП1), Запуск ИС таймера 555 положительным импульсом, Необычный режим работы полевого транзистора, Мембранная клавиатура, КР174УН31 - низковольтный усилитель мощности звуковой частоты, Некоторые применения операционного усилителя типа 741 (140УД7), Изготовление трансформаторов, Защита СВЧ транзисторов, Механическое ускорение травления, Изготовление корпуса за 5 минут, Серебрение проводников, Канифоль из смолы, Разъем для батарей, Диаметр по линейке, Хранение радиодеталей,
|