Пристрій термоконтролю на базі мікроконтролера ATMEGA16
Розробка пристрою термоконтролю на базі мікроконтролера ATMEGA16, який через аналогово-цифрове перетворення визначає значення температури з заданим коефіцієнтом перерахунку. Мікроконтролер, його призначення у приладі. Параметри елементів системи живлення.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 15.09.2014 |
Размер файла | 829,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Зміст
Вступ
1. Мікроконтролер та його призначення у приладі
2. Аналіззмістузадачі
3. Розробка програми
4. Розробка схеми
Висновок
Список літератури
Вступ
Метою курсової роботи є розробка пристрою термоконтролю на базі мікроконтролера ATMEGA16, який би через аналогово-цифровеперетворення визначав значення температури. Курсова робота призначена для закріплення теоретичних та практичних навичок у програмуванні та налаштуванні мікроконтролерів.
Температура є фізичною величиною, яка характеризується внутрішньою енергією кіл і не підлягає безпосередньому методу вимірювання. Тому всі методи вимірювання температури основані на перетворенні її в іншу фізичну величину, яку можна виміряти безпосередньо.
В сучасному житті вимірювання температури займає важливу роль. В наукових дослідах та на виробництві, при дослідженні матеріалів і зразків вимірювання температури є найпоширенішим. Широкий діапазон вимірювальних температур і вимог до точності їх виміру спонукають до розробки нових пристроїв вимірювання. Одним з видів приладів для виміру температури являються цифрові термометри.
Цифрові термометри активно використовуються в повсякденному житті. Дешеві побутові термометри встановлюються в різних місцях для контролю температури на вулиці та усередині житлових будинків. Дорогі професійні термометри використовуються на виробництві для дотримання певних температур, адже мають кращу точність вимірювань.
Курсова робота має на меті поглиблення знань і розвиток практичних навичок з втілення алгоритмів роботи та розробки електронних пристроїв на основі мікроконтролера AVR-архітектури. Прилад, що буде розроблено в даній курсовій роботі також можна віднести до класу цифрових термометрів, а саме прилад який знімає значення наруги з аналого-цифрового перетворювача та перераховує її у еквівалентну їй температуру. Крім того, прилад буде відображати температуру процесу на індикаторі та порівнювати її з номінальною.
Основою приладу буде AVR мікроконтролер, ATMEGA16, згіднозавдання. Також до складу приладу увійдуть діоди, які будуть відображати рівні температури, семи сегментний індикатор на три знакомісцядля відображення поточного значення температури який буде працювати у режимі динамічної індикації.
1. Мікроконтролер та його призначення у приладі
Мікроконтролер (МК) - мікросхема, призначена для управління електронними пристроями. Типовий мікроконтролер поєднує у собі функції процесора і периферійних пристроїв, містить оперативний запам'ятовуючий пристрій (ОЗУ) та постійний запам'ятовуючий пристрій (ПЗП). По суті, це одно кристальний комп'ютер, призначений для виконання простих завдань. Використання однієї мікросхеми, замість набору різних елементів, як в звичайних процесорах персональних комп'ютерів, значно зменшує розміри, енергоспоживання та вартість пристроїв, побудованих на базі мікроконтроллерів. Мікроконтролери є основою для побудови вбудованих систем, їх можна зустріти в таких приладах як: телефон, мікрохвильова піч і тому подібне. Мікроконтролери широко застосовуються у сучасному машино будівництві.
При проектуванні мікроконтролерів доводиться дотримувати рівновагу між розмірами і вартістю з одного боку та гнучкістю і продуктивністю з іншого. Для різних застосувань знаходяться різні оптимальні співвідношення цих параметрів. Тому існує широкий вибір мікроконтролерів які відрізняються між собою: архітектурою процесора, розміром і типом вбудованої пам'яті, набором периферійних пристрої і типом корпусу.
В наш час 8-розрядні процесори були витіснені продуктивнішими моделями більшої розрядності, в той же час 8-розрядні мікроконтролерипрдовжують використовуватися в різних сферах людської діяльності. Це пояснюється ти, що існують задачі в яких не потрібна висока продуктивність, але вони потребують низької вартості.
Обмеження за ціною і енерговитратами стримують збільшення тактової частоти контролерів. Хоча з'являються моделі для роботи на високих частотах, виробники надають вибір, випускаючи модифікації, які розраховані на різні частоти і напругу живлення. У багатьох мікроконтролерах використовується статична пам'ять для ОЗУ і внутрішніх регістрів. Це дає контролеру можливість працювати на менших частотах і не втрачати дані навіть при повній зупинці тактового генератора. Виробники додають різні режими енергоспоживання, які дозволяють відключати частину периферійних пристроїв і обчислювальний модуль.
Окрім ОЗУ, мікроконтролер має постійну пам'ять яка призначена для зберігання програмного забезпечення та даних. У більшості мікроконтролерів відсутня шина для підключення зовнішньої пам'яті. Дешеві типи пам'яті призначені лише для однократного запису, така пам'ять потрібна тільки якщо ми впевнені, що програма контролера не буде змінюватися. Інші типи контролерів володіють можливістю багаторазового перезапису енергонезалежної пам'яті. Зазвичай в контролерах застосовується гарвардська архітектура пам'яті, тобто роздільне зберігання команд і даних в ОЗУ і ПЗП.
Зазвичай мікроконтролер включає в себе:
Інтерфейси вводу-виводу (UART, I2C, SPI, CAN, USB)
ЦАП та АЦП
Компаратори
Широтно-імпульсні модулятори
Таймери
Масиви вбудованої флеш-пам'яті
Програмування мікроконтроллерів в основному здійснюється на мові асемблера або С, хоча існують компілятори і для інших мов. Також використовуються вбудовані інтерпретатори Basic. Також використовується спеціальне програмне забезпечення для створення і налагодження програм, такі як MCSStudio, AVRStudio, AlgorithmBuilder та інші.
Мікроконтролер, що використовується у даній курсовій роботі повинен виконувати такі завдання:
Періодичне вимірювання напруги;
Перерахунок значення напруги у температуру;
Відображення значень температури на індикаторі;
Порівняння отриманого значення температури з номінальним;
Для реалізації цих завдань необхідно програмно описати зовнішні переривання (обнулення від таймера для виводу наступного знаку). Для забезпечення індикації необхідно описати роботу портів, та створити підпрограму виведення значень на індикатор.
Реалізувати це можна за допомогою мікроконтролера ATMEGA16.
Загальні характеристики даного мікроконтролера:
8-розрядний високопродуктивний AVR мікроконтролер з малим споживанням
ПрогресивнаRISCархітектура :
130 високопродуктивних команд, більшість команд виконується за один тактовий цикл
328 - розрядних робочих регістра загального призначення
Повністю статична робота
Продуктивність наближається до 16 MIPS ( при тактовій частоті 16 МГц)
Вбудований 2 - циклової перемножувач
Незалежна пам'ять програм і даних
16 КбайтВнутрішньосистемної програмованої Flash пам'яті (In - SystemSelf - ProgrammableFlash)
Забезпечує 1000 циклів стирання / запису
Додатковий сектор завантажувальних кодів з незалежними бітами блокування
Внутрішньосистемне програмування вбудованої програмою завантаження
Забезпечено режим одночасного читання/запису (Read- While - Write)
512 байт EEPROM
Забезпечує 100000 циклів стирання / запису
1 Кбайт вбудованої SRAM
Програмоване блокування, що забезпечує захист програмних засобів користувача
Інтерфейс JTAG (сумісний з IEEE 1149.1)
Можливість сканування периферії, відповідно стандарту JTAG
Розширена підтримка вбудованого налагодження
Програмування через JTAG інтерфейс: Flash, EEPROM пам'яті, перемичок і бітів блокування
Вбудована периферія
Два 8 - розрядних таймера/лічильника з окремим попередніми дільником , один з режимом порівняння
Один 16 - розрядний таймер/лічильник з окремим попередніми дільником і режимами захоплення і порівняння
Лічильник реального часу з окремим генератором
Чотири канали PWM
8 -канальний 10 - розрядний аналого- цифровий перетворювач
8 несиметричних каналів
7 диференціальних каналів ( тільки в корпусі TQFP )
2 диференціальних канали з програмованим посиленням в 1, 10 або 200 раз (тільки в корпусі TQFP)
Байт -орієнтований 2-дротовий послідовний інтерфейс
Програмований послідовний USART
Послідовний інтерфейс SPI ( ведучий / ведений )
Програмований сторожовий таймер з окремим вбудованим генератором
Вбудований аналоговий компаратор
Спеціальні мікроконтролерні функції
Скидання по подачі живлення і програмований детектор короткочасного зниження напруги живлення
Вбудований калібрований RC -генератор
Внутрішні і зовнішні джерела переривань
Шість режимів зниженого споживання: Idle, Power- save, Power- down, Standby, ExtendedStandby і зниження шумів ADC
Висновки I / O і корпусу
32 програмовані лінії вводу/виводу
40 - вивідний корпус PDIP і 44 - вивідний корпус TQFP
Робоча напруга
4,5 - 5,5 В ( ATmega16 )
Робоча частота
0 - 16 МГц ( ATmega16 )
Алгоритм роботи нашого приладу досить примітивний. Після налаштування ліній портів, опису знаків, налаштування АЦП, таймерів та дозволу переривань головна програма зациклюється на команді переходу з міткою. Далі код з регістра ADCH пересилається у робочий регістр. Наступним кроком зчитується відповідне значення температури, після цього визначається модуль прийнятого числа, а саме: сотні, десятки, одиниці. Потім ці числа замінюються відповідними образами та засилаються у порт який зв'язаний з індикатором. Крім того, аналізується відхилення температури від заданого значення і видається відповідний код на світло діоди.
2. Аналіз змісту задачі
Метою даного проекту є розробка пристрою термоконтролю з індикацією. Для цього нам необхідно зняти значення температури та вивести це значення на індикатор.
Мікроконтролер типу ATMEGA16 використовується для вимірювання температури процесу Т0 у певному об'єкті (у нашому випадку потенціометр) та порівняння її з номінальною Т0ном.. Сигнал про температуру надходить до пристрою контролю у вигляді певної напруги U. Характеристика датчика описується виразами:
Визначається номер варіанту:W=2;
Відповідно до варіанту вибираються параметри:
m1=7; m2=B; m3=3; m4=9; тоді
Порогові значення температури (10% від ):
Т1=115 оС, Т2=94 оС
Мікроконтролер працює з внутрішнім тактовим генератором частотою 1МГц. Задача полягає у створенні програми для мікроконтролера, яка забезпечує періодичне вимірювання напруги, перераховує її значення у температуру, підготовлює дані для виводу на індикатор та керує ним. Крім того, він порівнює отримане значення температури з номінальним . Якщо температура менше норми на 10%, то світиться жовтий діод, при нормальній - зелений, при перевищенні значення на 10% - червоний. Датчик напруги (U) та світло діоди підключені до порту А (таблиця 1):
U-PA2; жовтий(Ж) - РА3; червоний(Ч) - РА0; зелений(З) - РА6;
№ варіанту |
Лінії порту А |
Спільний |
||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||
02 |
З |
Ж |
Uвх |
Ч |
катод |
Таблиця 1
Такожсегменти світлодіодів у цифрових індикаторах розміщуються згідно варіанту (таблиця 2):
№ варіанту |
Сегменти |
Спільний |
||||||||
a |
b |
c |
d |
e |
f |
g |
h |
|||
02 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
1 |
катод |
Таблиця 2
В залежності від розташування цих сегментів буде відповідне розташування образів символів в ОЗП (таблиця 3):
Символ |
Сегменти |
|||||||||
f |
e |
d |
c |
b |
a |
h |
g |
HEX |
||
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
FC |
|
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
18 |
|
2 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
6D |
|
3 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
3D |
|
4 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
99 |
|
5 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
B5 |
|
6 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
F5 |
|
7 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1C |
|
8 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
FD |
|
9 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
BD |
Таблиця 3
Визначимо коефіцієнт квантування:
K=(60+3*m1+m2)=60+21+11=92
Отже кожному кроку квантування буде відповідати 0.92 градуси. Для реалізації алгоритму скористаємося множенням з плаваючою комою:
Переведемо значення нашого коефіцієнта в двійкову систему числення:
0.92=0.1110;
Зсунемо дане значення на 8 розрядів вліво:
11100000;
Переведемо отримане значення назад у десяткову систему числення:
11100000=224;
3 Розробка програми
Програма розроблялася для мікроконтролера ATMEGA16 у середовищі програмування AlgorithmBuilder. Ця мова дозволяє наочно побачити логіку програми, за допомогою службових вікон спостерігати зміни у різних прапорцях статусу, значення на портах та інші параметри. Це середовище дозволяє не тільки розробляти програму, а й перевірити її роботу. Лістинг програми для нашого курсового проекту приведено нижче:
Головна програма
Reset - налаштування векторів переривань;
SP - встановлення стеку;
$...->ddr(A,B,C,D) - налаштування портів;
$...->[300] - збереження образів символів в ОЗП;
Налаштуванняроботи таймера:
TIMSK
105->OCR2
Timer 2
1->I
Налаштування TIMSK
НалаштуванняTimer 2
Налаштування ADC
ADC_Complete - вектор переривання від ADC;
ADCH->data - зчитування даних з ADC;
Розрахунок температури:
224->r17
data*r17
r1->data
porig - підпрограма порівняння значення температури з пороговими;
mod - підпрограма перерахунку значення температури;
vuvid - підпрограма виводу значень на індикатор;
reti - завершенняпереривання;
Згідно завдання до курсової роботи необхідно передбачити проведення виміру температури через заданий інтервал часу згідно варіанту.
Для цього використовують таймер та регістр порівняння, що дозволяє таймеру не працювати весь час згідно частоти дільника до переповнення розрядної сітки, а обнулятися при досягненні відповідного значення яке занесене у регістр порівняння.
Timer_2_Compare_Match - переривання від таймера 2;
ADC - налаштування ADC;
reti- закінчення переривання;
Porig - підпрограма,яка виконує порівняння отриманого значення з номінальною температурою. Якщо T менше ніж 94, то світиться жовтий діод, якщо більше 115 - червоний, якщо ж температура у нормі світиться зелений діод.
Порогові значення:
data=115
data=94
$...->porta - підсвічування відповідних діодів;
ret - повернення до основної програми;
Mod - це підпрограма, яка виконує цілочисельне ділення для аналізу результату та визначення кількості сотень, десятків та одиниць у числі. Спочатку обнуляються значення сотень, десятків та одиниць. Далі у програмі задається цикл: якщо число більше за сотню то від нього віднімається одна сотня, а значення яке відповідає за рахунок сотень збільшується на один. Аналогічна дія проводиться з десятками та одиницями.
Vuvid -це підпрограма, яка забезпечує вивід символів на індикатор. Спочатку гасяться усі індикатори, числу сотень присвоюється відповідний знак, далі знак засилається у порт та засвічується перше знакомісце далі процедура повторюється для десятків і одиниць.
Обнулення регістрів:
^sot
^des
^odn
data=(100;10) - умова для встановлення кількості сотень і десятків;
0->portc - гасіння усіх сегментів індикатора;
300->х - встановлення базової адреси;
x+sot(des;odn) - вибір символу з пам'яті;
[x] ->portc - засилання символу в порт С;
6->portd - вибір певного знакомісця на індикаторі;
pauza - виконання підпрограми pauza;
255->lich - засилання числа в робочий регістр для створення паузи певної тривалості
lich=1 - перевірка умови для завершення підпрограми
lich-- - зменшення числа в робочому регістрі;
ret - повернення до виконання основної програми;
Pauza - це підпрограма необхідна для реалізації динамічної індикації. Справа в тому, що знакомісця індикатора засвічуються не одразу, а по черзі. Ця дія відбувається надто швидко для людського ока, щоб людина не помітила мерехтіння індикатора, але і з достатньою паузою, щоб людина побачила висвітлений символ. Для створення паузи ми засилаємо число у відповідний робочий регістр і займаємо мікроконтролер процедурою віднімання.
Згідно завдання було виготовлено проектований пристрій:
Жовтий світлодіод горить, якщо температура приймає значення які менше за 940 градуси.
Робота приладу коли температура приймає значення нижче дозволеного
Червоний світлодіод горить, якщо температура перевищує 1150 градусів.
Робота приладу коли температура перевищує допустиме значення
Зелений світлодіод горить, якщо температура знаходиться в межах 940-1150 градусів
Робота приладу коли температура приймає вище порогове значення
4. Розробка схеми
Згідно поставленої задачі та заданого варіанту було розроблено схему даного приладу на основі мікроконтролера ATMEGA16. Для даної схеми були розраховані параметри елементів системи живлення та параметри обмежуючих резисторів для індикатора та світлодіодів.
Параметри елементів системи живлення:
Згідно документації конденсатори для системи живлення повинні лежати у межах (12-22)пФ;
Оберемо кварцовий резонатор з частотою 8 МГц;
Дросель згідно документації повинен мати індуктивність 10мкГн;
Параметри обмежуючих резисторів для світло діодів та індикатора:
Опір обмежуючих резисторів будемо розраховувати за законом Ома, як різницю напруг живлення і напруги на індикаторі поділеної на робочий струм:
R = (Vж - Vд ) / I
R=(5.5-1.7)/14*10-3=271.4 Ом
Оберемо резистор більший за значенням 330 Ом;
Опір резисторів для світлодіодів знайдемо аналогічно:
R=(5.5-2)/8*10-3=416.7 Ом
Оберемо резистор більший за значенням 510 Ом;
Висновок
Метою курсової роботи було розробити та реалізувати найпростіший термометр на основі мікроконтролера ATMEGA16, який би через значення напруги визначав температуру з заданим коефіцієнтом перерахунку. Дана задача була виконана. Був розроблений прилад який це виконує, роботу даного приладу можна оглянути у попередніх розділах даної роботи. Під час виконання даного курсового проекту були закріплені теоретичні і практичні навички у розробці та реалізації приладів основаних на базі AVR - мікроконтролерів, покращені навички програмування мікроконтролерів даного типу у візуальному середовищі програмування МК AlgorithmBuilder.
Можна констатувати, що елементної бази яка існує на даному етапі розвитку комп'ютерної електроніки цілком достатньо для створення приладів даного класу. Для цього достатньо мати мікроконтролер та знання з налаштування його роботи. При виконанні даного курсового проекту була використана схема на основі мікроконтролера ATMEGA16, яка дозволила використати мінімальну кількість елементів для реалізації термометра. Адже у даного мікроконтролера присутній власний АЦП та АЛП, що дозволило перерахувати значення температури за допомогою мікроконтролера. Використовуючи візуальне середовище програмування AlgorithmBuilder була створена програма для керування мікроконтролером. Дана програма була перевірена на робочому приладі.
пристрій термоконтроль мікроконтролер
Список літератури
Панчук О. О. та Іщенко І. А. Архітектура та програмування мікроконтролерів. Методичні рекомендації для самостійної роботи з вивчення дисципліни та з виконання курсової роботи. - Житомир: ЖВІ НАУ, 2010. - 44 с.
Панчук О. О., Смолянець Ю. О., Хливнюк М.Г. та ін. Цифрові пристрої та мікропроцесори: Підручник. - Житомир: ЖВІРЕ, 2006. - 444 с.
Панчук О. О., Смолянець Ю. О. Цифрові пристрої та мікропроцесори. Ч. 2. Основи побудови та програмування мікропроцесорних пристроїв: Навчальний посібник. - Житомир: ЖВІРЕ, 2006. - 268 с.
Размещено на Allbest.ru
Подобные документы
Розробка термометра на базі мікроконтролера Atmega 8535. Визначення температури через аналогово-цифрове перетворення. Принципова схема пристрою. Варіанти з'єднання ліній портів з сегментами індикатора. Алгоритм роботи мікроконтролера у пристрої.
курсовая работа [1,8 M], добавлен 11.08.2012Найдоцільніший тип мікропроцесорного пристрою для керування обладнанням - однокристальний мікроконтролер (ОМК). Розробка принципової схеми пристрою контролю температури процесу. Складання програми мікроконтролера та її симуляція в Algorithm Builder.
реферат [2,1 M], добавлен 11.08.2012Функціональна схема мікроконтролера ATMega8. Розробка робота на базі мікроконтролера ATMega8 з можливістю керування електродвигунами за допомогою програми. Функціональна і принципова схеми пристрою з вибором додаткових елементів, алгоритм його роботи.
курсовая работа [1,3 M], добавлен 08.10.2012Розробка цифрового дозиметра з трьома режимами вимірювання з виводом значення вимірювання на дисплей. Аналіз мікроконтролера для керування його роботи, функціональна схема на базі мікроконтролера та програмного забезпечення для роботи дозиметра.
курсовая работа [2,4 M], добавлен 18.06.2010Докладний опис складових електричної схеми. Характеристика мікроконтролера PIC16F877. Рідкокристалічний індикатор МТ12864А. Призначення виводів рідкокристалічного індикатора. Цифро-аналоговий перетворювач MCP 4921. Алгоритм роботи цифрового генератора.
курсовая работа [1,5 M], добавлен 20.09.2011Розробка автономного недорогого універсального охоронного пристрою, виконаного на сучасній елементній базі, призначеного для цілодобової охорони об'єктів різного призначення. Принцип роботи охоронної сигналізації. Вибір мікроконтролера, елементної бази.
дипломная работа [356,8 K], добавлен 24.08.2014Визначення основних технічних характеристик та режимів роботи мікроконтролера для подальшого застосування у пристроях управління. Системи переривань та режими роботи. Будова мікроконтролера, модулі синхронізації. Вбудовані низькочастотні генератори.
курсовая работа [1,2 M], добавлен 10.12.2013Розробка мікропроцесорної системи управління роботом з контролем переміщення на базі мікроконтролера AT89C51. Розробка і опис структурної схеми мікропроцесорної системи. Відстань між світлодіодом і фототранзистором. Розробка алгоритмів програми.
курсовая работа [2,3 M], добавлен 13.04.2013Схема інтелектуального давача, побудованого на базі мікропроцесорного пристрою. Побудова контролера клавіатури та семисегментного індикатора. Ввід інформації з клавіатури. Вивід інформації на восьмисегментний індикатор. Робота аналого-цифрового пристрою.
курсовая работа [707,6 K], добавлен 05.02.2013Розробка мікропроцесорного пристрою збору, обробки та відображення інформації, його структурна та принципова електрична схема. Вибір та характеристики диференційного підсилювача, мікроконтролера, цифро-аналогового перетворювача, індикаторного модуля.
курсовая работа [489,6 K], добавлен 18.11.2011