ання 5мс
170 01B6 F5 22 movAddr, A
171 01B8 TimeTime_Dog; запуск сторожового таймера
172 01B8 75 8C E8 movTH0, #> Time_Dog
01BB 75 8A 90 movTL0, #
01BE C2 8D clrTF0 ​​p>
01C0 D2 8C setbTR0
01C2 ENDM
177 01C2 12 лютого AA callPriem; прийом ст-го байта даних з датчика
01C5 E5 23 movA, ChPovt; перевірка
01C7 B4 00 05 cjneA, # 0, $ Er; відповіді датчика
01CA 20 травня incNumDat; наступний датчик
01CC 1 Лютого D7 jmp $ D; датчик відповів
$ Er:; не відповіли
01CF B5 24 травня cjneA, ChPovtMax, $ D; скільки разів
01D2 75 23 00 movChPovt, # 0; якщо> максимуму, Обнуляємо
01D5 20 травня incNumDat; наступний датчик
01D7 $ D:
01D7 A8 22 movR0, Addr; обчислення адреси для
01D9 E5 25 movA, Data; запису отриманого байта
01DB F6 mov @ R0, A; збереження ст-го байта
01DC B4 FF 03 cjneA, # Error, $ M; чи була відповідь датчика
01DF 2 Січень E7 jmpPrNach
$ M:;-був
01E2 12 лютого AA callPriem; прийом мл-го байта даних з датчика
01E5 C2 8C clrTR0; якщо байт прийнятий,
; зупиняємо таймер T0
PrNach:;-небуло
01E7 22 травня incAddr; обчислення
01E9 A8 22 movR0, Addr; адреси
01EB E5 25 movA, Data ​​p>
01ED F6 mov @ R0, A; збереження мл-го байта даних з датчика
01EE A8 20 movR0, NumDat
01F0 B8 10 січня cjneR0, # NDMax, $ Dal; поки не опитаємо всі
01F3 22 ret
01F4 $ Dal:
01F4 21 AA jmpMetNach; опитування наступного датчика
; = ---------------------------------------- ------
Work:; підпрограма "Робочого режиму".
; спроба опитування
01F6 85 20 25 movData, NumDat; посилка в лінію № датчика
01F9 12 02 76 callPosl; посилаємо запит на датчик
; з номером NumDat
01FC 75 F0 02 movB, # 2; обчислення адреси
01FF A4 mulAB; для зберігання даних
0200 24 30 addA, # 30h; і очікування 5мс
0202 F5 22 movAddr, A
217 0204 TimeTime_Dog; запуск сторожового таймера
0204 75 8C E8 movTH0, #> Time_DogNo...