Система прерываний
Внешние прерывания по входам INT0 и INT1 могут быть вызваны либо уровнем (0), либо фронтом (переход из 1 в 0) сигналов на выводах Р3.2, Р3.3, что определяется программированием битов IT0 и IT1 регистра TCON. При поступлении запроса внешнего прерывания устанавливаются флаги IE0 или IE1. При прерываниях по фронту эти флаги сбрасываются аппаратно при обращении к подпрограмме обслуживания, при прерываниях по уровню флаги очищаются при снятии запроса внешнего прерывания.
В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний (IE) и уровнями приоритета (IP). Установка бита ЕА снимает общую блокировку прерываний.
Прерывания от таймеров/счетчиков вызываются при их переполнении установкой флагов TF0 и TF1. Очистка этих флагов происходит автоматически при обращении к подпрограммам обслуживания. Флаги запросов прерываний приемника и передатчика последовательного порта RI и TI устанавливаются аппаратно, но сбрасываться должны программой.
|
|
Если прерывания разрешены и сформировался соответствующий флаг, система прерываний помещает в стек содержимое счетчика команд РС и загружает в счетчик команд адрес вектора подпрограммы обслуживания. По адресу вектора обычно располагается команда безусловной передачи управления к начальному адресу подпрограммы обслуживания прерывания. Подпрограмма обслуживания должна в случае необходимости начинаться командами записи в стек (PUSH) PSW, ACC, B, DPTR и заканчиваться командами восстановления их из стека (РОР). Подпрограммы обслуживания обязательно заканчиваются командой RETI, снимающей блокировку прерываний.
Регистр масок прерывания (IE)
Символ | Позиция | Имя и назначение |
ЕА | IE.7 | Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний 1Е4 - 1Е0 |
- | IE.5, IE.6 | Не используются |
ES | IE.4 | Бит разрешения прерывания от UART. Установка/сброс программой для разрешения/запрета прерываний от флагов Т1 или R1 |
ЕТ1 | IE.3 | Бит разрешения прерывания от таймера 1. Установка/сброс программой для разрешения/запрета прерываний от таймера 1 |
ЕХ1 | IE.2 | Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерываний |
ЕТ0 | IE.1 | Бит разрешения прерывания от таймера 0. Работает аналогично 1Е.З |
EXD | IE.0 | Бит разрешения внешнего прерывания 0. Работает аналогично 1Е.2 |
Символ | Позиция | Имя и назначение |
- | IP.7- IP.5 | Не используются |
PS | IP.4 | Бит приоритета UART, Установка/сброс программой для присваивания прерыванию от UART высшего/низшего приоритета |
РТ1 | IP.3 | Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета |
РХ1 | IP.2 | Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT1 |
РТ0 | IP.1 | Бит приоритета таймера 0. Работает аналогично 1Р.З |
РХ0 | IP.0 | Бит приоритета внешнего прерывания 0. Работает аналогично 1Р.2 |
|
|