Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ и ПУ / Метод. указания к лабораторным работам. Часть 2.doc
Скачиваний:
26
Добавлен:
04.03.2016
Размер:
1.01 Mб
Скачать

Практическая работа №5

Тема: Использование АЦП

Цель: Научиться разрабатывать программы для МК, использующие встроенный АЦП, научиться отлаживать программы, использующие АЦП в симулятореVMLab

Теоретические сведения

Для управления работой модуля АЦП в МК ATmega8 используется регистрADCSRA. Для разрешения работы модуля АЦП необходимо установить в 1 7-й бит (ADEN) этого регистра в 1. Для начала одиночного преобразования в 1 нужно установить 6-й бит этого регистра (ADSC). Если для МКATMega8 битADFR(5-й по счету в регистреADCSRA) установлен в 1, то АЦП работает в режиме непрерывного преобразования. Значения битовMUX3..MUX0 регистраADMUXопределяют в соответствии с таблицей, какой из входов входного мультиплексора модуля АЦП (более подробно см.datasheet) будет использоваться.

Первоначальное конфигурирование модуля АЦП в CodeVisionAVRCCompilerможно выполнить с помощью генератора начального кода, который позволяет разрешить обработку прерывания, возникающего по окончании преобразования, выбрать источник опорного напряжения и пр.

Задание 1

Разработать программу для измерения напряжения на резисторе с помощью МК ATMega8. Напряжение изменяется в пределах от напряжения питания контроллера, до нуля.

Программа должна обладать следующей функциональностью:

1) позволять производить измерения как в одиночном, так и в непрерывном режимах, в зависимости, например, от состояния некоторого ключа;

2) позволять производить измерения, как в 10-и битном, так и в 8-и битном режимах;

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

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

Таблица – Варианты выводов

Вариант

1

2

3

4

5

6

7

8

9

10

11

12

Вывод

ADC0

ADC1

ADC2

ADC3

ADC0

ADC1

ADC2

ADC3

ADC0

ADC1

ADC2

ADC3

Задание 2

Проверить работоспособность разработанной программы в симуляторе VMLab. Для этого подключить ползунокS1 ко входу АЦП с помощью строки:

V[inst_name] node VSS SLIDER_x(v_low v_high)

где v_low– минимальное напряжение (установить в ноль)v_high– максимально напряжение (установить в 5В). Например:

V1 PB1 VSS SLIDER_1(0 5)

Произведите измерение напряжения при 5 различных положениях слайдера в двух режимах – восьми- и десятибитном.

В отчет необходимо включить:

- конкретное техническое задание;

- текст программы;

- электрическую схему, реализуемую в проекте VMLab;

- текст проекта VMLab;

- таблицу измеренных значений напряжения;

- выводы.

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

  1. Для чего используется модуль АЦП?

  2. В каком регистре храниться результат преобразования?

  3. Как включается преобразование в одиночном режиме?

  4. Каким образом может быть выровнен результат?

  5. Какие факторы влияют на точность измерения? Как повысить точность измерения?

  6. *Как измерить напряжения, превышающие напряжения питания контроллера?