Разработка цифрового термометра. Курсовая работа (т). Информатика, ВТ, телекоммуникации.

👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!
Похожие работы на - Разработка цифрового термометра
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Нужна качественная работа без плагиата?
Не нашел материал для своей работы?
Поможем написать качественную работу Без плагиата!
. Выбор и обоснование основных технических решений
.2 Возможные варианты решения поставленной задачи,
обоснования выбора
.2.1 Выбор способа измерения температуры
.2.2 Выбор устройства отображения информации
.1 Описание принципа действия и общий алгоритм работы
.2 Блок-схема работы микроконтроллера
. Разработка функциональной и принципиальной схем устройства
4.1 Алгоритм инициализации датчика
.2 Алгоритм отправки байта данных датчику
.3 Алгоритм получения одного байта от датчика
Измерение, контроль и регулирование температуры является одной из
неотъемлемых и важных задач в современном мире. Такая задача стоит и перед
промышленностью, и перед сельским хозяйством, и в быту и даже в области высоких
технологий. В разных случаях задача регулирования температуры имеет свою
индивидуальную цель и метод решения.
Главное преимущество использования электронного термометра является
возможность контролировать температуру на расстоянии. Если нужно контролировать
температуру, например, в подвале дома, на чердаке или в любом подсобном
помещении, обычный ртутный (спиртовой) или механический термометр вряд ли
подойдет, т.к. будет проблематично постоянно выходить из комнаты, только чтобы взглянуть
на шкалу термометра. Более пригоден в подобных случаях электронный термометр,
позволяющий измерять температуру дистанционно - на расстояниях в сотни метров.
Причем в контролируемом помещении будет располагаться лишь миниатюрный
термочувствительный датчик, а в комнате на видном месте - ЖКИ, отображающий
текущую температуру.
Разработать аппаратные и программные средства для реализации цифрового
термометра. Термометр должен соответствовать требованиям:
Ø сфера применения: измерение температуры воздуха (или воды при
доработке защиты датчика от влажности);
Ø диапазон измеряемой температуры: -50… +99º
С;
Ø погрешность измерений: ±0.5 º С (в диапазоне от -10 до +85
º С);
Ø использование доступных, энергоэкономичных, дешевых элементов
для возможности последующей реализации разработанного устройства.
Основным источником информации в данной конструкции является термодатчик.
Он должен в зависимости от величины аналогового сигнала (температуры)
формировать определенный цифровой код, который должен быть доступен для
считывания микроконтроллером.
Еще один источник информации - кнопка старта/останова измерений.
Для случая получения информации от термодатчика приемником информации
является контроллер, который обрабатывает входные данные и периодически
отправляет их на цифровой индикатор.
А для случая считывания данных с цифрового индикатора приемником информации
можно считать пользователя, который получает данные температуры и обрабатывает
их , принимая какие-либо решения.
В ходе проектирования данного устройства было рассмотрено несколько
способов измерения температуры. Первый основан на использовании терморезистора
или термопары, протекающий ток которых пропорционален величине температуры. Для
оцифровки данного сигнала нужен дополнительный аналогово-цифровой
преобразователь. Полученный результат нужно еще масштабировать в соответствии
со шкалой Цельсия. Наибольшая сложность в том, что зависимость измеренной
величины от температуры могла бы получиться не прямой. Вряд ли данный способ
дал хорошую точность. Еще и нужно реализовать устройство передачи данных от АЦП
микроконтроллеру. Так как большая часть выходов портов занята под цифровой
индикатор, то параллельный способ передачи данных возможен только при введении
дополнительных адресных селекторов или при последовательной передаче данных,
что значительно усложняет устройство. Еще и невозможно было бы подключать
несколько датчиков к одной линии, что ограничивает возможности
усовершенствования прибора.
В термометре было решено использовать датчик температуры DS18B20.
Данное устройство хорошо согласуются с микроконтроллером. Термодатчик
DS1820 имеет следующие технические характеристики:
Ø индивидуальный 64-битный идентификационный номер;
Ø напряжение питания от +3 до +5,5 В;
Ø измеряемая температура от -55 до +125°С;
Ø погрешность измерения температуры в диапазоне -10...+85°С не
более 0,5°С;
Ø в остальном диапазоне температур погрешность измерения не
превышает 2°С;
Ø информация о температуре выдается 9-битным кодом;
Ø максимальное время преобразования температуры в код 750 мс;
Ø возможность питания от высокого уровня шины данных;
Ø термодатчики не требуют индивидуальной настройки при замене.
Термодатчик типа DS18B20 отличается от DS1820 способностью измерять температуру
с четырьмя уровнями погрешности - 0,5; 0,25; 0,0625°С. При этом максимальное
время измерения для каждого уровня составляет соответственно 93,75; 187,5; 375;
750 мс. Необходимая погрешность измерения может быть задана при инициализации
термодатчика.
Термодатчики выпускают в двух типах корпусов: ТО-92 и SOIC.
DS18B20 обменивается данными по 1-Wire шине и при этом может быть как
единственным устройством на линии так и работать в группе. Это также послужило
ключевой особенностью в пользу выбора датчика, т. к. позволяет впоследствии
модернизировать устройство путем добавления новых датчиков.
Другая особенность DS18B20 - способность работать без внешнего питания.
Эта возможность предоставляется через подтягивающий резистор. Высокий сигнал
шины заряжает внутренний конденсатор (CPP), который питает прибор, когда на
шине низкий уровень. Этот метод носит название "Паразитное питание".
При этом максимальная измеряемая температура составляет + 100 °C. Для
расширения диапазона температур до + 125 °C необходимо использовать внешнее
питание.
Основные функциональные возможности DS18B20 - его температурный
преобразователь.
Чтобы начать температурное измерение и преобразование, ведущий должен
подать команду начала конвертирования температуры [0х44]. После
конвертирования, полученные данные запоминаются в 2-байтовом регистре
температуры в оперативной памяти, и DS18B20 возвращается к неактивному
состоянию. Если DS18B20 включен с внешним питанием, ведущий может
контролировать конвертирование температуры (после команды [0х44]) по состоянию
шины. DS18B20 будет формировать (ответ на слот времени чтения от устройства
управления) логический "0" когда происходит температурное
преобразование. И логическую "1", когда конвертирование выполнено.
Если DS18B20 включен с паразитным питанием, эта технология уведомления не может
быть использована, так как шину нужно подать высокий уровень (напряжение
питания) в течение всего времени температурного преобразования. В этом случае
устройство управления должно самостоятельно контролировать время
конвертирования.
Выходные температурные данные DS18B20 калиброваны в градусах Цельсия.
Температурные данные запоминаются как 16-битовое число со знаком (см. рис. 2).
Биты признака (S) указывают, является ли температура положительная или
отрицательная: для положительных S = 0, а для отрицательных чисел S = 1. Если
DS18B20 будет настроен для конвертирования 12-битной разрешения, то все биты в
температурном регистре будут содержать действительные данные. Для 11-битной
разрешающей способности, бит 0 неопределен. Для 10-битной разрешающей
способности, биты 1 и 0 неопределенны, и для 9 битной разрешающей способности
2, 1 и 0 неопределенны.
Были рассмотрены возможности использования LCD дисплея без подсветки и семисегментного индикатора.
Основной плюс LCD - простой вывод информации без
дополнительных преобразований кодов и небольшое энергопотребление, что
позволило бы использовать в качестве источника питания устройства
гальванические элементы.
Все же было решено использовать блок семисегментных индикаторов, т.к. он
более доступен и имеет подсветку, что позволяет использовать устройство в
темное время суток. Есть широкий выбор таких индикаторов, можно использовать
практически любые. Кроме того, можно самостоятельно изготовить индикаторы из
цепочек светодиодов. В стационарном режиме работы термометра это позволит
сконструировать индикаторы больших размеров. При определенном навыке
изготовления таких устройств можно продавать их за немалые деньги.
В качестве устройства управления должен быть выбран микроконтроллер,
обладающий хорошими техническими характеристиками, иметь, а также иметь
относительно невысокую стоимость.
Также необходимо определить количество необходимых для работы портов,
которые должен иметь микроконтроллер.
Причины выбора микроконтроллера PIC16f628A
Ø Прямая, косвенная и относительная адресация
Ø Внешний и внутренний режимы тактового генератора
Ø Программируемые подтягивающие резисторы на входах PORTB
Ø Сброс по снижению напряжения питания BOR
Ø Широкий диапазон напряжения питания от 2.0В до 5.5В
Ø Промышленный и расширенный температурный диапазон
каналов ввода/вывода с индивидуальными битами направления
Сильноточные схемы портов сток/исток, допускающих непосредственное
подключение светодиодов.
каналов ввода/вывода вполне достаточно для подключения датчика и
индикаторов. Еще и остаются свободные каналы, например, для добавления новых
линий датчиков и кнопок при модернизации устройства.
Кроме того, данный микроконтроллер поддерживает интерфейс работы с
устройствами 1-Wire, что дает
полную совместимость его с выбранным мной датчиком DS18B20. Подтягивающие
выходные транзисторы микроконтроллера позволяют использовать функцию
"паразитного" питания датчика.
Данный микроконтроллер имеет довольно небольшую цену, в сравнении с
другими подобными.
Назначение микроконтроллера PIC16f628A
Осуществляет управление всей системой, а именно: периодически опрашивает
датчик, обрабатывает полученные данные, раскладывает данные в вид, удобный для
вывода на семисегментные индикаторы.
Термодатчик измеряет аналоговую величину температуры, преобразует ее в
цифровой вид по запросу микроконтроллера, сохраняет полученное значение в своей
памяти, выдает микроконтроллеру сигнал завершения температурного
преобразования. Назначение блока семисегментных индикаторов. Отображает
информацию о температуре в цифровом виде.
Назначение блока клавиши Старт/Останов
Запускает, останавливает процесс опроса датчика и вывода информации на
индикаторы.
После подачи питания на устройство, микроконтроллер производит настройку
портов, общее конфигурирование, например, отключение компаратора. После этого
запускается основной цикл работы микроконтроллера. На этом этапе
микроконтроллер дожидается нажатия клавиши "Старт/Останов" для начала
измерений. Вначале инициализируется термодатчик. Так как на линии только один
датчик, отправляется команда интерфейса 1-Wire выбора всех датчиков. Затем отправляется команда
начала температурного преобразования. Так как для температурного преобразования
нужно определенное время, микроконтроллер ожидает от датчика сигнала завершения
температурного преобразования. Для этого он в цикле опрашивает состояние порта
датчика, настроенного на ввод данных. Настройка точности преобразования не
производится, т.к. для данной работы достаточно точности 0.5 градуса Цельсия.
После получения сигнала завершения температурного преобразования, датчик вновь
инициализируется и считывается содержимое его памяти. Считанные данные
преобразуются в вид, удобный для вывода на индикатор, определяется знак числа.
Если оно отрицательное, то происходит преобразования из дополнительного кода в
прямой код. Затем происходит вывод данных на семисегментный индикатор.
Опрашивается порт, к которому подключена клавиша управления. Если клавиша
нажата, микроконтроллер переходит в цикл ожидания.
3. Разработка функциональной и принципиальной схем устройства
Данная принципиальная электрическая схема - графическое изображение с
помощью условных графических и буквенно-цифровых обозначений (пиктограмм)
связей между элементами проектируемого устройства.
На ней видно как между собой связанны составные элементы системы:
микроконтроллер, блок семисегментных индикаторов, термодатчиков.
В отличие от разводки печатной платы эта схема не показывает взаимного
(физического) расположения элементов, эта лишь указывает на то, какие элементы
с какими соединяются.
Устройство управляется микроконтроллером PIC16f628.
Для связи с семисегментным индикатором, используются выводы RA2, RA3, RA6
порта PORTA для передачи номера позиции
отображаемого символа и выводы RB0-RB6 порта PORTB для включения конкретного сегмента.
Для связи с датчиком используется вывод RA1 порта PORTA.
Клавиша "Старт/Останов" подключена к порту RA7
Для инициализации устройства интерфейса 1-Wire необходимо подать на устройство единичный импульс,
"провалить" шину примерно на 500 мкс, затем возобновить единичный
сигнал и подождать еще 500 мкс.
Код процедуры инициализации датчика:
Код процедуры отправки байта датчику
Для отправки единицы подается кратковременный низкий уровень, затем
высокий уровень на 60 микросекунд.
Для отправки нуля подается сначала низкий уровень на 60 микросекунд,
затем кратковременный высокий импульс.
Для получения очередного разряда от датчика подается низкий уровень на
датчик, производится небольшая задержка, затем опрашивается порт. Датчик
поддерживает нулевой потенциал на шине, если разряд равен нулю, на протяжении
60 мкс.
Код функции для получения байта от датчика:
В качестве основной среды для написания кода программы и его отладки я
использовал приложение MPLAB IDE, являющимся
стандартным средством разработки кода для микроконтроллеров PIC. Так как приложение имеет только
встроенный компилятор ассемблерного кода, мне пришлось использовать внешний
компилятор кода на языке Си.
Я использовал компилятор кода на языке Си HI-TECH C Compiler.
Для синхронизации приложения написания кода и компилятора при создании
проекта в мастере проектов указал в качестве приложения компиляции HI-TECH C Compiler.
Так же в мастере была возможность выбора используемого микроконтроллера и
настройки его начальной конфигурации. Например, указание частоты тактового
генератора. Ниже приведен фрагмент листинга программы, полученного на этапе
компиляции
Для моделирования работы цифрового термометра использовалась программа Proteus 7.7 Professional.
Использовались следующие компоненты:
Микроконтроллер PIC16f628A. RA0-RA7
- выводы порта PORTA RB0-RB7
- выводы порта PORTB
Блок из четырех
семисегментных индикаторов A-G - входы соответствующих сегментов DP
- вход сегмента-точки 1-4 - вход позиции отображаемого символа
Управляющая клавиша. При
щелчке мышью по значку клавиши, контакт замыкается. При повторном щелчке -
размыкается. Клавиша должна находиться в нормально-разомкнутом состоянии. Для
подачи управляющего сигнала нужно замкнуть контакт и сразу же разомкнуть.
Резистор 4.7 кОм.
Используется для зануления порта RA7 при разомкнутой клавише
управления.
Подтягивающий резистор шины
данных термодатчика. Нужен для установки на шине высокого уровня при
отключении соответствующего порта (вернее, при переключении его на ввод). Еще
этот резистор позволяет датчику работать в режиме паразитного питания.
Осциллограф. Использовался
для отслеживания сигналов на шине данных термодатчика.
Для получения кодов отображаемых на индикаторе символов, я собрал
следующую схему:
Последовательность разработки и отладки программного обеспечения
. Создал проект в вышеописанной программе MPLAB IDE для конкретного микроконтроллера с указанием
начальных параметров конфигурации, добавил в него файл с расширением ".c" - файл кода на языке Си.
. Редактировать файл Си в MPLAB IDE оказалось неудобно. Открыл файл в Visual Studio, после внесения изменений и сохранении файла при
переключении в MPLAB IDE он автоматически обновлял проект,
предварительно запросив подтверждение:
3. Запускал трансляцию и компиляцию проекта. За этот этап отвечает HI-TECH C Compiler, синхронизированный с MPLAB IDE (см. пункт 6 "Технология отладки
программы").
Результаты компиляции можно посмотреть в окне "Output".
3. В результате компиляции получается выходной файл с расширением
".hex", находящийся в корневом
каталоге проекта.
В Proteus в настройках микроконтроллера
необходимо прописать путь к нему. Это требуется сделать лишь один раз. В
последствии можно запускать модель на выполнение сразу же после компиляции, что
существенно экономит время.
4. Тестировал модель и программное обеспечение путем отслеживания
уровней на входах и выходах с помощью подсветки сигналов и осциллографа
Так же иногда полезно просмотреть состояние регистров и памяти выбором
соответствующего пункта в контекстном меню модели микроконтроллера.
Вид осциллограммы передачи байта данных датчику
"Провал" шины на 60 мс соответствует логической единице.
Кратковременный провал и поддержка высокого уровня на 60 мс - нулю.
. "PIC16F62X Однокристальные 8-разрядные FLASH CMOS микроконтроллеры компании Microchip Technology Incorporated" - перевод компании ООО
"Микро-Чип", основанный на оригинальной документации
микроконтроллера.
. "Программирование на языке С для AVR и PIC микроконтроллеров" - Ю. А. Шпак.
по дисциплине "МПС" Курсовая работа (т). Информатика, ВТ, телекоммуникации.
Реферат: Rupert McCall Essay Research Paper Jason McCall
Курсовая работа по теме Разработка радиальной схемы цеховой электрической сети
Реферат по теме Организация воспитательной работы с осужденными
Сколько Стоит Заказать Курсовую
Курсовая работа по теме Анализ практической ситуации и разработка рекомендаций и мероприятий по решению выявленных проблем компании ОАО 'Диэлектрические кабельные системы'
Контрольная работа по теме Медико-санитарное обеспечение осуждённых
Принципы Таможенного Регулирования Реферат
Курсовая работа по теме Расчёт утилизационного котла судна
Контрольная работа по теме Ценообразование в рыночных условиях
Реферат по теме Понятие прав и свобод человека
Реферат по теме Разработка библиотечных средств
Реферат по теме Биологический редукционизм: расово-антропологическая школа
Реферат по теме Информационная революция в политических конфликтах
Ұлы Даланың Жеті Қыры Туралы Эссе
Мини Сочинение Профессия Моих Родителей
Доклад: Браницкий, Франциск Ксаверий
Доклад по теме Принцип неопределенности или почему Бог до сих пор идеален?
Реферат: Фэн-шуй. Скачать бесплатно и без регистрации
Эссе Лес Осень
Реферат по теме Термальные и минеральные воды Камчатки
Сочинение: Пушкин а. с. - Тема жизни и смерти в лирике а. с. пушкина
Контрольная работа: Развитие внимания
Реферат: Louis Riel Essay Research Paper Riel Louis