
- •Тема 2.4. Робота системних таймерів. Механізм переривань мк mcs51. Послідовний порт uart.
- •Робота системних таймерів. Типи таймерів.
- •2. Регістр стану таймера і регістр керуючого слова. Програмування таймерів.
- •3. Механізм переривань мк mcs51.
- •4. Виконання підпрограми переривання
- •5. Послідовний порт мк 8051.
3. Механізм переривань мк mcs51.
Система переривань призначена
для реагування на зовнішні та внутрішні
події. До зовнішніх належать появи
нульового потенціалу (або зрізу) на
виводах
,
,
до внутрішніх – переповнення
таймерів/лічильників. Зовнішні або
внутрішні події викликають встановлення
відповідних прапорців: IE0,
IE1, TF0,
TF1, RI,
TI, що й
спричиняють переривання. Всі ці прапорці
можуть бути програмно встановлені або
скинуті, при цьому їх програмне
встановлення викликає переривання так
само, як і реагування на подію. Крім
того, переривання на входах
,
можуть викликатися програмним скиданням
бітів Р3.2 і Р3.3. Керування системою
переривання здійснюється за допомогою
запису керуючих слів у регістри TCON,
IE, IP.
Спрощена схема переривань зображена на рисунку 7.1.
Рисунок 7.1 – Схема переривань
Від зовнішніх переривань встановлюються прапорці ІЕ0 і ІЕ1 в регістрі TCON, що ініціюють виклик відповідної програми обслуговування переривань. Скидання цих прапорців виконується апаратно тільки в тому випадку, якщо переривання було викликане по переходу (зрізу) сигналу (переході з 1 в 0). Якщо ж переривання викликане рівнем вхідного сигналу, то скиданням прапорця І повинна управляти відповідна підпрограма обслуговування переривання шляхом дії на джерело переривання з метою зняття ним запиту.
Прапорці запитів переривання від таймерів TF0 і TF1 скидаються автоматично при передачі управління підпрограмі обслуговування. Прапорці запитів переривання RI і TI встановлюються блоком управління прийомопередавача апаратно, але скидатись повинні програмним шляхом.
Переривання можуть бути викликані або відмінені програмою, так як всі названі прапорці програмно доступні і можуть бути встановлені/скинуті програмою з тим же результатом, як якби вони встановлювались/скидались апаратними засобами.
В блоці регістрів спеціальних функцій є два регістри, призначені для управління режимом переривань ІЕ і рівнями пріоритету ІР. Можливість програмної установки/скидання любого управляючого біту в цих двох регістрах робить систему переривань МК8051 дуже гнучкою.
Регістр дозволу переривання (маски переривання) ІЕ призначений для дозволу або заборони переривань від відповідних джерел.
Призначення бітів регістра ІЕ
Біт |
Позначення |
Призначення |
ІЕ.7 |
ЕА |
Зняття блокування переривань. Скидається програмно для заборони всіх переривань незалежно від стану ІЕ.4-ІЕ.0. |
ІЕ.6 |
|
Не використовується |
ІЕ.5 |
||
ІЕ.4 |
ES |
Біт дозволу переривання від універсального синхронного прийомопередавача. Установлення/скидання програмою для дозволу/заборони переривань від прапорців ТІ або RI |
IE.3 |
ET1 |
Біт дозволу переривань від таймера 1. Встановлення/скидання програмою для дозволу/заборони переривань від таймера 1. |
IE.2 |
EX1 |
Біт дозволу зовнішнього переривання 1. Установлюється/скидається програмою для дозволу/заборони переривання 1. |
IE.1 |
ET0 |
Біт дозволу переривань від таймера 0. Встановлення/скидання програмою для дозволу/заборони переривань від таймера 0. |
IE.0 |
EX0 |
Біт дозволу зовнішнього переривання 0. Установлюється/скидається програмою для дозволу/заборони переривання 0. |
Регістр пріоритетів переривань призначений для встановлення рівня пріоритету переривання для кожного з 5 джерел переривань.
Призначення бітів регістра ІР
Біт |
Позначення |
Призначення |
ІР.7-ІР.5 |
- |
Не використовується |
ІР.4 |
РS |
Біт пріоритету універсального асинхронного прийомопередавача. Установлюється і скидається програмно для присвоєння перериванню від прийомопередавача вищого/нижчого пріоритету. |
IР.3 |
РT1 |
Біт пріоритету таймера 1. Встановлення/скидання програмою для присвоєння перериванню від таймера 1 вищого/нижчого пріоритету. |
IР.2 |
РX1 |
Біт пріоритету зовнішнього переривання 1. Установлюється/скидається програмою для присвоєння вищого/нижчого пріоритету зовнішнього переривання INT1. |
IP.1 |
PT0 |
Біт пріоритету таймера 0. Встановлення/скидання програмою для присвоєння перериванню від таймера 0 вищого/нижчого пріоритету. |
IP.0 |
PX0 |
Біт пріоритету зовнішнього переривання 0. Установлюється/скидається програмою для присвоєння вищого/нижчого пріоритету зовнішнього переривання INT0. |
При перериванні за нульовим рівнем цей рівень має утримуватись не менше, ніж 12 періодів сигналу тактової частоти. Переривання від Т/С здійснюється «1» значенням прапорців TF0 або TF1 у регістрі TCON, які встановлюються при переповненні відповідних таймерів. Їх скидання відбувається автоматично при переході до підпрограм обробки переривань.
Переривання від послідовного порту викликається встановленням прапорців ТІ або RI у регістрі SCON. Скиданням біта ЕА можна одночасно заборонити всі переривання.