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

Режим 0

Таймер в режиме 0 аналогичен таймеру 8048. Старшая часть T/C работает как 8-разрядный делитель, младшая часть - как 5-разрядный предделитель (реализует деление на 32).

Таким образом, разрядностьT/C в этом режиме равна 13. При изменении значения со всех единиц на все нули (переполнение таймера), таймер выставляет запрос на прерывание (флаг TFn). Работа таймера разрешена если TRn = 1 и либо TnGATE = 1 либо INTn = 1 (установка TnGATE в 1 позволяет управлять таймером с помощью внешнего сигнала INTn). TRn – управляющий бит в регистре специальных функций TCON. TnGATE – бит регистра TMOD.

13-разрядный регистр состоит из 8 бит THn и младших 5 бит TLn. Старшие 3 бита TLn игнорируются. Установка TRn (флаг запуска) не очищает регистр.

Функционирование в режиме 0 идентично для T/C0 и T/C1.

Режим 1

Режим 1 аналогичен режиму 0, за исключением того, что разрядность T/C равна 16 (используются все биты THn и TLn).

Режим 2

Режим 2 программирует таймер на работу в качестве 8-разрядного счетчика (TLn) с автоматической перезагрузкой. Переполнение TLn устанавливает флаг TFn и загружает в TLn значение, находящееся в THn (значение должно быть задано программно). Значение THn при перезагрузке не изменяется. Функционирование в режиме 2 идентично для T/C0 и T/C1.

Режим 3

Таймер 1 в режиме 3 остановлен. Это соответствует установке TR1 в 0.

Таймер 0 в режиме 3 образует 2 независимых 8-битных счетчика. Для управленияTL0 используются биты, относящиеся к таймеру 0: T0C/T, T0GATE, TR0, INT0 и TF0. TH0 используется в режиме “таймер” (подсчет машинных циклов) и работает с флагами TR1 и TF1 таймера 1. Таким образом, TH0 управляет прерыванием таймера 1.

Режим 3 предназначен для использования дополнительного 8-разрядного таймера. Использование таймера 0 в режиме 3 позволяет получить 3 таймера/счетчика.

Пока таймер 0 работает в режиме 0, таймер 1 может включаться и выключаться, в зависимости от установки для него режима 3. Таймер 1 может быть также использован последовательным портом в качестве генератора с бодовой частотой, или в любом другом применении, не требующем прерывания.

Режим 6

В этом режиме соответствующий таймер может быть использован в качестве широтно-импульсного модулятора с полным периодом в 256 тактов. Структура таймера в этом режиме напоминает структуру в режиме 2, с некоторыми поправками:

- TFn (n=0 и 1 для таймера 1 и таймера 0 соответственно) устанавливается и

сбрасывается аппаратно;

- Длительность низкого уровня за полный период задается в THn, и должна

иметь значение от 1 до 254;

- Длительность высокого уровня за полный период составляет всегда 256 – THn;

- Загрузка в THn значения 00h приведет к появлению на выводе Tx высокого

уровня, загрузка в THn значения FFh приведет к появлению на выводе Tx

низкого уровня.

При этом прерывание может быть разрешено по фронту TFn, и флаг TFn можно сбросить программно также как и в любом другом режиме.

Переключение выхода при переполнении таймера

Таймеры 0 и 1 могут быть запрограммированы на автоматическое переключение выходов порта всякий раз, при переполнении таймера. ВыводыT0 и T1, используемые для подсчета внешних сигналов (в качестве входов) и для ШИМ’а (в качестве выходов), также используются для переключения выходов таймера. Эту функцию можно разрешить с помощью битов ENT0 и ENT1 регистра AUXR1, соответственно для таймера 0 и таймера 1. Выходы порта устанавливаются в единицы перед первым переполнением таймера, если данный режим включен. Для правильного функционирования в этом режиме, бит C/T должен быть сброшен, для тактирования таймера сигналами PCLK.

Таблица 4 описывает формат регистра TCON, управляющего работой T/C.

Таблица 4. Регистр управления (TCON, Timer/Counter Control register)

Бит

Обозначение

Назначение

TCON.7

TF1

Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера/счетчика. Сбрасывается аппаратно после обработки прерывания, или программно (за исключением режима 6, где сброс – только аппаратный).

TCON.6

TR1

Бит управления запуском таймера 1. Устанавливается/сбрасывается программно для включения/выключения таймера/счетчика 1.

TCON.5

TF0

Флаг переполнения таймера 0. Устанавливается аппаратно при переполнении таймера/счетчика. Сбрасывается аппаратно после обработки прерывания, или программно (за исключением режима 6, где сброс – только аппаратный).

TCON.4

TR0

Бит управления запуском таймера 0. Устанавливается/сбрасывается программно для включения/выключения таймера/счетчика 0.

TCON.3

IE1

Флаг прерывания 1 по фронту. Устанавливается аппаратно при обнаружении фронта прерывания 1. Сбрасывается аппаратно после обработки прерывания или программно.

TCON.2

IT1

Бит управления типом прерывания 1. Устанавливается/сбрасывается программно для задания чувствительности прерывания по спаду или по низкому уровню.

TCON.1

IE0

Флаг прерывания 0 по фронту. Устанавливается аппаратно при обнаружении фронта прерывания 0. Сбрасывается аппаратно после обработки прерывания или программно.

TCON.0

IT0

Бит управления типом прерывания 0. Устанавливается/сбрасывается программно для задания чувствительности прерывания по спаду или по низкому уровню.

Приложение

Рисунок 1. Таймер/счетчик 0 или 1 в режиме 0 (13-разрядный счетчик)

Рисунок 2. Таймер/счетчик 0 или 1 в режиме 1 (16-разрядный счетчик)

Рисунок 3. Таймер/счетчик 0 или 1 в режиме 2 (автоперезагружаемый 8-разрядный

счетчик)

Рисунок 4. Таймер/счетчик 0 в режиме 3 (2 8-разрядных счетчика)

Рисунок 5. Таймер/счетчик 0 или 1 в режиме 6 (широтно-импульсный модулятор)

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