v 20 2011 15:24 Page 5
0207 75 8A 90 movTL0, #
020A C2 8D clrTF0 ​​p>
020C D2 8C setbTR0
020E ENDM
223 020E 12 лютого AA callPriem; прийом ст-го байта даних з датчика
0211 E5 23 movA, ChPovt; перевірка
0213 B4 00 05 cjneA, # 0, $ Er; відповіді датчика
0216 20 травня incNumDat; наступний датчик
0218 02 23 лютого jmp $ D; датчик відповів
$ Er:; не відповіли
021B B5 24 травня cjneA, ChPovtMax, $ D; скільки разів
021E 75 23 00 movChPovt, # 0; якщо> максимуму, Обнуляємо
0221 20 травня incNumDat; наступний датчик
0223 $ D:
0223 A8 22 movR0, Addr; обчислення адреси для
0225 E5 25 movA, Data; запису отриманого байта
0227 F6 mov @ R0, A; збереження ст-го байта
0228 B4 FF 03 cjneA, # Error, $ M; чи була відповідь датчика
022B 02 02 33 jmpPrWork
$ M:;-був
022E 12 лютого AA callPriem; прийом мл-го байта даних з датчика
0231 C2 8C clrTR0; якщо байт прийнятий, зупиняємо таймер
PrWork:;-небуло
0233 22 травня incAddr; обчислення
0235 A8 22 movR0, Addr; адреси
0237 E5 25 movA, Data ​​p>
0239 F6 mov @ R0, A; збереження мл-го байта даних з датчика
023A 22 ret
; = ---------------------------------------- ------
Indikac:; Підпрограма виведення на індикатор
023B C0 E0 pushA
023D C0 82 pushDPTR
023F C0 A8 pushIE
0241 75 A8 00 movIE, # 0; заборона всіх переривань
0244 74 00 movA, # 0
0246 90 02 C7 movDPTR, # Tabl_Ind; завантаження таблиці
0249 E5 21 movA, N_Ind; дешефрірованіе
024B 75 F0 10 movB, # 10h; № індикації
024E 84 divAB; в код семисегментний
024F 93 movcA, @ A + DPTR; індикатора
0250 F5 80 movP0, A; P0 - старший байт
260 0252 E5 F0 movA, B
0254 93 movcA, @ A + DPTR
0255 F5 90 movP1, A; P1 - молодший байт
0257 D2 87 setbBit_Ind
0259 D0 A8 popIE
025B D0 82 popDPTR
025D D0 E0 popA
025F 22 ret
268; = ---------------------------...