D7 D6 D5 D4 D3 D2 D1 D0
К |
КОП |
П |
Аргументы |
где КОП - код операции.
Команда установки режима работы индикатора и клавиатуры SW0:
КОП = 000.
D3 - размерность дисплея:
0 - 8´8 бит;
1 - 16´8 бит.
D4 - заполнение строки:
0 - слева;
1 - справа.
D2, D1 - режим работы с клавиатурой:
0 0 - сканирование контактной клавиатуры с блокировкой одновременного нажатия клавиш;
0 1 - сканирование контактной клавиатуры с независимым восприятием нажатых клавиш;
1 0 - сканирование матрицы датчиков;
1 1 - стробируемый ввод.
D0 - дешифрация сигналов сканирования:
0 - внешняя;
1 - внутренняя.
Команда программирования синхронизации SW1:
КОП = 001.
D4 - D0 - коэффициент деления базовой тактовой частоты.
Команда чтения буферного ОЗУ клавиатуры 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:
КОП = 111.
D4 - флаг разрешения исполнения команды;
D3 - D0 - не используется.
Формат слова состояния
D7 D6 D5 D4 D3 D2 D1 DO
D |
S/E |
O |
U |
F |
NNN |
N |
где:
DU - индикаторное ОЗУ недоступно;
S/E - сенсорный датчик / нажато несколько клавиш;
O - ошибка - переполнение ОЗУ клавиатуры;
U - ошибка - чтение из пустого буфера ОЗУ клавиатуры;
F - буфер клавиатуры полон;
N - количество символов в буферном ОЗУ клавиатуры (00H-07H)
Форматы данных
Сканирование контактной клавиатуры (ОЗУ клавиатуры):
D7 - состояние на входе CNTL микросхемы;
D6 - состояние на входе SHIFT микросхемы;
D5 -D3 - код, номера столбца;
D2 -D0 - код номера строки.
Стробируемый ввод (ОЗУ клавиатуры):
D7 - D0 - состояние линий возврата (выводы RL7 - RL0 микросхемы ) при подаче сигнала STB.
Матрица датчиков (ОЗУ клавиатуры):
данные с линий возврата поступают в тот байт ОЗУ клавиатуры, номер которого равен номеру опрашиваемого столбца матрицы датчиков.
Индикаторное ОЗУ:
D7 -D4 - передаются на выводы OUTA3 – OUTА0 микросхемы;
D3 - D0 - передаются на выводы OUTВЗ – OUTВ0 микросхемы.
Порты, на которые подключен I -8279:
регистр данных - 10h;
регистр команд и состояния - 11h.
После подачи сигнала RESET запрограммируем чип в следующем режиме:
· сканирование контактной клавиатуры c внешней дешифрацией и с запретом одновременного нажатия 2-х и более клавиш;
· 8 разрядный 8-ми символьный дисплей;
· заполнение строки слева с инкрементом;
· чтение ОЗУ клавиатуры и запись индикаторного ОЗУ;
· адрес индикаторного и клавиатурного ОЗУ равен нулю;
· коэффициент деления входной частоты равен 19h, т.к. входной синхронизирующий сигнал CLK имеет частоту 2,5МГц, а для получения 100кГц частоты внутренней синхронизации необходимо задать делитель равный 25.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.