logo
Ответы_МПС

Модуль таймера tmr0 мк pic16f84

TMR0 - таймер/счетчик, имеет следующие особенности:

• 8-разрядный таймер/счетчик;

• возможность чтения и записи текущего значения счетчика;

• 8-разрядный программируемый предделитель;

• внутренний или внешний источник тактового сигнала;

• выбор активного фронта внешнего тактового сигнала

• прерывания при переполнении (переход от FFh к 00h).

Если предварительный делитель включен перед WDT, то коэффициент деления тактового сигнала

для TMR0 равен 1:1.

Блок схема модуля TMR0 показана на рисунке 11-1.

Управляющий регистр

Регистр OPTION_REG доступен для чтения и записи, содержит биты управления:

• Предварительным делителем TMR0/WDT;

• Активным фронтом внешнего прерывания RB0/INT;

• Подтягивающими резисторами на входах PORTB.

Если предварительный делитель включен перед WDT, то коэффициент деления тактового сигнала

для TMR0 равен 1:1.

Работа таймера TMR0

Когда бит T0CS сброшен в ‘0’ (OPTION_REG<5>), TMR0 работает от внутреннего тактового сигнала. Приращение счетчика TMR0 происходит в каждом машинном цикле (если предделитель отключен). После записи в TMR0 приращение счетчика запрещено два следующих цикла (см. рисунки 11-2 и 11-3). Пользователь должен скорректировать эту задержку перед записью нового значения в TMR0.

Если бит T0CS установлен в ‘1’ (OPTION_REG<5>), TMR0 работает от внешнего источника тактового сигнала на входе T0CKI. Активный фронт внешнего тактового сигнала выбирается битом T0SE (OPTION_REG<4>) (T0SE=0 - активным является передний фронт сигнала Предделитель может быть включен перед WDT или TMR0, в зависимости от состояния бита PSA в регистре OPTION_REG<3>. Если бит PSA сброшен в ‘0’, то предделитель включен перед TMR0. Нельзя прочитать или записатьновое значение в предделитель. Когда предделитель включен перед TMR0, можно выбрать его коэффициент деления1:2, 1:4,…,1:256. Любая запись в регистр TMR0 вызовет запрещение приращения таймера TMR0 в течение двух следующих машинных циклов (2TCY). Т.е. после записи нового значения в TMR0 таймер не инкрементируется пока не определено, что 3-я команда не циклически повторяющаяся (см. рисунок 11-2). Если предделитель включен перед TMR0, то запись в регистр TMR0 вызовет немедленное изменение TMR0 и сброс предделителя. Приращение TMR0 и предделителя запрещено в течение 2-х машинных циклов (2TCY), после записи в TMR0.