|
Тема 9. Обработка прерываний в контроллереВ качестве сигналов прерывания, поступающих в контроллер прерывания, могут быть сигналы, формируемые модулями, входящими в контроллер (модуль таймера, последовательные и параллельные порты, АЦП и др.) и могут быть внешние сигналы, поступающие в контроллер из устройств, подключенных к нему. Первая группа сигналов называется – внутренними прерываниями, а вторая – внешними. Структурная схема контроллера прерываний приведена на рис. IR0 – IRn-1 - сигналы запросов прерываний, IR0 – имеет высший приоритет; · IRR – регистр запросов прерываний. В этом регистре фиксируются поступившие запросы. После поступления в КП одного или более запросов IR, КП выделяет самый приоритетный из них. Для назначения приоритетных запросов в КП имеется регистр приоритетов (IP). · IE – регистр разрешения запросов прерывания. Он позволяет временно запрещать поступление одного или более запросов IR. В некоторых контроллерах такие регистры обозначаются MR – маскирование. После определения запроса с максимальным приоритетом контроллер прерывания формирует в ЦПУ сигнал прерывания INT. После получения сигнала прерывания INT ЦПУ завершает выполнение текущей команды, прерываемой программы и формирует сигнал подтверждения INTA. После получения INTA КП формирует команду вызова подпрограммы Call ADRi (i = 0… (n-1)). После этого она обрабатывается как обычная команда. Выполнение команды Call ADRi в ЦПУ обеспечит обращение соответствующему адресу памяти программ для вызова подпрограммы обработки запроса прерывания.
В базовом микроконтроллере MCS-51 имеется 5 входов запросов прерывания: два внешних (INT0, INT1) поступают через линии порта Р3 и три внутренних прерывания: TF0, TF1(от таймеров/счетчиков) и TI/RI – прерывание от последовательного адаптера. С точки зрения приоритетов все 5 прерываний могут быть распределены только по двум уровням приоритетов (0 – высший приоритет и 1 – низший приоритет). Имеется внутренняя схема, которая решает, как должны обрабатываться запросы с одним уровнем приоритета, пришедших одновременно: Ранжирование приоритетов Hi INT 0 TF 0 INT 1 TF 1 Low TI/RI Распределение областей РПП под определенные запросы прерываний показано на рис. В резидентной памяти программ выделено 5 областей для каждого из 5 прерываний, каждая область - 8 байт для вектора прерывания. Таким образом, первые 43 байта программ имеют специальное назначение. ORG 30H – это 48 ячейка, программу рекомендуется начинать с этого адреса. Подпрограммы обработки прерывания обязательно завершаются командой RETI, в соответствии с которой в программный счетчик из стека загружается адрес ранее сохраненный командой CALL, сохраненной в стеке, для возврата в прерванную программу. Команда RET также возвращает управление прерванной программе, но не снимает при этом блокировку прерываний.
Рис. Распределение прерываний
Настройка контроллеров прерывания Имеется два регистра для настройки: IE –разрешение прерывания. IP - приоритет прерывания. IE.7 – разрешает или запрещает все прерывания независимо от того запрещены они или разрешены индивидуально. IE.5, IE.6 – Х –(0 или 1 значения не имеет.) IE.4, IE.3, IE.2, IE.1, IE.0 - кодирование: 1 – разрешить прерывание, 0 – запретить.
Регистр IP IP.4, IP.3, IP.2, IP.1, IP.0 - кодирование: 0 – Low Pr, 1 – High Pr.
Пример программы обработки прерываний от таймера и внешнего запроса
$mod812 org 00h jmp start
org 03h ;обработка прерывания INT0 mov P1,#55h reti
org 0Bh ;Обработка прерывания от таймера movx A,@DPTR rr A movx @DPTR,A mov P1,A clr A clr C mov B,#0h reti
start: ;Разрешаем прерывание от таймера 0 и внешнее прерывание 0 mov IE,#83h ;Устанавливаем начальное значение mov A,#03h mov DPTR,#0h movx @DPTR,A clr A mov P1,#03h mov TH0,#00h mov TL0,#00h ;Режим работы таймера 0 - режим 1 ;Бит GATE в 0, работает как таймер mov TMOD,#01h ;Устанавливаем бит TR0 для разрешения счета mov TCON,#10h ;Бесконечный цикл rep1: jmp rep1 end Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|