АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Указания по организации самостоятельной работы. Перед работой необходимо проработать теоретический материал по литературе [1, 4] и конспект лекций, ознакомиться принципами функционирования и возможностями

Читайте также:
  1. I Психологические принципы, задачи и функции социальной работы
  2. I. Задания для самостоятельной работы
  3. I. Задания для самостоятельной работы
  4. I. Задания для самостоятельной работы
  5. I. КУРСОВЫЕ РАБОТЫ
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ
  7. I. ОБЩИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ
  8. I. Основы экономики и организации торговли
  9. II. Выполнение дипломной работы
  10. II. ДИПЛОМНЫЕ РАБОТЫ
  11. II. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ВЫПОЛНЕНИЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
  12. II. ОБРАЗЕЦ ОФОРМЛЕНИЯ ТИТУЛЬНОГО ЛИСТА КОНТРОЛЬНОЙ РАБОТЫ

Перед работой необходимо проработать теоретический материал по литературе [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 соответственно.

 

№ бита                
06h (26h) ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

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

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

Разряд Обозначение Описание
  ADEN Разрешение работы АЦП: 0 – выкл.; 1- вкл.
  ADSC Запуск преобразования (1 – начать преобразование)
  ADFR Выбор режима работы АЦП: 1 – режим непрерывного преобразования, 0 – режим одиночного преобразования
  ADIF Флаг прерывания (1 – произошло прерывание от АЦП). Сбрасывается аппаратно при переходе на процедуру обработки прерывания.
  ADIE Обмен по прерыванию (1–разрешение прерывания)
2 – 0 ADPS2- ADPS0 Управление предделителем тактовой частоты АЦП
ADPS2 ADPS1 ADPS0 k
       
       
       
       
       
       
       
       

 

 

№ бита                
07h (27h) REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0

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

 

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

Разряд Обозначение Описание
    7, 6     REFS1, REFS0 Выбор источника опорного напряжения (ИОН)
REFS1 REFS0 ИОН
    Внешний, AREF
    Напряжение питания UCC
    Зарезервировано
    Внутренний (2,56 В), UREF
  ADLAR Выравнивание 10-битового результата по границе слова: 0 –по правой, 1 –по левой.
4,3,2,1,0 MUX4 – MUX0 Управление мультиплексором входных каналов: при использовании несимметричных входов код на линиях MUX2–MUX0 соответствуетномеру канала.

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

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

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

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

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

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

 

6.2 Описание лабораторной установки

 

 

Лабораторная работа выполняется в индивидуальном порядке. На каждом рабочем месте должны быть установлены: многофункциональный лабораторный макет на базе микроконтроллера AVR ATMEGA 128, ПЭВМ типа IBM PC/AT c инсталлированным программным обеспечением: операционной системой MS–WINDOWS v. 9x, 2000, XP, программатором на основе кросс-компилятора языка программирования C CodeVision AVR, утилитой Terminal для работы с последовательным интерфейсом RS232C. Задания выполняются на лабораторном макете на базе 8-ми разрядного микроконтроллера AVR ATMEGA 128, к 0-му выводу порта F которого подключен аналоговый датчик температуры Analog Devices TMP–35. Данный термодатчик обладает следующими характеристиками:

Диапазон рабочих напряжений: 2,7 – 5,5 В.

Диапазон измеряемых температур: - 40°С - +125°С.

Погрешность измерений: ± 2°С

Масштабирующий коэффициент: 10 мВ/1°С.

Для функционирования термодатчика используется схема подключения, изображенная на рисунке 6.4. Уровень логического нуля на входе переводит выход термодатчика в высокоимпедансное состояние. Если отключение термодатчика в процессе работы системы не предусматривается, то вход подключается к выводу VREF.

Дополнительно в работе используется кабель с 9-контактными разъемами DB-9 (см. рисунок 1.8) для соединения лабораторного макета с ПЭВМ через последовательный интерфейс RS232C.

 

 

Рисунок 6.4 – Схема подключения датчика температуры TMP–35

к лабораторному макету

 

Измерение температуры (в °С) с помощью термодатчика TMP–35 выполняется путем преобразования оцифрованного значения входного напряжения (по отношению к лабораторному макету) по следующей формуле:

, (6.1)

 

где – значение входного напряжения, – величина опорного напряжения; – напряжение смещения (500 мВ).

 

 

6.3 Порядок проведения работы и указания по ее выполнению

 

Перед началом выполнения практической части лабораторной работы проводится экспресс–контроль знаний по принципам функционирования модуля АЦП, входящего в состав микроконтроллера AVR ATMEGA 128. При подготовке к лабораторной работе необходимо составить предварительный вариант листинга программы, в соответствие с индивидуальным заданием (см. таблицу 6.3).

Задание: разработать в среде программирования Code Vision AVR программу на языке С для измерения значений температуры с помощью термодатчика Analog Devices TMP–35 в соответствие с параметрами режима работы, приведенными в таблице 6.3.

Порядок выполнения задания:

1. Включить лабораторный макет (установить выключатель электропитания в положение I, и убедиться в свечении индикатора электропитания красным цветом).

2. Запустить компилятор Code Vision AVR.

3. Создать пустой проект.

4. Создать файл ресурса для кода программы и подключить его к проекту.

5. Ввести код исходного модуля программы для считывания данных с модуля АЦП.

6. Выполнить компиляцию (нажав клавишу F9) исходного модуля программы и устранить ошибки, полученные на данном этапе.

7. Настроить параметры программатора.

8. Создать загрузочный модуль программы (нажав комбинацию клавиш Shift+F9) и выполнить программирование микроконтроллера.

9. Проверить работоспособность загруженной в микроконтроллер программы и показать результаты работы преподавателю.

10. В случае некорректной работы разработанной программы, выполнить аппаратный сброс микроконтроллера, провести отладку исходного модуля программы и заново проверить функционирование программы, повторив выполнение пункта 9.

 

Пример выполнения задания: разработать программу для передачи данных о температуре в ПЕВМ по интерфейсу RS232C: режим работы АЦП – непрерывное преобразование, значение делителя частоты – 128; если величина температуры превысит 27°С, то выдать сигнал предупреждения с помощью включения светодиода.

Решение: исходя из параметров режима работы модуля АЦП необходимо настроить регистры ADCSRA и ADMUX, настроить порт D на вывод данных и погасить все светодиоды, инициализироватьмодуль USART1, в цикле считывать данные из регистра ADCW, вычислять значения температуры по формуле 6.1, выводить их в регистр UDR1 и анализировать величину температуры для формирования сигнала предупреждения. Алгоритм программы приводится на рисунке 6.5, полный текст исходного модуля программы на языке С с подробными комментариями приводится ниже:

#include <mega128.h> Подключить заголовочный файл mega128.h;

#include <delay.h> подключить заголовочный файл delay.h;

#define VREF 2560L задание константы ;

#define OFFSET 500L задание константы ;

int a; описание глобальной переменной а;

int read_adc() { описание подпрограммы считывания данных

int result; из модуля АЦП и вычисления значения

result = ADCW; температуры по формуле 6.1;

result=((result*VREF)/1024 –OFFSET)/10;

return result; }

main() { основная часть программы;

DDRD=0xFF; установка всех линий порта D в режим вывода дан-

PORTD=0xFF; ных и выключение всех светодиодов;

инициализация модуля АЦП

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

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

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

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

преобразования, делитель частоты равен 128;

инициализация модуля USART1:

UCSR1A=0x00; установка стандартного режима задания скорости передачи данных;

UCSR1B=0x08; установка 3-го бита регистра UCSR1B для

инициализации USART1 в режиме передатчика;

UCSR1C=0x06; установка формата кадра: 8 бит данных с отключенным режимом четности;

UBRR1H=0x00; установка значения делителя (35) соответствующего

UBRR1L=35; скорости приемаданных 19200 бит/с;

while (1) { организовать цикл с бесконечным числом итераций;

a=read_adc(); получить новое значение температуры;

delay_ms(100); установить временную задержку 100 мс;

UDR1=a; выполнить передачу значения температуры по интерфейсу RS232C в ПЭВМ;

if (a>27) PORTD.1=0; зажечь 1-й светодиод блока индикации если значение

else PORTD.1=1; } температуры превышает 27°С;

} завершающая операторная скобка программы;

 

Таким образом, программа будет осуществлять измерение температуры и передавать данные в ПЭВМ по интерфейсу RS232C, а так же формировать сигнал предупреждения о повышении температуры на величину более 27°С. Данные, передаваемые в ПЭВМ, будут фиксироваться предварительно запущенной программой Terminal с соответствующими настройками протокола обмена данными.

 

Рисунок 6.5 – Алгоритм программы передачи данных о температуре из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C с формированием сигнала предупреждения при повышении температуры

 

Таблица 6.4 – Варианты индивидуальных заданий

№ п.п. Задание
  Разработать программу, выполняющую измерение температуры в режиме одиночного преобразования (делитель частоты равен 2) и формирующую сигнал предупреждения с помощью блока светодиодов, если значение температуры превысит 30°С.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 8) и формирующую сигнал предупреждения с помощью блока светодиодов, если значение температуры превысит 40°С.
  Разработать программу, выполняющую измерение температуры в режиме одиночного преобразования (делитель частоты равен 64) и формирующую сигналы предупреждения с помощью блока светодиодов, если значение температуры выходит за рамки диапазона 25°С < T < 30°С.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 128) и формирующую сигналы предупреждения с помощью блока светодиодов, если значение температуры выходит за рамки диапазона 30°С < T < 40°С.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 4) и формирующую сигналы предупреждения с помощью блока светодиодов, если значение температуры выходит за рамки диапазонов 25°С < T < 30°С и 40°С < T < 50°С.
  Разработать программу, выполняющую измерение температуры в режиме одиночного преобразования (делитель частоты равен 32) и формирующую сигналы предупреждения с помощью блока светодиодов, если значение температуры выходит за рамки диапазонов 20°С < T < 25°С и 35°С < T < 40°С.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 16) и формирующую сигналы предупреждения с помощью цифрового индикатораHoltek НТ1613, если значение температуры выходит за рамки диапазона 25°С < T < 35°С.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 4) и формирующую сигналы предупреждения с помощью блока светодиодов, если значение температуры выходит за рамки диапазона 25°С < T < 40°С. Обработка данных происходит по прерыванию ADC_INT*.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 8) и выводящую значения температуры на цифровой индикаторHoltek НТ1613*.
  Разработать программу, выполняющую измерение температуры в режиме непрерывного преобразования (делитель частоты равен 32) и передающую значения температуры в ПЭВМ с помощью последовательного интерфейса RS232C.*

* задания повышенной сложности.

 

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

В отчете необходимо привести следующее:

характеристики лабораторной вычислительной системы;

исходный модуль разработанной программы;

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

 

6.5 Контрольные вопросы и задания

1. Поясните принцип работы встроенного в микроконтроллер 10-разрядного АЦП.

2. Назовите основные управляющие регистры АЦП, встроенного в микроконтроллер, и поясните их функции.

3. Поясните принцип измерения температуры с помощью термодатчика.

4. Для чего применяется выравнивание результата по левой или правой границе слова?

5. Поясните возможности передачи данных о температуре в ПЭВМ.

6. Поясните возможность отображения данных о температуре на экране цифрового индикатора Holtek НТ1613, рассмотренного в лабораторной работе № 3.

 

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

 

1. Евстифеев А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. – М.: Изд. дом Додэка-ХХI, 2004. – 560 с.

2. Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному.- М.: СОЛОН-Пресс, 2004. – 304 с.

3. Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы.- М.: Издательский дом “Додэка-XXI”, 2004. – 288 с.

4. http://www.atmel.ru/ – описание микроконтроллеров фирмы ATMEL на русском языке.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.)