Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Контроллер прерываний (IC) принимает и обрабатывает запросы прерывания от внешних и внутренних источников запросов. В состав контроллера прерываний входят регистры специальных функций IE и IР и младшая половина разрядов регистра TCON (TCON.3–0). Схемы распределения разрядов в регистрах IE, IP и TCON представлены на рисунке 1.13.
EA | – | – | ES | ET1 | EX1 | ET0 | EX0 |
а) | |||||||
– | – | – | PS | PT1 | PX1 | PT0 | PX0 |
б) | |||||||
IE1 | IT1 | IE0 | IT0 | ||||
в) | |||||||
а) регистр IE; б) регистр IP; в) регистр TCON Рисунок 1.13 – Схемы распределения разрядов в регистрах IE, IP и TCON |
Сигналы запросов прерывания от внешних источников INT0 и INT1 поступают на входы порта Р3.2 и Р3.3 соответственно. Запрос прерывания представлен или низким уровнем сигнала INT0 (INT1), или переходом сигнала INT0 (INT1) от высокого уровня к низкому уровню. Запрос прерывания представлен уровнем сигнала при TCON.0=IT0=0 (TCON.2=IТ1=0). При IT0=1 (IT1=1) запрос представлен отрицательным перепадом сигнала.
При поступлении запроса прерывания на входы INT0 или INT1 устанавливается в единичное состояние разряд TCON.1=IE0 или TCON.3=IЕ1 соответственно. Если запрос прерывания представлен переходом сигнала, разряд IE0 (IE1) сбрасывается в нулевое состояние автоматически при переходе микроконтроллера к выполнению соответствующей прерывающей программы. Если запрос прерывания представлен уровнем сигнала, состоянием разряда IЕ0 (IЕ1) управляет внешний сигнал INT0 (INT1).
Запросы прерывания от внутренних источников запросов: от таймера-счетчика Т/С0, таймера-счетчика Т/С1, передатчика и приемника последовательного порта – представлены единичным значением сигналов, поступающих из разрядов регистров TCON.5=TF0, TCON.7=TF1, SCON.1=TI и SCON.0 = RI соответственно. Сигналы запросов прерывания от передатчика (TI) и приемника (RI) последовательного порта объединены по схеме логического ИЛИ на входе контроллера прерываний.
С использованием разрядов регистра IE разрешается или запрещается прием запросов прерывания в контроллер прерываний. Каждому запросу соответствует свой разряд регистра. Биты ET0, ET1 соответствуют запросам прерываний от таймеров, биты EX0, EX1 – запросам прерывания от внешних источников, бит ES – от последовательного порта. При IЕ.Х=0 (Х=0, 1,..., 4) прием соответствующего запроса запрещается, при IЕ.Х=1 – разрешается. С использованием разряда IE.7=ЕА запрещается прием любого запроса прерывания (при ЕА=0).
В контроллере прерываний реализованы два уровня приоритета – высший и низший. Любой запрос прерывания может быть отнесен к любому из уровней. Отнесение запроса прерывания к уровню приоритета выполняется с использованием разрядов регистра IР (соответствие битов совпадает с регистром IE, см. выше). Каждому запросу прерывания соответствует свой разряд регистра. При IР.Х=0 (X=0, 1,..., 4) запрос относится к низшему уровню, при IР.X=1 – к высшему уровню.
Для запросов прерывания, отнесенных к одному уровню, приоритет запросов задан аппаратно и не может быть изменен.
В таблице 1.4 перечислены сигналы запросов прерывания, для каждого сигнала указано устройство-источник запроса прерывания, указан приоритет запросов при отнесении их к одному уровню и приведен вектор прерывания (начальный адрес прерывающей программы) для каждого запроса прерывания.
В контроллере прерываний уровень приоритета принятого запроса сравнивается с уровнем приоритета запроса, по которому произошел запуск текущей программы. Если уровень приоритета принятого запроса оказался выше, происходит переход по вектору прерывания от выполнения текущей программы к выполнению прерывающей программы. Программа, запущенная по сигналу сброса с начальным адресом 0000Н, прерывается запросом прерывания с любым уровнем приоритета.
Таблица 1.4 – Описание прерываний микроконтроллера
Сигнал запроса прерывания | Устройство-источник | Приоритет | Вектор прерывания |
INT0 | Внешний | 1 (высший) | 0003H |
TF0 | Т/С0 | 000BH | |
INT1 | Внешний | 0013Н | |
TF1 | Т/С1 | 001BH | |
TI+RI | SP | 5 (низший) | 0023Н |
При одновременном поступлении нескольких запросов прерывания для обслуживания выбирается запрос высшего уровня, а в пределах уровня – запрос с высшим приоритетом в пределах уровня.
При переходе к выполнению прерывающей программы адрес очередной команды прерываемой программы из счетчика команд переписывается в стек, а начальный адрес прерывающей программы (вектор прерывания) заносится в счетчик команд.
Контрольные вопросы
1. Какие периферийные устройства входят в состав микроконтроллера?
2. Какие функции, кроме непосредственного ввода-вывода, выполняет порт P3?
3. Что является источником счетных импульсов для таймеров-счетчиков?
4. Опишите режимы работы таймеров счетчиков ТC0 и TC1, если в регистр TMOD загружено значение 2BH?
5. В каких режимах может работать последовательный порт?
6. Возможен ли в режиме асинхронного приемо-передатчика одновременный прием и выдача символа?
7. Какие числа необходимо загрузить в TH0 и TL0, чтобы в режиме 1 осуществлялся обмен со скоростью 19200 бит/с при частоте резонатора 18,432 МГц (SMOD=1)?
8. Какова максимально допустимая скорость передачи для данного микроконтроллера?
9. Каков алгоритм приема и передачи символов при условии, что контроллер прерывания не используется?
10. Что такое «прерывание»?
11. Какие устройства микроконтроллера могут являться источниками запросов прерываний?
12. Что необходимо для разрешения и запрещения прерываний?
13. Что означает понятие «приоритет»? Перечислите в порядке возрастания приоритетов источники, если в регистр IP загружено число 13H?
14. Каким образом временно запретить обработку всех прерываний?
15. Что означает понятие «вектор прерывания»?
Дата публикования: 2014-11-03; Прочитано: 378 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!