| Главная страница | | Архитектура микроЭВМ | | Принципы обмена данными | | Лабораторные работы | | Примеры систем | | Программно-логическая модель | | Справочная информация |
 
Однокристальная микроЭВМ МК51 Блок таймеров/счетчиков

     МикроЭВМ семейства МК51 имеют два таймера/счетчика (Т/С), предназначеных для подсчета внешних событий, для получения программно управляемых временных задержек и выполнения времязадающих функций.
     В состав блока таймеров/счетчиков входят следующие основные элементы:
         - два 16-разрядных регистра Т/С0 и Т/С1,
         - 8-разрядный регистр режимов ТMOD,
         - 8-разрядный регистр управления TCON,
         - схема инкремента и различные схемы управления.
Основные
функциональные узлы

Система команд
Организация памяти
Порты ввода-вывода
Система прерываний
Блок таймеров/счетчиков
Последовательный
порт

   РЕГИСТРЫ Т/С0, Т/С1

    Регистры Т/С0 и Т/С1 выполняют функцию хранения текущего состояния счетчика. Каждый из них состоит из четырех 8-разрядных регистров - ТН0, TL0 и TH1, TL1. Регистры ТН0 и TH1 содержат старшие, а регистры ТL0 и TL1 - младшие разряды значения Т/С. Каждый из этих регистров программно доступен как по записи - для занесения начальной величины счёта, так и по чтению - для контроля их содержимого. В процессе счета содержимое регистров Т/С инкрементируется. Переполнение счётчиков (т.е. их переход из состояния FFFFh в состояние 0000h) может служить признаком окончания счёта и инициализировать прерывание от таймеров.

   РЕГИСТР РЕЖИМОВ ТMOD

    Регистр TMOD предназначен для установки режимов работы Т/С0 и T/C1 и определения источников их тактирования.

Мнемоника
бита
Позиция
в регистре
Функция
GATE1 TMOD.7 Разрешение управления Т/С1 от внешнего входа INT1.
"0" - управление запрещено, "1" - управление разрешено.
C/T1 TMOD.6 Определение работы T/C1:
"0" - работа в режиме таймера, "1" - работа в режиме счетчика внешних событий.
M1.1,
M0.1
TMOD.5,
TMOD.4
Определение номера режима работы T/C1
(00 - режим 0, ... , 11 - режим 3).
GATE0 TMOD.3 Разрешение управления Т/С0 от внешнего входа INT0.
"0" - управление запрещено, "1" - управление разрешено.
C/T0 TMOD.2 Определение работы T/C0:
"0" - работа в режиме таймера, "1" - работа в режиме счетчика внешних событий.
M1.1,
M0.1
TMOD.1,
TMOD.0
Определение номера режима работы T/C0
(00 - режим 0, ... , 11 - режим 3).

   РЕГИСТР УПРАВЛЕНИЯ TCON

    Регистр управления TCON служит для хранения управляющего слова таймеров/счетчиков T/C0 и T/C1.

Мнемоника бита Позиция в регистре Функция
TF1 7 Бит переполнения T/C1
TR1 6 Бит включения T/C1
TF0 7 Бит переполнения T/C0
TR0 6 Бит включения T/C0
IE1 3 Флаг запроса внешнего прерывания по входу INT1
IT1 2 Бит вида прерывания по входу INT1
IE0 1 Флаг запроса внешнего прерывания по входу INT0
IT0 0 Бит вида прерывания по входу INT1

    Биты (флаги) переполнения TF0 и TF1 устанавливаются по переходу счетчиков из состояния FFh в 00h. При разрешении прерывания от таймера установка бита вызывает прерывание. Биты сбрасывается аппаратно только при передаче управления обработчику соответствующего прерывания. Биты могут быть установлены и сброшены программно, они также доступны по чтению.
    Биты включения TR0 и TR1 устанавливаются и сбрасываются программно. Доступны по чтению. Установка бита в "1" приводит к включению в работу соответствующего таймера/счетчика, а сброс этого бита в "0" - останавливает его работу. Функции и особенности применения остальных бит этого регистра описаны в разделе, посвященном работе системы прерываний микроЭВМ.

Система
прерываний

   ОСТАЛЬНЫЕ СХЕМЫ

    Схема инкремента
    Предназначена для увеличения в каждом машинном цикле (с частотой тактирования Fosc/12) содержимого тех Т/С, для которых установлен режим таймера и счёт разрешён, либо тех Т/С, для которых установлен режим счётчика и на входе Т0 или Т1 (вывод P3.4 для T/C0 и вывод P3.5 для T/C1) имеется счётный импульс (переход из "1" в "0").
    При максимальной допустимой частоте внешней синхронизации Fosc=12МГц таймер/счетчик в режиме таймера увеличивает свое содержимое через 1 мкс.
    Счётные входы аппаратно проверяются в фазе S5P2 каждого машинного цикла. Инкрементированное значение заносится в T/C в фазе S3P1 каждого машинного цикла, следующего за тем, в котором был обнаружен счётный импульс. Таким образом, при работе в режиме счетчика содержимое увеличивается каждый раз при переключении из "1" в "0" сигнала на счетном входе и минимальный период счёта будет равен двум машинным циклам, т.е. максимальная частота счёта равна Fosc/24 (т.е. частота изменения сигналов на счетном входе должна быть, как минимум, в 2 раза ниже внешней частоты синхронизации микроконтроллера.
    Схема фиксации сигналов INT0, INT1, T0, T1
    Представляет собой 4 триггера, запоминающие состояние сигналов INT0, INT1, Т0 и Т1 в фазе S5P2 каждого машинного цикла.
    Схема управления флагами
    Генерирует флаги переполнения таймеров/счетчиков и флаги запросов внешних прерываний.
    Логика управления
    Синхронизирует работу регистров таймеров/счетчиков с работой центрального процессора микроЭВМ.

   РЕЖИМЫ РАБОТЫ ТАЙМЕРОВ/СЧЕТЧИКОВ

    Таймеры/счетчики могут функционировать в одном из четырех режимов, определяемых разрядами M1.x и M0.x регистра TMOD. Режимы 0,1,2 полностью идентичны для обоих таймеров/счетчиков. Установка T/C0 в режим 3 влияет на режим работы T/C1.

    Режим 0
    Таймеры/счетчики представляют собой устройства на базе 13-разрядных регистров, образованных соответствующими регистрами ТН и пятью младшими разрядами регистров TL (3 старших разряда TLO и TL1 являются незначащими). Регистры TL0 (TL1) выполняют функцию делителя на 32. Счёт начинается при установке бита TR регистра TCON в состояние "1". Установка в "1" бита GATE регистра TMOD разрешает управление T/C извне. Установка в "0" бита TR регистра TCON запрещает счет независимо от состояния других битов.
    Влияние управляющих сигналов TR1, GATE1, C/T1 и сигнала внешнего управления INT1 на работу таймера/счетчика на примере T/C1 представлено в таблице и на рисунке.

Режим 0

TR1 GATE1 INT1 C/T1 Выполняемая функция
1 X X X Останов
1 0 X 0 Счет в режиме таймера
1 0 X 1 Счет в режиме счетчика внешних событий
1 1 1 X Останов
1 1 1 0 Счет в режиме таймера
1 1 1 1 Счет в режиме счетчика внешних событий

    Режим 1
    Аналогичен режиму 0, за исключением того, что в этом режиме таймер/счетчик представляет собой устройство на основе не 13-разрядного, а 16-разрядного регистра, состоящего из регистров TH и TL.
Режим 1

    Режим 2
    Таймер/счетчик представляет собой устройство на основе 8-разрядного регистра TL0 (в Т/С0) или TL1 (в Т/С1). При каждом переполнении этих регистров в процессе счета, кроме установки в регистре TCON флагов TF0 или TF1, происходит автоматическая перезагрузка этих регистров значением из регистров TН0 или ТН1. Назначение битов управления в данном режиме такое же, как и в режимах 0 и 1.
Режим 2

    Режим 3
    В этом режиме работает только Т/С0. Счётчик Т/С1 в этом режиме заблокирован и сохраняет содержимое своих регистров TL1 и ТH1 (как при TR1=0). Таймер/счетчик T/C0 в режиме 3 представляет собой два независимых устройства на основе 8-разрядных регистров TH0 и TL0. Устройство на основе регистра TL0 может работать как в режиме таймера, так и в режиме счетчика внешних сигналов. За ним сохраняются все биты управления, оно реагирует на воздействия по входам T0 и INT0. При переполнении TL0 устанавливается флаг TF0.
    Устройство на основе регистра TH0 может работать только в режиме таймера. Оно использует некоторые управляющие биты и флаги Т/С1; так, например, при переполнении ТН0 происходит установка ТF1, а для включения используется бит TR1. Остальные биты таймера/счётчика Т/С1 с работой ТН0 не связаны.
    Установка T/C0 в режим 3 лишает T/C1 бита включения TR1. Поэтому, при нахождении Т/С0 режиме 3, T/C1 в режимах 0,1 или 2 при GATE1=0 всегда включен и при переполнении в режимах 0 и 1 T/C1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг. Управление от входов INT1, T1, биты управления C/T1, GATE1 для T/C1 не зависят от режима T/C0.
    Т/C1 аппаратно связан с блоком синхронизации последовательного интерфейса (ПИ). При работе в режимах 0,1 или 2 при переполнении T/C1 всегда вырабатывается импульс тактирования ПИ. Поэтому режим 3 T/C0 удобно применять тогда, когда требуется работа ПИ и двух таймеров/счетчиков или ПИ, таймера и счетчика. Когда T/C0 переведен в режим 3, T/C1 можно выключить, переведя его также в режим 3, использовать с последовательным портом для выработки импульсов тактирования или в любых других приложениях, не требующих прерывания.

Последовательный
порт


Режим 3

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2000 г.