Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcija_7.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
190.46 Кб
Скачать

Лекція 7.(4 год.)

Тема 2.4. Робота системних таймерів. Механізм переривань мк mcs51. Послідовний порт uart.

  1. Робота системних таймерів. Типи таймерів.

  2. Регістр стану таймера і регістр керуючого слова. Програмування таймерів. Режими роботи.

  3. Механізм переривань МК MCS51.

  4. Виконання підпрограми переривання.

  5. Послідовний порт МК 8051.

  1. Робота системних таймерів. Типи таймерів.

В базових моделях сімейства MCS-51 є два програмованих 16-бітних таймери/лічильники (Т/С0 і Т/С1), які можуть бути використані як в якості таймерів (для реалізації програмно керованих затримок та виконання функції задання часу), так і в якості лічильників (для підрахунку зовнішніх подій). В першому випадку вміст відповідного таймера/лічильника (Т/С) інкрементується в кожному машинному циклі, тобто через кожні 12 періодів коливань кварцового резонатора, а в другому випадку – він інкрементується під дією переходу з 1 в 0 зовнішнього вхідного сигналу, що подається на відповідний (Т0, Т1) вивід МК. Вміст лічильника збільшиться на 1, якщо в попередньому циклі надійшов сигнал високого рівня (1), а в наступному – сигнал низького рівня (0). Так як на розпізнавання періоду потрібно 2 машинні цикли, то максимальна частота підрахунку вхідних сигналів дорівнює 1/24 частоти резонатора. На тривалість періоду вхідних сигналів обмежень зверху немає. Для гарантованого читання вхідний сигнал повинен утримувати значення 1, як мінімум, на протязі одного машинного циклу мікроЕОМ.

Регістри Т/С0 і Т/С1 використовуються для зберігання результатів підрахунку, кожен з них може бути використаний як РЗП, якщо відповідний таймер не використовується. Початковий код лічби заноситься в регістри Т/С програмно. Ознакою закінчення лічби є переповнення регістра Т/С, тобто перехід його вмісту зі стану «всі одиниці» в стан «всі нулі».

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

2. Регістр стану таймера і регістр керуючого слова. Програмування таймерів.

Для управління режимами роботи Т/С і для організації їх взаємодії з системою переривань використовуються два регістри спеціальних функцій (TMOD i TCON).

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

Призначення бітів регістра TCON

Біт

Позначення

Призначення

7

TF1

Прапорець переповнення таймера 1. Встановлюється апаратно при переповненні Т/С. Скидається при обслуговуванні переривання апаратно.

6

TR1

Біт управління таймера 1. Встановлюється, /скидається програмно для пуску/зупинки. TR=0 – вимкнений, TR=1 – увімкнений.

5

TF0

Прапорець переповнення таймера 0. Встановлюється апаратно при переповненні Т/С. Скидається при обслуговуванні переривання апаратно.

4

TR0

Біт управління таймера 0. Встановлюється /скидається програмно для пуску/зупинки Т/С. TR=0 – вимкнений, TR=1 – увімкнений.

3

IE1

Прапорець запиту зовнішнього переривання по входу INT1. Встановлюється апаратно при детектуванні зрізу запиту зовнішнього сигналу INT1. (зріз/низький рівень). Скидається при обслуговуванні переривання.

2

IT1

Біт управління типом переривання 1. Встановлюється/скидається програмно для визначення типу переривання по входу INT1.

1

IE0

Прапорець запиту зовнішнього переривання по входу INT0. Встановлюється апаратно при детектуванні зрізу запиту зовнішнього сигналу INT0. (зріз/низький рівень). Скидається при обслуговуванні переривання.

0

(IT0)

Біт управління типом переривання 0. Встановлюється/скидається програмно для визначення типу переривання по входу INT0.

Регістр режимів TMOD

Призначений для приймання і зберігання коду, який визначає:

  • один з 4 можливих режимів роботи кожного Т/С;

  • виконання функцій таймерів або лічильників;

  • керування Т/С по зовнішньому виводу.

Призначення бітів регістра TMOD

Біт

Позначення

Призначення

7 для Т/С1 (3 для Т/С0)

GATE1

(GATE0)

Управління блокуванням. Дозволяє керувати таймером від зовнішнього виводу (INT0- для Т/С0, INT1-для Т/С1). GATE=0 – керування заборонено, GATE=1 – керування дозволено.

6 для Т/С1 (2 для Т/С0)

С/Т1

(С/Т0)

Біт вибору функції таймера або лічильника. Якщо біт скинуто, то працює таймер від внутрішнього джерела сигналів синхронізації, якщо біт встановлено, то працює лічильник від зовнішніх сигналів на входах Т0 (Т1).

5 для Т/С1 (1 для Т/С0)

М1.1

(М1.0)

Вибір режиму роботи.

4 для Т/С1 (0 для Т/С0)

М0.1

М0.0

Вибір режиму роботи здійснюється окремо для Т/С0 і для Т/С1 згідно зі значенням бітів М1.0(М1.1) та М0.0(М0.1):

М1

М0

Режим

0

0

0

0

1

1

1

0

2

1

1

3

Режими роботи Т/С.

Режим роботи кожного Т/С визначається значенням бітів М0, М1 у регістрі TMOD. Таймери Т/С0 і Т/С1 мають 4 режими роботи. Режими 0, 1, 2 – однакові для обох Т/С, у цих режимах вони повністю незалежні один від одного. Робота Т/С0 і Т/С1 у режимі 3 різна. При цьому встановлення режиму 3 в Т/С0 впливає на роботу Т/С1.

Режим 0 (М0=0, М1=0) Таймер в режимі 0 являє собою пристрій на базі 13-розрядного регістра і є 8-розрядним таймером (лічильником) з 5 розрядним перед дільником на 32. Для Т/С0 13-розрядний регістр являє собою 8 розрядів регістра ТН0 та 5 молодших розрядів регістра TL0, а для Т/С1 – 8 розрядів регістра Т/Н1 і 5 молодших розрядів регістра TL1. Вони є програмно доступними, але значущі в них лише 5 молодших розрядів. При переповненні Т/С, тобто при переході вмісту регістра Т/С зі стану «всі одиниці» в стан «всі нулі», встановлюється прапорець TF0 (для T/C0) і TF1 (для T/C1) у регістрі TCON. Установка біта GATE в 1 дозволяє використовувати таймер для вимірювання тривалості імпульсного сигналу, що подається на вхід запиту переривання.

Режим 1 (М0=1, М1=0) Відмінність від режиму 0 полягає в тому, що встановлення режиму 1 перетворює Т/С на пристрій з 16-розрядним регістром. Для Т/С0 регістр складається з програмно доступних пар TL0, ТН0, для Т/С1 – TL1, ТН1.

Режим 2 (М0=0, М1=1) У режимі 2 Т/С являє собою пристрій на базі 8-розрядного регістра TL0 для Т/С0 і TL1 для Т/С1. При кожному переповненні TL, крім установлення прапорця TF в регістрі TCON, здійснюється автоматичне перезавантаження вмісту ТН у TL. Регістри ТН0 і ТН1 завантажуються програмно. Перезавантаження TL0 з ТН0 та TL1 з TL1 не впливає на вміст регістрів ТН0 і ТН1.

Режим 3 (М0=1, М1=1) Т/С1 – заблокований і зберігає своє значення. Т/С0 в режимі 3 являє собою два незалежні пристрої на базі 8-розрядних регістрів TL0 і ТН0. Пристрій на базі TL0 може працювати як в режимі таймера так і в режимі лічильника, а на базі ТН0 – тільки в режимі таймера. Для забезпечення роботи Т/С0 в режимі 3 використовують біти TR1 і TF1, тому вони не можуть використовуватись для керування Т/С1. це призводить до того, що при встановленні Т/С0 в режим 3, а Т/С1 – в режим 0, 1 або 2, таймер Т/С1 при GATE1=1 завжди ввімкнений. При GATE1=0 вмикання Т/С1 визначається зовнішніми сигналами аналогічно розглянутому режиму 0. При переповненні у режимах 0 і 1 Т/С1 обнулюється, а в режимі 2 – перезавантажується без встановлення прапорця TF1.

Оскільки Т/С1 апаратно пов’язаний з послідовним портом, то під час роботи Т/С0 в режимі 3 можна використовувати Т/С1 в режимі 2 для задання швидкості роботи послідовного порту, або інших завдань, що не потребують переривань.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]