Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование и отладка программных модулей для ОМК INTEL 8051 (К1816 ВЕ51).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.2 Mб
Скачать

4.2. Счетчик/Таймер

Счетчик-таймер (СТ) предназначен для обработки внешних и внутренних событий, формирования программно-управляемых временных задержек, выполнения времязадающих функций.

В состав ОМК входят два 16 разрядных суммирующих СТ. Счетчик состоит из регистров счетчика TLi (младший байт), THi (старший байт), логики управления входными сигналами и триггера переполнения TFi. Бит TFi устанавливается при переходе счетчика из состояния «все 1» в состояние «все 0». Бит TFi располагается в битовом пространстве и доступен по прямому адресу. Обращение к TLi, THi производится раздельно по прямым адресам.

Управление работой счетчика выполняется с помощью регистра режима работы TMOD и регистра управления-статуса TCON.

Рисунок 14- Формат регистра режима счетчика / таймера TMOD

На рисунке 14:

GATE1, GATE0 – управление способом запуска СТ;

, – определяют работу СТ в качестве счетчика ( =1) или таймера ( =0);

М1, М0 ‑ задают режимы работы (см. таблицу).

Способ запуска СТ может быть аппаратный или программный. Если GATEi =1, то реализуется аппаратный запуск, при котором разрешение счета подается на вход INTi порта Р3. Предварительно должен быть установлен бит запуска счетчика TRi в регистре TCON. (i – номер счетчика-таймера). При программном запуске GATEi =0, начало счета задается установкой бита TRi =1.

В режиме таймера СТ работает от внутреннего генератора с частотой OSC/12.

При работе в режиме счетчика содержимое СТ инкрементируется под воздействием перехода из «1» в «0» внешнего сигнала, подаваемого на соответствующие входы Т0, Т1 порта Р3. Инкремент выполняется после анализа состояния «0» и «1» на входе Тi, поэтому накладываются определенные ограничения на параметры преобразуемого сигнала: уровень «0» и «1» должен продолжаться не менее OSC/12. Максимальная преобразуемая внешняя частота ‑ OSC/24.

Счетчик/таймер может быть настроен на один из 4 режимов. Режимы 0,1,2, одинаковы для обоих счетчиков и в этих режимах они полностью независимы. Работа СТ0 и СТ1 в режиме 3 различна. При этом установка СТ0 в режим 3 влияет на режимы работы СТ1.

Режим 0: режим 13-ти разрядного регистра, состоящего из TНi и 5 младших разрядов TLi.

Режим 1: режим 16-ти разрядного регистра, состоящего из THi и TLi.

Режим 2: В этом режиме СТ представляет собой устройство на основе 8-разрядного регистра TLi. При каждом переполнении TLi кроме установки флага TFi происходит автоматическая загрузка содержимого THi в TLi.

Требуемый коэффициент деления должен записываться одновременно в THi и TLi.

Принцип работы СТ в режимах 0,1,2 поясняет рисунок 15.

Р исунок 15.- Принцип работы счетчика/таймера в режимах «0, 1, 2»:

Р ежим 3: В этом режиме счетчик 0 функционирует как 2 независимых счетчика, а счетчик 1 заблокирован и просто сохраняет свой код (выполняет функции регистра). При этом можно настроить счетчик 1 на другие режимы.

Рисунок 16.-Принцип работы СТ в режиме 3

Режим 3 используется, если необходимо увеличить число действующих счетчиков до трех. При работе в этом режиме СТ0 разделяется на два 8-ми разрядных счетчика, сформированных на базе регистров ТН0, ТL0. Счетчик на базе ТН0 может работать только в режиме таймера, управляется битом ТR1 и формирует сигнал переполнения ТF1. Счетчик на базе TL0 особенностей в управлении не имеет (рисунок 16).

Установка СТ0 в режим 3 лишает СТ1 бита включения TR1. Поэтому СТ1 в режимах 0, 1, 2 при GATE=0 всегда включен и при переполнении в режимах 0 и 1 СТ1 обнуляется, а в режиме 2 перезагружается, не устанавливая флага, если СТ0 находится в режиме 3.

СТ1 аппаратно связан с блоком синхронизации последовательного порта. Поэтому в режимах 0, 1, 2 при переполнении СТ1 всегда вырабатывает импульс синхронизации последовательного порта.

Регистр управления и состояния TCON предназначен для формирования сигналов запуска СТ и хранения флагов их переполнения, задания типа воспринимаемого запроса и хранения флагов внешних прерываний.

T F1

TR1

TF0

TR0

I E1

IT1

IE0

I T0

7 6 5 4 3 2 1 0

Управление СTi Управление прерываниями

Рисунок 17.-Формат регистра TCON

На рисунке 17:

TFi - флаг переполнения СТ. Устанавливается аппаратно при переполнении счетчика/таймера, сбрасывается программно. При обслуживании прерывания сброс выполняется аппаратно.

TRi - биты управления СТ. Устанавливается/сбрасывается программно для пуска/останова;

ITi - бит управления видом сигнала запроса прерывания. При IТi=1 прoграммируется прерывание по срезу импульса запроса, при ITi=0 – по низкому уровню (i – номер входа запроса внешнего прерывания);

IEi - флаг запроса прерывания. Устанавливаются аппаратно от внешних запросов на входах INTi. Cбрасываются аппаратно, если прерывание вызвано срезом импульса запроса, или программно. Возможно программное управление этим флагом.

Для настройки счетчика/таймера на требуемый режим необходимо:

  1. задать требуемый коэффициент пересчета К в регистры ТНi, ТLi. Так как счетчик суммирующий, то К= 65535 – С +1, где С требуемый коэффициент деления;

  2. задать режим работы в слове TMOD;

  3. при программном вводе-выводе замаскировать соответствующие прерывания от счетчика, а при использовании прерывания, их разрешить;

  4. при программном запуске бит разрешения ТRi в слове TCON устанавливается в момент начала работы СТ, а при аппаратном – на стадии инициализации.

На базе СТ можно организовать преобразователи частоты, временного интервала, периода в код, генераторы и формирователи сигналов. Однако, необходимо учитывать, что TFi аппаратно недоступен, поэтому выходные сигналы следует формировать на выходах параллельных портов.