r/>
Вихідна напруга датчика температури TMP36 прямо пропорційно температурі. Його можна перетворити в цифровий код за допомогою вбудованого в МК АЦП і відобразити на РКІ. Слід зазначити, що для заданої точності вимірювань досить використовувати 8-бітний двійковий код. З цією метою при застосуванні перетворювача ADC використовується тільки старший байт. Перша процедура аналого-цифрового перетворювача ADC працює спільно з процедурою обробки переривання від перетворювача ADC0_ISR. Процедури ADC містить ланцюжок операторів: дозволу перетворювача, запуску процесу перетворення, очікування переривання від перетворювача по закінченню процесу перетворення і збереження в якості результату старшого байта. p align="justify"> Процедура обробки переривання ADC0_ISR в цьому випадку зводиться до трьох операціями: очищенню прапора переривання, забороні перетворювача і установці прапора перенесення, якого очікує процедура ADC. Отриманий двійковий код N пов'язаний з виміряним напругою U наступним рівнянням:
= VREF-N/256, де VREF - опорна напруга.
З іншого боку, вихідна напруга датчика пропорційно температурі:
= T * 0.01, де Т - температура в градусах Цельсія.
Вирішуючи спільно рівняння і використовуючи VREF = 2.4 В (опорна напруга внутрішнього генератора) можна отримати Т = N-240/256. Необхідно ще врахувати той факт, що якщо параметр N менше 50-ти, то температура негативна. Усі перетворення виробляються в процедурі масштабування SCALE, двійковий код N передається процедурі через акумулятор А. Тому масштабування виконується шляхом множення байта коду на байт константи 240, а з двухбайтного результату зберігається лише старший байт, що еквівалентно діленню на 256. Також проводиться перевірка на негативну температуру (N <50) і при позитивному результаті записується 1 в змінну ZNAK. p align="justify"> Для відображення двох десяткових цифр на РКІ необхідно отриманий двійковий результат перетворити в десятковий. Для цього використовується процедура BIN_BCD, яка з двійкового формат запису, перетворює його в вид Packed BCD, при цьому вхідний параметр передається також через акумулятор МК. Перетворення виконується шляхом цілочисельного ділення двійкового коду на 10. За допомогою свопінгу приватного четирехбітних код десятків пересилається в старші біти байта, після чого за допомогою операції логічного АБО можна упакувати обидві цифри в один байт для отримання формату Packed BCD. p align="justify"> Обмін з РК-модулем здійснюється відповідно з описом на модуль та рекомендаціями фірми виробника. Для спрощення роботи з модулем доцільно використовувати тільки процедуру для запису байта, а замість читання біта зайнятості на початку кожного звернення до модуля РКІ використовувати тимчасову затримку в 50 мс. p align="justify"> Процедура INIT_LCD є процедурою ініціалізації дисплея. Вона включає в себе 3 команди. Перша - function se...