;Program: tříbajtová časová smyčka
;nejnižší bajt registr TM+0 a nejvyšší bajt registr TM+2
;*******************************************************************************
 LIST P = 16F84, R = DEC
 #INCLUDE <P16F84.INC>
;------------------------------------------------------------------------------- 
 __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;*******************************************************************************
RAM     EQU     H'0C'
;-------------------------------------------------------------------------------
        CBLOCK  H'0C'
         TM : 3
        ENDC 
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        ORG     0
        GOTO    START
;*******************************************************************************
SMYC    MOVLW   H'9E'
        MOVWF   TM+0            ;zadání nejnižšího bajtu
        MOVLW   H'86'
        MOVWF   TM+1            ;zadání prostředního bajtu
        MOVLW   H'01'
        MOVWF   TM+2            ;zadání nejnižšího bajtu
        CALL    t12uS
        
SMC     MOVF    TM+0,F
        BTFSS   STATUS,Z        ;je nejnižší bajt roven nule?
        GOTO    SMC_1           ;ne
        MOVF    TM+1,F          ;ano
        BTFSS   STATUS,Z        ;je prostřední bajt roven nule?
        GOTO    SMC_2           ;ne
        MOVF    TM+2,F          ;ano
        BTFSC   STATUS,Z        ;je nejvyšší bajt roven nule?
        GOTO    SMC_3           ;ano,jdi na návěští SMC_3
        
        DECF    TM+2,F          ;odečítání jednotlivých registrů 
SMC_4   DECF    TM+1,F
SMC_5   DECF    TM+0,F
        CALL    t6uS
        GOTO    SMC
        
SMC_1   CALL    t5uS
        GOTO    SMC_5                
        
SMC_2   NOP
        GOTO    SMC_4
        
SMC_3   CALL    t8uS
        RETURN
        
;-------------------------------------------------------------------------------
t12uS   NOP                     ;časové vyrovnávky tříbajtové časové smyčky
        NOP
        NOP
        NOP
t8uS    NOP
        NOP
t6uS    NOP
t5uS    NOP
        RETURN
;*******************************************************************************

START   CALL    SMYC
        NOP
        
        END                                                
        

