3538
Изучение аналого-цифрового преобразователя
Лабораторная работа
Коммуникация, связь, радиоэлектроника и цифровые приборы
Изучение аналого-цифрового преобразователя Изучить функционирование встроенного аналого-цифрового преобразователя (АЦП) микроконтроллера АТmega8535, получить практические навыки программирования микроконтроллера для обработки аналоговых сигналов. По...
Русский
2012-11-03
417.5 KB
44 чел.
Изучение аналого-цифрового преобразователя
Изучить функционирование встроенного аналого-цифрового преобразователя (АЦП) микроконтроллера АТmega8535, получить практические навыки программирования микроконтроллера для обработки аналоговых сигналов.
Микроконтроллер АТmega8535 имеет АЦП (Analog to Digital Converter) со следующими характеристиками:
разрешение 10 разрядов;
точность ±2 LSB;
интегральная нелинейность 0.5 LSB;
время преобразования 70...280 мкс;
8 мультиплексируемых каналов входа;
режимы циклического и однократного преобразования;
прерывание по завершению ADC преобразования;
устройство подавления шумов Sleep-режима.
AЦП подсоединен к 8-канальному аналоговому мультиплексору, позволяющему использовать любой вывод порта А в качестве входа AЦП. AЦП содержит усилитель выборки/хранения, удерживающий напряжение входа AЦП во время преобразования на неизменном уровне (см. рис.2.3).
Рис. 2.3. Блок-схема аналого-цифрового преобразователя
Для питания АЦП используются два отдельных вывода: AVCC и AGND. Вывод AGND должен быть подсоединен к GND, а напряжение AVCC не должно отличаться от напряжения VCC более чем на ±0,3 В.
Внешнее напряжение сравнения подается на вывод AREF и должно быть в диапазоне от AGND до AVCC.
Аналого-цифровой преобразователь может работать в двух режимах: режиме однократного преобразования и режиме циклического преобразования. В режиме однократного преобразования каждое преобразование инициируется пользователем. В режиме циклического преобразования AЦП осуществляет выборку и обновление содержимого регистра данных AЦП непрерывно. Выбор режима производится битом ADFR регистра ADCSR.
Работа AЦП разрешается установкой в состояние 1 бита ADEN в регистре ADCSR. Первому преобразованию, начинающемуся после разрешения AЦП, предшествует пустое инициализирующее преобразование. На пользователе это отражается лишь тем, что первое преобразование будет занимать 26 тактовых циклов, вместо обычных 14. Преобразование начинается с установки в состояние 1 бита начала преобразования ADSC. Этот бит находится в состоянии 1 в течение всего цикла преобразования и сбрасывается, по завершении преобразования, аппаратно. Если в процессе выполнения преобразования выполняется смена канала данных, то AЦП вначале закончит текущее преобразование и лишь потом выполнит переход к другому каналу.
АЦП формирует 10-разрядный результат двух регистров ADSH и ADCL. Для чтения правильного результата из этих регистров существует следующий механизм. При чтении результата первым должен читаться регистр ADCL. После этого доступ АЦП к регистрам данных блокируется. Это обозначает, что если следующее преобразование завершено между чтением ADCL и ADSH, его результат будет потерян. После чтения регистра ADSH доступ АЦП к регистрам данных восстанавливается.
Ацп имеет свой флаг и вектор прерывания. Флаг запрос ADIF устанавливается при завершении прерываний.
АЦП включает делитель частоты, который формирует для него тактовый сигнал из синхросигнала процессора. АЦП работает с тактовой частотой в диапазоне от 50 до 250 кГц.
Биты ADPSO ADPS2 регистра управления ADCSR используются для формирования тактовой частоты АЦП из сигнала XTAL. Делитель частоты работает, когда установлен бит ADEN.
При запуске АЦП установкой бита ADSC преобразование начинается по заднему фронту импульса синхросигнала АЦП. Один такт синхросигнала требуется на выборку-сохранение аналогового сигнала, после чего 13 циклов затрачивается на собственно преобразование и запись результата в регистры ADCL, ADCH.
Регистр выбора мультиплексора ADC - ADMUX
(ADC Multiplexer Select Register)
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$07 ($27) |
REFS1 |
REFS0 |
ADLAR |
MUX4 |
MUX3 |
MUX2 |
MUX1 |
MUX0 |
ADMUX |
Чтение/Запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Биты 7, 6 REFS1:REFS0: Reference Selection Bits Выбор источника опорного напряжения
REFS1 |
REFS0 |
Источник опорного напряжения |
0 |
0 |
Внешний ИОН, подключенный к выводу AREF, внутренний ИОН отключен |
0 |
1 |
Напряжение питания AVcc |
1 |
0 |
Зарезервировано |
1 |
1 |
Внутренний ИОН напряжением 2.56 В, подключенный к выходу AREF |
Бит 5 ADLAR: ADC Left Adjust Result Выравнивание результата преобразования влево
Биты 4.. 0 MUX4.. MUX0: Analog Channel Select Bits 2-0 - Биты выбора аналогового канала
Состояние данных битов определяет какой из восьми аналоговых каналов (0 - 7) будет подключен к АЦП.
Регистр управления и состояния ADC - ADCSR
(ADC Control and Status Register)
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$06 ($26) |
ADEN |
ADSC |
ADATE |
ADIF |
ADIE |
ADPS2 |
ADPS1 |
ADPS0 |
ADCSR |
Чтение/Запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Бит 7 - ADEN: ADC Enable - Разрешение ADC
Установка данного бита в состояние 1 разрешает работу АЦП. Очистка бита запрещает работу АЦП. Запрещение АЦП в процессе преобразования прекращает преобразование.
Бит 6 - ADSC: ADC Start Conversion - Запуск преобразования АЦП
В режиме однократного преобразования для запуска каждого цикла преобразования необходимо устанавливать бит ADSC в состояние 1. В циклическом режиме бит ADSC устанавливается в состояние 1 только при запуске первого цикла преобразования. Каждый раз после первой установки бита ADSC, выполненной после разрешения ADC или одновременно с разрешением ADC, будет выполняться пустое преобразование, предшествующее активируемому преобразованию. Это пустое преобразование активирует АЦП.
ADSC будет сохранять состояние 1 в течение всего цикла преобразования и сбрасывается по завершении преобразования. При выполнении пустого преобразования, предшествующего активируемому, бит ADSC остается установленным до завершения активируемого преобразования. Запись 0 в этот бит эффекта не оказывает.
Бит 5 ADATE: ADC Auto Trigger Enable Разрешение преобразования по событию «Захват»
В микроконтроллере Atmega8535 запуск АЦП возможен не только по команде пользователя, но и по прерыванию от некоторых периферийных устройств, имеющихся в составе микроконтроллера. Для выбора режима работы используется разряд ADATE регистра ADCSR и разряды ADTS2..0 регистра SFIOR.
Если разряд ADATE сброшен в «0», АЦП работает в режиме одиночного преобразования. Если же разряд ADATE установлен в «1», функционирование АЦП определяется содержимым разрядов ADTS2..0 согласно Табл. 2.17б
Таблица 2.17б. Источник сигнала для запуска преобразования Atmega8535
ADTS2 |
ADTS1 |
ADTS0 |
Источник стартового сигнала |
0 |
0 |
0 |
Режим непрерывного преобразования |
0 |
0 |
1 |
Прерывание от аналогового компаратора |
0 |
1 |
0 |
Внешнее прерывание INT0 |
0 |
1 |
1 |
Прерывание по событию «Совпадение» таймера/счетчика Т0 |
1 |
0 |
0 |
Прерывание по переполнению таймера/счетчика Т0 |
1 |
0 |
1 |
Прерывание по событию «Совпадение В» таймера/счетчика Т1 |
1 |
1 |
0 |
Прерывание по переполнению таймера/счетчика Т1 |
1 |
1 |
1 |
Прерывание по событию «Захват» таймера/счетчика Т1 |
Бит 4-ADIF: ADC Interrupt Flag - Флаг прерывания АЦП
Данный бит устанавливается в состояние 1 по завершению преобразования и обновления регистров данных. Прерывание по завершению преобразования АЦП выполняется, если в состояние 1 установлены, бит ADIE и I-бит регистра SREG. Бит ADIF сбрасывается аппаратно при выполнении подпрограммы обработки соответствующего вектора прерывания. Кроме того, бит ADIF может быть очищен записью во флаг логической 1. Этого необходимо остерегаться при чтении-модификации-записи ADCSR, поскольку может быть запрещено отложенное прерывание. Это применимо и в случаях использования команд SBI и CBI.
Бит 3 ADIE: ADC Interrupt Enable - Разрешение прерывания от блока АЦП
При установленных в состояние 1 бите ADIE и I-бите регистра SREG активируется прерывание по завершению преобразования АЦП.
Биты 2.. 0 - ADPS2.. ADPS0: ADC Prescaler Select Bits - Выбор коэффициента предварительного деления
Данные биты определяют коэффициент деления частоты XTAL для получения необходимой тактовой частоты АЦП.
Таблица 2.17. Выбор коэффициента предварительного деления
ADPS2 |
ADPS1 |
ADPS0 |
Коэффициент деления |
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 |
Регистры данных ADC - ADCL и ADCH - (ADC Data Register)
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
$05 ($25) |
― |
― |
― |
― |
― |
― |
ADC9 |
ADC8 |
ADCH |
$04 ($24) |
ADC7 |
ADC6 |
ADC5 |
ADC4 |
ADC3 |
ADC2 |
ADC1 |
ADC0 |
ADCL |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
Чтение/Запись |
R |
R |
R |
R |
R |
R |
R |
R |
|
R |
R |
R |
R |
R |
R |
R |
R |
||
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
По завершении цикла преобразования результат преобразования размещается в этих двух регистрах. Важно, чтобы в циклическом режиме считывались оба регистра и чтобы регистр ADCL считывался перед считыванием ADCH.
В блоке управления лабораторного комплекса канал РАО порта А используется для ввода сигнала для АЦП микроконтроллера. Вводимое напряжение снимается с потенциометрического резистора R3 (рис. 1.3). Движок этого резистор выведен на лицевую панель. Максимальное напряжение, снимаемое с потенциометрического резистора, составляет 5В.
Ниже представлена программа, обеспечивающая вывод на семисегментный индикатор HG2 (рис.1.3) цифр от 0 до 5 в зависимости от напряжения на входе АЦП.
Цифра 0 выводится, если напряжение на входе АЦП находится в пределах 0...0,5В,
1 в пределах 0,5...1,5В,
2 в пределах 1,5...2,5В,
3 в пределах 2,5...3,5В,
4 в пределах 3,5...4,5В,
5 в пределах 4,5...5,0В.
; Пример использования АЦП микроконтроллером АТmega8535
.include «m8535def.inc» ; включить файл описания для АТmega8535
.def code = r20 ; регистр куда помещается преобразованное число
;
.ORG$0 ; обработка прерывания сброса
rjmp Reset
.ORG$0e ; вектор АЦП
rjmp inADC
;
Reset:
ldi r16,$02 ; Определение стека вершин по адресу
out SPH, r16 ; $ 025F
ldi r16,$5f
out SPL, r16
cbi DDRA, 0 ; PA0 на ввод
sbi PORTA, 0 ; Подключить вывод РА0
ldi r16, $0ff ; Определить все выводы портов D и С
out DDRD, r16 ; на выход
out DDRC, r16
sbi PORTB, 3 ; Активизировать семисегментный индикатор HG2
; (открыть транзистор VT2)
ldi r16, $00 ; выбор нулевого канал АЦП (РА0)
out ADMUX, r16
ldi r16, $0e8 ; инициализация АЦП: разрешение и запуск циклического
out ADCSR,r16 ; преобразования без деления тактовой частоты
sei ; установка общего флага прерываний
m1:
rjmp m1 ; рабочий цикл программы, ничего не делаем
;
inADC: ; Подпрограмма обслуживающая прерывания
; по запросу АЦП
in r16, ADCL ; Считать младший байт регистра данных АЦП
in code, ADCH ; Считать старший байт регистра данных АЦП
lsr r16 ; Исключить два младших разряда
lsr r16 ; преобразованного сигнала
swap code ; Поменять местами биты 3...0 с
lsl code ; битами 7...4 и сдвинуть влево на
lsl code ; два разряда
andi code, $0c0 ; Выделить биты 7 и 6 code
or code, r16 ;Организовать в code восьмиразрядное преобразованное число
rcall kod ; Вызвать подпрограмму зажигания цифры
reti
;
; Подпрограмма зажигания цифры
kod:
ldi r22, 53 ; В r22 дискрета напряжения на РА0 для цифр на
; семисегментном индикаторе
ldi r21, 38 ; В r21 максимальное значение кода АЦП при котором на
; индикаторе горит 0 порог нуля
cp code, r21 ; Если код АЦП не превышает порог нуля, то зажечь 0
brlo k0
add r21, r22 ; Установить порог единицы
cp code, r21 ; Если код АЦП не превышает порог единицы, то зажечь 1
brlo k1
add r21, r22 ; Установить порог двойки
cp code, r21 ; Если код АЦП не превышает порог двойки, то зажечь 2
brlo k2
add r21, r22 ; Установить порог тройки
cp code, r21 ; Если код АЦП не превышает порог тройки, то зажечь 3
brlo k3
add r21, r22 ; Установить порог четверки
cp code, r21 ; Если код АЦП не превышает порог четверки, то зажечь 4
brlo k4
ldi r23, $6d ; Если код АЦП выше порога четверки, то зажечь 5
ret ; Выход из подпрограммы
;
k0:
ldi r23, $3f ; Зажечь 0
out PORTC, r23
ret ; Возврат
k1:
ldi r23, $06 ; Зажечь 1
out PORTC, r23
ret ; Возврат
k2:
ldi r23, $5b ; Зажечь 2
out PORTC, r23
ret ; Возврат
k3:
ldi r23, $4f ; Зажечь 3
out PORTC, r23
ret ; Возврат
k4:
ldi r23, $66 ; Зажечь 4
out PORTC, r23
ret ; Возврат
Варианты индивидуальных заданий
6. Организовать бегущий огонь на семисегментном индикаторе HG2. При увеличении уровня напряжения на входе АЦП, скорость бега на семисегментном индикаторе увеличивается, при уменьшении скорость бега уменьшается.
7. В двух регистрах общего назначения записаны числа, определяющие заданные уровни порогов преобразуемого напряжения. Если напряжение на входе АЦП меньше (ниже) 1В (диапазон 0…1), то горит 1 светодиод,
1…2 горят 2 светодиода,
2…3(и выше) горят 3 светодиода.
8. Организовать бегущий огонь на светодиодах. При увеличении уровня напряжения на входе АЦП, скорость бега на светодиодах увеличивается. При уменьшении скорость бега уменьшается.
А также другие работы, которые могут Вас заинтересовать | |||
37946. | Изучение закона сохранения момента импульса с помощью гироскопа и определение скорости его прецессии | 695 KB | |
12 Лабораторная работа № 15 Изучение закона сохранения момента импульса с помощью гироскопа и определение скорости его прецессии 1. Цель работы Изучение гироскопического эффекта и закона сохранения момента импульса с помощью гироскопа. Определение скорости прецессии гироскопа измерение угловой скорости вращения маховика гироскопа и момента инерции гироскопа. Справедливость этого закона можно проверить с помощью гироскопа. | |||
37947. | Определение коэффициента Пуассона воздуха методом адиабати | 445 KB | |
1 Определение коэффициента Пуассона воздуха методом адиабатического расширения: Методические указания к лабораторной работе № 16 по курсу общей физики Уфимск. В работе определяется коэффициент Пуассона воздуха методом адиабатического расширения основанным на измерении давления газа в сосуде после последовательно происходящих процессов его адиабатического расширения и изохорного нагревания.8] Список литературы ЛАБОРАТОРНАЯ РАБОТА № 16 ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТА ПУАССОНА ВОЗДУХА МЕТОДОМ АДИАБАТИЧЕСКОГО РАСШИРЕНИЯ 1. Цель работы Определение... | |||
37948. | ЭКСПЕРИМЕНТАЛЬНАЯ ПРОВЕРКА УРАВНЕНИЯ СОСТОЯНИЯ И ЗАКОНОВ ИДЕАЛЬНОГО ГАЗА | 146.5 KB | |
1 Экспериментальная проверка уравнения состояния и законов идеального газа: Методические указания к лабораторной работе № 17 по курсу общей физики Уфимск. В работе изучается взаимосвязь параметров задающих состояние идеального газа и закономерности их изменения. Контрольные вопросы [7] Список литературы ЛАБОРАТОРНАЯ РАБОТА № 17 ЭКСПЕРИМЕНТАЛЬНАЯ ПРОВЕРКА УРАВНЕНИЯ СОСТОЯНИЯ И ЗАКОНОВ ИДЕАЛЬНОГО ГАЗА 1. | |||
37949. | Определение коэффициента Пуассона воздуха акустическим методом | 128 KB | |
Обратимся к молярным теплоемкостям идеального газа при постоянном объеме и при постоянном давлении. Внутренняя энергия идеального газа это энергия теплового движения молекул и атомов в молекулах. Следовательно средняя энергия теплового движения молекулы идеального газа равна 2. Внутренняя энергия молей газа равна 2. | |||
37950. | Определение коэффициента вязкости воздуха и кинематических характеристик теплового движения его молекул | 888 KB | |
1 Определение коэффициента вязкости воздуха и кинематических характеристик теплового движения его молекул: Методические указания к лабораторной работе №23 по курсу общей физики Уфимск. В работе на основе исследования одного из явления переноса внутреннего трения определяютcя коэффициент вязкости воздуха а также средняя длина свободного пробега и эффективный диаметр его молекул. Осипов ЛАБОРАТОРНАЯ РАБОТА № 23 ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТА ВЯЗКОСТИ ВОЗДУХА И КИНЕМАТИЧЕСКИХ ХАРАКТЕРИСТИК ТЕПЛОВОГО ДВИЖЕНИЯ ЕГО МОЛЕКУЛ 1.2 Определение средней длины... | |||
37951. | ИЗУЧЕНИЕ ГАЗОВЫХ ЗАКОНОВ И ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТА ПУАССОНА ГАЗА МЕТОДОМ КЛЕМАНА – ДЕЗОРМА | 157.5 KB | |
Теплоемкость и коэффициент Пуассона газа.14 лабораторная работа № 24 ИЗУЧЕНИЕ ГАЗОВЫХ ЗАКОНОВ И ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТА ПУАССОНА ГАЗА МЕТОДОМ КЛЕМАНА ДЕЗОРМА Цель работы Изучение различных процессов изменения состояния газа и определение коэффициента Пуассона воздуха. Теплоемкость и коэффициент Пуассона газа Удельной теплоемкостью вещества называется величина равная количеству теплоты которую надо передать единице массы этого вещества для увеличения его температуры на 1К а молярной теплоемкостью количество теплоты которое... | |||
37952. | ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТОВ ТЕПЛОПРОВОДНОСТИ МЕТАЛЛОВ | 2.23 MB | |
13 ЛАБОРАТОРНАЯ РАБОТА № 25 ОПРЕДЕЛЕНИЕ КОЭФФИЦИЕНТОВ ТЕПЛОПРОВОДНОСТИ МЕТАЛЛОВ Цель работы Изучение явления теплопроводности и определение коэффициентов теплопроводности чистых металлов и сплавов. Если в неравномерно нагретых жидкостях и газах тепловая энергия передается преимущественно за счет конвекции при которой происходит перемещение вещества между областями с различной температурой то в твердых телах тепло переносится только за счет теплопроводности. Распространение тепловой энергии путем теплопроводности обусловлено хаотическим... | |||
37953. | ИЗУЧЕНИЕ ВЗИМОСВЯЗИ ПАРМЕТРОВ СОСТОЯНИЯ ИДЕАЛЬНОГО ГАЗА И ГАЗОВЫХ ЗАКОНОВ | 150.5 KB | |
Экспериментальная проверка уравнения состояния идеального газа.13 лабораторная работа № 29 ИЗУЧЕНИЕ ВЗИМОСВЯЗИ ПАРМЕТРОВ СОСТОЯНИЯ ИДЕАЛЬНОГО ГАЗА И ГАЗОВЫХ ЗАКОНОВ Цель работы 1. Изучение взаимосвязи макропараметров определяющих состояние идеального газа. Экспериментальная проверка уравнения состояния идеального газа. | |||
37954. | Исследование электростатического поля и изображение его при помощи силовых линий и поверхностей равного потенциала | 867.5 KB | |
Исследование электростатического поля Цель работы Экспериментальное исследование электростатического поля и изображение его при помощи силовых линий и поверхностей равного потенциала. Напряженностью электрического поля называют силу действующую на единичный положительный пробный заряд. Если электрическое поле создается системой зарядов то напряженность поля в данной точке определяется по принципу суперпозиции... | |||