On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Подсистема прерываний

После появления запроса, прерывания  от которого  разрешены, 
процессор  по окончанию текущего программного цикла  записывает в стек
адрес следующей команды прерываемой программы.  На счетчик адреса 
команд загружается адрес начала программы обслуживания прерываний.  В
микроконтроллерах семейства 8051 для программ обслуживания зафиксированы
постоянные начальные адреса  ( см. далее таблицу). Если в системе возможно
обслуживание нескольких прерываний, то программы обслуживания должны
"обходить"   участки   программной памяти,  зафиксированные как начальные
 участки программ обслуживания других прерываний (используется команда
 JMP).  Всякая программа обслуживания прерываний должна оканчиваться
командой RETI (возврат из прерываний). Это команда не только
восстанавливает из стека состояние счетчика команд, соответствующее
моменту начала обслуживания прерываний (как и команда возврата из
подпрограмм RET), но и разрешает прерывания равного и низших приоритетов. 
Всякая прерывающая программа должна обеспечить сохранение состояния
прерываемой программы. 
Допускаются вложенные прерывания - то есть программа обслуживания запроса 
может быть прервана для обслуживания другого запроса, имеющего более
высокий приоритет.  
Микроконтороллеры семейства 8051 имеют весьма гибкую систему управления
дисциплиной обслуживания запросов. Дисциплина определяется  состоянием
двух регистров управления запросами - регистр масок преваний   IE  и
регистр приоритетов прерываний IP. 
Старший разряд регистра масок ( логическое имя EA либо IE.7) блокирует
любые прерывния. Прочие биты осушествляют индивидуальную блокировку  и 
разрешения прерываний от различных источников ( 1 соответствует
разрешению 0 - запрету прерываний).
 Если регистр приоритетов  IP обнулен, до для запросов  установлен
  следующий порядок приоритетов :
                     IRO (высший) - TO - IR1 - T1- S_INT  ( низший).
Однако,если в регистре  IP несколько разрядов установлены в единицу, то 
соответствующие запросы получают высший приоритет в сравнении с  любыми 
запросами, для которых разряды в IR находятся в нулевом состоянии.  
Приоритеты запросов среди  отмеченных  одинаковым признаком 
приоритетности ( например единицами) порядок приоритетов соответствует
вышеприведенномую  
Логические имена битов управления  и их локализация в соответствующих 
 регистрах, а также векторы прерываний для источников запосов сведены в 
 таблицу:
_______________________________________________________________________
Источник запроса         бит блокировки   бит приоритета   начальный адрес
_______________________________________________________________________
последовательный порт       ES   ( IE.4)       PS  (IP.4)             23h
Таймер1               	    EТ1  ( IE.3)       PТ1 (IP.3)             1Вh
Вход INT1              	    EX1  ( IE.2)       PX1 (IP.2)             13h
Таймер 0             	    EТ0  ( IE.1)       РТ0 (IP.1)             0Bh
Вход   INT0           	    EX0  ( IE.0)       PX0 (IP.0)             03h
_______________________________________________________________________


Литература по Assembler