Разработка микропроцессорной системы на базе микропроцессора I-8080, содержащей: 4 кБ ROM памяти, 2 кБ RAM памяти, периферийные БИС I-8251 и I-8279, страница 5

-  регистр команд и состояния         - 81h.

Запрограммируем БИС в асинхронном режиме работы с параметрами:

2 стоп-бита, контроль по чётности, длина слова 8 бит, частота синхронизации 1/16.

Инициализация БИС на передачу данных.

          …

          MVI  A, 40h         ; программный сброс

          OUT 81h               ;  вывод в порт  81h

          MVI A,0FEh        ; запись инструкции режима

          OUT  81h              ;

MVI A,01h           ; запись инструкции команды

          OUT  81h              ;

S1:     IN 81h                   ; проверка готовности передатчика

          RRC                      ;

          JNC S1                  ;

          LDA NEXT           ; аккумулятор загружается данными из ячейки с адресом

          OUT 80h               ; NEXT и выводится в порт  80h

RET

          Инициализация БИС на приём данных.

          …

          MVI  A, 40h         ; программный сброс

          OUT 81h               ; вывод в порт  81h

          MVI A,0FEh        ; запись инструкции режима

          OUT  81h              ;

MVI A,04h           ; запись инструкции команды

          OUT  81h              ;

S2:     IN 81h                   ; чтение слова-состояния БИС

          ANI 02h                ; проверка готовности на приём информации (D1=1?)

          JZ S2                     ; не готов, повторить

          IN 80h                   ; ввод данных из БИС в МП

          STA NEXT           ; сохранить данные по адресу NEXT

          RET                      

3.2 Программирование КР580ВВ79 (I-8279)

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

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 - коэффициент деления базовой тактовой частоты (от 02 до 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:

КОП - 111.

D4 - флаг разрешения исполнения команды;

D3¸D0 - не используется.

Примечание. Флаг, равный 1, соответствует его взведенному сос­тоянию.

Формат слова состояния

D7         D6         D5         D4         D3         D2         D1         DO

DU

S/E

ЕO

EU

F

N

где: