Ыапыва

  • 05 сент. 2011 г.
  • 1071 Слова
Таймеры / счетчики микроконтроллеров семейства 8051.

В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. В первом случае содержимое соответствующего таймера/счетчика (далее для краткости Т/С) инкрементируется в каждом машинном цикле, т.е. черезкаждые 12 периодов колебаний кварцевого резонатора, во втором оно инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0,T1) вывод микро-ЭВМ 8051. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверхунет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ.
Для управления режимами работы Т/С и для организации их взаимодействия с системой прерываний используются два регистра специальных функций (TMOD и TCON).

Наличие на кристалле таких устройств позволяет строить системы, работающие в реальном времени. Встроенныетаймеры чаще всего используются при измерениях различных временных параметров внешних по отношению к микроконтроллеру сигналов, для отработки временных задержек и для выполнения периодических операций.
Таймеры 8051 совместимых систем являются 16 разрядными и аппаратно реализованы как два 8 разрядных регистра, которые могут программироваться отдельно. Программный доступ к таймерам осуществляетсяпосредством группы регистров специальных функций:
TH0 содержит старший байт таймера 0;
TL0 содержит младший байт таймера 0;
TH1 содержит старший байт таймера 1;
TL1 содержит младший байт таймера 1;
TCON – регистр управления таймерами 0 и 1;
TMOD – регистр режимов работы таймеров.
Как работает таймер? Прежде всего следует отметить, что любой из таймеров может пребывать в одном из двух состояний: либотаймер работает, либо он остановлен. Когда таймер работает, он может выполнять одну из трех функций:
таймера синхронизации;
счетчика событий;
генератора тактовой частоты для последовательного порта.
Рассмотрим более подробно каждый из режимов. При работе в режиме синхронизации 16 разрядное содержимое регистров таймера THx и TLx (x = 0, 1) инкрементируется в каждом машинном цикле (рис.4.1).
Поскольку таймер считает вперед, то наступит момент, когда оба 8 разрядных регистра будут содержать шестнадцатеричные значения FF или 65535. В следующем машинном цикле значения регистров THx и TLx будут обнулены, после чего счет продолжится с 0. В этом случае говорят о переполнении таймера. Ситуация переполнения очень часто используется в программах, тем более что момент переполненияфиксируется путем установки определенных битов (они имеют обозначения TFx, x = 0, 1), называемых битами переполнения, в регистре управления и контроля таймеров (регистр TCON).
На базовом кристалле 8051 имеется два регистра – TMOD и TCON. В отдельных битах регистра TMOD задаются режимы работы таймеров, а старшие 4 бита регистра TCON управляяют работой таймеров 0 и 1.
В зависимости от содержимого битов TxM0 и TxM1 (x= 0, 1) соответствующий таймер может работать в одном из следующих режимов:
13 разрядного таймера (TxM1 = 0, TxM0 = 0);
16 разрядного таймера (TxM1 = 0, TxM0 = 1);
автоперезагрузки – autoreload (TxM1 = 1, TxM0 = 0);
двух автономных 8 разрядных таймеров (TxM1 = 1, TxM0 = 1).
Управление запуском и остановкой таймеров осуществляется посредством установки /сброса соответствующих битов врегистре управления TCON.
Здесь биты TF1 и TF0 устанавливаются микроконтроллером при переполнении таймера 1 или таймера 0 соответственно. Биты TR1 и TR0, будучи установленными в 1, запускают таймер 1 и таймер 0 соответственно. Если бит TRx сбрасывается, то соответствующий ему таймер блокируется.
Оба регистра, TMOD и TCON, могут адресоваться побитово, поэтому,...
tracking img