- с использованием опроса прерывания.
- с программным опросом слова состояния.
С использованием опроса прерывания.
В контроллере есть вывод (IRQ) на котором установлена «1», при нажатии клавиши – это сигнал для микропроцессора, что надо ввести код нажатой клавиши.
При переходе к подпрограмме обслуживания прерывания код читается из FIFO. По команде возврата из подпрограммы, запрос прерывания сбрасывается.

| ORG XXXXH
|
|
VVOD
| PUSH PSW
|
|
| MVI A,40H
|
|
| OUT РУС
| Чтение FIFO
|
| IN DAN
| Чтение кода клавиши
|
| CALL OBR
| Подпрограмма обработки кода
|
| POP PSW
|
|
| EI
|
|
| RET
|
|
|
|
|
VVOD2
| IN РУС
| Ввод слово состояния
|
| ANI 00001111B
| Выделение младшего разряда
|
| JZ VVOD2
| Цикл ожидания
|
| MVI A,40H
|
|
| OUT РУС
|
|
| IN DAN
| В (А) код нажатой клавиши
|
Достоинство – отсутствие дополнительных аппаратных затрат.
Недостаток – программа зацикливается пока не нажата клавиша.
Пример: шести позиционный дисплей, клавиатура из двадцати четырех клавиш.
|
|
|
|
| Q1
| Q2
|
|
|
|
|
| Q3
| Q4
|
|
| А
| В
|
| Q5
| Q6
|
С
| D
| E
| F
|
| Q7
| Q8
|
A7
| A6
| A5
| A4
| A3
| A2
| A1
| A0
| HEX
| Примечание
|
|
|
|
|
|
|
|
| FE
| Регистр данных DAN
|
|
|
|
|
|
|
|
| FF
| Регистр управляющего слова РУС
|
Так как на дисплее шесть индикаторов – то режим кодирования, надо подключить дешифратор.
Код клавиши
| Название
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
…
| …
|
|
|
|
|
|
|
|
|
|
…
| …
|
|
|
|
|
|
|
|
| F
|
|
|
|
|
|
|
|
| Q1
|
|
|
|
|
|
|
|
| Q2
|
…
| …
|
|
|
|
|
|
|
|
| Q8
|