LIST      p=16F887            ; nastavení typu procesoru 
     #INCLUDE   <P16F887.INC>      ; definice proměnných pro tento procesor 
   errorlevel -302 

; === NASTAVENÍ KONFIGURAČNÍHO SLOVA === 
   __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT 
   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V    


RAM     	EQU     	H'20'

	CBLOCK  RAM+0	; zacatek vseob.registru 20h 
	TMP0
	TMP1
	TMP2
	ENDC
				

; === PROGRAM === 

RESET   ORG      0x0000      ; začátek programu na adrese 0000h 

; Inicializace portů 

   BANKSEL ANSEL 
   CLRF   ANSEL 
   CLRF   ANSELH 

   BANKSEL   PORTD 
   CLRF   PORTD 
   MOVLW   0x00 
   MOVWF   PORTD 
   BANKSEL   TRISD 
   MOVLW   0x00 
   MOVWF   TRISD 

   BANKSEL   TRISB 
   MOVLW   0x03 
   MOVWF   TRISB 
   BANKSEL   PORTB 

#define tl_leva PORTB,0 
#define tl_prava PORTB,1 

   goto start 

pauza 
;cekaci smycka 
;Delay 197633 cycles
        MOVLW 0x00  ;0 DEC
        MOVWF TMP1
        MOVLW 0x00  ;0 DEC
        MOVWF TMP0
	DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
 return 
    
led_leva
   btfss	PORTD,7	;test stavu vystupniho pinu 
   rlf PORTD,f 
   call pauza 
   return 
    
led_prava
   btfss	PORTD,0	;test stavu vystupniho pinu
   rrf PORTD,f 
   call pauza 
   return 
    
start 
   btfss tl_leva 
   call led_leva 
   btfss tl_prava 
   call led_prava  
   goto start 

    END