Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа SDK11.doc
Скачиваний:
96
Добавлен:
01.05.2015
Размер:
1.24 Mб
Скачать

1.1.2. Режимы работы таймеров/счетчиков 0 и1.

Режим 0 (13-битный Таймер/Счетчик) образует 8 битный таймер/счетчик с предварительным делителем на 32 на входе. Регистр таймера конфигурируется как 13 битный регистр. Когда регистр таймера переполняется (переходит из состояния все 1 ко всем 0), то выставляется флаг переполнения таймера TFx, который может использоваться для организации запроса на прерывание. Счет разрешается при TRx=l и либо GATE=0 либо INTx=l. Установка GATE=1 приводит к тому, что работа таймера контролируется внешним входом INTx, что позволяет измерять длительность импульса.

13-битный регистр состоит из всех восьми бит ТНх и младших пяти регистра TLx. Старшие три бита TLx не определены и должны быть игнорированы. Установка бита запуска TRx не очищает регистр.

Рис. 1. Работа таймера в режиме 0.

Работа таймера в этом режиме 1 (16-битный Таймер/Счетчик) аналогична работе в режиме 1, за исключением регистра таймера который теперь конфигурируется как 16-разрядный регистр.

Рис. 2. Работа таймера в режиме 1.

В режиме 2 таймер представляет собой 8-битный регистр с автоматической перезагрузкой. Когда TLx переполняется, не только устанавливается флаг TFx, но в TLx загружается значение ТНх, записанное туда ранее программно. Значение ТНх при перезагрузке сохраняется.

Рис. 3. Работа таймера в режиме 2.

Работа в режиме 3 (два независимых 8-битных Таймера/Счетчика) имеет отличия для таймеров 0 и 1. Таймер 1 в этом режиме просто останавливает свой счет. Тот же эффект даст установка TR1=0. Таймер 0 в режиме 3 устанавливает TL0 и ТН0 как два разных счетчика. Счетчик на базе TL0 использует биты управления таймера 0: С/Т, GATE, TR0, INT0, TF0. ТН0 зафиксирован в режиме таймера (считающего машинные циклы), и использует для управления биты TR1 и TF1 таймера 1. Таким образом, прерывание от переполнения регистра ТН0, будет обозначено флагом TF1.

Рис. 4. Работа таймера в режиме 3.

Режим 3 предназначен для приложений, которым нужен дополнительный 8-битный таймер или счетчик. Когда таймер 0 работает в режиме 3, таймер 1 может быть выключен установкой его в режим 3, или может быть оставлен включенным для использования в качестве генератора тактовых импульсов для последовательного интерфейса, или для любого приложения, которому не требуется прерывание именно от таймера 1.

1.1.3. Таймер 2

Регистры данных Таймера 2 представлены регистрами:

ТН2 и TL2 (SFR адреса CDh и CCh) – старший и младший бит данных. RCAP2H и RCAP2L (SFR адреса CBh и СAh).

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

Работа Таймера 2 в 16 битный режиме с автоперезагрузкой зависит от значения бита EXEN2. Если EXEN2=0, Таймер 2 при переполнении устанавливает флаг TF2, и перезагружает свои регистры TL2 и ТН2 числами из регистров RCAP2L и RCAP2H, загруженными туда ранее программно. Если EXEN2=1, Таймер 2, кроме выше перечисленных функций, дополнительно производит автоперезагрузку и в случае появления отрицательного перехода 1→0 на внешнем входе Т2ЕХ.

Таблица 3. Регистр управления Таймером 2 T2CON (SFR адрес – С8h)

Номер-бита

Обозна-чение

Описание

7

TF2

Флаг переполнения Таймера 2

Устанавливается аппаратно в случае переполнения Таймера 2. TF2 не устанавливается когда RCLK, либо TCLK равны 1. Сбрасывается программно.

6

EXF2

Внешний флаг Таймера 2.

Устанавливается аппаратно когда происходит захват или перегрузка по отрицательному переходу на входе Т2ЕХ, при этом EXEN2=1.

5

RCLK

Выбор таймера для тактирования приема по последова-тельному каналу.

1 – разрешает тактирование приема данных по последова-тельному каналу в режимах 1 и 3 Таймером 2.

0 – разрешает тактирование приема данных по последова-тельному каналу в режимах 1 и 3 Таймером 1.

4

TCLK

Выбор таймера для тактирования передачи по последова-тельному каналу.

1 – разрешает тактирование передачи данных по последова-тельному каналу в режимах 1 и 3 Таймером 2.

0 – разрешает тактирование передачи данных по последова-тельному каналу в режимах 1 и 3 Таймером 1.

3

EXEN2

Флаг разрешения внешнего управления.

Устанавливается пользователем для разрешения захвата или перегрузки по отрицательному переходу на входе Т2ЕХ, если таймер 2 не используется для тактирования последовательного порта. Сбрасывается пользователем, для игнорирования сигналов на Т2ЕХ.

2

TR2

Бит запуска Таймера 2.

Устанавливается программно для запуска таймера 2.

Программно сбрасывается для остановки таймера 2.

1

CNT2

Выбор режима таймер/счетчик.

0 – работа в режиме «таймер»

1 – работа в режиме «сетчик»

0

САР2

Выбор режима захват/перезагрузка/

0 – режим перезагрузки по переполнению или по отрицательному перепаду на входе Т2ЕХ, если EXEN2=1. При тактировании последовательного порта бит игнорируется.

1 – режим захвата по отрицательному переходу на входе Т2ЕХ, если EXEN2=1

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

RCLK или TCLK

САР2

TR2

Режим

0

0

1

X

0

1

X

X

1

1

1

0

16 бит с Автоперезагрузкой

16 бит с Захватом

Тактирование последовательного канала

Выключен

Рис. 5. Работа таймера 2 в режиме с автоперезагрузкой.

Рис. 6. Работа таймера 2 в режиме захвата.

Работа Таймера 2 в 16 битныйом режиме захвата также зависит от бита EXEN2 регистра TCON. Если EXEN2=0, то Таймер 2 работает как 16-битный таймер/счетчик, при переполнении которого устанавливается флаг TF2, который можно использовать для организации запроса на прерывание. Если EXEN2=1, то Таймер 2, кроме перечисленных функций, дополнительно в случае появления отрицательного перепада на внешнем входе Т2ЕХ, произведет захват содержимого регистров TL2 и ТН2 в регистры RACP2L и RACP2H, соответственно. Кроме этого установится флаг EXF2, который может сгенерировать прерывание.

В этом режиме тактирования последовательного порта Таймер 2 используется для тактирования передачи последовательного порта, и флаг прерывания TF2 не устанавливается. Однако флаг EXF2 устанавливается, и может вызывать прерывания. В этом режиме его можно использовать в качестве еще одного источника внешних прерываний.