22 июля 2019 года    
Понедельник | 20:56    
Главная
 Новости
Базы данных
Безопасность PC
Всё о компьютерах
Графика и дизайн
Интернет-технологии
Мобильные устройства
Операционные системы
Программирование
Программы
Связь
Сети
 Документация
Статьи
Самоучители
 Общение
Форум







Разделы / Программирование / Assembler

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

Подсистема прерываний
После появления запроса, прерывания  от которого  разрешены, 
процессор  по окончанию текущего программного цикла  записывает в стек
адрес следующей команды прерываемой программы.  На счетчик адреса 
команд загружается адрес начала программы обслуживания прерываний.  В
микроконтроллерах семейства 8051 для программ обслуживания зафиксированы
постоянные начальные адреса  ( см. далее таблицу). Если в системе возможно
обслуживание нескольких прерываний, то программы обслуживания должны
"обходить"   участки   программной памяти,  зафиксированные как начальные
 участки программ обслуживания других прерываний (используется команда
 JMP).  Всякая программа обслуживания прерываний должна оканчиваться
командой RETI (возврат из прерываний). Это команда не только
восстанавливает из стека состояние счетчика команд, соответствующее
моменту начала обслуживания прерываний (как и команда возврата из
подпрограмм RET), но и разрешает прерывания равного и низших приоритетов. 
Всякая прерывающая программа должна обеспечить сохранение состояния
прерываемой программы. 
Допускаются вложенные прерывания - то есть программа обслуживания запроса 
может быть прервана для обслуживания другого запроса, имеющего более
высокий приоритет.  
Микроконтороллеры семейства 8051 имеют весьма гибкую систему управления
дисциплиной обслуживания запросов. Дисциплина определяется  состоянием
двух регистров управления запросами - регистр масок преваний   IE  и
регистр приоритетов прерываний IP. 
Старший разряд регистра масок ( логическое имя EA либо IE.7) блокирует
любые прерывния. Прочие биты осушествляют индивидуальную блокировку  и 
разрешения прерываний от различных источников ( 1 соответствует
разрешению 0 - запрету прерываний).
 Если регистр приоритетов  IP обнулен, до для запросов  установлен
  следующий порядок приоритетов :
                     IRO (высший) - TO - IR1 - T1- S_INT  ( низший).
Однако,если в регистре  IP несколько разрядов установлены в единицу, то 
соответствующие запросы получают высший приоритет в сравнении с  любыми 
запросами, для которых разряды в IR находятся в нулевом состоянии.  
Приоритеты запросов среди  отмеченных  одинаковым признаком 
приоритетности ( например единицами) порядок приоритетов соответствует
вышеприведенномую  
Логические имена битов управления  и их локализация в соответствующих 
 регистрах, а также векторы прерываний для источников запосов сведены в 
 таблицу:
__________________________________________________________________________Источник запроса        бит блокировки   бит приоритета   начальный адрес
                                                        прorраммы обслуживания
__________________________________________________________________________последовательный порт    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
__________________________________________________________________________
 Подсистема прерываний
Лента новостей


2006 (c) Copyright Hardline.ru