Принципиальная схема приведена в приложении Б.
Программирование периферийных БИС, как правило, начинается сразу же после включения питания МПС или после подачи сигнала сброса, выполнением программы начальной инициализации. Все программируемые периферийные БИС имеют в пространстве портов ввода-вывода свои порты, доступ к которым осуществляется по командам IN < адрес порта> или OUT < адрес порта>. Обращение к периферийным БИС со стороны МП может быть реализовано или с помощью аппаратного прерывания или с помощью программного опроса регистров состояния периферийных БИС.
Программирование микросхемы осуществляется с помощью восьми команд. Общий формат команды:
D7 D6 D5 D4 D3 D2 D1 D0
К |
О |
П |
Аргументы |
где КОП - код операции.
Команда установки режима работы индикатора и клавиатуры SW0:
КОП = 000.
D4 - заполнение строки дисплея:
0 - слева;
1 - справа.
D3 - размерность дисплея:
0 - 8´8 бит;
1 - 16´8 бит.
D2, D1 - режим работы с клавиатурой:
0 0 - сканирование контактной клавиатуры с блокировкой одновременного нажатия клавиш;
0 1 - сканирование контактной клавиатуры с независимым восприятием нажатых клавиш;
1 0 - сканирование матрицы датчиков;
1 1 - стробируемый ввод.
D0 - дешифрация сигналов сканирования:
0 - внешняя;
1 - внутренняя.
Команда программирования синхронизации SW1:
КОП = 001.
D4 ¸D0 - коэффициент деления базовой тактовой частоты (от 02h до 1Fh).
Команда чтения буферного ОЗУ клавиатуры или ОЗУ матрицы датчиков SW2:
КОП = 010.
D4 - флаг автоинкремента;
D3 - не используется;
D2 ¸ D0 - адрес ячейки ОЗУ клавиатуры или строки матрицы даттчиков.
Команда чтения индикаторного ОЗУ SW3:
КОП = 011,
D4 - флаг автоинкремента;
D3 ¸D0 - адрес ячейки индикаторного ОЗУ.
Команда записи в индикаторное ОЗУ SW4:
КОП = 100.
D4 - флаг автоинкремента;
D3¸D0 - адрес ячейки индикаторного ОЗУ.
Команда блокировки записи в индикаторное ОЗУ и гашения индикации SW5:
КОП = 101.
D4 - не используется;
D3 - флаг блокировки записи в старшую тетраду ячеек индикаторного ОЗУ;
D2 - флаг блокировки записи в младшую тетраду ячеек индикаторного ОЗУ;
D1 - флаг гашения индикатора А;
D0 - флаг гашения индикатора В.
Команда сброса SW6:
КОП =110.
D4 - разрешение заполнения индикаторного ОЗУ;
D3,D2 - код заполнителя индикаторного ОЗУ:
0 Х – 00H;
1 0 – 20H;
1 1 – FFH.
D1 - флаг очистки буферного ОЗУ клавиатуры и сброса запроса на прерывание;
D0 - «флаг программного общего сброса. Действие аналогично совокупности действий флагов D4 и D1 плюс перезапуск внутренних цепей синхронизации.
Команда сброса прерывания и установки режима обнаружения ошибок SW7:
В режиме матрицы датчиков сбрасывает линию запроса прерывания и разрешает дальнейшую запись в ОЗУ, в режиме контактной клавиатуры, значение 1 в D4 заставляет чип работать в режиме обнаружения ошибок.
КОП - 111.
D4 - флаг разрешения исполнения команды;
D3¸D0 - не используется.
Формат слова состояния
D7 D6 D5 D4 D3 D2 D1 DO
DU |
S/E |
ЕO |
EU |
F |
N |
где:
DU - индикаторное ОЗУ недоступно;
S/E - сенсорный датчик / флаг ошибки нажато несколько клавиш;
ЕO - ошибка - переполнение ОЗУ клавиатуры;
EU - ошибка - чтение из пустого буфера ОЗУ клавиатуры;
F - буфер клавиатуры полон;
N - количество символов в буферном ОЗУ клавиатуры (00H-07H)
Форматы данных
Сканирование контактной клавиатуры (ОЗУ клавиатуры):
D7 - состояние на входе CNTL микросхемы;
D6 - состояние на входе SHIFT микросхемы;
D5 ¸D3 - код номера столбца;
D2 ¸D0 - код номера строки.
Стробируемый ввод (ОЗУ клавиатуры):
D7 ¸D0 - состояние линий возврата (выводы RL7 ¸ RL0 микросхемы ) при подаче сигнала STB.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.