= ----------------------------------------
0087 Bit_Ind: RegP0.7; Bit_Ind - P0.7 сигнал
19 0097 Vkl_PCRegP1.7; Вкл/Вимк ПК від лінії
0020 NumDat: Reg20h; № опитуваного датчика
0021 N_Ind: Reg21h; № помилки індикації
0022 Addr: Reg22h; адресу осередки для зберігання
; даних з датчиків
0023 ChPovt: Reg23h; кол-во повторень опитування
0024 ChPovtMax: Reg24h; макс. число повторень
0025 DataReg25h; дані з датчика
0026 FonVrReg26h; час фонової завдання
0005 ChPovtMaxNachEQU5; макс. число повторень
0002 ChPovtMaxWorkEQU2; опитування датчиків
0010 NDMax: EQU16; число датчиків
0020 Kol_Byte: EQUNDMax * 2; число осередків пам'яті
00FF ErrorEQUFFh; помилка датчика
E890 Time_DogEQU-6000; час сторожового таймера
3CB0 Time_PauseEQU-50000; час паузи м/д опитуваннями
0028 Kol_PauseEQU40; час видачі сигналу помилки
0014 Ch_PauseEQU20; час очікування запиту ПК
0000 Num_PSEQU0; № станції для переривання від ПК
; = ----------------------------------------
; Обробка переривань.
0000 ORG 0
0000 2 Січень 00 jmp Start
; = ----------------------------------------
000B ORG 0Bh; переривання
000B C2 8C clrTR0; таймера T1
Thu Nov 20 2011 15:24 Page 2
000D A8 26 movR0, FonVr
000F 20 97 08 jbVkl_PC, $ del
0012 C2 8D clrTF0 ​​p>
51 0014 12 01 72 callTimePr; якщо від сторожового
0017 02 00 1D jmp $ Ex
53 001A $ del:
001A 1 грудня 62 callTimePC
$ Ex:; продовжуємо чекати
56 001D 32 reti
; = ----------------------------------------
0023 ORG 23h; переривання від ПК
59 0023 C2 8C clrTR0
0025 12 лютого 80 callPoslPC
0028 D2 8C setbTR0
62 002A 32 reti
; = ----------------------------------------
0100 ORG 100h
; Початок основної програми.
0100 Start:
0100 75 89 21 movTMOD, # 21h; 0-й Т в 1-му, 1-й Т в 2-му режимі
0103 53 87 7F anlPCON, # 01111111b; дільник ...