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

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

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

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

  1. Выполнением какого фрагмента программы-примера занят микроконтроллер большую часть времени?

  2. Для чего нужен предделитель у таймеров-счетчиков?

  3. Что такое «вектор прерывания»?

  4. Каковы особенности работы сторожевого таймера?

Лабораторная работа 6 Изучение работы аналого-цифрового преобразователя микроконтроллеровPic-micro

Цель работы: изучение работы и программирование аналого-цифрового преобразователя микроконтроллера PIC16F873A.

Микроконтроллер PIC16F873A имеет пятиканальный 10-разрядный аналого-цифровой преобразователь (АЦП), работающий по методу последовательного приближения.

Структурная схема аналого-цифрового преобразователя приведена на рис. 6.1. Она состоит из входного мультиплексора, мультиплексора опорного сигнала и схемы АЦП.

Рис. 6.1. Структурная схема АЦП

Измеряемое напряжение подается на аналоговые входы AN0...AN4, совмещенные с выводами параллельного порта А. В каждом цикле аналого-цифрового преобразования измеряется напряжение поступающее только на один из входов. Выбор конкретного входа осуществляется входным мультиплексором, на управляющие входы которого подаются сигналы битов CHS0...CHS2 регистра ADCON0. Сигнал с выхода мультиплексора VAIN поступает на вход АЦП. В качестве положительного опорного напряжения VREF+ может использоваться напряжение положительного полюса источника питания VDD либо напряжение на входе AN3, а в качестве отрицательного VREF- – напряжение отрицательного полюса источника питания VSS либо напряжение на входе AN2. Выбор источника опорного напряжения осуществляется битами PCFG0...PCFG3 регистра ADCON1.

Аналого-цифровое преобразование начинается после установки в «1» бита GO/-DONE регистра ADCON0.

Период преобразования одного цифрового разряда TAD составляет не более 1,6 мкс, а суммарное время преобразования десяти разрядов составляет 12·TAD = 19,2 мкс. Кроме того между циклами аналого-цифрового преобразования необходимо обеспечить паузу длительностью не менее 2·TAD = 3,2 мкс, необходимую для заряда конденсатора в устройстве выборки-хранения. В качестве источника тактового сигнала может выступать тактовый генератор микроконтроллера либо внутренний RC генератор модуля АЦП. Выбор типа задающего генератора и коэффициента деления частоты следования тактовых импульсов определяется битами ADCS0 и ADCS1 регистра ADCON0.

По окончании аналого-цифрового преобразования бит GO/-DONE автоматически сбрасывается в «0», а бит ADIF в регистре PIR1 взводится в «1». Установка бита ADIF вызывает прерывание, если оно разрешено установкой в «1» битов GIE и PEIE в регистре INTCON, а так же бита ADIE в регистре PIE1.

Рис. 6.2. Выравнивание результата аналого-цифрового преобразования

10-разрядный цифровой код с выхода АЦП записывается в 16-разрядный регистр результата, отображенный в ОЗУ микроконтроллера на регистры специального назначения ADRESL и ADRESH. При этом, в зависимости от состояния бита ADFM регистра ADCON1, восемь старших разрядов результата могут сохраняться в регистре ADRESH, а оставшиеся два в регистре ADRESL (левое выравнивание), либо наоборот – восемь младших разрядов сохраняются в регистре ADRESL, а два старших в регистре ADRESH (правое выравнивание). См. рис. 6.2.

Назначение конкретных разрядов регистров ADCON0 и ADCON1 приведены на рис. 6.3. и 6.4. соответственно.

Рис. 6.3. Регистр управления АЦП ADCON0

Рекомендуемая последовательность действий при работе с АЦП следующая:

Настроить модуль АЦП:

  1. Настроить выводы порта A как входы измеряемого либо опорного напряжения (ADCON1);

  2. Выбрать входной канал АЦП (ADCON0);

  3. Выбрать источник тактовых импульсов для АЦП (ADCON0);

  4. Включить модуль АЦП (ADCON0);

Настроить прерывание от АЦП, если это необходимо:

  1. Сбросить бит ADIF регистра PIR1 в «0»;

  2. Установить бит ADIE регистра PIE1 в «1»;

  3. Установить бит PEIE регистра INTCON в «1»;

  4. Установить бит GIE регистра INTCON в «1»;

Выдержать паузу длительностью 2·TAD ≥ 3,2 мкс;

Начать аналого-цифровое преобразование установкой в «1» бита GO/-DONE регистра ADCON0;

Ожидать окончания аналого-цифрового преобразования:

  1. Ожидать пока бит GO/-DONE регистра ADCON0 не будет сброшен в «0»;

  2. Либо ожидать прерывание по окончанию преобразования;

Считать результат аналого-цифрового преобразования из регистров ADRESL и ADRESH;

Сбросить бит ADIF регистра PIR1 в «0», если это необходимо.

Рис. 6.4. Регистр управления АЦП ADCON1