Переведемо значення нашого коефіцієнта в двійкову систему числення:
0.92=0.1110;
Зсунемо дане значення на 8 розрядів вліво:
;
Переведемо отримане значення назад у десяткову
систему числення:
=224;
Розробка програми
Програма розроблялася для мікроконтролера ATMEGA16 у середовищі програмування AlgorithmBuilder. Ця мова дозволяє наочно побачити логіку програми, за допомогою службових вікон спостерігати зміни у різних прапорцях статусу, значення на портах та інші параметри. Це середовище дозволяє не тільки розробляти програму, а й перевірити її роботу. Лістинг програми для нашого курсового проекту приведено нижче:
Головна програма
Reset - налаштування векторів переривань;- встановлення стеку;
$...->ddr(A,B,C,D) - налаштування портів;
$...->[300] - збереження образів символів в ОЗП;
Налаштуванняроботи таймера:
->OCR22
->I
Налаштування TIMSK
НалаштуванняTimer 2
Налаштування ADC
_Complete - вектор переривання від ADC;>data - зчитування даних з ADC;
Розрахунок температури:
->r17*r17->data- підпрограма порівняння значення температури з пороговими;- підпрограма перерахунку значення температури;- підпрограма виводу значень на індикатор;- завершенняпереривання;
Згідно завдання до курсової роботи необхідно передбачити проведення виміру температури через заданий інтервал часу згідно варіанту.
Timer_2_Compare_Match - переривання від таймера 2;- налаштування ADC;закінчення переривання;
Porig - підпрограма,яка виконує порівняння
отриманого значення з номінальною температурою. Якщо T менше ніж 94, то
світиться жовтий діод, якщо більше 115 - червоний, якщо ж температура у нормі
світиться зелений діод.
Порогові значення:=115=94
$...->porta - підсвічування відповідних
діодів;- повернення до основної програми;- це підпрограма, яка виконує
цілочисельне ділення для аналізу результату та визначення кількості сотень,
десятків та одиниць у числі. Спочатку обнуляються значення сотень, десятків та
одиниць. Далі у програмі задається цикл: якщо число більше за сотню то від
нього віднімається одна сотня, а значення яке відповідає за рахунок сотень
збільшується на один. Аналогічна дія проводиться з десятками та одиницями.-це
підпрограма, яка забезпечує вивід символів на індикатор. Спочатку гасяться усі
індикатори, числу сотень присвоюється відповідний знак, далі знак засилається у
порт та засвічується перше знакомісце далі процедура повторюється для десятків
і одиниць.
Обнулення регістрів:
^sot
^des
^odn=(100;10) - умова для встановлення кількості
сотень і десятків;
->portc - гасіння усіх сегментів індикатора;
->х - встановлення базової адреси;+sot(des;odn) - вибір символу з пам’яті;
[x] ->portc - засилання символу в порт С;
->portd - вибір певного знакомісця на
індикаторі;- виконання підпрограми pauza;
255->lich - засилання числа в робочий регістр для створення паузи певної тривалості=1 - перевірка умови для завершення підпрограми- - зменшення числа в робочому регістрі;- повернення до виконання основної програми;- це підпрограма необхідна для реалізації динамічної індикації. Справа в тому, що знакомісця індикатора засвічуються не одразу, а по черзі. Ця дія відбувається надто швидко для людського ока, щоб людина не помітила мерехтіння індикатора, але і з достатньою паузою, щоб людина побачила висвітлений символ. Для створення паузи ми засилаємо число у відповідний робочий регістр і займаємо мікроконтролер процедурою віднімання.
Згідно завдання було виготовлено проектований
пристрій:
Жовтий світлодіод горить, якщо температура приймає значення які менше за 940 градуси.
Робота приладу коли температура приймає значення нижче дозволеного
Червоний світлодіод горить, якщо температура
перевищує 1150 градусів.
Робота приладу коли температура перевищує
допустиме значення
Зелений світлодіод горить, якщо температура
знаходиться в межах 940-1150 градусів
Робота приладу коли температура приймає вище
порогове значення
. Розробка схеми
Згідно поставленої задачі та заданого варіанту було розроблено схему даного приладу на основі мікроконтролера ATMEGA16. Для даної схеми були розраховані параметри елементів системи живлення та параметри обмежуючих резисторів для індикатора та світлодіодів.
Параметри елементів системи живлення:
Згідно документації конденсатори для системи живлення повинні лежати у межах (12-22)пФ;
Оберемо кварцовий резонатор з частотою 8 МГц;
Дросель згідно документації повинен мати індуктивність 10мкГн;
Параметри обмежуючих резисторів для світло діодів та індикатора:
Опір обмежуючих резисторів будемо розраховувати
за законом Ома, як різницю напруг живлення і напруги на індикаторі поділеної на
робочий струм:= (Vж - Vд ) / I=(5.5-1.7)/14*10-3=271.4 Ом
Оберемо резистор більший за значенням 330 Ом;
Опір резисторів для світлодіодів знайдемо аналогічно:
=(5.5-2)/8*10-3=416.7 Ом
Оберемо резистор більший за значенням 510 Ом;
Висновок
Метою курсової роботи було розробити та реалізувати найпростіший термометр на основі мікроконтролера ATMEGA16, який би через значення напруги визначав температуру з заданим коефіцієнтом перерахунку. Дана задача була виконана. Був розроблений прилад який це виконує, роботу даного приладу можна оглянути у попередніх розділах даної роботи. Під час виконання даного курсового проекту були закріплені теоретичні і практичні навички у розробці та реалізації приладів основаних на базі AVR - мікроконтролерів, покращені навички програмування мікроконтролерів даного типу у візуальному середовищі програмування МК AlgorithmBuilder.
Можна констатувати, що елементної бази яка існує на даному етапі розвитку комп’ютерної електроніки цілком достатньо для створення приладів даного класу. Для цього достатньо мати мікроконтролер та знання з налаштування його роботи. При виконанні даного курсового проекту була використана схема на основі мікроконтролера ATMEGA16, яка дозволила використати мінімальну кількість елементів для реалізації термометра. Адже у даного мікроконтролера присутній власний АЦП та АЛП, що дозволило перерахувати значення температури за допомогою мікроконтролера. Використовуючи візуальне середовище програмування AlgorithmBuilder була створена програма для керування мікроконтролером. Дана програма була перевірена на робочому приладі.
пристрій термоконтроль мікроконтролер
Список літератури
Панчук О. О. та Іщенко І. А. Архітектура та програмування мікроконтролерів. Методичні рекомендації для самостійної роботи з вивчення дисципліни та з виконання курсової роботи. - Житомир: ЖВІ НАУ, 2010. - 44 с.
Панчук О. О., Смолянець Ю. О., Хливнюк М.Г. та ін. Цифрові пристрої та мікропроцесори: Підручник. - Житомир: ЖВІРЕ, 2006. - 444 с.
Панчук О. О., Смолянець Ю. О. Цифрові пристрої та мікропроцесори. Ч. 2. Основи побудови та програмування мікропроцесорних пристроїв: Навчальний посібник. - Житомир: ЖВІРЕ, 2006. - 268 с.