Клавиатурные матрицы 8x8
Принцип действия
Для подключения к микроконтроллеру одной кнопки обычно используется один вывод микроконтроллера. Для двух кнопок – две и т.д. Т.о. при таком подключении к микроконтроллеру можно подключить кнопок не более, чем количество выводов общего назначения, имеющихся у него на корпусе.
Но что делать, если надо подключить клавиатуру с 64-мя кнопками?
Существует два решения этого вопроса. Можно взять микроконтроллер с количеством выводов более 64-х или воспользоваться матричным подключением кнопок.
Матричное подключение кнопок основано на преобразовании линейных координат кнопок (в нашем примере от 0 до 63-х) в двумерные (в нашем случае x=0..7, y=0..7). Т.о. каждая кнопка кодируется двумя выводами микроконтроллера. Это позволяет использовать выводов. Где а – количество кнопок.
Подключение кнопок клавиатурной матрицы 8 x 8 показано на рисунке 11.6. При нажатии на кнопку происходит соединение соответствующих строк и столбцов.
Рисунок 11.6 Подключение клавиатурной матрицы
Клавиатурные матрицы могут сканироваться несколькими способами. Если может быть нажата только одна кнопка, то выбирается быстрый способ сканирования, при котором одновременно выбираются (устанавливается низкое значение) все строки, и считывается состояние столбцов. После этого выбираются все столбцы, и считывается состояния строк. Возвращенные значения столбца и строки объединяются в код, идентифицирующий нажатую кнопку.
Если необходимо обслуживать клавиатуру, допускающую одновременное нажатие кнопок, то описанный выше метод не может быть использован. В этом случае строки должны быть отсканированы отдельно. Строки должны быть выбраны (устанавливается низкое значение) последовательно, при этом снимается состояние всех столбцов. При этом определяются все нажатые кнопки. Однако в этом случае появляются межсоединения. На рисунке 3 показан результат нажатия трех клавиш, при котором кажется, что нажата еще и кнопка, помеченная иксом. Это приводит к появлению ошибки декодирования.
Рисунок 11.7. Ложное декодирование при одновременном нажатии кнопок
Альтернативные кнопки
Многие клавиатурные интерфейсы используют функции вспомогательных кнопок. Реализовано это может быть несколькими способами. Один из самых распространенных методов состоит в выделении нескольких кнопок, которым назначаются альтернативные функции. При одновременном нажатии этих и обычных кнопок формируется вторичной скан-код. Также существуют варианты, когда альтернативная кнопка нажимается непосредственно перед нажатием основной кнопки. В этом случае устраняется необходимость отслеживания одновременных нажатий.
Альтернативные кнопки принимаются во внимание только в том случае, когда нажаты основные кнопки. В этом случае альтернативные кнопки называются "одновибраторными".
Также возможно реализовать "триггерные" кнопки, которые при первом нажатие активизируют альтернативные функции, а при повторном нажатии отключают их. В этом случае используются альтернативные функции для всех нажимаемых впоследствии кнопок. Такие функции имеет кнопка Caps Lock на стандартной компьютерной клавиатуре. В данном примере применения используется как одновибраторные, так и триггерные кнопки.
Использование принципа последовательного, а не одновременного нажатия кнопок позволяет избежать проблем, связанных с ошибочным декодированием. Если нажато несколько кнопок одновременно, то приложение просто проигнорирует это.
Дата добавления: 2017-01-16; просмотров: 1919;