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

Эти режимы программируются битами «KKK» управляющего слова «Установка режима» (табл. 5). В первом случае при одновременном нажатии двух (нескольких) клавиш блокируется ввод данных в FIFO, и ввод не производится до тех пор, пока в матрице клавиатуры не останется только одна нажатая клавиша. Факт нажатия хотя бы одной клавиши может быть зарегистрирован по уровню «1» на линии IRQ или ненулевому значению в битах  «NNN» слова состояния.  Во втором случае при одновременном нажатии двух (нескольких) клавиш коды всех нажатых клавиш вводятся в FIFO в порядке их сканирования. При этом формат данных определяется по рис. 15:

 


Рис.15. Формат данных FIFO в режиме сканирования

Для режима сканирования клавиатуры с  разрешением одновременного нажатия нескольких клавиш с помощью управляющего слова «Сброс прерывания/установка режима ошибки» (формат показан на рис. 16) можно запрограммировать специальный режим ошибки. Если в течение одного цикла сканирования будут нажаты две клавиши, это трактуется как совместное нажатие и устанавливается флаг ошибки S/E в байте состояния. Этот флаг запрещает дальнейшую запись в память клавиатуры и устанавливает в «1» линию прерывания IRQ. Флаг ошибки (и сигнал IRQ) можно сбросить с помощью повторной записи управляющего слова сброса «Сброс прерывания/установка режима ошибки», установив в нем Е=1.

 


Рис. 16. Формат управляющего слова «Сброс прерывания/установка режима ошибки»:

E – бит, в единичном состоянии задающий специальный режим ошибки при вводе данных с клавиатуры.

В режиме опроса восьми восьмиразрядных портов ввода информации линии SL0-SL3 используются для стробирования ввода данных с портов на линии RL0-RL7 (см. рис. 7). Введенные данные (рис.17) записываются в ОЗУ ввода в соответствии с порядком их сканирования. Сигнал прерывания для процессора вырабатывается при изменении данных в одном из портов ввода. При этом дальнейший ввод информации в ОЗУ ввода прекращается. Режим может быть использован для ввода медленно изменяющихся сигналов. Номер порта ввода и характер изменения информации определяются микропроцессором при чтении информации из ОЗУ ввода и сопоставлении ее с ранее считанной информацией. В этом режиме возможно обращение к произвольной ячейке ОЗУ ввода. При установке этого режима устанавливается бит S в слове состояния.

 


Рис. 17. Формат данных, вводимых в режиме опроса портов клавиатуры

В режиме стробированного ввода (схема на рис. 8) информация с линий RL0-RL7 вводится в FIFO по фронту импульса на линии CTRL (формат данных показан на рис. 18).

 


Рис. 18. Формат данных в режиме стробированного ввода

Ввод данных в FIFO и изменение слова состояния  FIFO аналогичны режиму ввода данных с клавиатуры.

При выполнении команды  «Программная очистка» (рис. 19) ОЗУ дисплея заполняется определенным кодом, а FIFO очищается. Программирование битов DDD приведено в табл. 6.

 


Рис. 19. Формат команды программной очистки:

DDD – код, управляющий очисткой дисплея;

F –  бит очистки FIFO;

О – бит общей очистки FIFO и дисплея (младший бит байта)

Таблица 6

Программирование битов DDD

D

D

D

Примечание

0

0

Х

Запись в ОЗУ дисплея нулей

0

1

0

Заполнение ОЗУ дисплея кодом пробела (20Н), Нех (00100000)

0

1

1

Заполнение ОЗУ дисплея единицами

1

Х

Х

Заполнение ОЗУ дисплея нулями

В контроллере КР580ВВ79 предусмотрена возможность программного задания частоты на линиях сканирования SL0-SL3. Управление частотой сканирования выполняется программированием второй ступени делителя частоты сигналов со входа CLK (внутренняя частота при этом не должна превышать 100 кГц). Коэффициент деления задается в специальной команде (рис. 20) и может принимать значение от 2 до 31. Выполнение программной очистки или подача сигнала сброса на БИС устанавливает коэффициент деления, равный 31. Коэффициент деления первой ступени делителя равен 100.