Исследование контроллера клавиатуры-дисплея КР580ВВ79. Организация связи с оператором в обслуживаемых МК – системах, страница 8

В УМПК-48 для обращения к ККД (CS=0) необходимо на линии Р2.1 ОЭВМ установить уровень логического «0». ККД подключен к ОЭВМ как внешняя память данных, поэтому адрес обращения к ККД необходимо заносить в регистр R0. Если производится запись команды (управляющего слова ККД) или чтение слова состояния, то в R0 заносится код 0FFH (INS/D=1), если производится запись или чтение данных, то в R0 заносится  код 0FEH (INS/D=0). Обмен данными между ОЭВМ и ККД производится посредством команд MOVX.

При включении питания происходит сброс ККД в начальное состояние. При этом устанавливаются следующие режимы работы ККД:

-  дисплей на 16 знакомест с вводом слева;

-  клавиатура в режиме одиночного нажатия клавиш (две клавиши блокируются);

-  сканирование в режиме 4-битного двоичного счетчика (кодирование линий SL0.. SL3).

Так как в УМПК-48 используется только 6-разрядный дисплей, то целесообразно использовать режим дисплея на 8 знакомест. К линиям SL0.. SL2 ККД подключен дешифратор (см. рис. 25), поэтому сканирование необходимо вести в режиме 4-битного двоичного счетчика. Клавиатура используется в режиме одиночного нажатия клавиши. На вход CLK ККД подаются синхроимпульсы с выхода ALE ОЭВМ, частота которых равна:

.

Расчетная формула для определения частоты регенерации дисплея (т.е. частоты на выходах дешифратора сканирующих линий, см. рис. 25):

Так как внутренняя частота не должна превышать 100 кГц, то минимальный коэффициент деления kдел min второй ступени делителя должен быть равен 4 (формат команды «Управление частотой сканирования» приведен на рис. 20).

Эти режимы устанавливаются программно программой МОНИТОР при включении питания УМПК-48.

ЗАДАНИЕ. Введите в память УМПК программу, которая настраивает ККД на работу в следующем режиме: дисплей на 8 символов с вводом слева; клавиатура в режиме одиночного нажатия клавиш; сканирование в режиме 4-битного двоичного счетчика; kдел = 31.

000

FC

ANL P2, #0FCH

;

Адрес ККД

002

В8

FF

MOV R0, #0FFH

;

Режим «Команда» (А0=1)

004

23

00

МOV A, #00H

;

Запись команды «Установка

006

90

MOVX, @R0, A

;

режимов работы БИС»

007

23

3F

МOV A, #3FH

;

Запись команды «Управление

009

90

MOVX, @R0, A

;

частотой сканирования»; kдел=31

00A

04

0A

STOP:JMP STOP

;

Останов

После выполнения программы ККД будет настроен на работу в вышеперечисленных режимах. Убедитесь, что мерцание дисплея будет заметно для глаза. Занесите в ячейку 008H число 24H (kдел=4)  и вновь выполните программу.

3.2. Изучение команд управления вводом информации

В табл. 5. перечислены режимы ввода информации в ККД. Применительно к УМПК-48 рассмотрим подробнее режимы работы клавиатуры.

1) Режим одиночного нажатия клавиш (две клавиши блокируются). Алгоритм опознания нажатия клавиш в этом режиме таков: если обнаружено нажатие одной клавиши, то в течение следующих двух циклов сканирования клавиатуры будет производиться проверка нажатия других клавиш. Если таких клавиш не будет, то нажатая клавиша признается единственной и ее код записывается в FIFO ввода. Если в течение этих двух циклов будет обнаружено нажатие еще одной клавиши, то в память клавиатуры не заносится код ни одной клавиши до тех пор, пока не будут освобождены все клавиши, кроме одной. После того как все, кроме одной, клавиши будут освобождены  и не будут нажаты новые в течение двух циклов, код этой клавиши будет занесен в память клавиатуры. Код клавиши заносится в память клавиатуры один раз на каждое нажатие.