Структура системы прерываний
Упрощенная схема блока прерываний микро-ЭВМ 8051 показана на рис. 1.6.
Внешние прерывания INT 0 и INT 1 могут быть вызваны либо уровнем, либо переходом сигнала из 1 в 0 на входах 8051 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. От внешних прерыва-ний устанавливаются флаги IE0 и IE1 в регистре TCON, которые иниции
Рис. 1.6. Схема блока прерываний
руют вызов соответствующей программы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага I должна управлять соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.
Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и TI устанавливаются блоком управления приемопередатчика аппаратно, но сбрасываться должны программным путем.
Прерывания могут быть вызваны или отменены программой, так как все названные флаги программно доступны и могут быть установлены/ сброшены программой с тем же результатом, как если бы они были установлены/сброшены аппаратными средствами.
В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний IE и уровнями приоритета IP (табл. 1.11, 1.12). Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний 8051 исключительно гибкой.
В более сложных модификациях микроконтроллеров семейства MCS-51 количество периферийных устройств увеличено, что приводит к необходимости использовать один вектор прерывания для нескольких устройств (разделение подпрограмм обслуживания прерываний в этом случае необходимо реализовать программно), либо добавить еще два регистра - режима (маски) и приоритета прерываний.
Регистр масок прерывания (IE)
Таблица 1.11
Символ | Позиция | Имя и назначение |
EA | IE.7 | Снятие блокировки прерывания. Сбрасывается, программно для запрета всех прерываний независимо от состояний IE.4 - IE.0 |
IE.6 | Не используется | |
lE.5 | Не используется | |
ES | IE.4 | Бит разрешения прерывания, от приемопередатчика Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI . |
ET1 | IE.3 | Бит разрешения прерывания от таймера. Установка/сброс программой для разрешения/запрета прерываний от таймера 1 |
EX1 | IE.2 | Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерывания 1 |
ET0 | IE.1 | Бит разрешения прерывания от таймера 0. Установка/сброс программой для разрешения/запрета прерываний от таймера 0 . |
EX0 | IE.0 | Бит разрешения внешнего прерывания 0. Установка/сброс программой для разрешения/запрета прерывания 0 |
Регистр приоритетов прерываний (IP)
Таблица 1.12
Символ | Позиция | Имя и назначение |
- | IP.7 - IP.5 | Не используется |
PS | IP.4 | Бит приоритета приемопередатчика. Установка/сброс программой для присваивания прерыванию от приемопередатчика высшего/низшего приоритета |
РТ1 | IP.3 | Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета |
РХ1 | IP.2 | Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT1 |
РТ0 | IP.1 | Бит приоритета таймера 0. Установка/сброс программой для присваивания прерыванию от таймера 0 высшего/низшего приоритета |
РХ0 | IP.0 | Бит приоритета внешнего прерывания 0. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT0 |
Дата добавления: 2015-10-09; просмотров: 1022;