Разработка микропроцессорной системы на базе микропроцессора I-8085A, содержащую: 2 кБ ROM памяти, 2 кБ RAM памяти, периферийные БИС I-8255A (параллельный интерфейс) и I-8279 (контроллер клавиатуры и дисплея), страница 9

            Принципиальная схема приведена в приложении Б.


3.  Программирование периферийных БИС

          Программирование периферийных БИС, как правило, начинается сразу же после включения питания МПС или после подачи сигнала сброса, выполнением  программы начальной инициализации. Все программируемые периферийные БИС имеют в пространстве портов ввода-вывода  свои порты, доступ к которым осуществляется по командам IN < адрес порта> или  OUT < адрес порта>. Обращение к периферийным БИС со стороны МП может быть реализовано или с помощью аппаратного прерывания или с помощью программного опроса регистров состояния периферийных БИС.

3.1        Программирование Intel 8279

Программирование микросхемы осуществляется с помощью восьми команд. Общий формат команды:

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.