Смекни!
smekni.com

Микропроцессорный комплект серии К580 (стр. 3 из 4)

Nб – число байт; Nт – число тактов;

В знаменателе дроби указано число тактов на выполнение операции при выполнении условия, в числителе – при невыполнении.

Рассмотрим примеры записи программ на языке ассемблера ASM80 (разработанного в соответствии с системой команд процессора i8080).

7. Программирование БИС параллельного интерфейса

При программировании БИС в регистр РУС1 командой OUT 83H записывается управляющее слово, которое определяет один из трех режимов работы портов параллельного интерфейса:

режим 0 - программно управляемый ввод/вывод данных в синхронном режиме по трем 8-разрядным каналам РА, РВ и PC. Каждый канал может быть использован только для ввода или вывода информации, а канал PC дополнительно может быть разделен на два 4-разрядных канала;

режим 1 - обмен данными с ВУ по каналам РА и РВ в асинхронном режиме и режиме прерывания программы. Управляющие сигналы при этом передаются по каналу PC;

режим 2 - двунаправленный обмен данными с ВУ по каналу РА в режиме прерывания программы. Каналу РC придается пять линий канала PC для передачи и приема управляющих сигналов. Канал РВ может быть при этом запрограммирован на работу в режимах 0 или 1.

При программировании БИС используются два формата управляющего слова: первый предназначен для задания режимов работы и направления включения каналов, второй - для установки или сброса произвольного разряда канала PC. Признак формата содержится в старшем бите управляющего слова: 1 соответствует формату 1, а 0 -формату 2. В схеме, изображенной на рис.4, порты РА и РВ работают в режиме 0 и для программирования параллельного интерфейса нам понадобятся управляющие слова обоих форматов для режима 0.

Управляющее слово первого формата:

D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 PA PC4-PC7 0 PB PC0-PC3

Логическая «1» в соответствующем разряде настраивает обозначенный канал на ввод, логический «0» - на вывод информации. Порт С позволяет производить независимую настройку полупортов на ввод-вывод в режиме 0.

Управляющее слово второго формата:

D7 D6 D5 D4 D3 D2 D1 D0
0 Х Х Х D3 D2 D1 D0


В битах D6-D4 управляющего слова может быть произвольная информация.

8. Программирование таймера и контроллера прерываний

Контроллер прерываний (КП) содержит регистры: запросов RGI, приоритетов RGB, обслуживания ISR и масок прерывания RGM. Запросы поступают на входы IR0-IR7 и устанавливают соответствующие разряды регистра запросов RGI. КП оценивает их приоритет и формирует запрос INT. Микропроцессор принимает INT, и если прерывания разрешены, то подтверждает прием выдачей флага INTA. КП устанавливает разряд ISR с наивысшим приоритетом, сбрасывает запрос в RGI и выдает на шину данных код команды CALL (0CDH). МП выдает еще два сигнала INTA, по которым КП выдает на ШД последовательно сначала младший, а затем старший байт адреса подпрограммы обслуживания прерываний.

Установка КП в исходное состояние и настройка его на определенный режим работы по обслуживанию прерываний программируются двумя типами команд:

командами инициализации ICW1, ICW2;

командами управления режимом OCW1, OCW2, OCW3.

Команды ICW загружаются по команде OUT с учетом разряда АО. ICW1 используется при формировании младшего байта адреса подпрограммы, ICW2 задает старший байт адреса:


КП готов работать в режиме с фиксированными приоритетами запросов: IR0 - наивысший, IR7 - низший. Для задания других режимов в любой момент загружаются команды-приказы OCW (Operate Control Word):

Mi=1 – запрет прерывания по i-му каналу.

Сброс разряда регистра обслуживания ISR и циклический сдвиг приоритета. Записывается в подпрограмме обслуживания прерывания перед RET. Варианты приказа OCW2:

00100000 – сброс бита регистра обслуживания ISR с максимальным приоритетом;

10100000 - сброс бита ISR с максимальным приоритетом и назначение соответствующему входу низшего приоритета;

01100L2L1L0 – сброс бита ISR, определяемого полем L2L1L0;

11000L2L1L0 - назначение входу L2L1L0 низшего приоритета.


Режим опроса, считывания состояния КП