On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Таймеры/счетчики микроконтроллера

 Микроконтроллер  I8051 Включает два независимых счетчика  TС0 и TС1.  Для
  управления режимом их работы служит регистр режима ТМОD
Содержимое счетчиков и регистра TMOD может быть в любой момент программно
изменено( н.п. командой  MOV TL0,data) или прочитано (н.п. командой  MOV 
 А,TL0).Регистр режима  должен быть установлен до  фактического
 использования счетчиков в прикладной  программе и задает  способ
 изменения состояния счетчиков.Разряды   TMOD.6 и TMOD.2 (обозначаемые 
 как С/T 1 и С/T 0)  задают сигналы, которые используются как счетные
 импульсы счетчиков TC1   и TC0  соответственно. Если  бит  С/Tх
установлен в единицу (здесь и далее "х" -номер счетчика), то содержимое
счетчика инкрементируется под воздействием перехода из  единицы в ноль
 внешнего входного сигнала подаваемого на вывод микроконтроллера  Тх. Если
  С/Тх  сброшен, то содержимое счетчика меняется в конце каждого машинного
   цикла, то есть через каждые 12 периодов резонатора.
Изменение состояния счетчика блокируется, если разрад TRx  ( TCON.6 для
ТС1 и TCON.4   для ТС0) сброшен, и разрешается  при TRx=1.  Кроме того 
возможна блокировка счета внешним сигналом, подаваемым на вход INTx.
Блокировка за счет внешнего сигнала разрешена, если разряд GATEx  (TMOD.7 
для ТС1 и TCON.3   для ТС0) установлен в единицу. В этом случае ноль на
входе INTx  блокирует счетчик, а единица - разрешает счет. Если GATEx=0,
вход INTx не влияет на работу счетчика.
За счет установки в регистре ТМОD  битов  0,1, 4 и 5 счетчики таймеров
 могут быть настроены на работу в следующих конфигурациях :
Режим 0 ( для ТС1    ТMOD.5=0, TMOD.4=0 ; для ТС0    ТMOD.1=0, TMOD.0=0)-
Счеткик/таймер разделен на две части TCHx и TCLx. На счетный вход TCLx
 подаются  импульсы подлежащие счету, а вход переноса его пятого разряда
 подается на счтный вход TCHx. Перенос из старшего разряда TCHx
фиксируется в TFx. Таким образом в структуре таймера, настроенного в режим
0  формируется 13 -битовый счетчик.  
Режим 1 ( для ТС1    ТMOD.5=0, TMOD.4=1 ; для ТС0    ТMOD.1=0, TMOD.0=1) -
подобен предыдущему, но перенос в ТСHx при переносе из старшего разряда
 TCLx Таким образом в структуре таймера, настроенного в режим 1 
формируется 16 -битовый счетчик.  
Режим 2 ( для ТС1    ТMOD.5=1, TMOD.4=0 ; для ТС0    ТMOD.1=1, TMOD.0=0)-
режим автозагрузки. ТСНх не изменяется, а ТСLx работает в режиме счетчика,
но про его переполнении в него переписывается код из THx . Этот режим
особенно удобен в случаях необходимости взапуска какой либо программы с
наперед заданной частотой.
Режим 3 ( для ТС1    ТMOD.5=1, TMOD.4=1 ; для ТС0    ТMOD.1=1, TMOD.0=1)- 
для ТС1  означает его блокировку. Для ТС0 установка режима 3 эквивалентно
егo разделению на два независимых восьмиразрадных счетчика, причем работу
ТL0 определяют управляющие биты С/T0, GATE0, TR0,  а TH0 может работать
только в режиме подсчета машиных циклов с возможностью блокировки  битом
TR1.   При переполнении ТL0 устанавливается флаг ТF0,  а п ри переполнении
ТH0 устанавливается флаг ТF1.  Если TC0 установлен в режим 3, то TC1 может
использоваться в любом другом  режиме, но при этом исключается возможность
управления  его счетом через бит TR1  и формирование запросов прерываний
 от TC1.
Флаги переполнения воздействуют на внутренний контроллер прерываний. Если
прерывания от  соответствующего таймера разрешены, и в данный момент нет
обслуживания прерывания более высокого приоритета, вызывается программа
обслуживания прерываний от таймера. Флаг переполнения сбрасывается
аппаратурно в момент перехода на программу обслуживания .



Компьютеры - контроллеры