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

Интерфейс дисплея с клавиатурой.

Клавиатуры делятся:

  1. простейшие

  2. более сложные.

Два вида клавиатур:

  1. кодирующие

  2. некодирующие

Кодирующие клавиатуры.

Каждой клавише соответствует определённый вход порта ввода, узнать положение клавиши можно опрашивая вход порта.

R1 – R8  1...4,7 kOm

Нажата

Унитарный код

Позиционный код

SA1

11111110

00000000

SA2

11111101

00000001

SA3

11111100

00000010

SA8

01111111

00000111

Преобразование унитарного кода в позиционный.

  1. табличный метод

  2. метод сдвигов унитарного кода

Табличный метод.

Основан на том, что в ПЗУ имеется таблица кодов: каждому унитарному коду соответствует позиционный.

IN IPORT

CMA

CPI MASK

JZ EXIT

При выходе выбирается позиционный код, соответствующий данной маске.

MASK1 EQU 00000001B

MASK2 EQU 00000010B

MASK8 EQU 10000000B

IDENTIF1:

IN IPORT

CMA

Инверсия кода

CPI MASK1

JZ EXIT1

CPI MASK2

JZ EXIT2

CPI MASK8

JZ EXIT8

MVI B,0FFH

Если не нажата ни одна клавиша

RET

EXIT1

MVI B,00H

RET

EXIT2

MVIB,01H

RET

EXIT8

MVI B,07H

Метод сдвигов унитарного кода.

Исходный код после инверторов сдвигается вправо через перенос (если нажата клавиша, то флаг переноса = 1).

IDENTIF2

IN IPORT

MVI B,0

MVI C,8

CMA

Инвертировать

ORA A

Сброс CY

SHIFT

RAR

JC EXIT

INR B

DCR C

JNZ SHIFT

MVI B,OFFH

EXIT

RET

В регистре В – двоичный позиционный код.

Если возможно нажатие нескольких клавиш, то надо после программы идентификации проверить (А) и если там не 0, то было нажато два или более клавиши.

К переключателям с фиксацией относится декадные переключатели: номеронабиратели.

Цифра

Код

23

22

21

20

0

0

0

0

0

1

0

0

0

1

9

1

0

0

1

Ak:

СтЦ

МлЦ

В случае клавиш без фиксации надо уловить момент, когда кнопки нажимаются:

  1. Программа ожидает нажатие клавиши. Программа сначала ожидает нажатие клавиши, затем защита от дребезга, затем программно ожидает отжатия клавиши, затем идентификация нажатой клавиши.

KEYBOARD

IN IPORT

CMA

ORA A

Установить флаги

JZ KEYBOARD

Цикл ожидания

PUSH PSW

CALL DELAY

WAIT

IN IPORT

CMA

ORA A

JNZ WAIT

Ожидание нажатия

CALL IDENTIF

RET

IDENTIF

POP PSW

Недостаток: МП постоянно ожидает нажатия клавиши.

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

Неудобство – надо периодически вызывать эту программу.

  1. С использованием прерывания программы:

Достоинство – отсутствие потерь времени на ожидание нажатия клавиши.

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

Не кодирующие.

Контакты клавиш присоединяются к матрице, образованной пересечением вертикальных и горизонтальных линий.

Идентификация нажатой клавиши осуществляется методом сканирования: на один ряд подается код сканирования (бегущий «0»), а с другого ряда снимается байт возврата – если не нажата ни одна клавиша в байте возврата 1, если нажата клавиша 0, в соответствующем разряде.