- регистр команд и состояния - 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
Программирование микросхемы осуществляется с помощью восьми команд. Общий формат команды:
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 |
где:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.