ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Контроллер прерыванийКонтроллер прерываний (IC) принимает и обрабатывает запросы прерывания от внешних и внутренних источников запросов. В состав контроллера прерываний входят регистры специальных функций IE и IР и младшая половина разрядов регистра TCON (TCON.3 – 0). Схемы распределения разрядов в регистрах IE, IP и TCON представлены на рисунке 1.13.
Сигналы запросов прерывания от внешних источников 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 перечислены сигналы запросов прерывания, для каждого сигнала указано устройство-источник запроса прерывания, указан приоритет запросов при отнесении их к одному уровню и приведен вектор прерывания (начальный адрес прерывающей программы) для каждого запроса прерывания.
Таблица 1.4 – Описание прерываний микроконтроллера
В контроллере прерываний уровень приоритета принятого запроса сравнивается с уровнем приоритета запроса, по которому произошел запуск текущей программы. Если уровень приоритета принятого запроса оказался выше, происходит переход по вектору прерывания от выполнения текущей программы к выполнению прерывающей программы. Программа, запущенная по сигналу сброса с начальным адресом 0000Н, прерывается запросом прерывания с любым уровнем приоритета. При одновременном поступлении нескольких запросов прерывания для обслуживания выбирается запрос высшего уровня, а в пределах уровня – запрос с высшим приоритетом в пределах уровня. При переходе к выполнению прерывающей программы адрес очередной команды прерываемой программы из счетчика команд переписывается в стек, а начальный адрес прерывающей программы (вектор прерывания) заносится в счетчик команд. Контрольные вопросы 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 Что означает понятие «вектор прерывания»? Не нашли, что искали? Воспользуйтесь поиском:
|