ми отримуємо при seksot = 1 відлік першої секунди. Тут же ми інкрементіруем змінну секунди і перевіряємо, не дорівнює чи вона 60, якщо так, то Обнуляємо її, а збільшуємо хвилини. Аналогічно перевіряються і хвилини. Також контролюються і годинник, але до 24. p align="justify"> Далі запускається висновок інформації на індикатор. Температура для виведення розраховується діленням на 10 (десятки) або отриманням залишку від ділення на 10 одиниці градусів. p align="justify"> Після ініціалізації програми слід основний цикл програми. При цьому здійснюється перевірка керуючих прапорів і на основі цієї перевірки викликаються відповідні процедури. p align="justify"> Процедура обробки переривань здійснює перевірку джерела переривання (таймер або клавіатура), здійснює контроль стану датчиків і встановлює відповідні прапори управління, щомиті инкрементируется поточний час, стежить за станом клавіатури.
Висновок
Поставлена ​​задача була реалізована, розроблена функціональна схема. Після аналізу функціональної схеми розгляд безлічі розробок та окремих електронних вузлів була розроблена схема універсально терморегулятора, яка реалізує поставлене завдання на апаратному рівні. При схемотехнической реалізації блоку був зроблений вибір найбільш оптимального контролера для вирішення завдання. p align="justify"> Другим етапом реалізації проекту стало написання програмної частини, яка забезпечує управління обладнанням за заданим алгоритмом. Для реалізації функцій обміну з температурними датчиками був вивчений протокол IWare, який і був далі реалізований у вигляді частини програмного коду. Також було виконано опис програми і представлений її код. p align="justify"> Результат проекту представлений у вигляді звіту має два додатки: лістинг програми та принципова схема.
Додаток 1
Схема пристрою
контролер програма алгоритм лістинг
В
Додаток 2
Лістинг програми
# include
# include xdata out _at_ 0x10;/* xdata 0x10 */
unsigned char sot, sek, chas, min, regim;// shethiki vremeni
unsigned int i, j, n; char budiln [2] = {0,0, 18, 8,0, 8,1, 25,15,0, 15,1, 22, 23,59};// shethiki budilnikchar budiln2 [] = {0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0}; char hourh, hourl, minh, minl, sekh, sekl;// shethikichar segment;// otobragaem segmentint interruptcnt ; iware = P3 ^ 2; k1 = P3 ^ 4; k2 = P3 ^ 5; fok; iw; char ind [] = {0,0,0,0,0,0,0,0,0,0,0 , 0}// out ind parametrchar datch1 [] = {02,0 x67, 0,0,0,0 xbd, 0xf3, 0x34}// nomer d1char datch2 [] = {02,0 x89, 0,0 x86, 0,0 x78, 0x3f}// nomer d2
unsigned char pk1, pk2, tin1, tin2;
void delay (void char t)
...