Разработка и создание электронного устройства с датчиком температуры DS18B20 на базе PIC16F628A и их трансляцией на семи-сегментный индикатор. Выбор устройства отображения информации, программного обеспечения. Блок-схема работы микроконтроллера.
При низкой оригинальности работы "Реализация функции программатора для датчика температуры на РІС контроллере", Вы можете повысить уникальность этой работы до 80-100%
DS18B20 использует логические переменные для уведомления микроконтроллера о завершении работы.Переменную “0” используем для процесса измерения температуры, а “1” используем для завершения работы датчика. Термодатчик будет измерять аналоговую величину температуры, транслировать ее в цифровой код для микроконтроллера, после он сохранит значение в памяти и передаст сигнал о завершение своей работы микроконтроллеру. Для запуска устройства с помощью интерфейса 1-wire нужно подать импульс низкого напряжения примерно на 500 мкс, после этого возобновить сигнал и подождать еще столько же.Ниже приведен код инициализации датчика (рисунок 7): Рисунок 7 - Алгоритм инициализации датчика На рисунке 13 показан код программы: Рисунок 13 - Кол программы В среде разработки MPLAB IDE создадим проект для нашего микроконтроллера с указанием базовой конфигурации, а так же добавим в наш файл расширением .С для облегчения работы в HI-TECH C Compiler.На рисунке 17 показано окно подтверждения.В данной дипломной работе были описаны основные проблемы измерения температуры, способы и походы для их решения. Были затронуты основные алгоритмы измерения температуры. В ходе работы был собрано устройство для дистанционного измерения температуры. При выборе алгоритма были изучены основные методы и способы решения данной задачи и был выбран способ производства устройства на PIC контроллере. Данный контроллер имеет гибкость в плане дополнительных деталей, а также отличается дешевизной в производстве устройств на его основе.
План
Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов): анализ популярных микроконтроллеров;
обоснование выбора датчика;
обоснование выбора микроконтроллера;
комплект MPLAB IDE;
обоснование выбора языка программирования;
структура приложения;
описание компонентов приложения;
программная реализация;
тестирование и отладка приложения.
Рекомендуемая основная литература
1 "PIC - микроконтроллеры. Все, что вам необходимо знать" Катцен С. 2008 г.
2 "Полное руководство по PIC-микроконтроллерам" Кениг А. и М. 2007 г.
3 "Справочник по PIC - микроконтроллерам" Предко М. 2006 г.
4 "PIC-микроконтроллеры. Практика применения" Тавернье К. 2009г.
Аннотация
Введение
Все мы часто в своей жизни пользуемся таким прибором как термометр, но мало кто знает историю его изобретения и совершенствования. Изобретение термометра приписывают сразу многим ученым - Галилею, Санторио, лорду Бэкону, Роберту Фладду, Скарпи, Корнелию Дреббелю, Порте и Саломону де Каус. Это обусловлено тем, что многие ученые одновременно работали над созданием аппарата, который бы помог измерить температуру воздуха, почвы, воды, человека.
Конструкция термоскопа (именно так тогда назывался термометр) была примитивной: к стеклянному шару небольшого диаметра припаивалась тонкая стеклянная трубка, которая помещалась в жидкость. Позже ученые пытались усовершенствовать прибор, но все термометры были воздушные, и их показания зависели не только от изменения температуры тела, но и от атмосферного давления.
Первые термометры с жидкостью были описаны в 1667 году, но они лопались, если вода замерзала, поэтому для их создания начали использовать винный спирт. Изобретение термометра, данные которого не обусловливались бы перепадами атмосферного давления, произошло благодаря экспериментам физика Эванджелиста Торричелли, ученика Галилея. В результате термометр наполнили ртутью, перевернули, добавили в шар подкрашенный спирт и запаяли верхний конец трубки.
Термометр современной формы, наиболее пригодной для бытового применения, с точной шкалой измерения создал немецкий физик Габриэль Фаренгейт. Он описал свой способ создания термометра в 1723 году. Изначально Фаренгейт создал два спиртовых термометра, но потом физик принял решение применить в термометре ртуть. Шкала Фаренгейта базировалась на трех установленных точках: первая точка равнялась нулю градусов - это температура состава воды, льда и нашатыря;
вторая, обозначенная как 32 градуса, - это температура смеси воды и льда;
третья - температура кипения воды, равнялась 212 градусам.
Но окончательно установил обе постоянные точки - тающего льда и кипящей воды - шведский астроном, геолог и метеоролог Андерс Цельсий в 1742 году. Он поделил расстояние между точками на 100 интервалов, цифрой 100 была отмечена точка таяния льда, а 0 - точка кипения воды.
Сегодня шкала Цельсия используется в перевернутом виде, то есть за 0° стали принимать температуру плавления льда, а за 100° - кипения воды.
Контроль над температурой и на сегодняшний день является одной из основных задач. Задача контроля стоит в сельском хозяйстве, в производстве, в жизни обычных граждан и даже в науке. Контроль температуры во всех этих областях имеет свои уникальные задачи и пути для решения.
Давать следить человеку за температурой в научном сегменте глупо, и бессмысленная растрата бюджета проекта.
И здесь мы можем воспользоваться помощью микроконтроллеров для создания новых датчиков и систем контроля.
Главным плюсом использования таких устройств является их способность работать дистанционно. Например, если нам нужно проконтролировать температуру в соседнем здании, на крыше дома или в теплице, простые термометры нам не подходят, т.к. на надо перемещаться к ним чтобы узнать температуру на них. В комнате, здании, помещении установим термочувствительный датчик, а в комнате наблюдения LED дисплей, отображающий информацию с места измерения температуры. Такие датчики можно использовать для проверки температуры других электронных устройств.
В дипломном проекте рассматривается разработка и создание электронного устройства с датчиком температуры DS18B20 на базе PIC16F628A и их трансляцией на семи-сегментный индикатор.
Нормативные ссылки
В настоящей дипломной работе использованы ссылки на следующие нормативные документы: ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
Определения
В настоящей дипломной работе применяются следующие термины с соответствующими определениями: программатор - аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, флеш-память, ПЗУ, внутреннюю память микроконтроллеров и ПЛК);
микроконтроллер - (англ.MICROCONTROLLERUNIT, MCU) - микросхема, предназначенная для управления электронными устройствами;
Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи.Отличается от микропроцессора интегрированными в микросхему устройствами ввода-вывода, таймерами и другими периферийными устройствами;
компилятор - программа или техническое средство, выполняющее компиляцию;
компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора - эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код);
эмулятор - (англ. emulation) в вычислительной технике - комплекс программных, аппаратных средств или их сочетание, предназначенное для копирования (или эмулирования) функций одной вычислительной системы (гостя) на другой, отличной от первой, вычислительной системе (хосте) таким образом, чтобы эмулированное поведение как можно ближе соответствовало поведению оригинальной системы (гостя). Целью является максимально точное воспроизведение поведения в отличие от разных форм компьютерного моделирования, в которых имитируется поведение некоторой абстрактной модели. Например, моделирование урагана или химической реакции не является эмуляцией;
компаратор - (аналоговых сигналов) (англ. comparator - сравнивающее устройство) - электронная схема, принимающая на свои входы два аналоговых сигнала и выдающая логическую «1», если сигнал на прямом входе (« ») больше, чем на инверсном входе («?»), и логический «0», если сигнал на прямом входе меньше, чем на инверсном входе.Одно напряжение сравнения двоичного компаратора делит весь диапазон входных напряжений на два поддиапазона. Двоичный логический сигнал (бит) на выходе двоичного компаратора указывает, в каком из двух поддиапазонов находится входное напряжение;
порт - (англ. port) - натуральное число, записываемое в заголовках протоколов транспортного уровня модели OSI (TCP, UDP, SCTP, DCCP). Используется для определения процесса-получателя пакета в пределах одного хоста;
аналого-цифровой преобразователь - (АЦП, англ. Analog-to-digitalconverter, ADC) - устройство, преобразующее входной аналоговый сигнал в дискретный код (цифровой сигнал).
1. Выбор и обоснование основных технических решений
1.1 Техническое задание
Разработать программное обеспечение для реализации цифрового термометра, а также собрать и проверить на практике. Термометр должен соответствовать требованиям: измерение температуры воздуха;
диапазон температуры: -50… 99 градусов С;
погрешность измерений: ±0.5 градусов С (в диапазоне от 0 до 85 градусов С);
напряжение питания: 3-5В;
использование общедоступных, эргономичных, недорогих составляющих для сборки устройства.
1.1.1 Источники информации
Источник информации для устройства будет термодатчик. Он передает сигнал транслируя его в цифровой код, затем его отправляем в микроконтроллер, где он считывается и обрабатывается.
Так кнопка старта/остановки тоже является источником информации.
1.1.2 Приемники информации
PIC контроллер у нас будет получать данные с датчика температуры. Он обрабатывает поступающие данные и отправляет их на LED дисплей.
Пользователь же будет считывать данные с дисплея и будет принимать решения уже исходя из полученных данных.
1.2 Возможные варианты решения поставленной задачи, обоснования выбора
1.2.1 Выбор способа измерения температуры
В ходе разработки устройства были рассмотрены различныеспособы измерения температуры окружающей среды. Для первого способа нам потребуются дополнительные компоненты такие как терморезистора или термопары, так как ток протекающий в них пропорционален температуре. Для преобразования сигнала нам потребуется еще один аналого-цифровой преобразователь. Результат надо перевести правильно в градусы Цельсия. Самое сложное в том, что зависимость наших измерений получиться не прямой. Данный способ нам не подходит изза возможной погрешности, которая может быть слишком большой для устройства. Также разработаем способ передачи данных от аналаго-цифрового преобразователя к микроконтроллеру. Изза того, что большинство портов заняты под индикатор, на который мы выводим информацию, то мы не сможем воспользоваться другими способами передачи данных, так как нам потребуются дополнительные детали. Следовательно, это усложняет наше устройство, что идет уже нам в минус. Так же мы потеряем возможность подключения дополнительных датчиков.В качестве датчика ИСПОЛЬЗУЕМDS18B20.
Термодатчик DS18B20 и его особенности: уникальный серийный код длиной 64 разряда;
напряжение от 3 до 5,5 В;
измеряемая температура от -55 до 125°С;
погрешность 0,5 °C в диапазоне -10 ... 85 °C;
нет необходимости во внешних компонентах;
разрешение преобразования 9 или 12 бит;
время измерения, не превышает 750 мс;
возможность получать питание непосредственно от линии связи;
крайне широкие области применения.
Датчик DS18B20 может измерять температуру с различными уровнями погрешности - 0,5; 0,25; 0,0625°С. Изза это задержка при получении данных для каждой погрешности своя 93,75; 187,5; 375; 750 мс. Погрешность можно задать при включении датчика.
DS18B20 выпускают в виде провода или же виде микрочипа, который замерят температуру. Называются ТО-92 и SOIC(рисунок 1).
Рисунок 1 - Термодатчики
DS18B20 работает с микроконтроллером по протоколу интерфейса 1-Wire, так же может работать в составе нескольких датчиков.
Наш DS18B20 -имеет способность паразитического питания. Питание происходит через подтягивающий резистор шины и вывод DQ.Максимальная температура измерения с помощью паразитического питания равна 100 °С, для увеличения максимальной температуры до 125°С нужно будет подключить питание от сети к датчику. На рисунке 2 показана схема DS18B20.
Рисунок 2 - Схема DS18B20
Основная возможность DS18B20 -преобразователь температуры.Для запуска измерения микроконтроллер передает команду [44h]. Затем данные помещаются в регистр оперативной памяти и занимают 2 байта, и DS18B20 переходит в спящий режим. Если DS18B20 работает с питанием от сети, то микроконтроллерконтролирует изменение температуры после считывания команды [44h] по состоянию шины. DS18B20 использует логические переменные для уведомления микроконтроллера о завершении работы.Переменную “0” используем для процесса измерения температуры, а “1” используем для завершения работы датчика. При паразитном питании, этой функцией мы не сможем воспользоваться так как для нее на шине должно быть высокое напряжение.Поэтому во время этого процесса микроконтроллер сам контролирует время измерения.
Датчик выводит данные уже в градусах Цельсия. Датчик записывает данные в виде 16 битных чисел. Они имеют один отличительный символ (S). Если S = 0, то наша температура положительная, если S = 1 то наша температура отрицательная. В зависимости от разрешения датчик будет использовать определенное колво битов. В 12-битной версии он будет использовать все биты, в 11-битной версии будет один неопределенный бит и т.д. С уменьшением разрешения увеличиваться колво неопределенных битов.
1.2.2 Выбор устройства отображения информации
Были рассмотрены возможности использования LCD дисплея без подсветки и семи-сегментного индикатора. Основной плюс LCD- простой вывод информации без дополнительных преобразований кодов и небольшое энергопотребление, что позволило бы использовать в качестве источника питания устройства гальванические элементы.
Все же было решено использовать блок семи-сегментных индикаторов, т.к. он более доступен и имеет подсветку, что позволяет использовать устройство в темное время суток. Есть широкий выбор таких индикаторов, можно использовать практически любые. Кроме того, можно самостоятельно изготовить индикаторы из цепочек светодиодов. В стационарном режиме работы термометра это позволит сконструировать индикаторы больших размеров. При определенном навыке изготовления таких устройств можно продавать их за немалые деньги.
1.2.3 Выбор микроконтроллера
Компания Microchip используют множество новейших технологий для создания микроконтроллеров семейства PIC (PERIPHERALINTERFACECONTROLLER) и показывают одни из лучших результатов: минимальные энергозатраты, высокую производительность, RISC-архитектуру которая развивается с каждым днем, многофункциональность и малые размеры. Обладают документацией по каждому микроконтроллеру, что позволяет использование их в устройствах, для различных средств деятельности.
Первые микроконтроллеры компании Microchip PIC16C5x появились в конце 1980-х годов и благодаря своей высокой производительности и низкой стоимости составили серьезную конкуренцию производившимся в то время 8-разрядным МК с CISC-архитектурой.
Появление гарвардской двухшинной архитектуры вместо одношинной фон-неймана позволило увеличить скорость обработки команд в PIC-контроллерах до 5млн. Все ресурсы микроконтроллер полностью состоит аппаратных регистров т.е. любой порт памяти, ввода/вывода т.д. есть аппаратныйрегистр.
Любой PIC-контроллер содержит в себе RISC-процессор с идентичной системой команд, который позволяет работать независимо от регистра команды, используя случайную адресацию. Разработчик имеет возможность сохранить результат процесса в регистре-аккумуляторе или во втором регистре, используемом для процессов.
На данный момент Microchip работает в пяти различных направления 8-разрядных RISC-микроконтроллеров, которые владеют обратной совместимостью: Множество PIC-контроллеров выпущены с onetime programmer т.е. один раз запрограммировали и все (ОТР), с функцией внутреннего программирования или масочным ПЗУ. Если нужна функция отладки придется приобрести дорогую версию контроллера с Flash-памятью. Весь список выпущенных модификаций PIC-контроллеров содержит около пяти ста названий. Таким образом Microchip почти, что монополизировала рынок 8-разрядных микроконтроллеров.
Для написания прошивки для PIC-контроллера можно воспользоваться любым компилятором, который поддерживает ассемблер или же воспользоваться средой разработки, которая предлагает компания разработчик MPLAB IDE.
Самые распространенными и успешными являются микроконтроллеры серий Р1С16СХХХ и Р1С17СХХХ.
Микроконтроллеры серий PIC16CXXX и PIC17CXXX
Главным способом применения микроконтроллеров серий PIC16 и PIC17), является работа с различными интерфейсами.
PIC-контроллеры имеют встроенные сторожевые таймеры, а также встроенную систему сброса при включении питания. Тактовуючастоту генератора задают либо кварцевым резонатором, либо цепочкой в диапазоне от 0-25 МГЦ. PIC-контроллеры существуют от 12 до 33 линий цифрового ввода-вывода, и все они могут быть запрограммированы на ввод или вывод.
Владеет несколькими методами адресации, что позволяет эффективно взаимодействовать и распределять биты по регистровому файлу. Так же PIC-контроллеры имеют аппаратный стек, и его глубина зависит от типа контроллера и может доходить до 8 уровней. В любом PIC существуют прерывания, таймер или любой внешний сигнал может стать прерывание в микроконтроллере. Так как в RISC-ядре команды состоят из одного слова то они легко запоминаемы и обучаемы.
Так как PIC-контроллеры не требуют большого колва деталей для сборки устройств, то лучшая ниша для их применения простые электронные устройства с автономным питанием или же питанием от сети. Благодаря этому решение время работы устройств будет увеличено, а размер уменьшен в несколько раз.
Микроконтроллер так как является одной из важнейших частей термометра должен обладать хорошими характеристиками и быть недорогим.
У микроконтроллера должно быть достаточное колво портов для работы с ними.И выбор пал на PIC16f628A Его характеристики: тактовая частота 20МГЦ;
поддерживает прерывания;
8-ми уровневый аппаратный стек;
прямая, косвенная и относительная адресация;
35 команд длиной в слово;
все выполняется за один машинный цикл, кроме ветвления и условия истинны;
внешний и внутренний режимы тактового генератора;
режим энергосбережения;
программируемые подтягивающие резисторы на входах PORTB;
защита кода программы;
сброс по снижению напряжения питания BOR;
сброс по включению питания POR;
широкий диапазон напряжения питания от 2.0В до 5.5В;
промышленный и расширенный температурный диапазон.
Периферия
16 каналов ввода/вывода с индивидуальными битами направления
Этот микроконтроллер подходит нам. Имея 16 каналов ввода/вывода нам должно хватить на подключение термодатчика и семи-сегментного индикатораи у нас даже еще останется несколько портов для подключения дополнительных деталей.
Также PIC16f628Аможет работать с интерфейсом 1-Wire, что позволяет нам спокойно работать с нашим термодатчиком и у них не будет никаких проблем с совместимостью. Микроконтроллер позволяет работать с функцией паразитного питания датчика, что является еще одним плюсом. Он довольно распространен и не является слишком дорогим в плане цены.
1.2.4 Выбор программного обеспечения
MPLAB IDE - бесплатная интегрированная среда разработки для PIC-контроллеров ФИРМЫMICROCHIP. MPLAB IDE позволяет производить отладку и оптимизацию текста программы. MPLAB IDE включает в себя редактор текста, менеджер проектов, поддерживает работу эмуляторов (MPLAB_ICE, PICMASTER) и другое программное обеспечение от Mcrochip. На рисунке 3 показано окно программы.
В MPLAB IDE легко написать исходный код, а также исправить ошибки с помощью окна компиляции которое открывается сразу после завершения компиляции. В нем идут ссылки на возникшие ошибки и предупреждения и из него вы сразу можете попасть к проблемному месту
Используя менеджер проектов появляются возможности для дополнения проекта различными файлами сценариев, дополнительные библиотеки, объектные файлы.
Вот основные особенности: возможность контролировать любые значения регистров памяти данных и выполнение задач/ сценариев микроконтроллера;
окна исходного кода программы, листинга программы, кода программы позволяют оценит качество компиляции;
пошаговое выполнение программы, система точек остановки, трассировки, сложных условий предназначена для быстрой и удобной отладки вашей программы.
MPLAB IDE состоит из нескольких модулей, обеспечивающих единую среду разработки.
Менеджер проекта MPLAB
Используется для создания и работы с файлами, относящимися к проекту. Позволяет одним щелчком «мыши» выполнить компиляцию исходного теста, включить симулятор или внутрисхемный эмулятор и т.д.
Редактор MPLAB
Предназначен для написания и редактирования исходного текста программы, шаблонов и файлов сценария линкера.
MPASM ассемблер/ MPLINK линкер/ MPLIB редактор библиотек
MPASM компилирует исходный текст программы. MPLINK создает заключительный код программы, связывая различные модули, полученные из MPASM, MPLAB-C17, MPLAB-18. MPLIB управляет библиотеками.
Эмуляция MPLAB-ICE, PICMASTER-CE и PICMASTER
Применяются для моделирования работы микроконтроллера в устройстве пользователя в масштабе реального времени.
Рисунок 3 - Окно MPLABIDE
2. Структурная схема
Структурная схема показана на рисунке 4.
Рисунок 4 - Структурная схема
Для чего нужен микроконтроллер
Микроконтроллер будет управлять нашим устройством, периодически посылать сигнал на датчик, после чего получать от него ответ и выводит данные на экран индикатора
Для чего нужен термодатчик
Термодатчик будет измерять аналоговую величину температуры, транслировать ее в цифровой код для микроконтроллера, после он сохранит значение в памяти и передаст сигнал о завершение своей работы микроконтроллеру.
Для чего нужен семи-сегментный индикатор: для отображения наших данных.
Для чего нужны клавиши Старт/Останов: c помощью клавиш сможем запускать и выключать наше устройство.
2.1 Описание принципа действия и общий алгоритм работы
Сначала подключаем питание к термометру, после чего микроконтроллер произведет настройку всех нужных портов, а также проведет общую конфигурацию. Затем запустим цикл для работы микроконтроллера. После чего он будет ожидать нажатие кнопки “Страт/Остановка” для старта измерения температуры. Сначала запускается датчик, после него интерфейс 1-wire отправляет команду выбора датчика. Теперь отправим команду преобразования температуры в цифровой код на датчик. Так как преобразование происходит с определенной задержкой то микроконтроллер будет ждать ответа от датчика путем опрашивания порта вывода данных. Наш датчик будет работать с погрешность 0,5 градуса Цельсия. После завершения преобразования данных в цифровой код микроконтроллер считает их из памяти датчика и перенаправит их на индикатор для отображения.
2.2 Блок-схема работы микроконтроллера датчик температура микроконтроллер программатор
Блок-схема работы микроконтроллера показана на рисунке 5.
Рисунок 5- Блок-схема работы микроконтроллера
3. Разработка функциональной и принципиальной схем устройства
3.1 Принципиальная схема устройства
На рисунке 6 показана схема устройства
Рисунок 6 - Принципиальная схема устройства
Схема - графическое изображение с помощью условных графических и буквенно-цифровых обозначений связей между элементами.
На схеме отлично видно, как элементы связаны, а также какие из них с взаимодействуют с другими элементами устройства.
Главный минус схемы она не показывает физическое местоположение объектов на печатной плате.
3.2 Функциональная схема устройства
Функциональная схема устройства показана на рисунке 7.
Рисунок 7- Функциональная схема устройства
Под управлением МИКРОКОНТРОЛЛЕРАРІС16f628. Для связи с индикатором, воспользуемся портами ВЫВОДАМИRA2, RA3, RA6 для отображения сегмента на индикаторе воспользуемся портами ВЫВОДАМИRB0-RB6.
Для связи с термодатчиком используется порт вывод RA1.
Клавиша "Старт/Останов" подключим к порту RA7
4. Разработка алгоритмов
4.1 Алгоритм инициализации датчика
Для запуска устройства с помощью интерфейса 1-wire нужно подать импульс низкого напряжения примерно на 500 мкс, после этого возобновить сигнал и подождать еще столько же.Ниже приведен код инициализации датчика (рисунок 7):
Рисунок 7 - Алгоритм инициализации датчика
На рисунке 8 показан алгоритм отправки байта данных датчику.
Рисунок 8 -Алгоритм отправки байта данных датчику
Для отправки данных по байтам мы будем использовать кратковременное низкое напряжение и высокое.
"Провал" шины на 60 мс соответствует логической единице.
Кратковременный провал и поддержка высокого уровня на 60 мс - нулю. Под блок схемой (рисунок 9) идет код для отправки байтов (рисунок 10).
Рисунок 9- Блок схема
Рисунок 10 - Алгоритм получения одного байта от датчика
Для получения байта от датчика подается низкий уровень напряжения на датчик, после небольшой задержки опрашивается порт. Датчик поддерживает нулевой потенциал на шине, если разряд равен нулю, на протяжении 60 мкс.
Код функции для получения байта от датчика (рисунок 11):
Рисунок 11 - Получения байта от датчика
На рисунке 12 показана структура программы:
Рисунок 12- Структура программы
На рисунке 13 показан код программы:
Рисунок 13 - Кол программы
5. Технология отладки программы
Пришло время для отладки нашей программы. Для этого воспользуемся программой MPLABIDE. Является довольно дружелюбной средой разработки, но самый большой плюс это встроенный компилятор ассемблера. На рисунке 14 показана отладка программы.
Рисунок 14 - Откладка программы
Код будем писать на языке С в программе HI-TECHC Compiler (рисунок 15).Для успешной работы нам надо синхронизовать MPLABIDE ИНІ-TECHCCOMPILER.
Рисунок 15 - Компилятор HI-TECHC
В HI-TECHCCOMPILER мы можем выбрать на каком микроконтроллере будем работать, а также настроить его по вашему вкусу. Ниже отрывок из листинга программы (рисунок 16).
Рисунок 16 - Отрывок из листинга программы
6. Моделирование
Смоделируем наш термометр в Proteus 7.7Professional.
Термодатчик DS18S20 1 - заземляющий вывод 2 - вывод на шину данных 3 - вывод основного питания
Блок из четырех семи-сегментных индикаторов A-G - входы соответствующих сегментов DP - вход сегмента-точки 1-4 - вход позиции отображаемого символа
Управляющая клавиша. При щелчке мышью по значку клавиши, контакт замыкается. При повторном щелчке - размыкается. Клавиша должна находиться в нормально-разомкнутом состоянии. Для подачи управляющего сигнала нужнозамкнуть контакт и сразу же разомкнуть.
Резистор 4.7 КОМ. Используется для зануления порта RA7 при разомкнутой клавише управления.
Подтягивающий резистор шины данных термодатчика. Нужен для установки на шине высокого уровня при отключении соответствующего порта (вернее, при переключении его на ввод). Еще этот резистор позволяет датчику работать в режиме паразитного питания.
Осциллограф. Использовался для отслеживания сигналов на шине данных термодатчика.
Настало время писать прошивку для нашего микроконтроллера. В среде разработки MPLAB IDE создадим проект для нашего микроконтроллера с указанием базовой конфигурации, а так же добавим в наш файл расширением .С для облегчения работы в HI-TECH C Compiler.На рисунке 17 показано окно подтверждения.
Рисунок 17- Окно подтверждения
Для редактирования нашего файла будем использовать Notepad который поддерживает просто огромное колво расширений, а также делает цветовую разметку файла в зависимости от расширения файла.
Запустим и скомпилируем прошивку в HI-TECH C Compiler после успешной компиляции он выдаст нам файл с расширением .hex, которые позже мы запишем на микроконтроллер с помощью программатора. На рисунке 18 показан результат компиляции.
Рисунок 18- Результат компиляции
Запустим нашу схему ВPROTEUSИ поместим полученный нами файл в наш микроконтроллер. Для этого зайдем в настройках микроконтроллера и напишем путь, где храниться наш .hex файл. После чего мы можем запустить нашу схему и наслаждаться как она работает. На рисунке 19 показан вывод hex файла.
Рисунок 19- Вывод hex файла
Проверить работу схемы можно с помощью осцилографа при передаче информации ввиде байтов между микроконтроллером и датчиком (рисунок 20).
Рисунок 20- Осциллограф
Теперь проверим состояние регистров памяти (рисунок 21).
Рисунок 21 - Проверка состояния регистров
Результаты моделирования
Положительные показания (рисунок 22).
Рисунок 22 - Положительные показания прибора
Отрицательные показания (рисунок 23).
Рисунок 23 - Отрицательные показания прибора
Эмуляция в среде Proteus прошла успешно. Пришла пора перейти к сборке настоящего термометра, а так же написания прошивки для микроконтроллера чтоб термометр показывал верные данные.
7. Сборка устройства и программирование устройства
7.1 Сборка устройства
Приступим к сборке нашего термометра. Для начала распакуем детали которые мы заказали на ebay (рисунок 24).
Рисунок 24 - Распакованные детали
Длинный черный провод с цветным проводками и металлической трубкой на конце это термодатчик. Внутри металлической трубки находиться сам датчик, а также преобразователь и оперативная память датчика.
Микроконтроллер лежит на боку, небольшой чип выше индикатора. Он управляет работой устройства и его мы программируем в MPLABIDE.
Большой коричневый прямоугольник по центру - это печатная плата, на которой мы будем паять устройство.
Справа от платы находиться семи-сегментный индикатор, на который мы будем выводить информацию.
Маленькая гантель - это резистор на 20КОМ.
Правее от него находиться кварцевый резонатор.
Для начала узнаем на на какой ноге индикатора, какие сегменты находятся. С помощью мультимера и схемы индикатора мы сможем узнать где и что находиться.
Рисунок 25 - Мультимер и схма сегмента.
С помощью рисунка 26 «Схема ног» мы определяли где какой сегмент. Т.е. подносили мультимер к двум ногам одной сверху и синзу чтобы найти что для чего.
Рисунок 26- Схема ног
Под первой, третей, пятой и седьмой ногой находятся цифры на индикаторе под девятой ногой находится двоеточие по середине экрана, вторая, четвертая, шестая, восьмая, десятая, одиннадцатой и двенадцатой ногой находятся сегменты, указанные на рисунке 26.
Для того чтобы лучше понять устройство микроконтроллера рассмотрим его схему (рисунок 27).
Рисунок 27 - Схема микроконтроллера
Нам нужны 1,2,15 которые будут отвечать за цифры на индикаторе. С 6-13 будут отвечать за сегменты цифр на индикаторе. Нога 18 будет отвечать за подключение к датчику и 16 нога будет отвечать за подключение к сети.
Вот так будет выглядеть наш конечный вариант термометра (рисунок 28).
Рисунок 28- Собранный термометр
7.2 Программирование устройства
Для начала откроем MPLABIDE. В этом окне нам предстоит теперь работать (рисунок 29). Здесь показаны 3 основных окна которыми мы будем использовать в нашем программе. Маленькое окошко слева это окно проекта. Будет содержать файлы и дополнительные библиотеки для проекта. Среднее окно по середине используется для написания кода. Последнее окно Output используется для вывода информации об успешности компиляции программы или указывает, а ошибки если произошел сбой.
Рисунок 29 - MPLABIDE
Теперь создадим проект. С указанием нашего PIC16f628A контроллера как устройства, которое мы будем программировать и выберем HI-TECH C Compiler как устройство компиляции проекта. В окошке дерева появились папки, в которые мы будем добавлять файлы для нашего проекта. Окно output теперь показывает директорию хранения проекта (рисунок 30).
Рисунок 30 - Создание проекта
Теперь добавим файл с разращением .с в папку sourcefiles и начнем писать код. Сначала иницилизируем регистры с которыми наша программа будет работать. После чего выделим 3 порта на вывод информации (рисунок 31).
Рисунок 31 - Инициализацияя регистров
После чего напишем функции с которыми будет работаь микроконтроллер (рисунок 32). Также мы отключим компаратор так как он может стать источником погрешностей нашего термометра.
Это будут функции: простой задержки;
задержка на 10 микросекунд;
задержка на милисеккунду;
иницализация датчика;
чтения байта;
записи байта;
дисплея.
Рисунок 32 - Функции
Теперь проведем компиляцию нашего кода чтобы проверить его на ошибки и работоспособность. Зайдем в меню проекта и запустим компилятор после чего он выведет информацию о проекте, а также результат компиляции в онко output (рисунок 33). После компиляции можно приступить к записи на программы с помощью программатора на микроконтроллер.
Рисунок 33 - Успешная компиляция
Для записи программы на микроконтроллер нам понадобиться программатор (рисунок 34). Как видно на программаторе уже находиться наш микроконтроллер и он готовк записи. Когда программатор будет подключен к компьютеру в нижнем правом углу загорится индикатор зеленого цвета, который сообщит о том что есть подключение к компьютеру и мы можем приступать к записи программы на микроконтроллер. Компилированый файл из расширения .c переходит в расширение .hex, что соответствует файлам с машинным кодом и делает их возможным для чтения микроконтроллера.
Рисунок 34 - Программатор
Теперь в MPLABIDE зайдем в меню programmer и выберем наш программатор то есть PICKIT2 который мы используем для записи на микроконтроллер (Рисинук 35). В окне программатора указан наш микроконтроллер на который мы хотим записать программу. Так же там указана информация что программатор подключен и готов к использыванию. В окне программатора видно несколько кнопок Read, Write, Verify, Erase. Кнопка Read позволяет считывать информацию с микроконтроллера. В данный момент наш микроконтролел пуст это можно узнать по второму окошку внизу в котором отображается состояние памяти микроконтроллера. Кнопка write позволяет записать программу на микроконтроллер и после чего окошко внизу изменит свое содержание. Кнопка Verify позволяет проверить содержимое записанной программы в микроконтроллер с содержимым программы записанной на компьютере. И последняя кнопка Erase позволяет стереть все данные с микроконтроллера.
Рисунок 35 - Интерфейс программатора
Теперь импортируем наш .hex файл в программатор и запишем его наконец на микроконтроллер. Как видно (рисунок 36) все прошло успешно наша программа успешно записалась на микроконтроллер и теперь мы можем собрать их вместе.
Рисунок 36 - Загрузка программы
8. Экономическая часть
8.1 Экономическая эффективность
Основной задачей экономического обоснования проектируемого программного комплекса является определение экономического и социального эффекта от его разработки.
Эффект есть сумма двух моментов: во-первых, разницы между результатами и затратами, свидетельствующей о положительном «сальдо», т.е. о пользе, принесенной человеческими усилиями; и, во-вторых, способности этой разницы удовлетворять реальные жизненные потребности общества, людей. Нет эффекта от любого вида деятельности, если вследствие ее нет прироста материальной и духовной продукции, улучшения социальных условий жизни. Но нет его и тогда, когда прирост имеется, однако он «пустой», ибо не используется для нужд людей, решения их проблем.
Различают четыре вида эффекта: производственный эффект;
экономический эффект;
социальный эффект;
экологический эффект.
В мире, где давно признаны постулаты свободных рыночных отношений, практически нигде не считается достаточным произвести продукт, поскольку его необходимо ввести в стадию обращения (распределения и обмена) и реализовать покупателю. Тем самым для большинства производителей воспроизводственный цикл завершается в момент не производства, а совершения акта купли-продажи. И здесь возникает экономический вид эффекта.
Экономический эффект предполагает какой-либо полезный результат, выраженный в стоимостной оценке. Получение экономического эффекта является основной целью всех производителей в рыночной экономике, и вполне логично, что на это направлены усилия соответствующих субъектов управления, в том числе и государственного управления.
Для общества большой интерес заключается не только в стадиях производства, распределения и обмена, но и в стадии потребления. Мало приобрести продукт, надо его использовать для удовлетворения соответствующей потребности. Порой даже весьма дорогостоящий продукт при его потреблении не способен удовлетворить, казалось бы, адекватную ему потребность. Следовательно, необходимо и знание того, как ведет себя продукт в стадии потребления и какую здесь приносит пользу людям, обществу. К этому ведет социальный вид эффекта.
Социальный эффект показывает актуальность, рациональность и эффективность любого труда, в том числе и затрачиваемого на стадии потребления. Он основан, как правило, на высоком качестве и современных технико-технологических показателях продукции.
Основанием для внедрения и использования любого проекта или системы является повышение эффективности работы или производства и в конечном итоге повышение прибыли. Экономические оценки затрат и эффективности играют важную роль при проектировании и организации любого вида деятельности. Чтобы определить экономические показатели, необходимо учесть целый ряд различных факторов. Одни факторы могут порождать другие, которые в свою очередь нуждаются в проверке и оценке. Для создания проекта разработки мобильного приложения необходимо произвести следующие расчеты: затраты на оборудование и программное обеспечение, затраты на электроэнергию, затраты на амортизационные отчисления, затраты на оплату труда разработчика.
8.2 Расчет затрат на материальное обеспечение
Из таблицы 2 видно, что затраты на материальное обеспечения для разработки программного продукта составляют ЗМО = 114840 тг.
Таблица 2 - Затраты на приобретение оборудования и лицензионного программного обеспечения
Наименование Ед. изм. Количество Стоимость за единицу (тг) Общая стоимость (тг)
Ноутбук ASUS E502SA шт 1 100500 100500
LED-
Вывод
В данной дипломной работе были описаны основные проблемы измерения температуры, способы и походы для их решения. Были затронуты основные алгоритмы измерения температуры. В ходе работы был собрано устройство для дистанционного измерения температуры.
Проведя анализ проблемы измерения и контроля температуры можно утверждать, что успехи есть, но они пока не впечатляют. Так как пока человек научился контролировать температуры только закрытых пространств.
При выборе алгоритма были изучены основные методы и способы решения данной задачи и был выбран способ производства устройства на PIC контроллере. Данный контроллер имеет гибкость в плане дополнительных деталей, а также отличается дешевизной в производстве устройств на его основе. Датчиком температуры был выбран DS18B20 так как позволяет работать как на месте, так и дистанционно, а также имеет маленькую погрешность всего 0,5 градусов Цельсия.
Для написания прошивки был выбран язык С так на нем писать на много удобней чем на ассемблере. После этого было выбрана среда разработки MPLABIDE которая создана тем же разработчиком что и PIC контроллер. Кроме этого MPLABIDE содержит документацию просто на любой чип, который был создан компанией разработчиком и позволяет прошить микроконтроллер с помощью любого программатора если он есть в базе. Для проверки работы перед настоящей сборкой использовалась программа Proteus 7.7. Данный эмулятор позволят создать схему устройства и тут же ее прошить и проверить работу кода.
Создание устройств для применения в различных сферах. Возможно работа на месте или дистанционно. Затраты, потраченные на производство одного термометра, не окупают себя, но для использования в коммерческих целях необходимо набраться опыта при сборке данных устройств и иметь большее колво запчастей, так как затраты на производство одного устройства будут уменьшаться, также будет уменьшатся время на производства одного устройства. При создании потокового производства таких термометров понадобиться мало времени на окупаемость продукта.
Считаю, что данный программный продукт выполнен на должном уровне, цели и задачи, поставленные в дипломной работе достигнутыми.
Список литературы
1 "Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 1" Заец Н. И.
2 "Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 2"Заец Н. И.
3 Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 3" Заец Н. И.
4 "Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 4" Заец Н. И.
5 "PIC - микроконтроллеры. Все, что вам необходимо знать" Катцен С.
6 "Полное руководство по PIC-микроконтроллерам" Кениг А. и М.
7 "Справочник по PIC - микроконтроллерам" Предко М.
8 "PIC-микроконтроллеры. Практика применения" Тавернье К.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы