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


SorokaInfo лучший портал свежих новостей для любознательных.





 

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

Микроконтроллер  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 эквивалентно
егл разделение на два независимых восьмиразрадных счетчика, причем работу
ТL0 определяют управляющие биты С/T0, GATE0, TR0,  а TH0 может работать
только в режиме подсчета машиных циклов с возможностью блокировки  битом
TR1.   При переполнении ТL0 устанавливается флаг ТF0,  а п ри переполнении
ТH0 устанавливается флаг ТF1.  Если TC0 установлен в режим 3, то TC1 
 может использоваться в любом другом  режиме, но при этом исключается
 иозможность управления  его счетом через бит TR1  и формирование запросов
 прерываний от TC1.
Флаги переполнения воздействуют на внутренний контроллер прерываний. Если
прерывания от  соответствующего таймера разрешены, и в данный момент нет
обслуживания прерывания более высокого приоритета, вызывается прграмма
обслеживания прерываний от таймера. Флаг переполнения сбрасывается
аппаратурно в момент перехода на программу обслуживания .
Содержание       Вперёд