/p>
Time10 (*) byte constant (0E0h, 0E7h, 0E1h, 23h, 0E1h, 2Dh, 0E1h, 37H, 0E1h, 073h, 0E1h, 07Dh), (*) byte constant (0E1h, 87h, 0E1h, 0C3h, 0E1h , 0CDh, 0E1h, 0D7H, 0E2h, 0B3h, 0E2h), (*) byte constant (0BDh, 0E2h, 0C7h, 0E3h, 3,0 E3h, 0Dh, 0E3h, 17H, 0E3h, 53h, 0E3h, 5Dh),
/* таймінги прийому знака */(*) byte constant (0E3h, 67h, 0E3h, 0А3h, 0E3h),
(Davl, VVeter) byte,/* измер тиск і шв вітру */
(T1, T2) byte,/* вимірювана температура */
(Zn1, Zn2) bit,/* знак прийнятої температури */
(thp, tlp) byte,
(f1, f2) bit,/* прапори відповіді датчиків температури */
Chvetr byte,/* лічильник визначення шв вітру */
ind (32) byte,
(i, j, tp, n, p, pt, adrh1, adrh2, adrl1, adrl2, pp) byte,
(flTim, flVlagn, flTemometr, FlC, FlI2C) bit,/* прапори визначення режиму роботи */byte,/* номери натиснутоюклавіші */
(Sek, Min, Chas, TimerChas, Timermin, DanP) byte/* лічильники годин і таймера */
Dat (6) byte,
flViev ;/ * прапор перегляду утримуємо пам'яті */
V_Vetra: procedure interrupt 0 ;/ * визначення швидкості вітру */
Chvetr = chvetr +1; V_Vetra; _key: procedure interrupt 2;
k = (P1 and 000000111b); case k;
: do; Chas = Chas +1; if chas = 24 then chas = 0; end;
: do; min = min +1; if min = 60 then min = 0; end
: do; TimerChas = Chas +1; if Timerchas = 24 then Timerchas = 0; end
: do; Timermin = Timermin +1; if Timermin = 60 then Timermin = 0; end
: FlVlagn = 1;
: FlT = 1;
: do; DanP = 10; FlViev = 1; adrl1 = adrl1 +1; if CY then adrh1 = adrh1 +1; pp = 0; end;
: do; DanP = 10; FlViev = 1; adrl1 = adrl1 +1; if CY then adrh1 = adrh1 +1; pp = 0; end;;
end in_key; _int: procedure interrupt 1;/* переривання t0 */
th0 = 0d8h; tl0 = 0efh; = pt +1; pt = 100 then do; sek = sek +1; per_t0 = 0; sek = 60 then; min = min +1; min = 60 then min = 0 ; = Chas +1; chas = 24 then do; = 0;
/* запис інформації в пам'ять */
flI2C = 1; pp = 0;
end;; p30 = 0 then P14 = 1 else p14 = 0; 10 = 0;
P14, p13 = 0;/* початковий скидання і перевірка наявності пристрою */
Do while (th0 <0DAh) and (tl0 <0E3h); end ;/ * пауза скидання 500мкс */
Do while (th0 <0DBh) and (tl0 <2Fh); end; not (P13) then f1 = 1; not (P14) then f2 = 1;/* при відповіді датчика устанавл прапор готовн до обміну */
Do while (th0 <0DCh) and (tl0 <42h); end ;/ * таймаут для завершення ініціалізації */
/* цикл передачі команди безадресного обігу - ССh */
Do n = 0 to 8/* передача таймслота за заздалегідь розрахованим затримок */
If f1 then P14 = 0; if f2 then P32 = 0;/* передача 0 */while (th0