| Главная страница | | Архитектура микроЭВМ | | Принципы обмена данными | | Лабораторные работы | | Примеры систем | | Программно-логическая модель | | Справочная информация |
 
Однокристальная микроЭВМ МК51 Система прерываний

     МикроЭВМ семейства МК51 обеспечивают поддержку пяти источников прерываний:
   - 2-х внешних прерываний, поступающих по входам INT0 и INT1 (линии порта Р3: Р3.2 и Р3.3 соответственно);
   - 2-х прерываний от таймеров/счетчиков Т/С0 и Т/С1;
   - прерывание от последовательного порта (как от прихода, так и от поступления байта).
Основные
функциональные узлы

Система команд
Организация памяти
Порты ввода-вывода
Система прерываний
Блок таймеров/счетчиков
Последовательный
порт

   ФИКСАЦИЯ ЗАПРОСОВ НА ПРЕРЫВАНИЯ

    Запросы на прерывания фиксируются в регистрах специальных функций микроконтроллера: флаги IE0, IE1, TF0, TF1 запросов на прерывания от INT0, INT1, T/C0 и T/C1 соответственно содержатся в регистре управления TCON, а флаги RI и TI запросов на прерывание от последовательного порта - в регистре SCON управления последовательным портом.
Блок
таймеров/счетчиков

Последовательный
порт

    Флаги TF0 и TF1 устанавливаются аппаратно при переполнении соответствующего таймера/счетчика (переход T/C из состояния "все единицы" в состояние "все нули"). Флаги IE0 и IE1 устанавливаются аппаратно от внешних прерываний INT0 и INT1 соответственно. Внешний запрос может вызвать установку флага либо при низком уровне сигнала на соответствующем входе, либо при переходе этого сигнала с высокого на низкий уровень (с частотой, не превышающей половины частоты внешней синхронизации микроЭВМ).

   НАСТРОЙКА СИСТЕМЫ ПРЕРЫВАНИЙ

    Настройка на тип запроса осуществляется программной установкой бит IT0 и IT1 в регистре TCON. IT=0 настраивает систему прерывания на запрос по низкому уровню сигнала, IT=1 - на запрос на прерывание по спаду сигнала. Флаги TI и RI устанавливаются аппаратно после окончания передачи или приема байта схемой последовательного интерфейса соответственно. Все указанные флаги запросов на прерывания программно доступны для установки и сброса. Программная установка флага запроса на прерывание приводит к такой же реакции микроЭВМ, что и аппаратная установка того же самого флага. Флаги TF0 и TF1 сбрасываются аппаратно при передаче управления программе обработки соответствующего прерывания. Сброс флагов IЕ0 и IЕ1 выполняется аппаратно при обслуживании прерывания только в том случае, если прерывание было настроено на восприятие спада сигнала IT. Если прерывание было настроено на восприятие уровня сигнала запроса, то сброс флага IE должна выполнять программа обслуживания прерывания, воздействуя на источник прерывания для снятия им запроса.

    Флаги TI и RI сбрасываются только программным путем. Каждый вид прерывания индивидуально разрешается или запрещается установкой или очисткой соответствующих бит регистра разрешения прерывания IE.

Мнемоника
бита
Позиция
в регистре
Функция
EA IE.7 Запрет прерываний от всех источников
- IE.6 Hе используется
- IE.5 Hе используется
ES IE.4 Запрет прерывания от последовательного порта
ET1 IE.3 Запрет прерывания от таймера/счетчика T/C1
EX1 IE.2 Запрет прерывания от внешнего источника INT1
ET0 IE.1 Запрет прерывания от таймера/счетчика T/C0
EX0 IE.0 Запрет прерывания от внешнего источника INT0

    Каждому виду прерывания может быть программно присвоен один из двух возможных приоритетов: 0 - низший, 1 - высший. Настройка приоритетов осуществляется путем установки или очистки соответствующего бита регистра приоритетов прерываний IP.

Мнемоника
бита
Позиция
в регистре
Функция
- IP.7 Hе используется
- IP.6 Hе используется
- IP.5 Hе используется
PS IP.4 Приоритет прерывания от последовательного порта
PT1 IP.3 Приоритет прерывания от таймера/счетчика T/C1
PX1 IP.2 Приоритет прерывания от внешнего источника INT1
PT0 IP.1 Приоритет прерывания от таймера/счетчика T/C0
PX0 IP.0 Приоритет прерывания от внешнего источника INT0

    При одновременном поступлении запросов прерывания от источников, имеющих различные приоритеты, сначала обрабатывается запрос от более приоритетного источника. В случае одновременного поступления нескольких запросов на прерывания с одинаковым приоритетом порядок их обработки определяется аппаратными средствами микроЭВМ и не может быть изменен программно. Этот порядок соответствует последовательности опроса флагов запросов прерываний, имеющей следующий вид: INT0 => TF0= > INT1 => TF1=> (RI,TI).

   ОБРАБОТКА ЗАПРОСОВ НА ПРЕРЫВАНИЯ

    Аппаратно-реализуемый вызов обработчика прерываний состоит включает в себя:
          - сохранение значения программного счетчика (PC) в стеке,
          - загрузку в программный счетчик начального адреса точки входа в соответствующий обработчик прерывания.
     Точки входа в обработчик прерывания для каждого источника прерываний аппаратно зафиксированы. По указанным адресам должны размещаться первые команды обработчиков прерываний.

Источник прерывания Адрес точки входа в обработчик прерывания
Внешнее прерывание (INT0) 03h
Прерывание от таймера/счетчика T/C0 08h
Внешнее прерывание (INT1) 13h
Прерывание от таймера/счетчика T/C1 18h
Прерывание от последовательного порта 23h

    При переходе на программу обработки прерывания автоматически независимо от состояния регистра IE запрещаются все прерывания с уровнем приоритета, равным уровню приоритета обслуживаемого прерывания, то есть вложенные прерывания с равным уровнем приоритета запрещены. Таким образом, низкоприоритетное прерывание (имеющее "0" в соответствующем разряде регистра IP) может прерываться высокоприоритетным (имеющим "1" в соответствующем разряде регистра IP), но не низкоприоритетным. Обслуживание высокоприоритетного прерывания не может быть прервано другим источником. Возврат из обработчика прерываний осуществляется с помощью команды RETI, которая восстанавливает из стека значение PC и логику приоритетов прерываний.

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2000 г.