zl, low (izm2 + 3) zerowr
rcall display; виводимо на дисплей нуліexit_int0:; обробник переривання по приходу відбитого імпульсаtemp, (1 lt; lt; cs11); зупиняємо таймерtccr1b, tempmc16uL, tcnt1l; записуємо вміст таймера в множітельmc16uh, tcnt1hmp16uL, 0x07; записуємо константу в множник для розрахунку расстояніяmp16uh, 0x00mpy16u; визоваем процедуру умноженіяbin2BCD16; визоваем процедуру переведення в двійковій-десячічное чіслоtemp, 0; в залежності від вибраної строчки перходе по мітку
rjmp foto1temp, 1foto2
rjmp exit_int0: ZL, Low (izm1); встановлюючи на зміну 1-й рядок
ldi ZH, High (izm1) digitwr
rjmp exit_int0
: ZL, Low (izm2); встановлюючи на зміну 2-й рядок
ldi ZH, High (izm2) digitwrexit_int0
; *******
_ clear_start:; очистка таймера і старт
temptcnt1h, temptcnt1l, temptemp, (1 lt; lt; cs11) tccr1b, temp
:temp,r11digitwr2temp,r10digitwr2:temp2,0x30temptemptemp,0x0ftemp,temp2z+,temptemptemp,0x0ftemp,temp2z+,temp
ret: z +, temp; запис в ОЗУ за адресою Z змінної temp
st z +, temp z +, temp
st z +, temp
; ***************************************** **********************************
; виділення пам'яті в озу для результатів вимірювання
; ***************************************** **********************************
. dseg: .byte 17; резервуємо 17 байт: .byte 17