Скачиваний:
16
Добавлен:
01.05.2014
Размер:
163.33 Кб
Скачать

Лабораторная работа

Таймеры/Счетчики 0 и 1

Теоретические сведения

(For origin see p89lpc932_um.Pdf)

В микроконтроллере LPC932 имеется 2 таймера/счетчика общего назначения, которые совместимы со стандартом 80C51. Это Таймер 0 (T/C0) и Таймер 1 (T/C1). Каждый из них может быть запрограммирован на работу в режиме таймера (подсчет импульсов, поступающих от внутреннего тактового генератора) или счетчика событий (подсчет импульсов, поступающих с внешних устройств через входы T0 и T1). Также добавлена возможность автоматического переключения вывода Tx при переполнении таймера.

В режиме таймера, содержимое регистра инкрементируется в каждом машинном цикле (МЦ).

В режиме счетчика, содержимое регистра инкрементируется под воздействием внешнего сигнала на соответствующих входах T0 и T1, при переходе из 1 в 0 (т.е. по спаду сигнала). В этом режиме сигнал на внешних выводах проверяется один раз за каждый машинный цикл. Если сигнал имеет высокий уровень в течение одного МЦ, а в следующем МЦ – низкий уровень, то счетчик инкрементируется. Новое значение счетчика записывается в регистр в течение цикла следующего за тем, в котором был обнаружен переход. Поскольку для распознавания перехода необходимо 2 машинных цикла (4 такта CPU, Central Processing Unit), то максимальная частота подсчета входных сигналов составляет 1/4 опорной частоты CPU. Ограничений на длительность входных сигналов нет, но изменение значения счетчика гарантировано только в том случае, если сигнал на входе держится как минимум в течение одного машинного цикла.

Управление работой и взаимодействием T/C с подсистемой прерывания осуществляется посредством нескольких регистров специального назначения:

- TMOD и TAMOD, для задания режима работы;

- TCON, для управления работой таймера/счетчика.

Выбор режима “таймер” или “счетчик” осуществляется с помощью битаTnC/T в регистре TMOD. Таймеры 0 и 1 имеют 5 режимов работы (режим 0, 1, 2, 3 и 6), которые выбираются с помощью битов TnM1 и TnM0 в регистре TMOD и бита TnM2 в регистре TAMOD (назначение отдельных разрядов регистров TMOD и TAMOD приведено в таблицах 1 и 2, соответственно).

Таблица 1. Регистр режима (TMOD, Timer/Counter Mode Control register)

Бит

Обозначение

Назначение

TMOD.7

T1GATE

Управление разрешением работы таймера 1. Если бит установлен в 1, то работа таймера/счетчика разрешена, только если выводINT1 имеет высокий уровень и установлен бит TR1. Если бит сброшен, то работа таймера 1 разрешена, если установлен бит TR1.

TMOD.6

T1C/T

Выбор режима “таймер” или “счетчик” для таймера 1. Бит сбрасывается для выбора режима “таймер”. Установка бита приводит к выбору режима “счетчик”.

TMOD.5,4

T1M1, T1M0

Выбор режима работы таймера 1. Эти биты используются вместе с битом T1M2 регистра TAMOD для задания режима работы таймера 1.

TMOD.3

T0GATE

Управление разрешением работы таймера 0. Если бит установлен в 1, то работа таймера/счетчика разрешена, только если выводINT0 имеет высокий уровень и установлен бит TR0. Если бит сброшен, то работа таймера 0 разрешена, если установлен бит TR0.

TMOD.2

T0C/T

Выбор режима “таймер” или “счетчик” для таймера 0. Бит сбрасывается для выбора режима “таймер”. Установка бита приводит к выбору режима “счетчик”.

TMOD.1,0

T0M1, T0M0

Выбор режима работы таймера 0. Эти биты используются вместе с битом T0M2 регистра TAMOD для задания режима работы таймера 0.

Таблица 2. Вспомогательный регистр режима (TAMOD, Timer/Counter Auxiliary

Mode Control register)

Бит

Обозначение

Назначение

TAMOD.7-5

-

Зарезервировано. Эти биты не должны устанавливаться в 1 при программировании микроконтроллера.

TAMOD.4

T1M2

Дополнительный бит выбора режима для таймера 1. Используется вместе с битами T1M1 и T1M0 (регистр TMOD) для задания режима работы таймера 1.

TAMOD.3-1

-

Зарезервировано. Эти биты не должны устанавливаться в 1 при программировании микроконтроллера.

TAMOD.0

T0M2

Дополнительный бит выбора режима для таймера 0. Используется вместе с битами T0M1 и T0M0 (регистр TMOD) для задания режима работы таймера 0.

Назначение режимов 0, 1, 2 и 6 одинаковое для обоих таймеров/счетчиков. Режим 3 различен для T/C0 и T/C1 (пояснение режимов работы таймеров/счетчиков приведено в таблице 3).

Таблица 3. Режимы работы таймера

Биты TnM2 – TnM0

Режим работы таймера

000

Младшая часть таймера TLn функционирует как 5-разрядный предделитель.

001

THn и TLn каскадно соединены. Разрядность таймера/счетчика равна 16.

010

Автоперезагружаемый 8-разрядный таймер/счетчик. При переполнении TLn в него загружается значение, находящееся в THn.

011

Таймер 0 образует 2 независимых 8-разрядных таймера/счетчика. TL0 управляется с помощью битов управления таймера 0. TH0 управляется с помощью битов управления таймера 1. Таймер 1 остановлен.

100

Зарезервировано. Пользователь не должен задавать такой режим.

101

Зарезервировано. Пользователь не должен задавать такой режим.

110

Режим широтно-импульсного модулятора (ШИМ).

111

Зарезервировано. Пользователь не должен задавать такой режим.

Соседние файлы в папке Материалы по микропроцессорам