- •3) Описание основных протоколов работы программы
- •1 Обзор существующих сред программирования
- •1.1 Изучение основных методов работы в avr Studio
- •2 Описание основных протоколов работы программы
- •2.2 Инициализация: сигнал сброса и присутствия на 1-Wire шине
- •2.3 Запись данных на 1-Wire шине
- •2.4 Чтение данных на 1-Wire шине
- •3 Описание программного обеспечения
- •3.1 Программа
- •3.2 Описание используемых данных
- •3.2.1 Присвоенные имена числовым значениям
- •3.2.2 Переменные
- •3.3 Описание используемых функций.
- •3.4 Блок-схема программы
МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное образовательное
учреждение высшего образования
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ РАДИОТЕХНИЧЕСКИХ СИСТЕМ И УПРАВЛЕНИЯ
КАФЕДРА ЭЛЕКТРОТЕХНИКИ И МЕХАТРОНИКИ
КУРСОВАЯ РАБОТА
по курсу
«ПРОГРАММИРОВАНИЕ»
на тему: «Цифровой термометр на Atmega 16»
Разработал:
студент группы РТбо2-8 Беляев П.С.
Проверил руководитель:
доцент, канд. техн. наук В.В. Пивнев
(должность, ученая степень и звание, Ф., И., О.)
Таганрог 2015
Содержание
Введение ………………………………………………………………………. …1
1 Обзор существующих сред программирования…………………………........2
1.1 Изучение основных методов работы в AVR Studio ………….…………… 3
2 Описание основных протоколов работы программы……………………….13
2.1 Запись команды данных/данных по четырехбитной шине на дисплей.....13
2.2 Инициализация: сигнал сброса и присутствия на 1-Wire шине….……… 13
2.3 Запись данных на 1-Wire шине……………………………………………..13
2.4 Чтение данных на 1-Wire шине……………………………………………..14
3 Описание программного обеспечения………………………………………..14
3.1 Программа……………………………………………………………………14
3.2 Описание используемых данных…………………………………………...21
3.2.1 Присвоенные имена числовым значениям………………………………21
3.2.2 Переменные………………………………………………………………...21
3.3 Описание используемых функций………………………………………….22
3.4 Блок-схема программы……………………………………………………...29
Заключение …………………………………………………………………… .30
Список литературы ………………………………………………………….... 31
Введение
Термометр выполнен на микроконтроллере ATmega16 и датчике с интерфейсом 1-wire, фирмы "Dallas Semiconductor" типа DS18B20 или DS1822. Устройство может измерять температуру в диапазоне от 0 до 125 градусов Цельсия. Индикация значений температуры осуществляется с помощью LCD экрана. Программирование устройства осуществляется на языке Си.
Для достижения поставленной цели необходимо решить несколько задач:
1) Выполнить обзор существующих программ
2) Изучить основные методы работы в выбранной среде
программирования
3) Описание основных протоколов работы программы
4) Перечислить все используемые данные
5) Перечислить все используемые функции
6) Блок-схема
1 Обзор существующих сред программирования
Чтобы преобразовать исходный текст программы в файл прошивки микроконтроллера, применяют компиляторы. Фирма Atmel поставляет мощный компилятор ассемблера, который входит в среду разработки AVR Studio, работающую под Windows. Наряду с компилятором, среда разработки содержит отладчик и эмулятор. AVR Studio совершенно бесплатна и доступна на сайте Atmel. В настоящее время представлено достаточно много компиляторов Си для AVR. Самым мощным из них считается компилятор фирмы IAR Systems. Именно ее сотрудники в середине 90-х годов участвовали в разработке системы команд AVR. IAR C Compiler имеет широкие возможности по оптимизации кода и поставляется в составе интегрированной среды разработки IAR Embedded Workbench (EWB), включающей в себя также компилятор ассемблера, линкер, менеджер проектов и библиотек, а также отладчик. Цена полной версии пакета составляет 2.820 EUR. Фирмой Image Craft выпускается компилятор языка Си, получивший достаточно широкую популярность. Image Craft C Compiler обладает неплохим уровнем оптимизации кода и достаточно низкой ценой (от $199 до $749 в зависимости от версии). Не меньшую популярность завоевал Code Vision AVR C Compiler, цена полной версии этого компилятора невысока и составляет 150 EUR. Компилятор поставляется вместе с интегрированной средой разработки, в которую, помимо стандартных возможностей, включена достаточно интересная функция - CodeWizardAVR Automatic Program Generator. Наличие в среде разработки последовательного терминала позволяет производить отладку программ с использованием последовательного порта микроконтроллера. Поистине культовой стала интегрированная среда разработки WinAVR. Она включает мощные компиляторы Си и ассемблера, программатор AVRDUDE, отладчик, симулятор и множество других вспомогательных программ и утилит. WinAVR прекрасно интегрируется со средой разработки AVR Studio от Atmel. Ассемблер идентичен по входному коду ассемблеру AVR Studio. Компиляторы Си и ассемблера имеют возможность создания отладочных файлов в формате COFF, что позволяет применять не только встроенные средства, но и использовать мощный симулятор AVR Studio. Еще одним немаловажным плюсом является то, что WinAVR распространяется свободно без ограничений (производители поддерживают GNU General Public License).
Моим выбором стала среда программирования AVR Studio с интегрированной в неё WinAVR, дающая возможность компилировать программы на языке Си.
1.1 Изучение основных методов работы в avr Studio
Шаг 1 – Запуск программы AVR Studio
Запустите на выполнение программу AVR Studio. После запуска на экране появится окно, подобное тому, что изображено на рисунке 4.
Рисунок 4 - Окно программы AVR Studio в начале работы над проектом.
Шаг 2 – Создание нового проекта
Чтобы создать новый проект выберите опцию «New Project» в диалоговом окне «Welcome to AVR Studio 4» или выберите пункты «Project» и «New Project» в соответствующем разделе главного меню программы.
В открывшемся диалоговом окне нужно выбрать тип проекта: Atmel AVR Assembler или AVR GCC в соответствии с тем, на каком языке будет написан исходный файл кода программы:
AVR Assembler. В этом случае AVR Studio использует для компиляции проекта программу Ассемблер. Никаких дополнительных действий пользователя больше не потребуется. Этот вариант используется в данном примере.
AVR GCC. В этом случае предполагается, что текст программы будет написан на языке C.
Рисунок 5 - Вкладка AVR Studio для определения имени проекта и исходного файла с кодом программы.
Для продолжения работы нажмите {Finish}. Диспетчер проекта выдаст на экран новое окно проекта (рисунок 6). В нем будут показаны все файлы, связанные с данным проектом и будет открыто окно редактирования кода программы.
Рисунок 6 – Пример интерфейса пользователя среды разработки AVR Studio 4.
Шаг 3 – Создание файла с кодом программы на ассемблере
Включить в проект файл с ассемблерным кодом можно, редактируя уже существующий файл или создавая новый, как это показано на рисунке 6. Текущий входной файл отмечен в соответствующем окне пиктограммой с красной стрелкой, направленной вниз.
Предполагается, что файл с текстом кода вначале пустой, и следует ввести в него программный код, воспользовавшись обычными приемами редактирования. Напомним, что при редактировании удобно использовать процедуры копирования и вставки из буфера (кнопки {Ctrl+C} и {Ctrl+V}).
Управления доступом и конфигурирование портов ввода/вывода МК семейства AVR осуществляется через три регистра МК:
1) DDRx – регистр, конфигурирующий направление передачи данных. Конфигурирование реализуется побитно. Например, запись числа 11110000 в регистр DDRB означает, что четыре младших вывода 8-ми разрядного порта B сконфигурированы как входные, т.е. из них данные будут читаться, а четыре старших вывода порта B будут работать на выход, т.е. будут передавать данные.
2) PORTx – это регистр передачи или приема данных порта x. Если какие-то биты этого порта были сконфигурированы как выходные, то в биты этого регистра следует записать те значения, которые требуется задать на выходах МК. Если эти биты сконфигурированы на прием данных, то запись единицы в них означает, что данный вход через резистор 150 Ом подключен к выводу питания (вход «подтянут к единице» прямой логики). Таким образом, при отсутствии сигнала на этом выводе обеспечивается помехозащищенность и гарантируется, что считанное значение будет соответствовать логической единице.
3) PINx – доступный только для чтения регистр для хранения данных, считанных из порта x. Биты этого регистра содержит значения логических уровней сигналов, которые в момент выполнения операции обращения к нему присутствуют на соответствующих выводах порта x.
Шаг 4 – Ассемблирование исходного кода программы
Следующий шаг заключается в создании машинного кода из исходного текста программы. Для выполнения этой процедуры следует выбрать в меню "Build" опцию "Build" или нажать клавишу {F7}. После компиляции программы в окне "Build" будет выведена информация о результатах. На рисунке 9 в окне вывода результатов компиляции показано, что ассемблер обнаружил ошибку в 16-й строке кода: код содержит неопределенный идентификатор «tnp1». Как видно из рисунка, там же перечислены и последующие ошибки, возникшие вследствие неопределенности идентификатора.
Рисунок 9 - Окна с кодом программы и результатами компиляции с указанием ошибок.
После исправления ошибок следует сохранить файл с кодом и снова запустить компиляцию. Теперь все подготовлено к тому, чтобы перейти к следующему этапу проектирования, на котором проводится отладка программы в режиме симулятора.
Шаг 5 - Выбор устройства
Нужно проследить, чтобы симуляция кода проводилась именно для выбранного типа процессора. Выбор типа МК для симуляции осуществляется из меню “Debug” (пункт "Select Platform and Device…"). При этом в открывшейся вкладке (см. рисунок 10) следует выбрать тип МК и программу для симуляции его работы.
Шаг 6 - Отладка кода программы
Если файл с программным кодом подготовлен, то его можно запустить в режиме симулятора-отладчика, выбрав в меню "Debug" пункт "Start Debugging " (сочетание клавиш {Ctrl+Sift+Alt+F5}). О переходе в этот режим работы свидетельствует появление желтой стрелки слева от текста с кодом команд, указывающей на инструкцию, которая будет выполняться на следующем шаге в соответствии с содержимым счетчика команд PC (см. рисунок 11).
Рисунок 10. - Окно назначения параметров симуляции.
Рисунок 11 - Указатель положения счетчика команд в окне с кодом программы в режиме отладки-симуляции.
Полный перечень режимов работы симулятора доступен из функции главного меню “Debug”, что иллюстрируется рисунком 12. Некоторые функции продублированы пиктограммами, соответствующими инструментам, которые можно вывести на экран из меню “View”- “Toolbars”.
Рисунок 12 – Инструменты и функции AVR Studio в режиме отладки.
Процесс отладки заключается в отслеживании хода выполнения программы и управления данными в регистрах с помощью окна с текстом кода, окна консоли вывода текущих сообщений (Message) и специальных окон, показывающих состояния регистров ввода/вывода (I/O View), позволяющих вести контроль значений переменных (Watch), отслеживать состояния процессора (Processor). Вывод на экран панелей этих инструментов симулятора также настраивается из главного меню (см. рисунок 13).
Рисунок 13 – Всплывающие списки панелей инструментов и вызова окон для отображения состояний микроконтроллера в режиме симуляции-отладки программы.
Настройка окна ввода-вывода
Откройте окно "IO View", выбрав соответствующий пункт меню "View" – “Toolbar” (клавиши {Alt+5}). Поскольку симулятор уже настроен для работы с типом микроконтроллера ATmega 16, то соответствующие элементы его архитектуры отобразятся в этом окне автоматически (см. рисунок 14).
Щелчок на значке «+» у строчки с надписью PORTB открывает содержимое регистров, связанных с портом ввода-вывода B (см. рисунок 12): регистр данных порта PORTB (Port B Data Register), регистр управления направлением передачи порта DDRB (Port B Data Direction) и регистр драйверов порта PINB (Port B Input Pins). Состояние каждого бита этих регистров отображается в соответствующей позиции окна: логическому нулю ("0") соответствует пустая позиция, а логическая единица ("1") отображается позиция окрашенная серым. Эти позиции могут изменяться в ходе выполнения программы, показывая текущее состояние каждого бита. В ходе выполнения программы вы также можете сами установить или сбросить эти биты, щелкая левой кнопкой мыши на соответствующем поле.
Рисунок 14. Окно устройств ввода/вывода микроконтроллера ATmega 16.
Выполнение программы в режиме симуляции
Режимы выполнения программы при симуляции работы МК доступны при открытии выпадающего списка функции “Debug” (см. рисунок 14). Их назначение и горячие клавиши вызова приведены в таблице 1.
Таблица 1 – Функции отладчика, управляющие ходом симуляции кода программы.
Запустив программу на исполнения, проследите, как изменяется положение указателя выполняемой операции кода, нажимая несколько раз клавиши {F11}, {F10}, {Shift+F11}, {Ctrl+F10}, {Alt+F5} и {Ctrl+F5} или выбрав соответствующую опцию из пиктограмм отладчика.
