Разделы сайта

Прототип схемы подключения клавиатуры

Схемы подключения 16-кнопочной клавиатуры и их описание приведены в источниках [4] и [5] (см. рис. 6).

Рис. 6. Схема подключения 16-кнопочной клавиатура к микроконтроллеру ATmega16.

Работает эта схема довольно просто. Линии сканирующего порта (столбцы) по умолчанию находятся состоянии, когда на всех линиях, кроме одной, установлен высокий логический уровень. Линия, на которой установлен низкий логический уровень является опрашиваемой в текущий момент, то есть определяет опрашиваемый столбец. Если какая либо кнопка этого столбца будет нажата, на соответствующей линии считывающего порта (строке) так же будет низкий логический уровень. Иными словами, замкнутая кнопка подтянет строку к потенциалу столбца, то есть к земле. Зная номер опрашиваемого столбца и номера линий считывающего порта, на которых установлен логический ноль, можно однозначно определить какие кнопки этого столбца нажаты.

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

Для случая, когда одновременно нажато несколько кнопок одного столбца будет установлено в логический ноль несколько битов считывающего порта одновременно. Но что произойдет, если будут замкнуты контакты нескольких кнопок из разных столбцов одной строки? Ведь в разных столбцах могут оказаться разные напряжения. Одновременное нажатие двух кнопок в одной строке привело бы к короткому замыканию и выжженным портам, если бы не диоды . Именно они защищают порты от короткого замыкания.

Микроконтроллеры серии AVR имеют в своем составе подтягивающие резисторы, поэтому внешних подтягивающих резисторов в схеме не требуется.

Приведённую схему можно (и нужно) модифицировать, организовав обработку нажатия кнопки по прерыванию. Для этого необходимо подключить линии строк к логическому элементу 4ИЛИ, выход которого подать на вход INT0 микроконтроллера. Такое решение предлагается в источнике [6] и, дополняя схему рис. 6 четырьмя диодами, базы которых присоединены к выводу INT0 микроконтроллера, а эмиттеры к соответствующим линиям строк клавиатуры, образуя таким образом логический элемент ИЛИ, получим оригинальную схему, разработанную в рамках данного курсового проекта, изображённую на рис. 7

.

На вход INT0 подключен подтягивающий резистор 10 кОм к плюсу питания. Мы назначим четыре младших бита порта PB на выход, установив на них низкий уровень. Старшие 4 бита будут работать как входы, на них сделаем высокий уровень. Теперь, если нажать клавишу, возникнет соединение между каким-либо столбцом и строкой. Теперь на линии строки появится низкий уровень. Также низкий уровень появится и на строке с диодами, сработает элемент ИЛИ, и на входе INT0 также появится низкий уровень и вызовет прерывание.

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

Рис. 7. Оригинальная схема подключения клавиатуры и индикаторов к микроконтроллеру ATmega128.

После этого выжидаем время "антидребезга". Зная теперь строку и столбец, несложно догадаться, что клавиша нажата на их пересечении. Делаем необходимые выводы, устанавливаем нужные параметры, и возвращаем состояние выводов порта к начальным значениям.

Интересное из раздела

Расчет модели сети передачи данных
Вариант № 1 Начальная интенсивность внешнего источника λ0 = 1 заявок/с Таблица 1. Тип модели Способы представления ...

Автоматизированная система учета энергоресурсов
Вследствие роста тарифов на энергоресурсы, потребляемые населением (газ, вода, электроэнергия), встает вопрос о необходимости оперативного и достоверного контро ...

Исследование и расчет цепей постоянного тока
ток генератор кирхгоф электрический 1) Измеряем Е1 и Е2 , показания заносим в таблицу 1.1. Таблица1.1- Параметры исследуемой цепи ...