Предварительный делитель

Встроенный 8-разрядный счетчик может использоваться как предварительный делитель для TMR0 или как дополнительный делитель для сторожевого таймера WDT. Необходимо учесть, что делитель может быть использован либо с TMR0, либо со сторожевым таймером WDT, но не одновременно. Биты PSA и PS0-PS2 в регистре OPTION<3:0> задают режим использования предварительного делителя и его коэффициент деления.

Когда предварительный делитель используется с TMR0, все команды, производящие запись в регистр TMR0 (например, CLRF TMR0, MOVWF TMR0, BSF TMR0,b и т.д.), очищают предварительный делитель. Когда предварительный делитель используется сторожевым таймером WDT, команда CLRWDT очищает предварительный делитель одновременно со сбросом сторожевого таймера WDT. Предварительный делитель не может быть считан или записан программно. По сбросу предварительный делитель содержит все «0».

Назначение предварительного делителя задается программно и может быть изменено в процессе выполнения программы. Например, при переключении предварительного делителя с TMR0 на WDT должна быть выполнена такая последовательность команд:

BCF STATUS,RP0 ; Установка банка 0.
CLRF TMR0 ; Сброс TMR0/
BSF STATUS,RP0 ; Установка банка 1.
CLRWDT   ; Сброс WDT и предварительного делителя.
MOVLW b’xxxx1xxx’ ; Укажите новое значение предваритель-
MOVWF OPTION ; ного делителя.
BCF STATUS,RP0 ; Установка банка 0.

Для переключения предварительного делителя с WDT на TMR0 должна быть выполнена последовательность команд:

CLRWDT   ; Сброс WDT и предварительного делителя.
BSF STATUS,RP0 ; Установка банка 1.
MOVLW b’xxxx0xxx’ ; Указать новое значение предварительного
    ; делителя, источник тактирования и
    ; фронт переключения TMR0.
MOVWF OPTION ;
BCF STATUS,RP0 ; Установка банка 0.

Эта последовательность должна быть выполнена даже в том случае, если сторожевой таймер WDT запрещен.


Специальные функции

Микроконтроллер PIC16F84 имеет набор специальных функций, предназначенных для расширения возможностей системы, минимизации стоимости, исключения навесных компонентов, обеспечения минимального энергопотребления и защиты кода от считывания. В нем реализованы следующие специальные функции:

– выбор типа генератора;

– сброс:

– схема сброса по включению питания (POR);

– таймер сброса (PWRT);

– таймер запуска генератора (OST);

– прерывания;

– сторожевой таймер (WDT);

– режим пониженного энергопотребления (SLEEP);

– защита кода от считывания;

– биты идентификации;

– внутрисхемное программирование.

Микроконтроллер имеет сторожевой таймер WDT, который может быть выключен только через бит конфигурации WDTE. Для повышения надежности он работает от собственного RC-генератора. Сторожевой таймер предназначен для формирования сигнала сброса в случае «зависания» рабочей программы.

Имеются также два таймера, формирующие необходимые задержки при включении питания. Таймер запуска генератора OST сохраняет микроконтроллер в состоянии сброса до стабилизации работы генератора. Таймер сброса PWRT формирует фиксированную задержку 18 мс после включения питания. Присутствие этих таймеров позволяет во многих применениях отказаться от схемы внешнего сброса.

Режим пониженного энергопотребления предназначен для обеспечения очень малого тока потребления в ожидании (менее 1 мкА при выключенном сторожевом таймере). Вход в режим SLEEP осуществляется программно по соответствующей команде. Выход из режима SLEEP возможен по внешнему сигналу сброса или по окончании выдержки сторожевого таймера.

Возможность выбора типа генератора позволяет эффективно использовать микроконтроллер в различных приложениях. Использование RC-генератора позволяет уменьшить стоимость системы, а LP-генератор сокращает энергопотребление.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: