Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1.02 Mб
Скачать
    1. Переривання

PIC16F87X мають 14 джерел переривань. Регістр INTCON містить прапори окремих переривань, біти дозволу цих переривань і біт глобального дозволу переривань.

Якщо біт GIE (INTCON<7>) встановлений в «1», дозволені всі немасковані переривання. Якщо GIE=0, то всі переривання заборонені. Кожне переривання окремо може бути дозволене/заборонене установленням/скиданням відповідного біта в регістрах INTCON, PIE1 і PIE2. При скиданні мікроконтролера біт GIE скидається в «0». При поверненні з підпрограмі обробки переривання, за командою RETFIE, біт GIE апаратно встановлюється в «1», дозволяючи всі немасковані переривання.

У регістрі INTCON знаходяться прапори наступних переривань: зовнішнього сигналу INT, зміни рівня сигналу на входах RB7:RB4, переповнювання TMR0.

У регістрах PIR1, PIR2 містяться прапори переривань периферійних модулів мікроконтролера, а в регістрах PIE1, PIE2 – відповідні біти дозволу переривань. У регістрі INTCON знаходиться біт дозволу переривань від периферійних модулів.

При переході на підпрограму обробки переривань біт GIE апаратно скидається в «0», забороняючи переривання, адреса повернення з підпрограми обробки переривань поміщається в стек, а в лічильник команд РС завантажується вектор переривання 0004h. Джерело переривань може бути визначене перевіркою прапорів переривань, які повинні бути скинуті програмно перед дозволом переривань, щоб уникнути повторного виклику.

Для зовнішніх джерел переривань (сигнал INT, зміни рівня сигналу на входах RB7:RB4) час переходу на підпрограму обробки переривань становитиме 3…4 машинних цикли. Точний час переходу залежить від конкретного випадку, він однаковий для 1- і 2-циклових команд. Прапори переривань встановлюються незалежно від стану відповідних бітів маски і біта GIE.

Примітка. Індивідуальні прапори переривань встановлюються незалежно від стану відповідних бітів маски і біта GIE.

Структурна схема логіки переривань показана на рисунку 4.14.

Рисунок 4.14 – Структурна схема логіки переривань

Зовнішнє переривання з входу RB0/INT відбувається: за переднім фронтом сигналу, якщо біт INTEDG (OPTION_REG<6>) встановлений в

«1»; за заднім фронтом сигналу, якщо біт INTEDG скинутий в «0». Коли

активний фронт сигналу з'являється на вході RB0/INT, біт INTF (INTCON<1>) встановлюється в «1». Переривання може бути заборонене скиданням біта INTE (INTCON<4>) в «0». Прапор переривання INTF повинен бути скинутий програмно в підпрограмі обробки переривань. Переривання INT може вивести мікроконтролер з режиму SLEEP, якщо біт INTE=1 перед переходом до режиму SLEEP. Стан біта GIE визначає, переходити на підпрограму обробки переривань після виходу з режиму SLEEP чи ні.

Переповнювання таймера TMR0 (FFh -> 00h) встановлює прапор TOIF (INTCON<2>) в«1». Переривання від TMR0 можна дозволити/заборонити установленням/скиданням біта TOIE (INTCON<5>). Зміна рівня сигналу на входах RB7:RB4 викликає установлення прапора RBIF (INTCON<0>). Переривання можна дозволити/заборонити установленням/скиданням біта RBIE (INTCON<4>).