|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Указания по организации самостоятельной работы. Перед работой необходимо проработать теоретический материал по литературе [1, 4] и конспект лекций, ознакомиться принципами функционирования и возможностямиПеред работой необходимо проработать теоретический материал по литературе [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 соответственно.
Рисунок 6.2 – Регистр состояния ADCSRA Таблица 6.1 – Описание значений управляющих битов регистра ADCSRA
Рисунок 6.3 – Регистр состояния ADMUX
Таблица 6.2 – Описание значений управляющих битов регистра ADMUX.
Согласно формату регистров 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 – Варианты индивидуальных заданий
* задания повышенной сложности.
Содержание отчета В отчете необходимо привести следующее: характеристики лабораторной вычислительной системы; исходный модуль разработанной программы; анализ полученных результатов и краткие выводы по работе, в которых необходимо отразить особенности использования встроенного в микроконтроллер модуля АЦП для измерения аналоговых величин.
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 на русском языке.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |