Эти режимы программируются битами «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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.