99 0192 E5 49
mov a, soundgenh 400 0194 94 01
subb a, #> 300 401 0196 70 0D
jnz exitin 402 0198
403
; Зупинити генерацію 404 0198 C2 A0
clr p2.0 405 019A
406
; Обнуління змінних-лічильників мілісекунд 407 019A 75 48 00
mov soundgenl, # 0408 019D 75 49 00
mov soundgenh, # 0409 01A0 75 62 00
mov minutes, # 0410 01A3 D2 77
setb notsound; почати отсчітиваніе проміжку в 5 хв. 411 01A5
412 01A5
exitin: 413
; Відновлення даних з стека перед виходом 414 01A5 D0 01
pop 1415 01A7
416
; Відновлення прапора перенесення 417 01A7 D0 E0
pop acc 418 01A9 33
rlc a 419 01AA
420 01AA D0 E0
pop acc 421 01AC 32
reti 422
; 423
424
; Процедура підрахунку значення температури425
; Вихід: a-чисельне значення температури (модуль) 426
; 427 01AD
Calc_Temp: 428 01AD C0 00
push 0429 01AF C0 01
push 1430 01B1 C0 07
push 7 431 01B3
432
; 400 * T1 433 01B3
434 01B3 78 58
mov r0, # mem; mem = 400435 01B5 76 90
mov @ r0, # 90h 436 01B7 08
inc r0 437 01B8 76 01
mov @ r0, # 1h 438 01BA 08
inc r0 439 01BB 76 00
mov @ r0, # 0h 440 01BD
441 01BD 78 58
mov r0, # mem 442 01BF 79 52
mov r1, # pulse 443 01C1
444 01C1 12 8 березня
call MUL_3B; mem = 400 * T1 445
446 01C4 78 52
mov r0, # pulse 447 01C6 79 55
mov r1, # pause 448 01C8
449
; Збережемо значення довжини паузи у змінній pulse 450
; для подальшого процесу округлення 451 01C8 7F 03
mov r7, # 3452 01CA
moveb: 453 01CA E7
mov a, @ r1 454 01CB F6
mov @ r0, a 455 01CC 09
inc r1 456 01CD 08
inc r0 457 01CE DF FA
djnz r7, moveb 458 01D0
459
; Відновимо ...