Упрощенная схема прерываний МК51 показана на рисунке 42.
Внешние прерывания ¬INT0 и ¬INT1 могут быть вызваны либо уровнем, либо переходом сигнала из 1 в 0 на входах МК51 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания.
Рис. 42 Схема прерываний микроконтроллера
Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага IE управляет соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.
Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и ТI устанавливаются блоком управления УАПП аппаратно, но сбрасываться должны программой.
Прерывания могут быть вызваны или отменены программой, так как все перечисленные флаги программно-доступны и могут быть установлены/сброшены программой с тем же результатом, как если бы они были установлены/сброшены аппаратурными средствами.
В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний и уровнями приоритета. Форматы этих регистров, имеющих символические имена IE и IP описаны в таблице 14 и таблице 15 соответственно. Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний МК51 исключительно гибкой.
Табл. 14
Символ
Позиция
Имя и назначение
ЕА
IE.7
Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IЕ4 - IЕ0
----
IE.6
Не используются
----
IE.5
ES
IE.4
Бит разрешения прерывания от УАПП. Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI
ET1
IE.3
Бит разрешения прерывания от таймера 1. Установка/сброс программой для разрешения/запрета прерываний от таймера 1
EX1
IE.2
Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерываний
ET0
IE.1
Бит разрешения прерывания от таймера 0. Работает аналогично IE.3
EX0
IE.0
Бит разрешения внешнего прерывания 0. Работает аналогично IE.2