IP – регистр приоритетов прерываний (0- низкий, 1- высокий)

IP.0 – PX0 – приоритет INT0

IP.1 – PT0 – приоритет TF0 (таймер 0)

IP.2 – PX1 – приоритет INT1

IP.3 – PT1 – приоритет TF1 (таймер 1)

IP.4 – PS – приоритет TI+RI

Процедура прерывания низкоприоритетного прерывания может быть прервана запросом более высокого уровня. Высокоприоритетное прерывание не может быть прервано никаким другим.Конфликты одновременного появления запросов одного уровня разрешаются схемой вторичного арбитража, устанавливающая отношение предпочтения в порядке убывания приоритетов:INT0, TF0 (таймер 0), INT1, TF1 (таймер 1), TI+RI.

Схема системы прерываний

Реализация прерываний по внешнему входу INT0 и INT1 происходит аналогично. Рассмотрим INT0.

Сигнал с внешнего контакта INT0 подается на 1 из детекторных блоков, фиксирующих уровень либо задний фронт импульса. Управление этими блоками выполняется программно-управляемым битом IT0. Результат детектирования фиксируется в бите IE0 (1 – есть прерывание, 0 – нет прерывания). Наличие прерывания объединено блоком «и» с флагами разрешения прерывания EX0 и EA. Прерывание сработает только в том случае, если все 3 бита равны 1.

Если схема арбитража допускает использование данного прерывания, то генерируется команда LCALL 0003h, приводящая передачу управления по адресу 0003h, где и должен располагаться обработчик. После подачи импульса на физический контакт происходит прерывание.

Прерывания от таймеров-счетчиков. Источником сигнала прерывания является флаг TF0, который аппаратно устанавливается в 1 при переполнении счетной схемы. Значение этого флага объединено логикой «и» с флагами разрешения прерываний ET0 и EA. При единичном значении указанных сигналов и разрешении схемы приоритетов генерируется команда вызова подпрограммы LCALL 000B. Управление передается обработчику прерываний.

Прерывание от последовательного приемо-передатчика. Источниками прерываний являются состояния флагов TIRI, которые устанавливаются в 1 при окончании процессов передачи и приема соответственно. Эти сигналы объединены логикой «или», что означает возможность возникновения прерывания от каждого из этих процессов. Сигнал прерывания объединен с флагами ES и EA логикой «и». При соответствующих значениях этих сигналов и разрешении схемы приоритета реализуется команда вызова обработчика по адресу 0023h.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: