Скачиваний:
90
Добавлен:
21.02.2014
Размер:
4.45 Mб
Скачать

4 Особенности функционирования и применение омэвм в различных режимах

4.1 Использование таймеров-счётчиков

ОМЭВМ содержит 2 программируемых 16-разрядных таймера-счётчика внешних событий Т/С, которые обозначаются: Т/С0 и Т/С1. Таймеры-счётчики могут программироваться на режим таймера или счётчика внешних событий. В режиме таймера содержимое Т/С инкрементируется в каждом машинном цикле, т.е. с интервалом , где- период частоты внешнего кварцевого резонатора. В режиме счётчика внешних событий Т/С инкрементируются под воздействием перехода из логической 1 в логический 0 внешнего сигнала на входах Т0, Т1 (линии Р3.4, Р3.5). Для распознавания перепада из 1 в 0 требуется не менее двух машинных циклов. В фазе S5 P2 первого МЦ на входе Ti (i = 0,1) фиксируется значение логической 1. В фазе S5 P2 следующего МЦ распознаётся нулевое значение сигнала на входе Ti (т.е. обнаруживается перепад из 1 в 0). В очередном МЦ осуществляется инкремент содержимого Т/С.

Следовательно, минимальный период и максимальная частота следования импульсов на входе Ti, идентифицирующих наступление внешних событий, определяются из выражений

(1)

Для того, чтобы при определении перепада из 1 в 0 логические 1 и 0 на входе Ti были зафиксированы, длительности импульсов и пауз должны удовлетворять соотношениям

(2)

Логически каждый Т/С разбит на 2 части по 8 бит, обозначаемые TH0, TL0 для T/C0 и TH1, TL1 для T/C1. Последние можно использовать как 8-разрядные регистры общего назначения, если предварительно остановить Т/С, сбросив биты TR0 = TR1 = 0 в регистре РУСТ (TCON).

Начальные значения в регистры THi, TLi (i = 0,1) при программировании Т/С записываются произвольно.

Управлять счётом (разрешать / запрещать) можно программно и аппаратно.

Регистры THi и TLi программно доступны по записи и чтению.

При переполнении Т/С в процессе счёта устанавливаются флаги TFi (i = 0,1) в регистре РУСТ (TCON), которые могут вызывать прерывание основной программы или опрашиваться программно.

Для программирования и управления работой Т/С предназначены два регистра: TMOD и TCON. Обозначение и назначение их отдельных разрядов приведены в таблицах 10…13.

Таймеры / счётчики могут работать в одном из 4-х режимов работы: 0, 1, 2 и 3.

4.1.1 Режим 0. Установка битов М0 = 0, М1 = 0 в регистре TMOD настраивает оба таймера на работу в режиме 0. Упрощённая структура Т/С в этом режиме приведена на рисунке 8.

Рисунок 8 – Упрощенная структурная схема таймера/счетчика в режиме 0

Каждый Т/С работает как 13-разрядный счётчик. 5 младших разрядов выполняют функцию предварительного делителя входной частоты на . Значащими в этом режиме являются 5 младших разрядов регистров TLi и 8 разрядов THi. Оба Т/С могут работать как таймеры или счётчики внешних событий в зависимости от значений разрядов в регистре TMOD.

Имеются следующие возможности останова (запрета) и включения (разрешения) счёта:

Программно: 1) сброс/установка битов TRi в TCON при GATEi = 0 или INTi = 1 запрещает / разрешает счёт;

2) установка/сброс бита GATEi в регистре TMOD при TRi = 1 и INTi = 0 запрещает / разрешает счёт.

Аппаратно: нулевой / единичный сигнал на входе INTi при GATEi = 1 и TRi = 1 запрещает/разрешает счёт.

В обоих случаях (при программном и аппаратном управлении) при останове в T/Ci сохраняется текущее значение, а после включения счёт продолжается с этого значения, если во время останова T/Ci не перезагружался программно.

Использование T/Ci для измерения длительности единичного импульса tи.вх на входе INTi. Программно устанавливаем TRi = 1, GATEi = 1, C/Ti = 0. Запрещаем прерывание от поступления активного логического нулевого сигнала на входе INTi. Загружаем в T/Ci начальное значение .До поступления импульса на входе INTi присутствует логический 0 и T/Ci стоит (счёт запрещён).

При поступлении единичного импульса счёт разрешён на время, равное длительности этого импульса. После окончания импульса счёт опять аппаратно запрещается и T/Ci останавливается. По разности чисел в таймере после и до счёта и известной частоте переключения T/Ci

определяем tи.вх.

При переполнении T/Ci (переход содержимого регистра T/C из состояния «все единицы» в состояние «все нули») устанавливаются флаги TFi в регистре TCON.

На выходе первого T/C в момент переполнения вырабатывается короткий импульс, который поступает в блок синхронизации последовательного интерфейса.

4.1.2 Режим 1 Установка битов М0 = 1, М1 = 0 в регистре TMOD настраивает оба таймера на работу в режиме 1. Упрощённая структура T/Ci в этом режиме приведена в [1].

Каждый T/Ci работает как 16-разрядный счётчик. В остальном программирование, работа и применение T/Ci аналогичны режиму 0.

4.1.3 Режим 2 Установка битов М0 = 0, М1 = 1 в регистре TMOD определяет работу T/Ci в режиме 2. Упрощённая структура T/Ci в этом режиме приведена на рисунке 9.

Рисунок 9 – Упрощенная структурная схема таймера/счетчика1 в режиме 2

Каждый T/Ci может работать как автоперезагружаемый 8-разрядный таймер/счётчик. В качестве счётчика используется регистр TLi, а THi содержит программно установленное начальное значение, с которого ведётся счёт. При каждом очередном переполнении TLi устанавливается флаг переполнения TFi и автоматически начальное значение перезагружается из THi в TLi.

На выходе первого T/Ci в этом режиме вырабатывается последовательность прямоугольных импульсов, которая поступает в блок последовательного интерфейса и может использоваться для синхронизации работы последнего.

4.1.4 Режим 3 Установка битов М0 = 1, М1 = 1 определяет режим 3. Упрощённая структура T/C0 в этом режиме дана на рисунке 10.

Рисунок 10 – Упрощенная структурная схема таймера/счетчика0 в режиме 3

Режим 3 имеет ряд особенностей. Если в этом режиме запрограммировать оба таймера, то T/C1 останавливается, а T/C0 работает как 2 независимых 8-разрядных регистра TH0 и TL0.

Устройство на основе регистра TL0 может работать в режиме таймера и в режиме счётчика внешних событий. За ним сохраняются все биты управления T/C0, оно реагирует на воздействие по входам T0 и INT0. При переполнении TL0 устанавливается флаг TF0.

Устройство на основе регистра TH0 может работать только в режиме таймера. Для управления оно использует часть битов, управляющих работой T/C1, который в режиме 3 остановлен. TR1 управляет включением / выключением TH0. При переполнении TH0 устанавливается флаг TF1.

Вторая особенность режима 3 состоит в том, что T/C0 может программироваться в режим 3, а T/C1 – в режим 0, 1или 2. Так как бит TR1 управляет работой TH0, то T/C1 в режимах 0, 1, 2 при GATE1 = 0 всегда включён, а при GATE1 = 1 – выключен. Флаг переполнения TF1 используется TH0, поэтому при переполнении в режимах 0 и 1 T/C1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг переполнения. Остальные управляющие биты и сигналы T/C1 используются аналогично режимам 0, 1, 2.

T/C1 аппаратно связан с блоком синхронизации последовательного интерфейса. При работе в режимах 0, 1, 2 при переполнении T/C1 всегда вырабатывает тактовый импульс, поступающий в интерфейс. Поэтому режим 3 для T/C0 удобно применять когда:

1. Требуется работа двух 8-разрядных таймеров (TH0, TL0) и формирование тактовых импульсов для

последовательного интерфейса (T/C1 в режиме 2).

2. Требуется работа 8-разрядного таймера (TH0), 8-разрядного счётчика внешних событий (TL0) и формирование синхроимпульсов для последовательного порта (T/C1 в режиме 2).

Соседние файлы в папке КУРСАЧ