1
МИКРОКОНТРОЛЛЕРЫ
)
все кнопки в матрицу клавиатуры. Схема такой матри-
цы приведена на рис. 12. Обратите внимание - на пе-
ресечении линий строк и столбцов клавиатуры распо-
ложены диоды. Это необходимо как для того, чтобы
нажатие той или иной кнопки давало однозначную ком-
бинацию входных и выходных сигналов, так и для того,
чтобы не замкнуть между собой сигналы лог.О и лог.1
на линиях опроса при одновременном нажатии не-
скольких кнопок.
При работе с матрицей клавиатуры возникает ряд
специфических проблем. Во-первых, для обработки
сигналов от матрицы нельзя воспользоваться меха-
низмом прерываний - опрос матрицы происходит пе-
риодически, и при нажатии на какую-либо кнопку мик-
роконтроллер будет гарантированно получать целый
ворох прерываний все время, пока она нажата. Во-вто-
рых, “обычным” способом, - через автомат, - для мат-
рицы клавиатуры невозможно отработать дребезг кон-
тактов, поскольку сигнал на линиях по той же самой
причине будет “дребезжать” все время, пока нажата
та или иная кнопка. Поэтому для работы с матрицей
клавиатуры обычно применяется несколько иная тех-
ника. Коротко суть ее заключается в следующем.
Обработчик прерываний от сторожевого таймера
(именно на него обычно “навеш ивают” задачу обра-
ботки матрицы клавиатуры) путем обработки сигна-
лов линий строит битоаы й об раз текущ его состояния
матрицы клавиатуры. В этом образе биты лог.1 отме-
чают нажатые в данный момент клавиши, а биты лог.О
- отпущенные (либо наоборот). После окончания цик-
ла опроса построенный битовый образ сравнивается
с битовым образом, построенным в предыдущем цик-
ле опроса. Если эти образы отличаю тся, это значит,
что с матрицей клавиатуры в данный момент проис-
ходят какие-то изменения (нажимается или отпуска-
ется та или иная кнопка). В этом случае обработчик
прерываний переходит в режим “ усп о ко е н и я ” матри-
цы клавиатуры, т.е. ждет того момента, когда два пос-
ледних построенных битовых образа перестанут от-
личаться. Как только это произошло, это означает, что
переходные процессы в матрице клавиатуры закончи-
лись. Тогда обработчик переходит в новое состояние
- анализа изменений, при котором текущ ий битовый
образ матрицы клавиш сравнивается с эталонны м
битовым образом, в качестве которого выступает об-
раз, построенный перед тем, как состояние матрицы
клавиатуры начало изменяться. После анализа и оп-
ределения, какие клавиши и каким образом измени-
лись, текущ ий битовый образ матрицы принимается
за новы й эталон.
Рассмотрим фрагмент программы, реализующей
обработку матрицы клавиатуры. Предполагаем худ-
шее, а именно то, что к микроконтроллеру подключе-
на матрица из 64 клавиш! Матрицу такой размернос-
ти лучше опрашивать с помощью двух регистров сдви-
га, поскольку для управления ими требуется всего 4
линии порта, а топология печатной платы получается
значительно проще. Что же касается скорости опроса,
то для матрицы клавиш она может быть сделана сколь
угодно большой - в отличие от светодиодов, здесь не
требуется сколько-нибудь длительного удержания сиг-
нала. Схема опроса матрицы клавиш приведена на
рис.
13. Диоды в этой схеме используются как эле-
менты “ИЛИ”. Текущий битовый образ клавиатуры бу-
дем хранить по адресу 58И.
.5ЕИ, эталонный - по адре-
су 60И.
.67И, предыдущий - по адресу 50И.
.57И. Ячей-
ки 68И.
.6ЕИ будем использовать в качестве рабочих:
58И - счетчик внешнего цикла опроса
(и не только его)
• 59И - счетчик внутреннего цикла опроса
(и не только его)
• 5АЬ - признак изменившегося состояния клавиатуры
• 5ВИ - готовый терминальный символ
• 5СИ - номер состояния обработчика прерываний
(фактически номер состояния автомата).
При инициализации микроконтроллера должен бьпъ
установлен в 0 - в тексте примера эта инициализация
отсутствует!)
Предполагаем также, что в регистре
постоянно
хранится адрес ООИ, а в регистре #Д - 18И. Предпола-
гается также, что при инициализации микроконтрол-
лера ячейки 50И.
.57И будут заполнены нулями.
---------------------------
1 41
Радиолюбитель - 0 5 /2 0 0 6 1
предыдущая страница 42 Радиолюбитель 2006-05 читать онлайн следующая страница 44 Радиолюбитель 2006-05 читать онлайн Домой Выключить/включить текст