Разработка микропроцессорной системы на базе микропроцессора I-8088, содержащей: RAM – 4 кб; ROM –2 кб; периферия – I-8255, I-8279, страница 9

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.