- •1.2.3 Контрольні запитання і завдання
- •1.2.4 Приклади аудиторних і домашніх завдань
- •1.3 Заняття 2. Двійкова арифметика і основні функції алгебри логіки
- •1.3.2 Методичні вказівки з організації самостійної роботи студентів
- •1.3.3 Контрольні запитання і завдання
- •1.3.4 Приклади аудиторних і домашніх завдань
- •2 Алгоритми і програми проектування мікропроцесорних систем
- •2.1 Мета занять
- •2.2 Методичні вказівки з організації самостійної роботи студентів
- •2.3 Контрольні запитання і завдання
- •2.4 Приклади аудиторних і домашніх завдань
- •3.2.3 Контрольні запитання і завдання
- •3.2.4 Приклади аудиторних і домашніх завдань
- •3.3 Заняття 2,3. Групи команд
- •3.3.1 Мета занять
- •3.3.2 Методичні вказівки з організації самостійної роботи студентів
- •3.3.3 Контрольні запитання і завдання
- •3.3.4 Приклади аудиторних і домашніх завдань
- •4.2.3 Контрольні запитання і завдання
- •4.2.4 Приклади аудиторних і домашніх завдань
- •4.3 Заняття 2. Алгоритми і програми обміну інформацією через послідовний порт
- •4.3.1 Мета занять
- •4.3.2 Методичні вказівки з організації самостійної роботи студентів
- •4.3.3 Контрольні запитання і завдання
- •4.3.4 Приклади аудиторних і домашніх завдань
- •4.4 Заняття 3. Алгоритми і програми обробки інформації в режимі переривань
- •4.4.1 Мета заняття
- •4.4.2 Методичні вказівки з організації самостійної роботи студентів
- •4.4.3 Контрольні запитання і завдання
- •4.4.4 Приклади аудиторних і домашніх завдань
- •61166 Харків, просп. Леніна, 14
4.4 Заняття 3. Алгоритми і програми обробки інформації в режимі переривань
4.4.1 Мета заняття
Вивчити принципи організації переривань і методи складання програм обробки переривань.
4.4.2 Методичні вказівки з організації самостійної роботи студентів
Механізм переривань в ОМЕВМ дозволяє автоматично реагувати на зовнішні і внутрішні події (переповнювання таймерів/лічильників, завершення послідовного обміну). Кожне із зовнішніх переривань INT0, INT1 може бути активізовано за рівнем («0») або за фронтом (перехід з «1» в «0») сигналів на виведеннях ОМЕВМ Р3.2, Р3.3, що визначається станом бітів IT0, IT1 регістра TCON («1» – фронт, «0» – рівень).
Кожне з перерахованих джерел переривань може бути індивідуально дозволено або заборонено установкою або скиданням відповідного біта в регістрі дозволу переривань IE. Регістр IE містить також біт ЕА, скидання якого в «0» забороняє відразу всі переривання. Необхідною умовою переривання є його дозвіл в регістрі IE.
Всі біти, які викликають переривання (IE0, IE1, TF0, TF1, RI, TI), можуть бути програмно встановлені або скинуті з тим самим результатом, що і у разі їх апаратної установки або скидання. Тобто переривання можуть програмно викликатися або очікуючи обслуговування переривання можуть бути програмно ліквідовані. Крім того, переривання по INT0, INT1 можуть викликатися програмною установкою P3.2=0 і Р3.3=0, як показано у наведеному нижче прикладі:
MAIN: MOV IE,#00000101B; дозвіл переривання від INT0 і INT1
MOV IP,#04H ;присвоєння INT1 старшого пріоритету
SETB EA ;загальний дозвіл переривання
MOV P3,#11110011B; імітація зовнішніх переривань
SUBR: ORG013H ;перехід до підпрограми обслуговування INT1
У запропонованому прикладі запити переривання і INT0 і INT1, що мають різний пріоритет, надходять одночасно. При цьому обслуговується переривання з вищим пріоритетом.
Всі прапорці IE0, IE1, TF0, TF1, RI, TI встановлюються незалежно від того чи дозволено, чи ні, відповідне переривання в регістрі IE.
Структура пріоритетів переривань є двоступеневою. Кожному джерелу переривання може бути індивідуально привласнений один з двох рівнів пріоритетів: високий або низький. Виконується це установкою (високий рівень пріоритету) або скиданням (низький рівень пріоритету) відповідного біта в регістрі пріоритетів переривань IP.
Номер |
Джерело |
Пріоритет усередині рівня |
1 |
IE0 |
(вищий) |
2 |
TF0 |
|
3 |
IE1 |
|
4 |
TF1 |
|
5 |
RI+TI |
(нижчий) |
Слід зазначити, що структура «Пріоритет усередині рівня» працює тільки в тих випадках, коли визначається послідовність обслуговування запитів на переривання, які прийняті.
Регістр дозволу переривань (IЕ) призначений для дозволу або заборони переривань від відповідних джерел. Позначення розрядів регістра IЕ наведено на рис. 4.5.
Біти |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Позначення |
ЕА| |
X |
X |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
Рисунок 4.5– Формат регістра дозволу переривання
ЕА| – управління всіма джерелами переривань одночасно. Якщо ЕА=0, то переривання заборонені. Якщо ЕА=1, то переривання можуть бути дозволені індивідуальною установкою високого рівня сигналу у відповідних розрядах ЕХ0, ЕТ0 EX1, ET1, ES. Х – резервний розряд.
ES – управління перериванням від послідовного порту.
ЕТ0 – управління перериванням від Т/С0.
ET1 – управління перериванням від Т/С1.
EX1 – управління перериванням від зовнішнього джерела INT1.
ЕХ0 – управління перериванням від зовнішнього джерела INT0.
Регістр пріоритетів переривань (IP) призначений для встановлення рівня пріоритету переривання для кожного з п'яти джерел. Позначення розрядів регістра IP наведено на рис. 4.6.
Біти |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Позначення |
Х |
Х |
Х |
PS |
РТ1 |
РХ1 |
РТ0 |
РХ0 |
Рисунок 4.6 – Формат регістра пріоритетів переривань (IP)
Призначення розрядів регістра IP: РХ0 – встановлення рівня пріоритету переривання від зовнішнього джерела INT0; РТ0 – встановлення рівня пріоритету переривання від Т/С0; РХ1 – встановлення рівня пріоритету переривання від зовнішнього джерела INT1; РТ1 – встановлення рівня пріоритету переривання від Т/С1; PS – встановлення рівня пріоритету переривання від послідовного порту; Х – резервний розряд.
Логіка обробки прапорців переривань здійснює пріоритетний вибір запиту переривання, скидання його прапорця та ініціює вироблення апаратно реалізованої команди переходу на підпрограму обслуговування переривання.
Схема вироблення вектора переривання виробляє двобайтові адреси підпрограм обслуговування переривання залежно від джерела переривань, які наведені в табл. 4.1
Таблиця 4.1 – Вектори переривань усіх джерел
Джерело переривання |
Вектор переривання |
Зовнішнє переривання INT0 |
0003Н |
Таймер/лічильник Т/С0 |
000ВН |
Зовнішнє переривання INT1 |
0013Н |
Таймер/лічильник Т/С1 |
001ВН |
Послідовний порт |
0023Н |
При визначенні запиту переривання управління передається відповідній сервісній підпрограмі шляхом виконання центральним процесором апаратної команди довгого виклику LCAL, що реалізовується. Адреса повернення з перерваної програми зберігається в стеку. Після завершення сервісної підпрограми інструкція RETI повертає процесор в основну програму в точку переривання.
