Студопедія
рос | укр

Головна сторінка Випадкова сторінка


КАТЕГОРІЇ:

АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія






Мета роботи


Дата добавления: 2014-11-10; просмотров: 853



Опанування методів розробки програм керування виробничим обладнанням з використанням системи переривнь МПС.

2.8.2. Теоретичні відомості

Для уведення інформації широко застосовуються кнопкові перемикачі й контактні клавіатури. Сигнал таких перемикачів формується шляхом замикання/розмикання електричного кола. Сигнал, що сформований контактною парою, супроводжується дребезжанням (дзвоном), тривалість якого становить ~8-12мс, (рис.2.25.)

Рис.2.25. Сигнал контактної пари.

Для усунення дзвону в сигналі на виході контактної пари встановлюють спеціальні формувачі. Приклад такого формувача з RS-тригером наведений на рис.2.26.

Рис.2.26. Схема усунення дзвону за допомогою RS-тригера

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

Система переривань ОЕОМ AT89C51 містить наступні апаратно-програмні засоби.

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

 

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

EA X X ES ET1 EX1 ET0 EX0

 

Розряди регістра IE мають наступне призначення:

ЕА – керування всіма джерелами переривань одночасно. Якщо ЕА = 0, то переривання заборонені. Якщо ЕА = 1, то переривання можуть бути дозволені індивідуальними дозволами EX0, ET0, EX1, ET1, ES;

Х – резервний розряд;

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

ET1 – керування перериванням від таймера/лічильника 1. ЕТ = 1 – дозволено. ЕТ = 0 – заборонено;

EX1 – керування перериванням від зовнішнього джерела /INT1. EX1 = 1 – дозволено. EX1 = 0 – заборонено;

ЕТ0 – керування перериванням від таймера/лічильника 0. ЕТ0 = 1 – дозволено. ЕТ0 = 0 – заборонено;

EX0 – керування перериванням від зовнішнього джерела /INT0. EX0 = 1 – дозволено. EX0 = 0 – заборонено;

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

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

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

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

Х Х Х PSP PT1 PX1 PT0 PX0

 

Розряди регістра IP мають наступне призначення:

PX0 – установка рівня пріоритету переривання від зовнішнього джерела /INT0;

PT0 – установка рівня пріоритету переривання від Т/С0;

PX1 – установка рівня пріоритету переривання від зовнішнього джерела /INT1;

PT1 – установка рівня пріоритету переривання від Т/С1;

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

X – резервні розряди.

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

Регістр управління роботою таймерів/лічильників TCON призначений для керування роботою таймерів/лічильників та контролю стану зовнішніх переривань. Позначення розрядів регістра TCON показано в таблиці 2.14.

Таблиця 2.14. Регістр контролю переривань TCON

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

 

Вони мають наступне призначення:

TF1(TF0) – прапор переповнення Т/С1(0). Якщо TF = 0, то переповнення не відбулося. Якщо TF = 1, то відбулося переповнився Т/С;

TR1(TR0) – керування роботою таймерів/лічильників. Якщо TR = 1, то Т/С увімкнений. Якщо TR = 0, то Т/С вимкнений;

IE1(IE0) – біти запиту зовнішніх переривань по входу ;

IT1(IT0) – біти, що визначають тип переривання по входу . IT0 = 1 – переривання по фронту спадання. IT0 = 0 – переривання по низькому рівні на виводі.

Механізм переривань в ОЕОМ дозволяє автоматично реагувати на зовнішні та внутрішні події (переповнення таймерів/лічильників; завершення послідовного обміну і т.і.).

Коли відбувається апаратне переривання від певного джерела, виконання поточної програми припиняється, і в програмний лічильник завантажується відповідний вектор переривання. Вектор переривання – це конкретно визначена адреса пам’яті програм, яка автоматично завантажується в програмний лічильник коли відбувається переривання. В цій комірці повинна знаходитись початкова команда підпрограми обробки переривання. Тобто, як тільки відбудеться подія, що спричиняє переривання, виконання програми переходить на вектор переривання і виконається команда, за цією адресою (табл.2.15.).

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

Джерело переривання Адреса
Зовнішнє переривання 0 0003H
Переповнення таймера 0 000BH
Зовнішнє переривання 1 0013H
Переповнення таймера 1 001BH
Послідовний порт 0023H
Системне скидання (System reset) 0000H

Кожне із зовнішніх переривань може бути активізоване по низькому рівню сигналів або по спадаючому фронту сигналів на Р3.2, Р3.3 за допомогою бітів IT0 й IT1 регістра TCON. При надходженні запиту зовнішнього переривання встановлюється прапор IEх регістра TCON. Очищення прапора IEх відбувається апаратно: при перериванні по фронту IEх скидається при звертанні до відповідної підпрограми обробки переривання; при перериванні за рівнем прапор очищається при знятті запиту зовнішнього переривання, тобто в IEх відслідковується стан виводу .

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

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

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

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

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

IE0 -> TF0 -> TE1 -> TF1 -> (TI + RI)

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

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

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

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

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

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

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

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

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

У складі учбово-відлагоджувального стенда є матрична 3x4 клавіатура S1-S12. Клавіатура підключена до шини даних ОЕОМ за допомогою мікросхеми буфера DD1 74245(АП6). Опитування всієї клавіатури відбувається за три цикла (за один цикл зчитується стан тільки одного стовпця клавіатури). Щоб зробити опитування стовпця клавіатури (S1,S4,S7,S10; S2,S5,S8,S11; або S3,S6,S9,S12) необхідно виставити на відповідній лінії адреси (A0 для читання першого, A1 для читання другого та A2 для читання третього стовпця) рівень логічного нуля, а на інших лініях рівень логічної одиниці. Після встановлення таких рівнів треба прочитати стан буфера клавіатури, що підключений до шини даних ОЕОМ як доступна для читання комірка пам'яті з адресою 9000h (Рис.2.27.). Якщо кнопка натиснута, то відповідний біт у зчитаному байті буде дорівнювати нулю, якщо ж не натиснута – то одиниці.

Таблиця 2.16. Адреси стовпців матричної клавіатури

Стовпець (кнопки) Адреса
1 (S1,S4,S7,S10) 9006h
2 (S2,S5,S8,S11) 9005h
3 (S3,S6,S9,S12) 9003h

Рис.2.27. Електрична схема з’єднань кнопок матричної клавіатури.

Підпрограма, що демонструє використання системи переривань MCS-51 для сигналізації зовнішньої події наведена на рис.2.28. Зовнішня подія може полягати, наприклад, в замиканні контактної пари кінцевого вимикача дверей чи воріт, або давача максимального чи мінімального рівня і т.і. При виникнені такої ситуації необхідно сповістити обслуговуючий персонал або автоматично виконати яку-небудь роботу. В запропонованому на рис.2.28. прикладі підпрограма INT1 автоматично включає світлову сигналізацію при натисканні кнопок SW15 або SW16, що імітують замикання зовнішних контактів системи керування. Сигналізація полягає у засвічуванні всіх сегментів статичного індикатора.

INT1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Підпрограма керування індикатором по зовнішньому перериванню

; Вхід: зовнішня подія натискання кнопки SW15 або SW16.

; Вихід: світлова сигналізація на індикаторі HG1.

;Прапори: не використовуються

;Використані регістри: IE, IP, TCON, А, DPTR

;Вимагає вільних байт в стеку: 2 + 2 = 4

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

IE data 0A8h ;адреса регістра дозволу переривань

IP data 0B8h ;адреса регістра пріоритетів переривань

TCON data 088h ;адреса регістра контролю переривань

ORG 0 ;стартовий вектор

jmp start

ORG 03h ;вектор переривання INT0

jmp int

ORG 13h ;вектор переривання INT1

jmp int

start: mov IE,#010000101b ;дозвіл зовнішніх переривань

mov IP, #000000101b ;встановлення найвищого пріоритету

;для зовн. переривань

mov TCON, #000000000b ;налаштування зовнішніх

;переривань по НИЗЬКОМУ РІВНЮ

loop: mov A,#000001111b

mov DPTR, #0A004h

movx @DPTR,A ;гасіння сегментів індикатора

jmp loop

int: ;підпрограма обробки переривань

mov A, #011110000b ;код керування індикатором,

mov DPTR, #0A004h

movx @DPTR,A

mov A, #010001000b ;дані на індикатор (8, 8)

mov DPTR, #0A000h ;адреса старших розрядів

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

mov DPTR,#0A001h ;адреса молодших розрядів

movx @DPTR,A ;засвічення правих розрядів індткатора

reti ;повернення в основну програму

END

Рис. 2.28. Приклад програми INT1 використання переривань.

2.8.3. Підготовка до роботи

1) Вивчити принципи роботи з дискретними сигналами.

2) Вивчити апаратні засоби системи переривань мікроконтролера MCS-51.

3) Вивчити особливості опитування дискретних датчиків з механічними контактами.

4) Вивчити призначення та формати команд ініціалізації системи переривань MCS-51.

5) Вивчити адреси векторів переривань для MCS-51.

6) Розробити та записати БСА підпрограми INT1.

7) Вивчити формати та порядок виконання команд jmp int, reti.

8) Вивчити схему та принципи роботи з матричною клавіатурою стенду.

9) Розробити БСА для виконання індивідуального завдання у відповідності з номером Вашої бригади (Табл. 2.17.).

Таблиця 2.17. Завдання до лабораторнорї роботи №8.


<== предыдущая лекция | следующая лекция ==>
Мета роботи | Мета роботи
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | <== 11 ==> | 12 | 13 | 14 | 15 |
Studopedia.info - Студопедия - 2014-2024 год . (0.233 сек.) російська версія | українська версія

Генерация страницы за: 0.233 сек.
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7