Введення дискретних сигналів. 


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



ЗНАЕТЕ ЛИ ВЫ?

Введення дискретних сигналів.



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

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

 

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

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

 

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

 

Система переривань ОЕОМ AT89C51.

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

 

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

               
EA X X ES ET1 EX1 ET0 EX0

 

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

ЕА – керування всіма джерелами переривань одночасно. Якщо ЕА = 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-ти джерел переривання.

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

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

               
Х Х Х PSP PT1 PX1 PT0 PX0

 

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

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

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

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

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

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

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

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

 

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

 

Таблиця7.3. Регістр контролю переривань 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 – переривання по низькому рівні на виводі.

 

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

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

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

 

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

Джерело переривання Адреса
Зовнішнє переривання 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. Якщо кнопка натиснута, то відповідний біт у зчитаному байті буде дорівнює нулю, якщо ж не натиснута – то одиниці.

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

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

 

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

 

Приклад програми для лабораторної роботи №7.

Засвічувати всі сегменти статичного індикатора при натисненні кнопок SW15 або SW16.

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:;підпрограма обробки переривання від INT0 і INT1

mov A,#011110000b

mov DPTR,#0A004h

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

;засвічення крапок

mov A,#010001000b

mov DPTR,#0A000h

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

;розрядів індикатора

mov A,#010001000b

mov DPTR,#0A001h

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

;засвічення крапок

nop

reti

END

Програма роботи

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

2. Вивчити систему переривань мікроконтролера.

3. Розробити програми для роботи з зовнішніми перериваннями.

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

5. Завантажити в стенд розроблені програми.

Порядок виконання роботи

1. Вивчити систему переривання ОЕОМ AT89C51, особливості опитування дискретних датчиків з механічними контактами.

2. Вивчити принципи роботи з матричною клавіатурою.

3. Розробити алгоритм для виконання індивідуального завдання (Таблиця 7.5).

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

5. Ввести текст програми мнемокодами асемблера використовуючи текстовий редактор і зберегти асемблерну програму на диску ПК.

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

7. Звіт з лабораторної роботи повинен містити блок-схему алгоритму роботи програми і асемблерні мнемокоди складеної програми.

8. Варіанти індивідуальних завдань.

Таблиця 7.5. Завдання до л.р. №7

Індивідуальне завдання
  Рахувати і відображати на статичному індикаторі скільки разів натиснута кнопки SW15.
  Декрементувати вміст регістра R1 при кожному натисненні кнопки SW16 і відображати його вміст на статичному індикаторі.
  Засвітити один діод на діодному ряді; натискаючи SW15 зсувати його на одну позицію вправо, натискаючи SW16 – вліво.
  Реалізувати опитування клавіатури. Номер клавіші відображати на статичному індикаторі.
  Реалізувати опитування клавіатури. Засвічувати відповідну крапку на знакосинтезуючому індикаторі.
6* Інкрементувати вміст регістра R1 при кожному натисненні кнопки SW15, при натисненні SW16 – декрементувати; відображати вміст R1 на статичному індикаторі. Реалізувати програмне придушення дзвону контактів.

7.5. Контрольні запитання

1. Що таке дребезжання контактів? Як з ним боротись?

2. Які регістри використовуються при роботі з апаратними перериваннями ОЕОМ AT89C51?

3. Для чого призначений регістр дозволу переривань IE?

4. Для чого призначений регістр пріоритетів переривань IP?

5. Для чого призначений регістр контролю таймерів/лічильників і переривань TCON?

6. Опишіть механізм роботи апаратного переривання.

7. Що таке вектор переривання? Вектори яких переривань реалізовані в ОЕОМ AT89C51?

8. По яким сигналам можуть відбуватися зовнішні переривання ОЕОМ AT89C51?

9. По яким сигналам можуть відбуватися внутрішні переривання ОЕОМ AT89C51?

10. Які пристрої в учбовому стенді використовуються для дискретного введення сигналів?


Лабораторна робота №8.



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 341; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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