Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
      1. Лічильники/таймери

Лічильник/таймер (СТ) призначений для обробки зовнішніх і внутрішніх подій, формування програмно-керованих тимчасових затримок, виконання часозавдавальних функцій.

До складу ОМК входять два 16-розрядних підсумовуючих СТ. Лічильник складається з регістрів лічильника TLi (молодший байт), THi (старший байт), логіки керування вхідними сигналами і тригера переповнення TFi. Біт TFi установлюється при переході лічильника зі стану

«усі 1» у стан «усі 0». Біт TFi розташовується в бітовому просторі і доступний за прямою адресою. Звертання до TLi, THi здійснюється роздільно за прямими адресами.

Керування роботою лічильника виконується за допомогою регістра режиму роботи TMOD і регістра керування-статусу TCON.

Формат регістра TMOD показаний на рисунку 3.12.

GATE1, GATE0 – керування способом запуску СТ;

С / T 0

, С / T1 – визначають роботу СТ як лічильника ( С / T

=1)

або таймера ( С / T =0);

М1, М0 - задають режими роботи

Рисунок 3.12 – Формат регістра режиму лічильника/таймера TMOD

Спосіб запуску СТ може бути апаратний чи програмний. Якщо GATEi =1, то реалізується апаратний запуск, при якому дозвіл рахування подається на вхід INTi порту Р3. Попередньо повинний бути встановлений біт запуску лічильника TRi у регістрі TCON. (і – номер лічильника- таймера). При програмному запуску GATEi =0, початок рахунка задається установкою біта TRi =1.

У режимі таймера СТ працює від внутрішнього генератора з частотою OSC/12.

При роботі в режимі лічильника вміст СТ інкрементується під впливом переходу з «1» у «0» зовнішнього сигналу, який подається на відповідні входи Т0, Т1 порту Р3. Інкремент виконується після аналізу стану «0» і «1» на вході Тi, тому накладаються певні обмеження на параметри преутвореного сигналу: рівень «0» і «1» повинний продовжуватися не менше OSC/12. Максимальна преутворена зовнішня частота - OSC/24.

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

Режим 0: режим 13-розрядного регістра, що складається з TНi і 5 молодших розрядів TLi. Структура показана на рисунку 3.13.

Рисунок 3.13 – Структура лічильника/таймера у режимі 0

Режим 1: режим 16-розрядного регістра, що складається з THi і TLi.

Структура показана на рисунку 3.14.

Рисунок 3.14 – Структура лічильника/таймера у режимі 1

Режим 2: у цьому режимі СТ являє собою пристрій на основі 8-розрядного регістра TLi. При кожному переповненні Tli, крім установки прапора Tfi, відбувається автоматичне завантаження вмісту THi у TLi. Структура показана на рисунку 3.15.

Рисунок 3.15 – Структура лічильника/таймера у режимі 2

Необхідний коефіцієнт розподілу повинний записуватися одночасно в THi і TLi.

Принцип роботи СТ у режимах 0,1,2 пояснює рисунок 3.16.

Рисунок 3.16 – Принцип роботи лічильника/таймера в режимах «0, 1, 2»

Режим 3: у цьому режимі лічильник 0 функціонує як 2 незалежних лічильники, а лічильник 1 заблокований і просто зберігає свій код (виконує функції регістра). При цьому можна настроїти лічильник 1 на інші режими.

Принцип роботи СТ у режимі 3 пояснює рисунок 3.17.

Рисунок 3.17 – Принцип роботи СТ у режимі 3

Режим 3 використовується, якщо необхідно збільшити кількість діючих лічильників до трьох. При роботі в цьому режимі СТ0 розподіляється на два 8-розрядних лічильники, сформованих на базі регістрів ТН0, ТL0. Лічильник на базі ТН0 може працювати тільки в режимі таймера, керується бітом ТR1 і формує сигнал переповнення ТF1. Лічильник на базі TL0 особливостей у керуванні не має .

Установка СТ0 у режим 3 позбавляє СТ1 біта включення TR1. Тому СТ1 у режимах 0, 1, 2 при GATE=0 завжди включений і при переповненні в

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

СТ1 апаратно зв'язаний із блоком синхронізації послідовного порту. Тому в режимах 0, 1, 2 при переповненні СТ1 завжди виробляє імпульс синхронізації послідовного порту.

Регістр керування і стану TCON (рис. 3.18) призначений для формування сигналів запуску СТ і збереження прапорів їхнього переповнення, завдання типу сприйманого запиту і збереження прапорів зовнішніх переривань.

TFi – прапор переповнення СТ. Установлюється апаратно при переповненні лічильника/таймера, скидається програмно. При обслуговуванні переривання скидання виконується апаратно.

TRi – біти керування СТ. Установлюється/скидається програмно для пуску/зупинки;

ITi – біт керування видом сигналу запиту переривання. При Іті=1 програмується переривання за зрізом імпульсу запиту, при ITi=0 – за низьким рівнем (і – номер входу запиту зовнішнього переривання);

IEi – прапор запиту переривання. Установлюються апаратно від зовнішніх запитів на входах INTi. Скидаються апаратно, якщо переривання викликане зрізом імпульсу запиту чи програмно. Можливе програмне керування цим прапором.

Рисунок 3.18 – Формат регістра TCON

Для настроювання лічильника/таймера на необхідний режим треба:

  1. задати необхідний коефіцієнт перерахування К в регістри Тні, ТLі. Якщо лічильник підсумовуючий, то К= 65535 – С +1, де С – необхідний коефіцієнт розподілу;

  2. задати режим роботи в слові TMOD;

  3. при програмному введенні-виводу замаскувати відповідні переривання від лічильника, а при використанні переривання, їх дозволити;

  4. при програмному запуску біт дозволу ТRі в слові TCON встановлюється в момент початку роботи СТ, а при апаратному – на стадії ініціалізації.

На базі СТ можна організувати перетворювачі частоти, часового інтервалу, періоду в код, генератори та формувачі сигналів. Однак необхідно враховувати, що TFi апаратно недоступно, тому вихідні сигнали варто формувати на виходах паралельних портів.