Суббота, 19 февраля 2011 00:00

Вариант создания клавиатуры без прерываний Featured

Written by
Rate this item
(0 votes)

Как известно, управление индикатором на основе HD44780, ведется по шине данных. Это 8 или 4 занятых порта контроллера. Практически все время «простаивают». Вот и подумал, чем бы их еще занять.

После копаний в Интернете родился вариант «для меня» универсальной клавиатуры, которым я практически всегда и пользуюсь.

Суть данного варианта в том, что создается матрица 2х2(4 кнопки) максимум 4х4 кнопки (16 кнопок). Практически для всех случаев подходит.

 

   И подключается к задействованным под шину данных индикатора портам.

Например, если клавиатура 4х4, 4 вертикальные линии сетки клавиатуры и 4 горизонтальных линии. Сильно описывать тяжело, посмотрите схемы.

Одно условие, линии работающие на вход надо подключать к порту В, чтобы включить подтягивающие резисторы.

(Конечно можно и другие, но резисторы придется использовать уже внешние.)

Порты подключенные к горизонтальным линиям настроены на выход, к вертикальным на вход. (Горизонталь и вертикаль, конечно относительно.) Опрос производится «нулем», что удобно, если кто-то умудрится нажать все кнопки клавиатуры одновременно, последствий (типа сгорания порта) никаких.

Все классически, поставили «0» на горизонтальной линии, к ней подключено 4 кнопки, если кнопка нажата, на вх. вертикальной линии , куда подключена кнопка тоже ноль. Если не нажата, то 1( резисторы). Если нажата две кнопки или больше, контроллер программно последовательно  перебирает 0 на горизонтальных линиях, определит только последнюю кнопку по счету из нажатых. Конфликта не будет.

Для устранения дребезга, опрос клавиатуры можно производить, зациклить, на какое-то время. Это на усмотрение, но 20мс работает железобетонно.

После опроса клавиатуры, есть варианты, кнопка нажата или не нажата  ни одна.

Надо предусмотреть возврат из всех вариантов. Это уже забота автора программы.

При выполнении какой-нибудь программы, опрос клавиатуры нужно включать не чаще 1 сек, это оптимально и практически для человека это мгновенная реакция кнопки.

Прилагаю два варианта схем, и фрагмент программы для 16 кнопок.

1 вариант, это черновая схема измерителя АЧХ, освобождал RB7,6 для отладчика, но как пример информативен.

 

4knop

 

2 вариант. с индикатором на основе HD44780, четырехпроводный интерфейс и 4 кнопки

 

4knop

Здесь исходный текст программы

 

можно обсудить на форуме

Read 4167 times Last modified on Вторник, 17 марта 2015 20:12

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru