movwfMulL
movfMXH,W
movwfMulM
callMUL00
movfMulL,W
movwfMulM
clrfMulL
callSUM00
movfTimerM,W
movwfMulL
movfMXH,W
movwfMulM
callMUL00
movfMulL,W
movwfMulH
clrfMulL
clrfMulM
callSUM00 ;Делим TimerL(H,M) на 10
movf TimerH,W;Старший байт делимого
movwf ResHi
movf TimerM,W;Средний байт делимого
movwf Mul1Hi
movf TimerL,W;Младший байт делимого
movwf Mul1Lo
movlw 0x00;Старший байт делителя
movwf DivHi
movlw 0x0A;Младший байт делителя
movwf DivLo
callDiv24_16
movfTmpH,W
movwfTimerH
movfTmpM,W
movwfTimerM
movfTmpL,W
movwfTimerL
clrfTmpH
clrfTmpM
clrfTmpL; Множим TimerL(H,M) на EX
movfMul1Lo,W
movwfMulL
movfEX,W
movwfMulM
callMUL00
movfMulH,W
movwfMulM
clrfMulH
callSUM00
movfMul1Hi,W
movwfMulL
movfEX,W
movwfMulM
callMUL00
movfMulL,W
movwfMulM
clrfMulL
callSUM00
movfResHi,W
movwfMulL
movfEX,W
movwfMulM
callMUL00
movfMulL,W
movwfMulH
clrfMulL
clrfMulM
callSUM00
movfTmpH,W
movwfMulH
movfTmpM,W
movwfMulM
movfTmpL,W
movwfMulL
movfTimerH,W
movwfTmpH
movfTimerM,W
movwfTmpM
movfTimerL,W
movwfTmpL
callSUM00; Вычитаем из TimerL(H,M) B(L,H) clrfMulH
movfBH,W
movwfMulM
movfBL,W
movwfMulL
callMIN00
movfTmpH,W
movwfTimerH
movfTmpM,W
movwfTimerM
movfTmpL,W
movwfTimerL; Подпрограмма отсчёта времени удержания комутатора
DecTime
bsfpCOIL; Подаём сигнал на комутатор (1 в RB2)
movlw0xFF; Отсчитываем квант времени таймера
movwfSec
movlwTMR_VALUE
subwfSec,F
PAUSE
decfszSec,F
gotoPAUSE
PLUS08
decf TimerL,F; Начинаем отсчёт времени (TimerL(H,M) 1)
movlw0xFF
subwfTimerL,W
btfss Status,Z
goto YES08
decf TimerM,F
movlw0xFF
subwfTimerM,W
btfss Status,Z
goto YES08
decf TimerH,F
movlw0xFF
subwfTimerH,W
btfss Status,Z
goto YES08
clrf TimerH ; Отсчёт времени (TimerL(H,M) 1) завершён
clrf TimerM
clrf TimerL
bcfpCOIL; ; Выставляем 0 в RB2 (отключаем сигнал коммутатору)
return
YES08
gotoDecTime
end