Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧПУ.Контроллеры электроавтоматики.doc
Скачиваний:
21
Добавлен:
17.09.2019
Размер:
6.86 Mб
Скачать

2.2. Модуль сср.

Функциональный модуль ССР может работать в одном из трех режимов: захват, сравнение и широтно-импульсный модулятор (ШИМ). В микроконтроллере PIC16F873 имеется два модуля: ССР1 и ССР2. Рассмотрим работу модуля ССР1.

2.2.1. Режим «захват»: Структурная схема модуля в этом режиме показана на рис. 11

Принцип работы модуля заключается в следующем: Предварительно запускается в работу таймер TMR1 в режиме синхронного счетчика. При поступлении на вход RC2 сигнала от какого либо внешнего источника содержимое счетчика таймера (регистры TMR1H – старший байт, TMR1L – младший байт) переписывается в регистр модуля ССР1 (регистры CCPR1H– старший байт, CCPR1L– младший байт). Одновременно формируется флаг прерывания –CCP1IF от модуля CCP1 (см. раздел «регистры состояния …» - разряд 2 регистра PIR1). По этой команде содержимое регистра модуля должно быть прочитано, а флаг прерывания программно сброшен. Если содержимое регистра не будет прочитано, то оно будет потеряно при приходе следующего входного импульса. Содержимое счетчика таймера TMR1 не изменяется (таймер продолжает счет)

Перед началом работы модуля ССР1 его необходимо настроить, для чего выполняются следующие операции:

- настройка и пуск таймера TMR1 (см. раздел «Таймеры» ),

- настроить вывод RC2 микроконтроллера на вход (записать 1 в разряд 2 регистра TRISC – адрес 87h),

- запрограммировать регистр CCP1CON в соответствии с выбранным режимом (см. таблицу 18

:

Таблица 18.

Номера разрядов

3

2

1

0

Обозначение сигналов

CCO1M3

CCP1M2

CCP1M1

CCP1M0

С помощью разрядов 3 – 0 регистра CCP1CON (адрес 17h, 1Dh) задаются следующие режимы работы модуля:

0000 – модуль выключен (сброшен),

0100 – модуль включен, захват по каждому заднему фронту входного сигнала,

0101 – модуль включен, захват по каждому переднему фронту входного сигнала,

0110 – модуль включен, захват по переднему фронту каждого 4-го входного сигнала,

0111 – модуль включен, захват по переднему фронту каждого 16-го входного сигнала

Примечание. Перечисленные подрежимы захвата могут быть изменены в процессе работы, однако во избежание первого ложного срабатывания следует перед перепрограммированием модуля его выключить, чтобы сбросить счетчик модуля.

2.2.2. Режим сравнения.

В этом режиме производится сравнение содержимого регистра модуля с содержимым счетчика таймера TMR1. При совпадении этих данных формируется сигнал прерывания –CCP1IF ( устанавливается «1» во втором разряде регистра PIR1) и в зависимости от выбранного подрежима устанавливается соответствующий сигнал на выводе RC2. Структурная схема модуля ССР1 в этом режиме показана на рис. 12.

Подрежимы работы модуля устанавливаются разрядами <3:0> регистра CCP1CON:

1000 – сравнение, вывод RC2 = 1, устанавливается флаг прерывания CCP1IF,

1001 – сравнение, вывод RC2 = 0, устанавливается флаг прерывания CCP1IF,

1010 – сравнение, вывод RC2 не меняется, устанавливается флаг CCP1IF,

1011 – сравнение, устанавливается триггер специальных функций, устанавливается флаг прерывания CCP1IF, сбрасывается счетчик таймера TMR1.

Настройка модуля в этом режиме производится в следующей последовательности:

- настройка вывода RC2 на выход («0» во 2-ой разряд регистра TRISC),

-настройка таймера TMR1,

- выбор подрежима установкой разрядов 3-0 регистра CCP1CON.

Момент совпадения содержимого счетчиков модуля и таймера TMR1 фиксируется установкой флага прерываний, который после отработки подпрограммы прерывания должен быть сброшен программным способом.