приходу 233
; даних 234 00EB C2 D2
clr f0; дані прийшли-отже датчик справний 235 00ED 32
reti 236
; 237 00EE
238
239
; 240
; INT1-викликається при настанні паузи 241 00EE
int_1: 242 00EE 30 79 0D
jnb begread, end_I1 243 00F1
244
; Збереження даних про довжині імпульсу 245 00F1 C2 8C
clr tr0 246 00F3 85 8C 42
mov ih, th0 247 00F6 85 8A 43
mov il, tl0 248 00F9 D2 8C
setb tr0; подальший підрахунок 249 00FB 75 61 00
mov control, # 0250 00FE
251 00FE
end_I1: 252 00FE 32
reti 253
; 254 00FF
255
256
; 257
; DYNIND-переривання від T1 для динамічної індикації і видачі сигналів 258 00FF
dynind: 259 00FF C0 E0
push acc 260
; Збереження прапора перенесення 261 0101 65 E0
xrl a, a 262 0103 13
rrc a 263 0104 C0 E0
push acc 264 0106 C0 01
push 1265
266 0108 05 61
inc control; пройшов ще один інтервал 10mS з моменту останнього 267
; приходу даних з датчика 268 010A E5 61
mov a, control 269 010C
270
; Перевірка справності датчика 271
; Датчик вважається несправним, якщо дані з нього не надходять 500mS 272
273
; Якщо прапор вже встановлений, то подальший контроль є бесмисленно 274 010C 20 D2 19
jb f0, display 275 010F B4 FA 16
cjne a, # 250, display 276
; Аварія датчика (дані підозріло довго не приходять) 277 0112 D2 D2
setb f0; установка прапора несправності датчика 278 0114
279
; Завантаження слова ERR в змінну динамічної індикації 280 0114 79 44
mov r1, # indicat; адресу змінної 281 0116 77 08
mov @ r1, # 08h; R 282 0118 09
inc r1 283 0119 77 08
mov @ r1, # 08h; R 284 011B 09
inc r1 285 011C 77 46
mov @ r1, # 46h; E 286
; З цього моменту індикатор буде відображати слово ERR, що казала про 287
; аварії датчика 288 011E