Разработка микропроцессорной системы на базе микроконтроллера для терморегулятора аквариума
СОДЕРЖАНИЕ: Функциональная спецификация и преимущества термометрического датчика. Структурная схема микроконтроллера РIС16F84A. Алгоритм работы программы, описание функциональных узлов, выбор элементной базы и принципиальная схема терморегулятора для аквариума.РЕФЕРАТ
Пояснительная записка состоит из 47 страниц, 12 рисунков, 7 источников.
Микроконтроллер, Жидкокристаллический индикатор, Термоэлектрический Датчик, ДИОД
Цель работы: разработка микропроцессорной системы на базе микроконтороллерадля автоматической регулировки температуры в аквариуме. Высокая точность регулировка, низкая инертность термоэлектрических датчиков позволяет более точно и глубоко поддерживать стабильную температуру в аквариуме, контролируя постоянно показания температуры на жидкокристаллическом индикаторе. Более высокая точность поддержания температуры достигается благодаря введению в схему двух датчиков и двух нагревателей.
Содержание работы: в работе выполнено построение структурной схемы, построение функциональной схемы, сформирован алгоритм работы системы, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, разработана программа, разработана принципиальная схема устройства.
СОДЕРЖАНИЕ
Введение
1. Описание объекта и функциональная спецификация
2. Описание структуры системы
3. Описание ресурсов МК PIC16F84А
4. Разработка алгоритма работы устройства
5. Ассемблирование
6. Программирование микроконтроллера
7. Описание функциональных узлов МПС
8. Описание выбора элементной базы и работы принципиальной схемы
Заключение
Список литературы
Приложение А. Листинг программы и объектный файл
Приложение Б. Коды прошивок микроконтроллера
Приложение В. Схема принципиальная электрическая
ВВЕДЕНИЕ
Целью данной работы явилась разработка прибора, предназначенного для автоматического регулирования температуры. Главная особенность терморегуляторов - простота схем при существенно более широких, чем у распространенных аналоговых, функциональных возможностях, отсутствие необходимости регулировки и настройки при изготовлении и эксплуатации.
Но наиболее существенным достоинством таких регуляторов является их исключительно простая модификация, - на основе практически одинаковых схемных и конструктивных решениях, могут быть построены регуляторы для самых различных применений, что резко упрощает их разработку, а, следовательно, и стоимость. Требуется лишь изменение программного обеспечения и, возможно, исполнительных узлов.
Среднетемпературные терморегуляторы предназначены для автоматического измерения и поддержания стабильной температуры, например, в термостатах, инкубаторах, теплицах и т.п.
Регуляторы температуры, или, как их еще называют, терморегуляторы, предназначены для поддержания заданной температуры жидкости (например, фотораствора, воды в аквариуме, воды в системе электрического водяного отопления), воздуха в теплице, в жилом помещении и пр. Принцип работы любого терморегулятора состоит в плавном или скачкообразном изменении мощности нагревательного элемента в соответствии с температурой датчика.
Существуют терморегуляторы со скачкообразным изменением мощности, при нагрузке которых нагревательный элемент отключается, как только температура датчика достигает определенного значения, и выключается при понижении температуры до ее заданного значения. Нагревательный элемент при этом находится в одном из двух состояний: включен или выключен, поэтому регулятор с таким законом управления часто называют релейным.
В настоящее время более тридцати зарубежных фирм выпускают микроконтроллеры массового применения с разрядностью 8 бит, недорогие и пригодные для использования в самых разнообразных приложениях. Однако именно микроконтроллеры серии РІС фирмы Microchip® TechnologyInc. переживают последние три-четыре года в Украине поистине взрывной рост популярности. Эти микроконтроллеры также крайне популярны во всем мире, как у производителей электронной техники, так и среди радиолюбителей.
В чем же причина такой популярности? Конечно, не последнюю роль сыграли правильная маркетинговая политика, мощная и продуманная поддержка разработчиков со стороны фирмы и низкая стоимость микросхем. Кроме этого, сам продукт обладает целым рядом неоспоримых достоинств. Микроконтроллеры РІС фирмы Microchip® объединили в себе все передовые технологии, применяемые в производстве микроконтроллеров: развитую RISC-архитектуру, минимальное энергопотребление при высоком быстродействии, ППЗУ, программируемое пользователем, функциональную законченность.
Четкая и продуманная внутренняя структура контроллеров и небольшая, но мощная система команд с интуитивно понятной мнемоникой значительно облегчают процесс изучения контроллеров РІС и написание для них программ.
В данном курсовом проекте реализована микропроцессорная система на базе микроконтроллера для терморегулятора аквариума. Проект основывается на микроконтроллере PIC16F84А.
1. Описание объекта и функциональная спецификация
Устройство отличается от известных измерителей температуры на DS1820 возможностью одновременной регулировки температуры в двух точках с точностью ±0,5° в интервале температур от -10 до +85 °С, малым временем реагирования 11,4 мс по сравнению с 1 с у прототипов. Устройство предназначено для работы с нагревателями и может быть использовано, например, для регулировки температуры в инкубаторе (выводной и инкубационный), аквариумах (видовой и нерестовый), в овощехранилищах в зимнее время или просто как измеритель температуры в доме и на улице.
Микроконтроллерный термометрический датчик DS1820 рассчитан на измерение температуры от -55 до +125 °С, но на границах предела точность измерения ухудшается до +2 °С. Управление нагревателями выполняется по принципу цифрового компаратора.
На однорядном ЖК-дисплее индикатора можно одновременно наблюдать текущую температуру в двух точках, температуру в различных точках и ее установленное значение. Прием данных, их обработка и выдача на индикатор выполняются микроконтроллером PIC16F84A.
Функциональная спецификация
1. Входы
a. 2 микроконтроллерных термометрических датчика DS1820
b. Кнопка запуска (включение питания)
c. Кнопка «Режим»
d. Кнопка «Установка»
e. Кнопка «Разряд»
2. Выходы
a. Жидкокристалический индикатор
b. Оптопары для управления нагрузкой (тенами, нагревателями)
3. Функции
a. Запись программы в память
b. Сравнение температуры термометрических датчиков с данными занесенными при установки программы
c. Включение нагрузки (тенов)
d. Индикация температуры на жидкокристаллическом индикаторе
e. Индикация программируемых данных (температуры)
2. Описание структуры системы
После определения входов и выходов устройства разработана структурная схема устройства.
Структурная схема регулятора температуры для аквариума показана на Рис. 1.
Датчики
Тены Оптопары
Жидкокрислаллический индикатор
Сеть
Рис.1. Структурная схема регулятора температуры для аквариума
3. Описание ресурсов МК PIC16F84А
В курсовом проекте был выбран однокристальный 8-разрядный FlashCMOS микроконтроллер PIC16F84А.
PIC16F84А - это 8-pазpядные микpоконтpоллеpы с RISC аpхитектуpой, пpоизводимые фиpмой Microchip Technology. Это семейство микpоконтpоллеpов отличается низкой ценой, низким энеpгопотpеблением и высокой скоpостью. Микpоконтpоллеpы имеют встpоенное ЭППЗУ пpогpаммы, ОЗУ данных и выпускаются в 18 и 28 выводных коpпусах.
Микpоконтpоллеpы семейства PIC имеют очень эффективную систему команд, состоящую всего из 35 инстpукций. Все инстpукции выполняются за один цикл, за исключением условных пеpеходов и команд, изменяющих пpогpаммный счетчик, котоpые выполняются за 2 цикла. Один цикл выполнения инстpукции состоит из 4 пеpиодов тактовой частоты. Таким обpазом, пpи частоте 4 МГц, вpемя выполнения инстpукции составляет 1 мксек. Каждая инстpукция состоит из 14 бит, делящихся на код опеpации и опеpанд (возможна манипуляция с pегистpами, ячейками памяти и непосpедственными данными).
Высокая скоpость выполнения команд в PIC достигается за счет использования двухшинной Гаpваpдской аpхитектуpы вместо тpадиционной одношинной Фон-Hеймановской. Гаpваpдская аpхитектуpа основывается на набоpе pегистpов с pазделенными шинами и адpесным пpостpанством для команд и для данных. Hабоp pегистpов означает, что все пpогpаммные объекты, такие как поpты ввода/вывода, ячейки памяти и таймеp, пpедставляют собой физически pеализоваенные аппаpатные pегистpы. Использование Гаpваpдской аpхитектуpы позволяет достичь высокой скоpости выполнения битовых, байтовых и pегистpовых опеpаций. Кpоме того, Гаpвадская аpхитектуpа допускает конвейеpное выполнение инстpукций, когда одновpеменно выполняется текущая инстpукция и считывается следующая. В тpадиционной же Фон-Hеймановской аpхитектуpе команды и данные пеpедаются чеpез одну pазделяемую или мультиплексиpуемую шину, тем самым огpаничивая возможности конвейеpизации, внутpенние физические и логические компоненты, из котоpых состоит PIC16FXX аналогичны любому дpугому микpоконтpоллеpу Гаpваpдская аpхитектуpа и большая pазpядность команды позволяют сделать код для PIC значительно более компактным, чем для дpугих микpоконтpоллеpов и существенно повысить скоpость выполнения пpогpамм.
PIC16F84A имеют встроенные устройства, присущие большинству прикладных систем, что позволяет снизить стоимость, потребляемую мощность и увеличить надежность конечного устройства. Например, встроенная схема сброса и запуска генератора позволяют избавиться от внешних RC схем. Предлагается четыре типа встроенных генераторов на выбор, включая экономичный LP (Low Power) и дешевый RC генераторы. Экономичный режим SLEEP, Watchdog таймер и устройство защиты кода программы снижают стоимость и увеличивают мощность плюс надежность вашей системы.
Микросхемы с ультрафиолетовым стиранием идеальны для процесса отработки программы. Одновременно существуют однократно программируемые (OTP) кристаллы. Здесь разработчик может извлечь полное преимущество из сочетания низкой цены и гибкости OTP версий.
Разработка на базе контроллеров PIC16C5X поддерживается ассемблером, программным симуляторомэмулятором (только фирмы Microchip) и программатором. Существуют все эти средства для IBM , внутрисхемным PC и совместимых компьютеров.
Серия PIC16F84A подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.). Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает серию PIC16F84A привлекательной даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Устройства серии PIC16F84A имеют большой выбор ПЗУ и ОЗУ разных размеров, разное количество линий ввода/вывода, различные виды возбуждения генераторов, разную скорость, климатику и типы корпусов. Из четырех кристаллов PIC16F84A можно выбрать устройство с подходящими ПЗУ/ОЗУ и конфигурацией ввода/вывода.
Устройства с ультрафиолетовым стиранием удобно использовать в прототипных и опытных партиях. Конфигурация генератора (RC, XT, HS, LP) программируется самим пользователем на UF EPROM. При UF стирании или по умолчанию устанавливается тип RC. В зависимости от выбранного типа генератора и частоты, рабочее напряжение питания должно быть в том же диапазоне, что будет и в будущем устройстве на OTP кристалле (если OTP предполагается использовать).
Тип генератора кристаллах OTP устанавливается на заводе и они тестируются только для этой специальной конфигурации, включая напряжение, частоту и ток потребления, см. Маркировка. Устройства выпускаются с чистым EPROM, что позволяет пользователю самому программировать их. Кроме того, можно отключить Watchdog таймер и/или защитy кода путем программирования битов в специальном EPROM. Также доступны 16 бит для записи кода идентификации (ID).
Обзор характеристик.
- только 33 простых команды;
- все команды выполняются за один цикл(200ns), кроме команд перехода- 2
цикла;
- рабочая частота 0 Гц ... 20 МГц(200 нс цикл команды)
- 12- битовые команды;
- 8- битовые данные;
- 512 ... 2К х 12 программной памяти на кристалле EPROM;
- 25 ... 72 х 8 регистров общего использования;
- 7 специальных аппаратных регистров SFR;
- двухуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
Периферия и Ввод/Вывод
- 12 ... 20 линий ввода-вывода с индивидуальной настройкой;
- 8 - битный таймер/счетчик RTCC с 8-битным программируемым
предварительным делителем;
- автоматический сброс при включении;
- таймер запуска генератора;
- Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
- EPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- программируемые EPROM биты для установки режима возбуждения встроенного генератора:
- RC генератор : RC
- обычный кварцевый резонатор : XT
- высокочастотный кварцевый резонатор : HS
- экономичный низкочастотный кристалл : LP
КМОП технология
- экономичная высокоскоростная КМОП EPROM технология;
- статический принцип в архитектуре;
- широкий диапазон напряжений питания:
- коммерческий: 2.5 ... 6.25 В
- промышленный: 2.5 ... 6.25 В
- автомобильный: 2.5 ... 6.0 В
- низкое потребление
20 mA типично для 6В, 20МГц
2 мА типично для 5В, 4МГц
15 мкА типично для 3В, 32КГц
3 мкА типично для SLEEP режима при 3В, 0 ... 70 С
Структурная схема микроконтроллера
Структурная схема микроконтроллера РIС16F84A изображена на рис
. 2.
Рис. 2. Структурная схема микроконтроллера РIС16F84A
Расположение выводов
Расположение выводов микроконтроллера РIС16F84A изображено на рис. 3.
Рис. 3. Расположение выводов микроконтроллера РIС16F84A
Исполнение микроконтроллера
Микроконтроллер выпускается в двух видах корпусов.
Расположение выводов и конструктивные размеры различных корпусов приведены на Рис. 4 и Рис.5.
Рис. 4. Конструктивные размеры микроконтроллера РIС16F84A
(исполнение 1)
Рис. 5. Конструктивные размеры микроконтроллера РIС16F84A
(исполнение 2)
4. Разработка алгоритма работы устройства
Алгоритм работы программы микроконтроллера показан на рис. 6.
Рис. 6. Алгоритм работы программы «терморегулятор для аквариума»
После пуска и инициализации регистров микроконтроллера выполняется самая продолжительная инициализация ЖК-дисплея. Далее проверяется состояние флага установки. Если установки нет, то на индикацию выводятся значения регистров текущего режима. Если идет установка, то проверяется флаг курсора. Если флаг курсора установлен, то индицируется курсор. При установке индикация курсора и значений регистров индикации выполняется поочередно.
После индикации программа переходит к инициализации и считыванию температуры с первого датчика DS1820. Микроконтроллер принимает девять бит информации с кодом знака температуры в девятом бите и значением десятых долей температуры в первом бите. Если девятый бит равен единице, то знак измеренной температуры отрицательный. При единичном первом бите десятые равны пятерке. Двоичное значение принятой температуры сравнивается с установленной температурой. Если измеренная температура больше установленной, то выключается управляющий выход. В противном случае выход включается. Для отрицательных установок при понижении температуры управляющий выход включается. Далее двоичное значение температуры перекодируется в двоично-десятиричный код для индикации (на рис. 6 не показано).
Аналогично первому выполняются считывание температуры из второго датчика и установка второго управляющего выхода. Поскольку вывод на индикацию занимает довольно много времени (8 мс), то он выполняется после шести циклов считывания температуры через 68 мс. Когда счетчик циклов будет равен нулю, проверяется состояние кнопок управления и по установленному режиму заполняются регистры индикации. После этого цикл индикации и измерения температуры повторяется. Цикл измерения температуры и установка управляющих выходов обоих датчиков выполняются за 11,4 мс/Таким образом, управление каждым нагревателем будет выполняться минимум один раз за период сетевого напряжения.
5. Ассемблирование
Для ассемблирования используется макpоассемблеp MPASM, он содеpжит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.
Листинг программы и объектный файл представлен в Приложении А.
6. Программирование микроконтроллера
После ассемблирования имеется объектный файл EXAMPLE.HEX, котоpый должен быть записан в микpосхему. Запись осуществляется пpи помощи пpогpамматоpа и пpогpаммы Pic-prog. Микросхему микроконтроллера вставляется в панель программатора. Программатор подключается к порту LPT1. Необходимо запустить программу Pic_prog.exe.Подать питание на программатор. Выполнить команду ЗАПИСАТЬ / ПАМЯТЬ ПРОГРАММ.
В течение следующих нескольких секунд будит выполняться процесс программирования, а затем проверка правильности записанных в микроконтроллер данных.
Коды прошивок микроконтроллера представлены в Приложении Б.
7. Описание функциональных узлов МПС
В проектируемом устройстве можно выделить следующие функциональные блоки:
1. Микроконтроллерный термометрический датчик DS1820 – первый;
2. Микроконтроллерный термометрический датчик DS1820 – второй;
3. Блок управления (три кнопки и выключатель питания);
4. Жидкокристаллический индикатор;
5. Стабилизатор напряжения;
6. Кварцевый резонатор;
7. Силовой блок-первый;
8. Силовой блок-второй;
9. Микроконтроллер.
Каждый блок выполняет свою функцию и имеет взаимосвязь с другими блоками системы.
8. Описание выбора элементной базы и работы принципиальной
схемы
Схема терморегулятора показана на рис.7 (Приложение В) . Резистором R8 устанавливают необходимую контрастность изображения индикатора. Все блоки устройства включены по стандартной схеме.
Работа с терморегулятором сводится к установке температуры регулирования для обоих датчиков. При включении устройства на дисплее появится значение температуры первого и второго датчика с указанием стрелочкой () номера датчика рис. 8. Нажатием кнопки «Режим» на дисплее последовательно будут появляться изображения, аналогичные показанным на рис. 9—12. На рис. 9, 10 левые цифры показывают текущую температуру соответствующих датчиков, а правые цифры — установленные значения температур. При включении режимов работы, показанных на рис. 11, 12, микроконтроллер переходит в режим установки. В этом режиме под устанавливаемым разрядом появляется мигающий курсор (на рисунках под знаком плюс). Кнопкой «Разряд» перемещают курсор по разрядам, а кнопкой «Установка» устанавливают необходимое значение температуры.
При установке нет ограничения по максимуму и минимуму, поэтому необходимо быть внимательным. Можно установить знак минус и не дождаться включения нагревателя, и наоборот, установить температуру регулирования более +125° и не дождаться выключения нагревателя. Во время установки сравнение температур не прекращается, поэтому нагреватели в это время желательно отключить. Поскольку установленные значения запоминаются в энергонезависимой памяти, то нагреватели можно подключить при выключенном напряжении.
При индикации и установке температур для 100 в разряде десятков будет индикация двоеточия (:), для 110 — точка с запятой (;), для 120 — обратная стрелка ().
Рис. 7. Принципиальная схема регулятора температуры в AccelEDA
Рис.8
Рис.9
Рис.10
Рис.11
Рис.12
ЗАКЛЮЧЕНИЕ
В результате выполнения курсовой работы был спроектирован микроконтроллерный регулятор температуры, позволяющий автоматизировать работу регулирования температуры в контролируемом объекте. Были рассмотрены несколько случаев реализации микроконтроллерного регулятора, таким образом можно говорить о некоторой универсальности спроектированного прибора.
Использование в работе микроконтроллера и оптронной технологии дает основание полагать, что спроектированный прибор найдет широкое применение.
СПИСОК ЛИТЕРАТУРЫ
1. Белов А.В. Микроконтроллеры АVR в радиолюбительской практике – СП-б, Наука и техника, 2007 – 352с.
2. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин [ и др.]. – М.: Энергоатомиздат, 1990. – 224 с.
3. Евстифеев А.В. Микроконтроллеры Microchip: практическое руководство/А.В.Евстифеев. – М.: Горячая линия – Телеком, 2002. – 296 с.
4. Кравченко А.В. 10 практических устройств на AVR-микроконтроллерах. Книга 1 – М., Додэка –ХХ1, МК-Пресс, 2008 – 224с.
5.Трамперт В. Измерение, управление и регулирование с помощью АVR-микроконтроллеров: Пер. с нем – К., МК-Пресс, 2006 – 208с.
6. Мортон Дж. Микроконтроллеры АVR. Вводный курс /Пер. с англ. – М., Додэка –ХХ1, 2006 – 272с.
7. Техническая документация на микроконтроллеры PIC16F84А компании MicrochipTechnologyIncorporated . ООО «Микро -Чип», Москва, 2002.-184 с.
ПРИЛОЖЕНИЕ А
Листинг программы и объектный файл
ПРИЛОЖЕНИЕ Б
Коды прошивок микроконтролллера
ПРИЛОЖЕНИЕ В
Схема электрическая принципиальная терморегулятора аквариума