Микропроцессоры и микроконтроллеры

 
 
 
Г.Мэтьюсоу : «Верность компьютеру означает измену себе... Компьютер нужен, чтобы служить человеку. Не нужно, чтобы человек служил компьютеру»
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципи програмування MSC-51 :: Управління таймер-лічильниками (Т /С)

Управління таймер-лічильниками (Т /С)

Для керування режимами роботи Т /С та організації взаємодії таймерів з системою переривань використовують два РСФ:

rn

- Register режимів - TMOD - від англійського "Timer MODe";

rn

- регістр керування /стану - TCON - від "Timer CONtrol"

rn

Шляхом запису числових кодів в ці регістри таймери Т0 і Т1 можуть бути незалежно налаштовані на різні режими роботи.

rn

Структура регістрів TMOD і TCON і призначення бітів

rn

Кожен з таймерів Т/С0 і Т/С1 може функціонувати у будь-який з чотирьох конфігурацій - конфігураціях 0,1,2,3. Конфігурації 0,1,2 однакові для Т/С0 і T/С1. Конфігурація 3 реалізується в Т/С0 і Т/С1 по-різному. Структура регістра TMOD показана на ріс.14.1, а структура регістра керування роботою таймерів TCON - на ріс.14.2.

rn

Бітовая структура регістра TMOD

rn

Рис. 14.1. Бітів структура регістра TMOD

rn

Регістр TMOD не є бітів-адресуемим. Потрібна завантаження байт коду!

rn

Бітовая структура регістра TCON

rn

Ріс.14.2. Бітів структура регістра TCON

rn

TCON є регістром з побітовой адресацією, а наведені на схемі імена біт представляють собою Зарезервовані символічні імена Асемблер. Скидання та встановлення окремих біт можуть проводитися незалежно, що забезпечує ефективне управління роботою таймерів.

rn

Далі індекс " х " будемо використовувати для узагальненого позначення номеру таймера-лічильника: 0 або 1.

rn

Т а б л и ц а 14.1

rn

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

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Символ

rn
rn

Позиція

rn
rn

Призначення

rn
rn

GATE

rn
rn

TMOD.7 (1)

rn

TMOD.3 (0)

rn
rn

Дозвіл зупинки від переривання.

rn

При GATE = 1 Т /сх запускається і працює, якщо біт TRх = 1 і на вході ІNTх - рівень "1". При виникненні сигналу INTx = 0 Т /сх зупиняється незалежно від значення TRx.

rn

При GATE = 0 Т /сх запускається тільки установкою TRх = 1 і зупиняється при TRx = 0.

rn
rn

С /T

rn
rn

TMOD.6 (1)

rn

TMOD.2 (0)

rn
rn

Вибір режиму - таймер або лічильник.

rn

0 - режим таймера,

rn

1 - режим лічильника імпульсів по входу ТХ.

rn
rn

Продовження на наступній сторінці

rn
rn

М1

rn

М0

rn
rn

TMOD.5 (1)

rn

TMOD.1 (0)

rn

TMOD.4 (1)

rn

TMOD.0 (0)

rn
rn

Завдання конфігурації (0,1,2,3) таймерних регістрів для кожного Т /С окремо

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

М1

rn
rn

M0

rn
rn

Опис режиму роботи

rn
rn

0

rn
rn

0

rn
rn

ТНх-восьміразрядний лічильник з предделітелем частоти на 32, реалізованим на молодшої частини - регістрі TLx

rn
rn

0

rn
rn

1

rn
rn

16-розрядний таймер або лічильник

rn
rn

1

rn
rn

0

rn
rn

TLx працює як восьміразрядний Т /С з автоперезагрузкой. Стартове число підрахунку задається (і міститься) в ТНх.

rn
rn

1

rn
rn

1

rn
rn

TL0 і TH0 - восьміразрядние Т /С, які управляються битами таймерів 0 і 1 відповідно. Таймер 1 - вимикається.

rn
rn
rn

Т а б л и ц а 14.2

rn

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

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Ім'я біти

rn
rn

Позиція

rn
rn

Призначення

rn
rn

TF1

rn
rn

TCON.7

rn
rn

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

rn
rn

TR1

rn
rn

TCON.6

rn
rn

Біт управління запуском таймера 1. Встановлюється і скидається програмно для запуску і зупинки Т/С1 ( "програмний вимикач")

rn
rn

TF0

rn

TR0

rn
rn

TCON.5

rn

TCON.4

rn
rn

Те ж саме, як і для TF1, для таймера Т0

rn

Те ж саме, як і для TR1, для таймера Т0

rn
rn

IE1

rn
rn

TCON.3

rn
rn

Прапор запиту зовнішнього переривання 1. Встановлюється апаратно при виявленні запиту зовнішнього переривання по входу INT1. Скидання залежить від значення біта IT1

rn
rn

IT1

rn
rn

TCON.2

rn
rn

Біт управління типом сигналу переривання 1.

rn

модифікується програмно для задачі правила

rn

сприйняття сигналу INT1:

rn

при IT1 = 1 - за зріз (перехід "1" -> "0"); скидання IE1 виконується апаратно,

rn

при IT1 = 0 - за низького рівня на вході INT1; скидання IE1 може виконуватися програмно

rn
rn

IE0

rn

IT0

rn
rn

TCON.1

rn

TCON.0

rn
rn

Те ж, як і для IE1, по сигналу INT0

rn

Те ж, як і для IT1, по сигналу INT0

rn
rn

Наприклад, потрібно налаштувати таймер-лічильник 1 на запуск лише від біта TR1 в конфігурації 2, а для таймера-лічильника 0 управління запуском може виконуватися від TR0 і сигналу переривання INT0 в конфігурації 1. Таймер-лічильник 1 повинен функціонувати в режимі таймірованія, а таймер-лічильник 0 - у режимі лічильника зовнішніх імпульсів. Код налаштування таймерів формуємо у вигляді:

rn

init_timers equ 00101101B

rn

Настройка таймерів на потрібний режим здійснюється командою

rn

MOV TMOD, # init_timers

rn

Приклади програмного управління таймером:

rn

SETB TR1; запуск таймера 1

rn

CLR TR0; останов таймер 0

rn

Управління запуском від сигналів TRx, INT і GATE ілюструється схемою на мал. 14.3.

rn

Управленіе запуском таймера від сигналів TRx, INT і GATE

rn

Рис. 14.3. Управління запуском таймер від сигналів TRx, INT і GATE.