Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_микроконтроллеры.doc
Скачиваний:
103
Добавлен:
13.04.2015
Размер:
1.46 Mб
Скачать

6 Изучение принципов работы со встроенным в микроконтроллер аналого-цифровым преобразователем на примере измерения температуры с помощью аналогового термодатчика.

Цель работы: изучить принципы функционирования встроенного в микроконтроллер AVR АТMEGA128 АЦП и методику измерения температуры с помощью аналогового термодатчика.

6.1 Указания по организации самостоятельной работы

Перед работой необходимо проработать теоретический материал по литературе [1, 4] и конспект лекций, ознакомиться принципами функционирования и возможностями программирования встроенного в микроконтроллер AVR АТMEGA 128 АЦП, изучить методику измерения температуры с помощью аналогового термодатчика.

В состав микроконтроллера AVR АТMEGA 128 входит 10-разрядный аналого-цифровой преобразователь (АЦП), реализующий принцип последовательного приближения (см. рисунок 6.1). На входе модуля АЦП имеется 8-ми канальный аналоговый мультиплексор, управляющий переключением данных, поступающих с восьми каналов с несимметричными входами. В качестве источника опорного напряжения может выступать напряжение от внутреннего источника UREF (2.56 В), напряжение питания микроконтроллера UCC, или внешнего источника. Наибольшая точность преобразования достигается при тактовой частоте модуля АЦП порядка 50  200 кГц. Модуль АЦП может функционировать в режимах одиночного и непрерывного преобразований. Стандартное преобразование аналогового значения в цифровое с помощью встроенного АЦП выполняется за 13 тактов, одиночное – за 25 тактов. Результат преобразования для каналов с несимметричным входом определяется из выражения:

,

где – значение входного напряжения,– величина опорного напряжения.

Рисунок 6.1 – Обобщенная структурная схема модуля АЦП

в микроконтроллере AVR АТMEGA 128

Для работы с модулем АЦП используются следующие регистры:

ADCW (ADCH, ADCL) – 16-разрядный регистр данных, расположенный по адресу 4h/24h. В регистре используется 10 разрядов, выровненных по левой или правой границе.

ADCSRA – регистр управления/статуса.

ADMUX – регистр управления мультиплексором входных каналов.

Форматы и описания отдельных битов регистров ADCSRA и ADMUX приводится на рисунках 6.2, 6.3 и в таблицах 6.1, 6.2 соответственно.

№ бита

7

6

5

4

3

2

1

0

06h (26h)

ADEN

ADSC

ADFR

ADIF

ADIE

ADPS2

ADPS1

ADPS0

Рисунок 6.2 – Регистр состояния ADCSRA

Таблица 6.1 – Описание значений управляющих битов регистра ADCSRA

Разряд

Обозначение

Описание

7

ADEN

Разрешение работы АЦП: 0 – выкл.; 1- вкл.

6

ADSC

Запуск преобразования (1 – начать преобразование)

5

ADFR

Выбор режима работы АЦП:

1 – режим непрерывного преобразования,

0 – режим одиночного преобразования

4

ADIF

Флаг прерывания ( 1 – произошло прерывание от АЦП). Сбрасывается аппаратно при переходе на процедуру обработки прерывания.

3

ADIE

Обмен по прерыванию (1–разрешение прерывания)

2 – 0

ADPS2- ADPS0

Управление предделителем тактовой частоты АЦП

ADPS2

ADPS1

ADPS0

k

0

0

0

2

0

0

1

2

0

1

0

4

0

1

1

8

1

0

0

16

1

0

1

32

1

1

0

64

1

1

1

128

№ бита

7

6

5

4

3

2

1

0

07h (27h)

REFS1

REFS0

ADLAR

MUX4

MUX3

MUX2

MUX1

MUX0

Рисунок 6.3 – Регистр состояния ADMUX

Таблица 6.2 – Описание значений управляющих битов регистра ADMUX.

Разряд

Обозначение

Описание

7, 6

REFS1, REFS0

Выбор источника опорного напряжения (ИОН)

REFS1

REFS0

ИОН

0

0

Внешний, AREF

0

1

Напряжение питания UCC

1

0

Зарезервировано

1

1

Внутренний (2,56 В), UREF

5

ADLAR

Выравнивание 10-битового результата по границе слова: 0 по правой, 1 по левой.

4,3,2,1,0

MUX4 – MUX0

Управление мультиплексором входных каналов: при использовании несимметричных входов код на линиях MUX2–MUX0 соответствует номеру канала.

Согласно формату регистров ADCSRA и ADMUX для работы с модулем АЦП в режиме одиночного преобразования необходимо при каждом чтении данных из регистра ADCW выполнить следующий инициализирующий код на языке С:

ADMUX=0b11000000; используется внутренний источник опорного

напряжения UREF (2.56 В), оцифровывание данных,

поступающих по 0-му входному каналу;

ADCSRA=0b11000000; запуск модуля АЦП в режиме одиночного преобразования.

Если используется режим, в котором модуль АЦП генерирует прерывание ADCINT(cм. таблицу 4.1) по окончанию преобразования, то необходимо обязательно описать процедуру обработки данного прерывания.