movc a, @ a + dptr 179 00B2
180 00B2
outind: 181 00B2 F6
mov @ r0, a 182
183
; Виведемо знак числа 184 00B3
185
; Підготуємо байт для знакового розряду 186 00B3 A2 7A
mov c, pos 187 00B5 75 F0 FF
mov b, # ffh 188 00B8 92 F6
mov b.6, c; (діод G) 189 00BA
190
; Мається трехразрядного індикатор (загальний анод, активний-0) 191 00BA
192
; Якщо старший розряд числа погашений, то знак виводиться в нього, інакше ... 193 00BA B4 FF 07
cjne a, # ffh, notnull 194 00BD
195 00BD A6 F0 ​​p>
mov @ r0, b; висновок знака в старший розряд (2-й зліва) 196 00BF
197
; Погасимо самий старший розряд 198 00BF 08
inc r0 199 00C0 76 FF
mov @ r0, # ffh 200 00C2 01 61
jmp waitnew 201 00C4
202
; Розряд не нульовий 203 00C4
notnull: 204 00C4 08
inc r0 205 00C5 A6 F0 ​​p>
mov @ r0, b; (діод G) 206 00C7 01 61
jmp waitnew 207 00C9
208 00C9
209
; 210
; INT0-викликається по приходу імпульсу 211 00C9
int_0: 212 00C9 20 79 0A
jb begread, rpause 213 00CC
214 00CC 75 61 00
mov control, # 0215 00CF D2 8C
setb tr0; запуск таймера 216 00D1 D2 79
setb begread; установка прапора початку нового процесу тенія 217 00D3 C2 78
clr fready; дані не готові 218 00D5 32
reti 219 00D6
220
; Читання даних про загальній довжині (імпульс + пауза) 221 00D6
rpause: 222 00D6 C2 8C
clr tr0; зупинка таймера 223 00D8 85 8C 40
mov ph, th0 224 00DB 85 8A 41
mov pl, tl0 225 00DE
226
; Обнуління таймера 227 00DE 75 8C 00
mov th0, # 0228 00E1 75 8A 00
mov tl0, # 0229 00E4
230 00E4 C2 79
clr begread; очікування нового імпульсу для початку вимірювання 231 00E6 D2 78
setb fready; дані прочитані 232 00E8 75 61 00
mov control, # 0; обнулений контрольний лічильник часу затримки...