Управление приоритетами запросов прерываний
При работе МК возможная ситуация, когда одновременно поступают запросы на прерывание от разных источников. Для избежания конфликтов в МК51 реализована двухуровневая аппаратно-программная шкала приоритетов, соответственно которой устройство управления выбирает источник прерывания, который может быть обслуженным раньше. В соответствии с аппаратной шкалой приоритетность обслуживания запросов следующая: INT0 – TF0 – INT1 – TF1 – TI/RI.
Для любого из пяти источников (TF1, TF0, INT1, INT0, TI или RI) может быть установлен один из двух уровней приоритета - "высокий" или "низкий" - программным способом. В случае совпадения уровней приоритетов нескольких источников выбор высшего приоритета устройство управления проводит соответственно аппаратной (неизменной) шкале (см. также рис.16.2 или рис.29 в комплекте).
Например, если высокий приоритет выбран программистом для INT0 и TF1, то в случае одновременного запроса от этих источников сначала будет обслуженный запрос INT0, а потом TF1 и только после этого - остальные запросы в порядке TF0-INT1-(TI/RI).
Уровень приоритета каждого источника устанавливают через биты регистра приоритетов прерываний IP (рис.16.4):
Таблица 9.2.
Назначение битов РПП – регистра IP
Имя бита
|
Позиция
|
Назначение
|
-
PS
PT1
PX1
PT0
PX0
|
IP.7-IP.5
IP.4
IP.3
IP.2
IP.1
IP.0
|
Не используются
Бит приоритета УАПП (запрос TI-RI)
Бит приоритета таймера 1 (запрос TF1)
Бит приоритета внешнего запроса INT1
Бит приоритета таймера 0 (запрос TF0)
Бит приоритета внешнего запроса INT0
|
Примечания: 1. Установка бита в "1" - назначение высокого приоритета.
Сброс бита в "0" - назначение низкого приоритета.
2. Регистр IP является ячейкой РПД с битовой адресацией.
3. Биты устанавливают и сбрасывают только программно.
|