Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы управления.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
7.35 Mб
Скачать

5.2.10 Ввод символов с клавиатуры. Опрос группы упорядоченных двоичных датчиков

В МП-контроллерах, требующих оперативной информации и ее отображения, возникает необходимость разработки аппаратной и программной частей интерфейса МП, для связи с оператором широ­кое распространение получили следующие средства ввода-вывода информации в МП-системах: разнообразные клавиатуры, линейные дисплеи на семисегментных светодиодных индикаторах, а также алфавитно-цифровые и графические дисплеи.

При проектировании интерфейса ввода-вывода МП-контроллера необходимо решать задачу об оптимальном (по ряду критериев) распределении функции между аппаратными и программ­ными средствами интерфейса. В общем случае необходимо исходить из того, что применение специализированных БИС упрощает разра­ботку и обеспечивает высокое быстродействие системы, но сопряжено с увеличением стоимости, объема и потребляемой мощности МП-контроллера.

По способам аппаратной реализации различают два типа кла­виатур:

1. Кодирующие. У клавиатур этого типа схемным путем на вы­ходе формируется код, соответствующий нажатой клавише. Приме­ром могутслужить оцифрованные переключатели (на 10 или 16 по­зиций).

2. Некодирующие. Представляют собой матрицу двоичных пере­ключателей, включенных на пересечении строк и столбцов матрицы (чаще всего 4х4 или 5х5). Идентификация и кодирование нажатой клавиши в таких клавиатурах выполняются программой. Переключа­тели 4х4 предназначены для ввода шестнадцатеричных кодов дан­ных и команд, а 5х5, кроме этого, имеют еще и девять функциональ­ных клавиш для управления режимом работы МП-контроллера.

5.2.11 Процедура ввода цифры с клавиатуры. Опрос матрицы двоичных датчиков

Процедура ввода числа с клавиатуры состоит из ряда частных процедур: ожидания нажатия клавиши, сканирования, устранения дребезга контактов, ожидания освобождения нажатой клавиши, обна­ружения одновременного нажатия двух и более клавиш, определения веса нажатой клавиши (идентификация). Особенности реализации этих процедур при работе с клавиатурой вызваны тем, что группы клавиш объединены в матрицу 4х4 (рис. 61).

Вертикальные линии К1 (колонки или столбцы) являются вы­ходными, а горизонтальные линии Ci (строки матрицы) - входными Для МП-контроллера. Один вывод каждой клавиши соединен с одной Из колонок Ki, а другой - с одной из строк Ci матрицы. Аналогичным способом в матрицу могут быть включены автономные двоичные дат­чики объекта управления, когда их много.

Сканирование. Частная процедура сканирования служит для обнаружения нажатой клавиши и последующей ее идентификации. Процедура состоит в последовательной выборке и считывании кода столбца строк матрицы клавиатуры. БСА представлена на рисунке 62.

Рисунок 61 – Структура клавиатуры 4 х 4 и схема подключения ее к МП-контроллеру; ША - первый разряд шины адреса

Выборка столбца осуществляется выдачей в выходной порт сло­ва выборки, формирующего в каждый момент времени значение ло­гического 0 только на одной из вертикальных линий матрицы KI (активный столбец). На всех остальных вертикальных линиях матри­цы должен быть сформирован уровень логической единицы. Столбцы выбираются последовательно, начиная с КО. Для этого МП-контроллер обеспечивает последовательную выдачу через порт 1 слов выборки бегущий нуль, т.е. последовательность кодов 1110, 1101, 1011, 0111, формируемую операциями сдвига. Для матриц большой размер­ности используется аппаратный способ формирования слов выборки бегущий нуль. К выходному порту подключается дешифратор, после­довательность слов выборки будет иметь вид 00, 01, 10,11 и может быть сформирована программным счетчиком.

После каждой новой генерации слов выборки горизонтальные линии должны быть опрошены МП-контроллером. Если при опросе горизонтальная линия Ci приобретет значение 0 (активная строка), то имеется возможность программным путем определить нажатую кла­вишу, так как сигнал на входной горизонтальной линии будет иметь значение 0 только в том случае, если нажатая клавиша соединяет ее с вертикальной линией матрицы, на которой в данный момент време­ни присутствует уровень 0. МП-контроллер выполняет сканирование матрицы клавиатуры до тех пор, пока не обнаружит нажатую клави­шу, после чего реализуется переход к частной процедуре устранения дребезга контакта.

Рисунок 62 – Схема алгоритма частной процедуры сканирования

Фрагмент программы сканирования:

SCAN:

MVI

A,OFFH ;

слово выборки – 11111110

SCAN1:

MOV

B,A ;

сохранение копии СВ в регистре В

OUT

01H ;

выдача СВ

IN

01H ;

считывание строк

CPI

OEFH ;

анализ состояния клавиш

JNZ

SCAN2

MOV

A,B

RLC

; сдвиг

CPL

OEFH

; опрошен последний столбец матрицы

JNZ

SCAN1

JMP

SCAN

SCAN2:

MOV

C,A

; сохранение кода активной строки

;в регистре С

DBOUNCE:

;начало частной процедуры DBOUNCE

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

Устранение дребезга контактов при вводе символа с клавиату­ры реализуется программой временной задержки величиной 10-50 мс, после чего МП-контроллер переходит к частной процедуре ожидания освобождения нажатой клавиши.

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

На рисунке 63. представлена БСА, а программа имеет вид:

WAITOP:

MOV

A,B

; загрузка CВ в аккумулятор

OUT

01H

; вывод СВ

WAIT01:

IN

01H

; считывание строк

CPI

OEFH

; анализ состояния клавиш

JNZ

WAIT01

; если нажатая клавиша, то ждать

KEYW:

; начало частной процедуры

; определения веса нажатой клавиши