- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Переривання
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>).
