Програмування таймерів-лічильників

В мікроконтролерах сімейства MCS-51 звичайно є два 16-бітних таймера/лічильника T/C0 і T/C1, які можуть бути використані як в якості таймерів, так і в якості лічильників зовнішніх подій. Кожен з них складається з двох 8-бітних регістрів даних TH0 (старший байт) і TL0 (молодший байт) для таймера ТС0 або TH1 і TL1 для таймера ТС1.

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

У режимі лічильника вміст регістрів інкрементується у разі переходу з «1» в «0» зовнішнього вхідного сигналу, що подається на виводи мікроконтролера T0 або T1. Так як на розпізнавання такого переходу потрібні два машинних цикли, максимальна частота підрахунку вхідних сигналів дорівнює 1/24 частоти резонатора. Для гарантованого прочитання вхідний сигнал повинен утримувати значення «0» та «1», як мінімум, протягом одного машинного циклу мікроконтролера.

Таймер/лічильник ТС1 також використовується для встановлення швидкості передачі послідовного порту.

Структурні схеми таймерів/лічильників ТС0 і ТС1, за винятком одного режиму, ідентичні. Таймер/лічильники можуть включатися і виключатися як програмно, за допомогою біт керування TR0/TR1 (за умови GATE0/GATE1 = 0), так і апаратно, шляхом подачі керуючого сигналу на входи INT0/INT1 (за умови одночасного виконання GATE0/GATE1 = 1 та TR0/TR1 =1). Слід зазначити, що після включення і після скидання мікроконтролера роботу таймерів/лічильників.

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

На рис. 5.1 представлено бітову структуру регістру TMOD. Призначення окремих біт керування описано в табл. 5.1. Всі біти цього регістру доступні як для читання, так і для запису. При включенні мікроконтролера до регістру TMOD записується нульове значення.

               
GATE1 C/T1 M1 M0 GATE0 C/T0 M1 M0

Рис.5.1

Таблиця 5.1.

Біт Позиція Призначення
GATE1 TMOD.7 Управління включенням таймера ТС1. «1» – зовнішнє включення. Таймер працює якщо одночасно виконуються умови INT1 = 1 і TR1 = 1. «0» – програмний запуск. Таймер працює якщо TR1 = 1.
C/ 1 TMOD.6 Біт вибору типу роботи для таймера TC1: «0» - працює як таймер; «1» - працює як лічильник.
M1.1 TMOD.5 Визначення режиму роботи ТС1.
M1.0 TMOD.4 Визначення режиму роботи ТС1.
GATE0 TMOD.3 Управління включенням таймера ТС0. «1» – зовнішнє включення. Таймер працює якщо одночасно виконуються умови INT0 = 1 і TR0 = 1. «0» – програмний запуск. Таймер працює якщо TR0 = 1.
C/ 0 TMOD.2 Біт вибору типу роботи для таймера TC0: «0» - працює як таймер; «1» - працює як лічильник.
M0.1 TMOD.1 Визначення режиму роботи ТС0.
M0.0 TMOD.0 Визначення режиму роботи ТС0.

На рис. 5.2 представлено бітову структуру регістру TCON. У табл. 5.2 описано призначення окремих біт керування. Для контролю стану та керування режимами роботи таймерів/лічильників використовуються старші чотири біти цього регістру – TF1, TR1, TF0, TR0. Біти керування молодшої тетради відповідають за налаштування режимів роботи зовнішніх переривань по входам INT0 та INT1.

Всі біти цього регістру доступні як для читання, так і для запису. При включенні мікроконтролера до регістру TCON записується нульове значення.

               
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Рис.5.2

Таблиця 5.2.

Біт Позиція Призначення
TF1 TCON.7 Прапор переповнення таймера ТС1. Встановлюється при переповненні. Скидається при обслуговуванні переривання апаратно.
TR1 TCON.6 Біт запуску/зупинки таймера ТС1. Встановлюється/скидається програмно.
TF0 TCON.5 Прапор переповнення таймера ТС0. Встановлюється при переповненні. Скидається при обслуговуванні переривання апаратно.
TR0 TCON.4 Біт запуску/зупинки таймера ТС0. Встановлюється/скидається програмно.
IE1 TCON.3 Прапор зовнішнього переривання по входу INT1. Встановлюється апаратно відповідним сигналом на вході INT1.Скидається апаратно при обслуговуванні переривання, або програмно.
IT1 TCON.2 Біт управління типом сигнала, що викликає переривання: IT1 = 0 – переривання по низькому рівню сигнала; IT1 = 1 – переривання по зрізу сигнала. Встановлюється/скидається програмно.
IE0 TCON.1 Прапор зовнішнього переривання по входу INT0. Встановлюється апаратно відповідним сигналом на вході INT0.Скидається апаратно при обслуговуванні переривання, або програмно.
IT0 TCON.0 Біт управління типом сигнала, що викликає переривання: IT1 = 0 – переривання по низькому рівню сигнала; IT1 = 1 – переривання по зрізу сигнала. Встановлюється/скидається програмно.

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

· режим 0 - 13-бітний таймер;

· режим 1 - 16-бітний таймер;

· режим 2 - 8-бітний автоперезавантажувальний таймер;

· режим 3 - таймер ТС0, як два роздільних 8-бітних таймера.

У табл. 5.3 приведено відповідність між станом біт керування М0.0, М0.1 (М1.0, М1.1) та режимами роботи таймерів/лічильників.

Таблиця 5.3

Режим М1 М0 Опис режиму роботи
      13-бітний таймер/лічильник
      16-бітний таймер/лічильник
      8-бітний таймер/лічильник з автоперезавантажуванням
      ТС0, як два 8-бітних таймера/лічильник

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: