Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМТ (на редактировании).doc
Скачиваний:
31
Добавлен:
17.05.2015
Размер:
3.86 Mб
Скачать

Содержание отчета

В отчете необходимо привести постановку задачи, блок-схему алгоритма и текст программы на языке Ассемблер с исправлениями, возникшими на этапе отладки.

Контрольные вопросы

1. Сколько выборок в секунду может производить АЦП PIC16?

2. Какие регистры управляют работой АЦП?

3. В каких случаях при работе с АЦП используются прерывания? В каких случаях лучше синхронно ожидать окончания преобразования?

Лабораторная работа 7 Изучение работы модуля захвата/сравнения/шим микроконтроллеровPic-micro

Цель работы: изучение работы и программирование модуля CCP (захват/сравнение/ШИМ) микроконтроллера PIC16F873A.

Микроконтроллер PIC16F873A имеет два модуля CCP1 и CCP2, осуществляющие 16-разрядный захват содержимого таймера TMR1, 16-разрядное сравнение содержимого этого таймера с заданным числом, либо 10-разрядную широтную модуляцию импульсов, вырабатываемых таймером TMR2.

В схеме лабораторного макета к выходу широтно-импульсного модулятора CCP1 подключен стрелочный микроамперметр, показывающий постоянную составляющую ШИМ сигнала.

Управление режимами работы модулей CCP осуществляется с помощью регистров CCP1CON и CCP2CON, соответственно. Значения конкретных значений разрядов этих регистров приведены на рис 7.1.

Рис. 7.1. Регистр управления модуля CCP

Режим захвата

Структурная схема CCP в режиме захвата приведена на рис. 7.2. Она состоит из входа CCP1, предварительного делителя на 1, 4 или 16, детектора переднего, либо заднего фронта входного импульса, старшего (CCP1H) и младшего (CCP1L) регистров модуля CCP. Кроме того в схеме используются регистры TMR1H и TMR1L таймера TMR1. При этом таймер TMR1 должен быть настроен на синхронный режим работы, если он используется в качестве счетчика внешних импульсов (см. рис. 5.3).

Рис. 7.2. Структурная схема модуля CCP в режиме захвата

Событием захвата в данной схеме может является: задний фронт импульса на входе ССР1, передний фронт импульса на входе ССР1, каждый четвертый передний фронт импульса на входе ССР1 или каждый шестнадцатый передний фронт импульса на входе ССР1. Выбор события, при котором происходит захват, осуществляется битами ССРхМ0...ССРхМ3 регистра CCPxCON.

Работает схема следующим образом. При возникновении события захвата информация из 16-разрядного регистра-счетчика TMR1 копируется одновременно в регистры CCPR1H и CCPR1L, при этом таймер TMR1 может продолжать свою работу. Таким образом исключается искажение информации, возникающее при последовательном считывании информации из регистров TMR1H и TMR1L. После этого в регистре PIR1 взводится флаг CCP1IF и вызывается прерывание, если оно разрешено.

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

Структурная схема CCP в режиме сравнения приведена на рис. 7.3. Она состоит из старшего (CCP1H) и младшего (CCP1L) регистров модуля CCP, схемы сравнения, логической схемы управления триггером, RS триггера и вывода ССР1, а также регистров TMR1H и TMR1L таймера TMR1. При этом таймер TMR1 должен быть настроен на синхронный режим работы, если он используется в качестве счетчика внешних импульсов (см. рис. 5.3), а соответствующий разряд параллельного порта С – на вывод информации.

Рис. 7.3. Структурная схема модуля CCP в режиме сравнения

В момент совпадения значения записанного в регистры CCPR1H и CCPR1L с числом счетных импульсов, накопленным в регистре TMR1, схема сравнения взводит флаг прерывания CCP1IF в регистре PIR1. В зависимости от настройки режима работы разрядами ССР1М0...ССР1М3 регистра CCP1CON логическая схема воздействует на RS триггер, опрокидывая его в «0» или в «1», либо не изменяя его состояния (только взводится флаг прерывания). Сигнал с выхода RS триггера поступает на вывод CCP1 микроконтроллера. В режиме микропотребления может взводиться триггер специального события, запускающий аналого-цифровое преобразование.

Режим широтно-импульсной модуляции

Структурная схема модуля CCP в режиме ШИМ приведена на рис. 7.4. Она состоит из регистров длительности импульса CCPR1L (ведущий) и CCPR1H (ведомый), схемы сравнения, RS триггера, вывода микроконтроллера CCP1, а также регистра-счетчика таймера TMR2, регистра периода таймера TMR2 и его схемы сравнения. Временная диаграмма работы модуля CCP в режиме ШИМ приведена на рис 7.5.

Работает схема следующим образом. Таймер TMR2 вырабатывает бесконечную последовательность импульсов, в соответствии с выбранным режимом работы и с периодом, заданным в регистре периода PR2 (настройку таймера TMR2 см. в лабораторной работе 5).

При равенстве числа в счетчике TMR2 и в регистре PR2 схема сравнения сбрасывает счетчик TNR2 и взводит RS триггер. На выходе CCP1 появляется логическая «1» (см. рис. 7.5). В этот же момент времени осуществляется перезапись содержимого ведущего регистра CCPR1L в ведомый регистр CCPR1H. Логическая «1» на выходе CCP1 будет сохраняться до тех пор, пока значение в счетчике TMP2 не сравняется с содержимым регистра CCPR1H. При равенстве числа в счетчике TMR2 числу загруженному в регистр CCPR1H схема сравнения сбрасывает RS триггер, и на выходе CCP1 появляется логический «0».

Рис 7.4. Структурная схема модуля CCP в режиме ШИМ

Рис 7.5. Временная диаграмма работы модуля CCP в режиме ШИМ

Наличие ведущего регистра CCPR1L предотвращает искажение длительности импульса, формируемого в данном периоде работы счетчика TMR2. То есть изменение содержимого ведущего регистра длительности импульса CCPR1L может производиться программно и асинхронно с работой схемы ШИМ, изменение же значения в ведомом регистре CCPR1H всегда будет происходить в начале следующего периода.

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