ТОП 10:

Система переривань ОЕВМ1816ВЕ31



Регістр пріоритетів переривання (IP) призначений для установки рівня пріоритету переривання для кожного з 5-ти джерел переривання.

Позначення розрядів регістра IP показано в таблиці 3.1, а призначення вказано нижче.

Таблиця 3.1 - Регістр пріоритетів переривань IP

X X X PSP РТІ РХ1 РТ0 РХ0

РХ0 - установка рівня пріоритету переривання від зовнішнього джерела /INTO.

РТ0 - установка рівня пріоритету переривання від Т/С0.

РХ1 - установка рівня пріоритету переривання від зовнішнього джерела. /INT1.

РТ1 - установка рівня пріоритету переривання від Т/С 1.

PS - установка рівня пріоритету переривання від послідовного порту.

X - резервний розряд.

Наявність в розряді IP «1» встановлює для відповідного джерела високий рівень пріоритету, а наявність в розряді IP «0» - низкий рівень пріоритету. При читанні резервних розрядів, відповідні лінії магістралі даних не визначені.

Регістр дозволу переривання (IE) призначений для дозволу або заборони переривань від відповідних джерел. Позначення розрядів регістра IE показано в таблиці 3.2, а призначення вказано нижче.

Таблиця 3.2 - Регістр дозволу переривань IE

ЕА X X ES ЕТІ ЕХ1 ET0 ЕХ0

ЕА - управління всіма джерелами переривань одночасно. Якщо ЕА=0, то переривання заборонені. Якщо ЕА=1, то переривання можуть бути дозволені індивідуальними дозволами ЕХО, ЕТО, ЕХІ, ETI, ES.

* - резервний розряд.

ES - управління перериванням від послідовного порту. ES=1 дозвіл. ES=0 - заборона.

ЕТІ - управління перериванням від т/с 1. ЕТ=1 - дозвіл. ЕТІ=0 - заборона.

ЕХІ - управління перериванням від зовнішнього джерела /INT1. ЕХІ=1 - дозвіл. ЕХІ=0 - заборона.

ЕТО - управління перериванням від т/с 0. ЕТО=1 - дозвіл. ЕТО=0 - заборона.

ЕХО - управління перериванням від зовнішнього джерела /INTO. ЕХО=1 - дозвіл. ЕХО=0 - заборона.

При читанні резервних розрядів відповідні лінії магістралі не визначені.

Структура переривань

Механізм переривань в ОМЕВМ дозволяє автоматично реагувати на зовнішні і на внутрішні події (переповнювання таймерів/лічильників, завершення послідовного обміну). Кожне з зовнішніх переривань /INTO, /INT1 може бути активізоване по рівню або по фронту сигналів Р3.2, Р3.3 за допомогою бітів ІТ0 і 1Т1 регістра TCON. Під час поступлення запиту зовнішнього переривання /INTx встановлюється прапор ІЕх регістра TCON. Очищення прапора ІЕх проводиться апаратно: при перериванні по фронту ІЕх скидається при зверненні до відповідної підпрограми обробки переривання; при перериванні по рівню прапора очищається при знятті запиту зовнішнього переривання, тобто в ІЕх відстежується стан виводу /INTx.

Щоб зовнішнє переривання по рівню було розпізнано, необхідне, щоб низький рівень на виводу INTx утримувався не менше 12 періодів сигналу тактової частоти. Якщо ж переривання активізується по переходу з стану високого рівня в стан низького рівня, то циклу низького рівня повинен передувати цикл високого рівня на виводі /INTx. Якщо зовнішнє переривання активізується по рівню, запит повинен утримуватися до початку обслуговуючої підпрограми і зніматися перед завершенням цієї підпрограми для запобігання повторного обслуговування.

Переривання від таймерів/лічильників виконуються по прапорах TF0 і TF1 регістра TCON, які встановлюються при переповнюванні відповідних регістрів таймерів/лічильників (за винятком режиму 3). Очищення прапорів TF0 і TF1 відбувається при переході до підпрограми обслуговування переривання. Переривання від послідовного порту виконується по прапору закінчення прийому RI або по прапору закінчення передачі ТІ, які зупиняються в регістрі SCON.

На відміну від всієї решти прапорів, RI і ТІ скидаються тільки програмним шляхом звичайно в межах підпрограми обробки переривання, де визначається, якому з прапорів RI або ТІ відповідає переривання.

У разі одночасного надходження запитів переривання з однаковим рівнем пріоритету, рівним 0 або 1, обробка їх проводиться в порядку внутрішнього опитування прапорів:

ІЕО≥TFO≥ТЕ1≥TF1≥ (ТІ + RI)

Установка прапорів переривання відбувається в кінці машинного циклу, а їх опитування в наступному циклі. Лише після виконання останнього циклу поточної команди проводиться апаратний виклик відповідної підпрограми обслуговування, еквівалентний команді LCALL.

В загальному випадку, звернення до підпрограми обслуговування затримується при виконанні хоча б однієї з наступних умов:

- проводиться обробка переривання з таким же або вищим пріоритетом;

- поточний машинний цикл (цикл опитування прапору) не є останнім циклом виконуваної команди;

- виконувана команда поточної програми RETI або будь-яка команда звернення до регістрів IE, IP.

В останній умові після закінчення однієї з вищезгаданих команд обов’язково виконається ще одна команда поточної програми перед викликом підпрограми обслуговування переривання. Прапор переривання, встановлений під час дії блокування переривання по одному з трьох вказаних умов і скинений до їх зняття, не викличе обслуговування відповідного запиту переривання.

Підпрограма обслуговування переривання триває до виконання команди RETI по якій відновлюється стан логіки переривання і стан програмного лічильника PC з двох верхніх комірок стека. При використовуванні команди RET відновлюється тільки стан програмного лічильника, а стан логіки переривання залишається незмінним.

Таблиця 3.3 - Початкові адреси векторів переривань

Джерело переривання Адреса
Зовнішнє переривання 0 0003Н
Переповнювання таймера 0 000ВН
Зовнішнє переривання 1 0013Н
Переповнювання таймера 1 001ВН
Послідовний порт 0023Н

У складі навчально-налагоджувального стенду є дві окремі кнопки S10-S11, які можуть опитуватися, як програмно, так і за допомогою використовування функцій переривань INT0-INTІ відповідно.

У складі навчально-налагоджувального стенду є матрична 3x4 клавіатура S1-S12. Клавіатура підключена до шини даних ОЕВМ за допомогою мікросхеми буфера DD1 74245(АП6).

Опитування всієї клавіатури проводиться за три рази (за один раз прочитується стан тільки одного стовпця клавіатури). Щоб провести опитування стовпця клавіатури (S1, S4, S7, S10; S2, S5, S8, S11 або S3, S6, S9, S12) необхідно виставити на відповідній лінії адреси (А0, А1, А2 для першого, другого і третього стовпця відповідно) рівень логічного нуля, а на інших лініях рівень логічної одиниці і прочитати стан буфера клавіатури, підключеного до шини даних ОЕВМ як доступний для читання елемент пам’яті з адресою 9000h. Якщо кнопка натиснута то відповідний біт в рахуючому байті буде рівний нулю, якщо ж не натиснута то одиниці.

Таблиця 3.4 - Опитування клавіатури







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.172.216.157 (0.006 с.)