
- •Программирование цифровой техники и микроконтроллеров управления
- •Алматы 2012
- •1 Микроконтроллеры в современном мире
- •1.1 Краткая история развития микроконтроллеров
- •1.2 Задачи и роль микроконтроллеров
- •2 Выполнение арифметических операций в мп
- •2.1 Системы счислений
- •2.2 Двоичная арифметика
- •2.3 Дополнительный код
- •2.4 Знаковый разряд
- •3 Регистры общего и специального назначения
- •3.1 Регистры portc и trisc
- •3.2 Регистр Status
- •3.3 Фиксированная (абсолютная) адресация
- •4 Косвенная адресация. Логика
- •4.1 Косвенная адресация
- •4.2 Логические функции
- •5 Маскирование. Стек
- •5.1 Маскирование
- •5.2 Счетчик команд
- •5.3 Стек
- •6 Конвейер и подпрограмма задержки
- •6.1 Конвейер
- •6.2 Программа задержки
- •6.3 Расчет времени задержки
- •7 Выполнение умножения и деления
- •7.1 Умножение и деление при помощи сдвига
- •7.2 Инструкции условных переходов
- •7.3 Целочисленное умножение
- •7.4 Целочисленное деление
- •7.5 Умножение на дробное число
- •8 Программирование клавиатуры. Дешифратор
- •8.1 Клавиатура
- •8.2 Фрагменты программы
- •8.3 Дешифратор
- •8.4 Компаратор
- •9 Основные элементы цифровой техники
- •9.1 Сумматор
- •9.2 Арифметико-логическое устройство
- •9.3 Бистабильные схемы
- •9.4 Триггеры и регистры
- •10 Структура микроконтроллера. Индикатор
- •10.1 Применение операций сдвига
- •10.2 Цифровой индикатор
- •10.2 Структурная схема мк
- •11 Прерывания и сторожевой таймер
- •11.1 Прерывания
- •11.2 Подсчет посетителей с помощью прерываний
- •11.3 Сторожевой таймер
- •12 Фактор времени и аналоговый мир
- •12.1 Модуль таймера tmr1
- •12.2 Применение таймера tmr1
- •12.3 Аналоговый мир
- •Приложение а Список некоторых сокращений
- •Список литературы
- •Содержание
- •050013, Алматы, Байтурсынова, 126
11 Прерывания и сторожевой таймер
Цель лекции: познакомить студентов с выполнением прерываний. Научить применять встроенный таймер TRM1 и регистры специального назначения, связанные с его настройкой.
Краткое содержание лекции. Прерывания. Реакция процессора на запрос прерывания. Подсчет посетителей с помощью прерываний. Сторожевой таймер и его назначение.
11.1 Прерывания
Микроконтроллеры могут реагировать на запросы на прерывания от самых разных источников, находящихся вне микроконтроллера, либо от различных портов и периферийных устройств, имеющихся в составе конкретного представителя семейства. Например, микроконтроллеры P1C16F874/7 поддерживают до 13 различных прерываний от этих периферийных устройств, а также одно внешнее прерывание, подаваемое через вывод INT. Вход внешнего прерывания использует ту же ножку микроконтроллера, к которой подключена нулевая линия PORTB, т.е. вывод RB0. Программист может запретить или разрешить прерывания от этих источников, а также полностью запретить работу всей системы прерываний. Поскольку процесс реакции на прерывание практически не зависит от его источника, то будем вести речь именно о внешнем прерывании.
Реакция процессора на запрос прерывания выглядит так:
1) При выполнении каждой команды процессор проверяет наличие запроса прерывания от разрешенного источника. Если такой запрос отсутствует, микроконтроллер просто переходит к выполнению следующей команды. При наличии запроса следующие три машинных цикла затрачиваются на передачу управления процедуре обработки прерывания, в которой происходит автоматическое сохранение, по меньшей мере, состояния счетчика команд. Это необходимо для возврата из обработчика прерывания. Некоторые процессоры могут также автоматически сохранять содержимое регистра STATUS и других регистров специального назначения. Если автоматическое сохранение нужных регистров отсутствует, то программист должен сам позаботиться об этом. Поскольку в РIС-микроконтроллерах среднего уровня реализован 8-уровневый аппаратный стек, из обработчика прерывания можно вызывать до семи вложенных друг в друга подпрограмм.
2) Запрещается вся система прерываний, что гарантирует блокирование всех прерываний на время обработки текущего прерывания. Это осуществляется сбросом 7-го бита регистра управления прерываниями INTCON, который помечен как флаг общего разрешения прерываний (GIE). При сбросе микроконтроллера бит GIE всегда сбрасывается, так что по умолчанию прерывания запрещены.
Первая команда обработчика прерывания всегда размещается по адресу h'004' памяти программ, называемого вектором прерывания. Разумеется, код обработчика прерывания находится в каком-либо другом месте памяти программ, поэтому первой командой будет команда Goto.
3) Выполнение требуемых действий.
4) Восстановление состояния процессора и возврат к тому месту основной программы, в котором произошло прерывание.
5) Как и все подпрограммы, процедура обработки прерывания должна завершаться командой возврата. Однако при прерывании необходимо не только извлечь из стека сохраненное значение PC, но и установить бит G1E регистра INTCON для разрешения последующих прерываний. Для этого используется команда возврата из прерывания Retfie. Таким образом, после возврата в фоновую программу можно будет обработать все отложенные или будущие прерывания.