Реферат: Измерение длительности импульса
clr r22
OPROS_KEY_OF_INVERT: ; Опрос состояния кнопки
SBIC PORTA,1 ; режима измерения длительности импульса
RCALL IMPULS_POLOGITELNAY ; режим из-ия длительности сигнала высокого уровня
RCALL IMPULS_OTRICHATELNAY ; режим из-ия длительности сигнала низкого уровня
M2:
IMPULS_POLOGITELNAY:
SBI PORTA,2 ;Включаем светодиод
SBIC PORTA,0 ;Идет сканирование линии PA0
RCALL IMPULS
SBIS PORTA,0 ; Происходит проверка на наличие 1
RCALL IMPILS_1_TO_0; на PA1, если ее нет, тогда переход
M5: CPI R17,0xFF
BRCS M2 ; если R17 переполнится, то
LDI R17,0XA; тогда занесем в R17 10
RJMP M2;
Prog: INC R17 ;
CPI R17,0XA ; Отчет длительности импульса начнется
BRCS M3 ; тогда когда в R17 будет 10(DEX)(пройдет 10 мС)
INC R16 ;инкремент R17(счетчик прошедших мСекунд срабатывает при R17>10)
BRBC 1,M3 ; если R16 переполнится
INC R18 ; тогда инкрементируем R18(Длительность импульса
; Прошло десять мС далее идет счет каждой мС
M3: RETI ; находится в R18(ст. разряд),R16(мл. разряд)
IMPULS:
LDI R20, 0B00001001 ; если приходит импульс то тогда запускается T/C1
OUT TCCR1B,R20
RET
IMPILS_1_TO_0: