Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

ТЕМА. Організація системи переривань і робота з цифровими потоками

Поиск

МЕТА. Вивчення режимів роботи системи переривань ОЕОМ, програмна обробка дискретних сигналів

 

ТЕОРЕТИЧНІ ПОЛОЖЕННЯ

 

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

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

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

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

Переривання від послідовного порту виконується за прапором закінчення прийому RІ або за прапором закінчення передачі ТІ, які встановлюються регістрі SCON.

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

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

ІЕ0 -> TF0 -> ТІ1 -> TF1 -> (ТІ + RІ).

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

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

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

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

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

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

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

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

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

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

Продовження таблиці 3.1

Зовнішнє переривання 1 0013Н
Переповнення таймера 1 001ВН
Послідовний порт 0023Н

 

У складі учбово-відлагоджувального стенду є: дві окремі кнопки S10-S11, які можуть опитуватися, як програмно, так і за допомогою використання функцій переривань ІNT0, ІNT1 відповідно; матриця кнопок S1-S9 (підписи на кнопках відповідають номеру позиційного позначення на схемі). На лініях РС4-РС6 мікросхеми паралельного прийомопередавача DD10 виставляється скануюча тетрада, яка містить нуль тільки в одному розряді, а з ліній РС0-РС2 зчитується стан кнопок. Якщо в прочитаній тетраді біти (0, 1, 2) дорівнюють одиниці, то жодна кнопка не натиснута. У протилежному випадку була натиснута та кнопка, що включена в перетинання ліній, де був встановлений нуль і з якої зчитався нуль. Наприклад, якщо в поточному циклі опитування нуль виставляється на лінії РС4 і при зчитуванні стану клавіатури був виявлений нуль на лінії РС1, то була натиснута кнопка S2.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1 Вивчити систему переривань ОЕОМ КР1816ВЕ31 і особливості опитування дискретних датчиків із механічними контактами.

2 Розробити алгоритм для виконання індивідуального завдання (табл. 3.2).

3 Розробити програму для виконання індивідуального завдання.

4 Набрати програму індивідуального завдання на персональному комп'ютері.

5 За допомогою ПВЗ проаналізувати виконання програми.

6 Завантажити програму в стенд ОЕОМ. Переконатися в правильному виконанні індивідуального завдання, при негативному результаті здійснити зміну алгоритму або програми. Повторити завантаження програми в стенд ОЕОМ.

Таблиця 3.2 – Варіанти індивідуальних завдань

Текст індивідуального завдання
  По натисканні S10 запускати вогонь, що біжить на світлодіодах HL1-HL8

Продовження таблиці 3.2

  Реалізувати опитування клавіатури. Номер клавіші індукувати позиційним кодом на світлодіодах HL1-HL8
  Реалізувати програму вводу двозначного числа із клавіатури, використовуючи динамічну індикацію
  Реалізувати опитування клавіатури. Номер клавіші відображати на Д_інд
  По натисканні S11 запускати тінь, що біжить на світлодіодах HL1-HL8

ПРИКЛАД ВИКОНАННЯ

Написати програму опитування дискретного сигналу при натисканні кнопки S1.

Лістинг програми:

CSEG

ORG 0

jb р3.2,$; опитування натискання кнопки S1, якщо кнопка була натиснута те програма виконується далі

Continue:

mov A,#04h; записати в акумулятор число 04

mov DPTR,#0A000h; встановити в DPTR адресу індикаторів DD15, DD16

movx @DPTR,A; засвітити на індикаторах DD15, DD16 число 04

mov DPTR,#0B000h; встановити DPTR адресу індикаторів DD17, DD18

mov @DPTR, A; засвітити на індикаторах DD17, DD18 число 04

C1: mov R1, #00FHh; тимчасова затримка на двох регістрах з декрементом у вкладеному циклі, що визначає час світіння індикаторів

mov R2, #00Fh

djnz R1, $

djnz R2, C1

mov A, #0FFh; записати в акумулятор число FFh

mov DPTR, #A000h; встановити в DPTR адресу індикаторів DD15, DD16

movx @DPTR, A; згасити індикатори DD15, DD16

mov DPTR, #0B000h;; встановити DPTR адресу індикаторів DD17, DD18

movx @DPTR, A; згасити індикатори DD17, DD18

C2: mov R1, #0FFh; тимчасова затримка на двох регістрах з декрементом у вкладеному циклі, що визначає час світіння індикаторів

mov R2, #0FFh

djnz R1, $

djnz R2, C2

jmp Continue

END

 

ЗМІСТ ЗВІТУ

1 Титульна сторінка.

2 Назва роботи, її мета.

3 Початкові дані.

4 Програмний код розробленого програмного забезпечення

5 Висновки за результатами роботи програми.

 

КОНТРОЛЬНІ ПИТАННЯ

1 Опишіть структуру системи переривань ОЕОМ КР1816ВЕ31.

2 У яких випадках застосовують систему переривань? Наведіть приклади.

3 Дайте характеристику регістрам керування і розподілу пам'яті в ОЕОМ 1816ВЕ31.

4 Охарактеризуйте переривання від таймерів, послідовного прийомопередавача.

5 Дайте характеристику апаратному усуненню дребезку контактів для схем з TTL і КМОП.

6 Дайте характеристику програмному усуненню дребезку контактів.

7 У яких випадках виникає необхідність застосування апаратного або програмного усунення дребезку контактів.


ЛАБОРАТОРНА РОБОТА №4

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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