В режиме опроса КП принимает запросы на прерывание от внешних устройств и формирует слово состояния опроса (D2-D0), содержащее номер запроса с наивысшим приоритетом. Обслуживание запроса происходит по требованию программы. Программно слово-состояние считывается (командой IN при А0=0), декодируется и осуществляется переход к соответствующей подпрограмме обслуживания прерываний.
Чтение регистра масок RGM осуществляется (командой IN при А0=1) без OCW3, регистра запроса RGI - после OCW3 с RIS=0. регистра обслуживания ISR - после OCW3 c RIS=1.
Формат F в ICW1 задает адресный интервал между начальными адресами подпрограмм обслуживания прерываний. Например, после выполнения команд
Код операции | Комментарий | |
EI | Разрешить прерывания | |
MVI | A,36H | ICW1 – один КП, формат 4, A7A6A5=001 |
OUT | 88H | Адрес регистра управления КП при A0=0 |
MVI | A,0 | ICW2 (A15-A8=00000000) |
OUT | 89H | Адрес регистра управления КП при A0=1 |
Начальные адреса подпрограмм обслуживания прерываний будут иметь следующие значения:
Программируемый интервальный таймер. Режимы работы программируемого таймера поясняют временные диаграммы (рис.6), на которых показаны сигналы на выходе OUT счетчика (это может быть СТО, СТ1 или СТ2) в каждом режиме, если при программировании в него загружено число N=4.
CLK | Тактовые импульсы | ||||||||||||||||
N = 4 | |||||||||||||||||
WR | Конец программирования | ||||||||||||||||
GATE | Аппаратное разрешение | ||||||||||||||||
N·T | |||||||||||||||||
Режим 0 | Программная задержка | ||||||||||||||||
Режим 1 | Ждущий мультивибратор | ||||||||||||||||
N·T | |||||||||||||||||
Режим 2 | Генератор такт. импульсов | ||||||||||||||||
N·T | |||||||||||||||||
Режим 3 | Генератор меандра | ||||||||||||||||
N·T | |||||||||||||||||
Режим 4 | Программно-управл. строб | ||||||||||||||||
N·T | |||||||||||||||||
Режим 5 | Аппаратно-управл. строб |
Рисунок 6 – Диаграммы режимов работы программируемого таймера
Режим работы каждого счетчика задается записью в регистр управления таймера управляющего слова следующего формата (рис. 7):
Затем осуществляется загрузка каждого счетчика одним или двумя информационными байтами. Таймеры работают на вычитание. Микропроцессор может прочитать текущее значение числа Ni в любом счетчике таймера либо непосредственно с помощью команды IN, либо предварительно защелкнув его в буферном регистре счетчика путем ввода в регистр управления слова с D5=D4=0.