Микропроцессоры в системах контроля. Бояринов А.Е. - 27 стр.

UptoLike

Составители: 

Рис. 1 Схема подключения простейшей клавиатуры
В исходном состоянии (кнопки не нажаты) на всех входах порта присутствует логический уровень 1
благодаря резисторам R1…R8, соединенным с напряжением питания +5 В. При нажатии любой кнопки
происходит замыкание соответствующего входа порта с корпусом схемы и на нем появляется логиче-
ский уровень 0. Для того чтобы МП-система могла определить факт нажатия одной или нескольких
кнопок клавиатуры ей необходимо осуществить ввод информации с данного порта. Если получены все
единицы (код FFh), то это означает, что ни одна кнопка не нажата. Если один или несколько бит содер-
жат логические 0 следовательно, произошло нажатие соответствующих кнопок. Для идентификации
нажатых кнопок необходима дополнительная программная обработка вводимой информации.
Можно повысить эффективность использования линий портов, если применить матричную
организацию и динамический способ опроса (сканирование) кнопок клавиатуры. Для построения
матрицы проводники располагают в виде сетки, в узлах которой размещают кнопки (рис. 2). При
нажатии кнопки замыкаются соответствующие линии строк и столбцов.
К выводам порта МП-системы подключаются строки и столбцы матрицы клавиатуры. Для
определения факта нажатия и идентификации нажатой кнопки МП-системы осуществляет скани-
рование столбцов позиционным кодом и ввод информации со строк. При этом нажатая клавиша
определяется программой по номерам строки и столбца. Такой способ опроса клавиатуры назы-
вается динамическим.
1
0
2
n
1
0
2
m
:
:
Рис. 2 Схема включения кнопок в матрицу
Организация динамического опроса клавиатуры
В качестве примера рассмотрим подключение к микроконтроллеру 80С51 матрицы клавиа-
туры 4×3 кнопки. К микроконтроллеру DD1 подключено 12 кнопок S1 – S12 через порт P1 (рис.
3, а). Сканирование столбцов производится 4–6 разрядами порта, которые используются как вы-
ходы. Ввод информации со строк производится 0–3 разрядами того же порта, которые использу-
ются как входы.
В процессе сканирования на один из выходов P1.4, P1.5, P1.6 поочередно выводится логиче-
ский 0 (рис. 3, б). На входах порта P1.0 – P1.3 изначально поддерживается уровень логической 1
за счет "подтяжки" внутренними резисторами к источнику питания. Следовательно, если ни одна
кнопка не нажата, то при вводе с порта P1 на этих входах будут получены 1. Если же одна из кно-
пок будет нажата, то через замкнутый контакт логический 0 выводимый при сканировании на
соответствующий столбец матрицы попадет на соответствующую строку. В результате при вводе
с порта P1 будет получен логический 0 на входе подключенному к этой строке.
Координаты нажатой кнопки определяются номером сканируемого столбца и номером стро-
ки, с которой получен логический 0. На рис. 3, б показаны сигналы на линиях порта P1 при нажа-
тии кнопок во время сканировании клавиатуры. Нажатие первой кнопки Кн.1 вызывает появле-
ние 0 на P1.0 при сканировании столбца подключенному к P1.4. Следовательно, ее координаты:
строка № 1; столбец № 1. По аналогии, другие нажатые кнопки будут иметь координаты:
Кн.2 – строка № 3; столбец № 2;