
- •Теория микропроцессорных систем микроконтроллеры
- •Структура и функциональные возможности мк51
- •Электрический интерфейс мк51
- •Резидентная память данных
- •Работа блока управления и синхронизации
- •Элементы данных в мк51
- •Характеристика функциональных групп команд
- •2.5. Система команд семейства mcs-51.
- •2.5.1. Команды пересылки данных.
- •Команда обработки данных.
- •Команды передачи управления.
- •Характеристика периферийных блоков в составе мк51
- •Управление таймерами-счетчиками (т/с)
- •Описание вариантов конфигурации таймеров-счетчиков
- •Особенности реализации временных интервалов
- •Структура последовательного порта и принципы управления
- •Описание режимов работы уапп
- •Назначение и принципы функционирования системы прерываний
- •Управление приоритетами запросов прерываний
- •Работа системы обслуживания прерываний
- •Заполнение начальной области памяти программ
- •Шестнадцатиразрядные микроконтроллеры Motorola
- •Современные встраиваемые микроконтроллеры, выпускаемые производственной фирмой Freescale Semiconductor
- •Номенклатура и функциональный состав микроконтроллеров cемейства 68hcs12
- •2.1. Микроконтроллеры семейства 68нс12/912
- •2.1.3. Начальный запуск и обработка прерываний
- •2.1.4. Режимы работы и конфигурация микроконтроллеров
- •2.1.5. Функционирование и программирование Flash-памяти и эсппзу
- •2.1.6. Блок контроля функционирования и генератор тактовых импульсов
- •2.1.7. Параллельный ввод-вывод данных и подключение внешней памяти
- •2.1.8. Последовательные порты sci и spi
- •2.1.9. Таймерные модули и широтно-импульсные модуляторы
- •2.1.10. Модуль аналого-цифрового преобразователя atd
- •2.1.11. Модуль последовательного интерфейса msCan
- •2.1.12. Режим отладки bdm и установка контрольных точек
Назначение и принципы функционирования системы прерываний
Обработка асинхронных событий, которые происходят в произвольные моменты времени, в МК51, как и в других МП, реализована через систему прерываний, которая функционирует согласно логике, показанной на рис. 16.1:
Источниками запроса на прерывание в МК51 могут быть:
- внешние устройства, которые подают сигналы запроса на прерывание через входы #INT0 и #INT1 (аварийные ситуации, готовность данных);
- таймеры путем установки флагов запроса TF0 и TF1 в случае переполнения;
- УАПП, путем формирования флагов TI и RI при завершении передачи и приема соответственно.
Использование системы прерываний позволяет организовать параллельную и независимую работу процессора и периферийных устройств (T/С, УАПП, внешние схемы) таким образом, что эти устройства, работая одновременно с процессором, информируют его об окончании очередного цикла (фазы) своей работы сигналами запроса на прерывание. Схематически и упрощенно логика работы системы прерываний МК51 показана на рис.16.2 или рис 29 в комплекте.
Внешние запросы на прерывание, которые поступают на входы #INT0 и #INT1, фиксируются или по уровню сигнала (0), или по срезу (из 1 в 0) в зависимости от значения битов IT0 и IT1 регистра TCON. В любом случае от внешних прерываний устанавливаются флаги-фиксаторы запроса IE0 и IE1 в регистре TCON.
Установка флагов-фиксаторов IE0 и IE1 в 1 инициирует вызов процедуры обработки прерывания, то есть формирует аппаратную команду LCALL 0003H или 0013Н. По адресу 0003H и 0013H обычно находится команда JMP на соответствующую процедуру.
Сброс IE0 и IE1 выполняется аппаратно, если прерывание вызвано срезом сигнала (то есть при IT0=1 и IT1=1) или должно выполняться программой обслуживания прерывания путем воздействия на источник прерывания с целью отмены им сигнала запроса.
Флаги прерывания от таймеров TF0 и TF1 устанавливаются аппаратно при переполнении таймерных регистров и сбрасываются аппаратно при передаче управления процедуре обслуживания. Векторы перехода на соответствующие процедуры (то есть команда JMP adr) должны находиться по адресам 000ВН для прерывания TF0 и 001BH для прерывания TF1.
Флаги запросов прерывания при завершении передачи из УАПП - TI и завершение приема в УАПП - RI устанавливаются аппаратно блоком управления УАПП. Запросы объединяются по ИЛИ в общий запрос прерывания от УАПП. Идентификация источника запроса должна выполняться в процедуре обработки (обработка прерывания с программным поиском источника). Флаги TI и RI также должны сбрасываться процедурой обработки. Вектор перехода при прерывании от УАПП должен находиться по адресу 0023Н.
Прерывания также могут быть вызваны или отменены программно, поскольку все перечисленные флаги программно доступны и могут изменяться программой с тем же эффектом, что и аппаратными средствами.
Разрешение обработки запросов прерываний
Часто в практических задачах необходимо запретить или разрешить прерывание от тех или других источников во всей программе (на протяжении ее работы) или в отдельных фрагментах. Эти действия называются маскированием запросов прерываний. Для разрешения обслуживания запросов используют биты регистра разрешения прерываний (РРП) с символическим именем IE (рис.16.3.):
Таблица 16.1
Назначение битов РРП – регистра IE
Имя бита |
Позиция |
Назначение |
ЕА - ES ET1 ЕХ1 ЕТ0 ЕХ0 |
IE.7 IE.6, IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 |
Разрешение / блокировка прерываний. ЕА=1 - разрешение прерываний определяется битами IE.4 – IE.0. При EA=0 все прерывания запрещены Эти биты не используются Разрешение прерываний от УАПП (по ТI или RI). Разрешение прерывания от таймера 1 (по биту TF1) Разрешение внешнего прерывания 1 (по входу #INT1 через бит IE1 (бит TCON.3)) Разрешение прерывания от таймера 0 (по биту TF0) Разрешение внешнего прерывания 0 (по входу #INT0 через бит IE0 (бит TCON.1)) |
Для всех битов: "1" - разрешение обработки, "0" - запрет обработки