Федеральное агентство по образованию
Государственное образовательное учреждение
Высшего профессионального образования
"Московский государственный технический университет им. Н.Э. Баумана"
Калужский филиал
Факультет электроники, информатики и управления
Кафедра "Системы автоматического управления и электротехника"
(ЭИУ3-КФ)
Расчетно-пояснительная записка к курсовой работе
на тему:
"Реализация цифрового термометра на основе микроконтроллера ATmega 128 (с использовнием термодатчика DS18B20)"
по дисциплине:
Проектирование алгоритмов и программного обеспечения
Калуга, 2009
Содержание
1.1 Аннотация
1.2 Постановка задачи
1.3 Общие сведения о микроконтроллерах AVR
1.4 Основные параметры AVR
1.5 Программирование микроконтроллера с использованием программы на языке С
1.6 Передача данных на Com-порт
1.7 Вывод значений на ЖКИ
1.8 Описание температурного датчика DS18B20
1.9 Подключение датчика DS18B20 с использованием порта 1-Wire
2. Конструкторская часть
2.1 Общие сведения. Функциональное назначение используемых программ
2.2 Реализация
2.3 Запуск и выполнение
3. Список используемой литературы
Приложение
Данный курсовой проект представляет собой термометр, реализованный на микроконтроллере AVR. Устройство может выполнять следующие действия:
определение температуры окружающей среды;
отображение температуры окружающей среды на ЖК дисплее;
отображение температуры окружающей среды в com-порт;
своевременное реагирование на изменение температуры, реализованное с помощью устанавливаемой по желанию задержки опроса;
Используя средства языка программирования необходимо создать цифровой термометр на основе микроконтроллера ATmega 128 семейства AVR. Должны выполняться действия: измерение температуры окружающей среды, вывод значений температуры на ЖК дисплей и в com-порт.
Микроконтроллер - компьютер на одной микросхеме. Предназначен для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в микроконтроллер программой. В отличие от микропроцессоров, используемых в персональных компьютерах, микроконтроллеры содержат встроенные дополнительные устройства. Эти устройства выполняют свои задачи под управлением микропроцессорного ядра микроконтроллера.
С развитием микроэлектроники микроконтроллеры AVR получили широкое распространение в нашей жизни. Это устройства, в которых объединены процессор и периферийное оборудование. Такое объединение позволяет уменьшить массу стоимость и энергопотребление проектируемого устройства.
Типичный современный микроконтроллер имеет следующие встроенные схемы: центральное процессорное устройство (ЦПУ), память программ, оперативная память данных, тактовый генератор, цепь сброса, последовательный порт, таймер, таймер, аналого-цифровой преобразователь (АЦП). Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают, и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей.
Основные параметры AVR:
тактовая частота до 20 МГц;
встроенный программируемый RC-генератор, частота 1, 2, 4, 8 МГц;
Flash-ПЗУ программ, программируемое в системе, 10 000 циклов перезаписи;
Энергонезависимая память данных EEPROM (100 000 циклов перезаписи);
внутреннее ОЗУ со временем доступа 1 такт;
6 аппаратных команд умножения (для семейства mega);
развитая система адресации, оптимизированная для работы с С-компиляторами;
32 регистра общего назначения (аккумулятора);
синхронный (USART) или асинхронный (UART) (в mega64 и mega128 их по 2);
синхронный последовательный порт (SPI);
двухпроводный интерфейс TWI, совместимый с интерфейсом I2C;
многоканальный PWM 8-, 9-, 10-, 16-битный ШИМ-модулятор;
10-битный АЦП с дифференциальными входами;
программируемый коэффициент усиления перед АЦП 1, 10 и 200;
встроенный источник опорного напряжения 2,56 В;
аналоговый компаратор;
сторожевой таймер - перезагружает МК при "зависании";
настраиваемая схема задержки запуска после подачи питания;
схема слежения за уровнем напряжения питания;
JTAG-интерфейс для подключения эмулятора (в МК с объемом ПЗУ от 16кбайт);
Малое энергопотребление (менее 100мкА в активном режиме на частоте 32кГц);
датчик температуры (в ATtiny25 ATtiny45 ATtiny85).
Таблица 1. Типы данных языка С для AVR
Тип | Размер (бит) | Диапазон значений |
bit | 1 | 0, 1 |
char | 8 | -128…127 |
unsigned char | 8 | 0…255 |
signed char | 8 | -128…127 |
int | 16 | -32768…32767 |
short int | 16 | -32768…32767 |
unsigned int | 16 | 0…65535 |
signed int | 16 | -32768…32767 |
long int | 32 | -2147483648…2147483647 |
unsigned long int | 32 | 0…4294967295 |
signed long int | 32 | -2147483648…2147483647 |
float | 32 | ±1.175e-38…±3.402e38 |
double | 32 | ±1.175e-38…±3.402e38 |
Таблица 2. Зарезервированные слова
break | else | int | struct |
bit | enum | interrupt | switch |
case | extern | long | typedef |
char | flash | register | union |
const | float | return | unsigned |
continue | for | short | void |
default | funcused | signed | volatile |
do | goto | sizeof | while |
double | if | sfrw | |
eeprom | inline | static |
Для вывода данных в порт используется регистр PORTx, а для ввода - PINx. Для настройки порта на выход в регистр управления необходимо записать единицу, и наоборот, для настройки на вход-ноль.
Для связи ПК и вашего устройства необходим какой-либо физический интерфейс. Очень удобен и прост интерфейс RS232 - в ПК он реализован в виде COM-портов.
Универсальный внешний последовательный интерфейс - CОМ-порт (Communications Port - коммуникационный порт) присутствует в PC начиная с первых моделей. Этот порт обеспечивает асинхронный обмен по стандарту RS-232C. СОМ-порты реализуются на микросхемах универсальных асинхронных приемопередатчиков (UART), совместимых с семейством i8250/16450/16550. Они занимают в пространстве ввода-вывода по 8 смежных 8-битных регистров и могут располагаться по стандартным базовым адресам 3F8h (СОМ1), 2F8h (COM2), 3E8h (COM3), 2E8h (COM4). Порты могут вырабатывать аппаратные прерывания IRQ4 (обычно используются для СОМ1 и COM3) и IRQ3 (для COM2 и COM4). С внешней стороны порты имеют линии последовательных данных передачи и приема, а также набор сигналов управления и состояния, соответствующий стандарту RS-232C. СОМ-порты имеют внешние разъемы-вилки (male - "папа") DB25P или DB9P, выведенные на заднюю панель компьютера. Характерной особенностью интерфейса является применение "не ТТЛ" сигналов - все внешние сигналы порта двуполярные.
Гальваническая развязка отсутствует - схемная земля подключаемого устройства соединяется со схемной землей компьютера. Скорость передачи данных может достигать 115 200 бит/с.
Название порта указывает на его основное назначение - подключение коммуникационного оборудования (например, модема) для связи с другими компьютерами, сетями и периферийными устройствами. К порту могут непосредственно подключаться и периферийные устройств с последовательным интерфейсом: принтеры, плоттеры, терминалы и другие. СОМ-порт широко используется для подключения мыши, а также организации непосредственной связи двух компьютеров. К СОМ-порту подключают и электронные ключи.
Напряжение на выходе данных из COM-порта ПК (это ножка 3 в 9-ти штырьковом разъеме) по стандарту RS232 таково:
логическая "1" от - 5 до - 15 вольт
логический "0" от +5 до +15 вольт
На самом деле сигналы в COM называются по-другому! Здесь называется "логический" по аналогии названия в МК. Для согласования напряжений и логических уровней COM-порта и USART МК используют микросхемы типа MAX232.
По линии TxD данные передаются от МК в ПК (через MAX232).
По линии RxD МК принимает данные от ПК.
Для отправки и приема данных можно использовать гипертерминал Windows или более удобные программы (мы будем использовать Терминал из состава компилятора CodeVisionAVR).
Формат представления данных в лабораторной работы мы оставим по умолчанию: 8 Data, 1 Stop, No Parity (8-битовые данные, без проверки четности, 1 стоповый бит), а скорость выберем произвольно. В этом случае на передачу одного символа (в формате 8N1 - установленном нами выше при настройке UART) тратится время в Сек:
10 разделить на скорость USART в бод/сек.