Не матричная клавиатура для микропроцессора

Не матричная клавиатура для МП

При построении микропроцессорных систем часто возникает проблема нехватки портов, поскольку клавиатура и дисплей занимают много выходных линий. Допустим, что мы хотим создать недорогую почти универсальную микропроцессорную систему, которая имеет развитую клавиатуру более 16-ти клавиш и в качестве дисплея использовать графический дисплей 128х64 точек, который также имеет небольшую стоимость и позволяет отобразить достаточно много информации. Например это может быть GLCD WG12864 или аналогичный. Микропроцессор Pic 16F877A очень хорошо подходит для этой цели, как по цене так и по своим характеристикам. Оценив всю совокупность характеристик и считая, что найдено оптимальное решение приступаем к проектированию. Немедленно обнаруживается сложная проблема, микропроцессор Pic 16F877A и большинство ему подобных предоставляют только один порт для матричной клавиатуры на 16 клавиш. Даже если каждой клавише назначить несколько значений и потерять некоторое количество памяти за счет усложнения драйвера клавиатуры, то все равно остается дисплей под который необходимо выделить два порта. В результате теряется функциональность микропроцессора, поскольку порты устройств МП занимаются дисплеем.
Существуют решения, которые позволяют использовать линии клавиатуры для вывода данных на дисплей, но при этом усложняется программа, память расходуется для обслуживания алгоритма уплотнения дисплея и клавиатуры. На эту тему написано множество статей, однако в Интернете не удалось найти решения которое бы обладало следующими свойствами:

При выполнении этих условий удалось бы разместить большую клавиатуру и дисплей WG12864 заняв только два порта МП. Тогда МП система на основе Pic 16F877A и WG12864 приобретает большую гибкость и информативность. С учетом возможности перепрограммирования системы непосредственно через порт СОМ без программатора, появляется возможность создания универсального устройства, которое можно использовать для решения разнородных редких задач. Например есть система, которая используется повседневно как вольтметр, термометр и т.д. и память МП занята практически вся. Тогда для выполнения эпизодической задачи можно за несколько минут перепрограммируете МП и получить другой прибор, клавиатура и дисплей при этом обеспечивают необходимую гибкость и информативность системы.

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

Алгоритм обслуживания клавиатуры очень прост:

В исходном состоянии регистр заполнен нулями. Нажатие любой клавиши вызывает прерывание порта P3. Подпрограмма прерывания заполняет регистр единицами. В нулевой разряд регистра записывается нуль. Нуль продвигается по регистру, при этом производится анализ порта P3 и подсчет импульсов сдвига, которые формирует P2. Если P3 равен нулю, значит нажата соответствующая клавиша. В этом случае определяется ее номер и производится запись в буфер клавиатуры. Регистр устанавливается в исходное состояние, производится выход из подпрограммы прерывания. Анализ буфера клавиатуры и выполнение основной программы.

 

По данной схеме была реализована клавиатура на 24 клавиши. 

Драйвер написан на С и компилирован компилятором CCS. Размер занимаемой памяти зависит от числа клавиш(таблица перекодировки), для 24 клавиш составляет примерно 150 слов и два рабочих регистра.

Для практической реализации использовалась клавиатура от простого калькулятора с 24 клавишами. От него была взята верхняя крышка с клавишами и резиновой пластиной. Печатная плата изготовлена по форме резиновой пластины. На одной стороне платы размещены печатные контакты, а на второй компоненты схемы. Верхняя крышка калькулятора обрезается до индикатора и закрепляется на плате вместе с резиновой пластиной так как это сделано в калькуляторе. В результате получается компактная конструкция, которую можно установить в корпус прибора.
На рисунках показана схема клавиатуры на 24 клавиши и снимки печатной платы с экрана, сторона компонентов и сторона клавиш .
В качестве регистров применяются недорогие регистры 74HC595 в корпусе для поверхностного монтажа .

[в начало]

Hosted by uCoz