10;; nreg = 1 then do; _2 = t_2 +1; if t_2> 10 then t_2 = 10, (2) = t_2/10; ind (3) = t_2 mod 10;;
end;
if (p3.5 = 0b) and (ok <> 2) then/* зменшення встановленої температури */
do; ok = 2; nreg = 0 then do; _1 = t_1 +1; if t_1> 22 then t_1 = 22; (0) = t_1/10; ind (1) = t_1 mod 10;; nreg = 1 then do; _2 = t_2-1; if t_2 <3 then t_2 = 3, (2) = t_2/10; ind (3) = t_2 mod 10;;
end;
if (p3.6 = 0b) and (ok <> 3) then/* перемикання режимів по колу */
do; ok = 3; nreg = nreg +1; if nreg> = 4 then nreg = 0;;
if (P3 and 01110000b) = 70h then ok = 0;/* перевірка на відпускання клавіш */
if per_t0> 960 then do;/* якщо пройшла хв збільшений лічильник */
per_t0 = 0; tim_ptim_p +1; nreg <2 then do ;/ * включення періодичної розморожування */
if (fl_razm = 0) and (tim_p> 4320) then do; fl_razm = 1; tim_p = 0; end;/* 24г */(fl_razm = 1) and (tim_p> 180) then do; fl_razm = 0; tim_p = 0; end;/* 2ч * /; nreg = 2 then do; (fl_moroz = 1) and (tim_p> 240) then do; fl_moroz = 0; tim_p = 0; nreg = 0; end;/* 3ч * /;
do;/* щохвилинне оновлення показань температури */
ind (0) = tr_1/10; ind (1) = tr_1 mod 10, (2) = tr_2/10; ind (3) = tr_2 mod 10; tr_1 <> 0 then P3 .0 = 0 ;/ * запалюємо мінус на індикаторі температури морозилки */
end;
end; _t0 = per_t0 +1;/* збільшуємо лічильник переповнень */
tf0 = 0;/* скидання прапора переповнення */
end timer_int;
init: procedure;/****** пpоцедуpа ініціалізації ******/
tmod = 00000001b ;/ * Пеpвое pежим для таймеpа */= 1 ;/ * переривання по фpонту сигналу пеpеполненія * /, tl0 = 0; tr0 = 1;/* обнулили лічильники та pазpешать pаботу 0 - го Таймеpa */= 1 ;/ * запускаємо таймеp 0 */= 1;/* pазpешать переривання Таймера = 0 */
ea = 1 ;/ * pазpешать всі переривання */
/* Ініціалізація АЦП */
ADCCON1 = 60h ;/ * налаштовуємо режим AЦП */
ADCCON2 = 0h ;/ * налаштовуємо канал 0 */
nreg = 0; fl_moroz = 0; fl_razm = 0; ok = 0;
/* устаналіваем значення за замовчуванням */
t_1 = 6; t_2 = 6;
p3 = 01111011 ;/ * лінії 4-6 на введення і включаємо компресори на холод */
end init;
/* ____основнaя програма _____ */init;
/****** Виконавчий блок програми ******/
do while 1;/* основний цикл роботи холодильника */
chan = 0; sconv = 1; flag = 0; while flag = 0; end ;/ * вимірюємо температуру t1 */_1 = 22 - (adc_h * 255 ...