 INCLUDE	"P16F690.INC"
 LIST     P=16F690, R=DEC
 
  __CONFIG _INTOSCIO & _WDT_OFF & _CPD_OFF

;

; **********************************************************************
; *                                                                    *
; *                   -------\/------                                  *
; *                -›1|VDD+      VSS-|20‹-   GND                       *
; *             Q ‹-›2|A5          A0|19‹-›  DATA                      *
; *             Q ‹-›3|A4          A1|18‹-›  CLK                       *
; *       MCLR/VPP -›4|A3          A2|17‹-›                            *
; *               ‹-›5|C5          C0|16‹-›                            *
; *               ‹-›6|C4          C1|15‹-›                            *
; *               ‹-›7|C3          C2|14‹-›                            *
; *               ‹-›8|C6          B4|13‹-›                            *
; *               ‹-›9|C7          B5|12‹-›                            *
; *              ‹-›10|B7          B6|11‹-›                            *
; *                   ---------------                                  *
; **********************************************************************

;-------------------------------------------------------------
 	cblock	0x71
      
c1			;proměnné pro cykly
c2  
MUUJ
HODNOTA
ADRESA
	endc

;--------------------------------------------------------------------
;   MAKRA PRO ZMĚNU BANK REGISTRŮ
;   POUŽITÍ - STAČÍ NAPSAT BANKA0 A PIC SE PŘEHODÍ DO BANKY 0
;--------------------------------------------------------------------

;-------------------------------------------------------------
                   
         MOVLW    b'00000000'        ;binární hodnota do W
	banksel	ANSEL
	MOVWF	ANSEL              ;PŘEPNUTÍ DO DIGI
	MOVWF	ANSELH

	banksel	TRISA		;1=input,0=output
         MOVWF    TRISA              ;nastavení portu
         MOVWF    TRISB              ;nastavení portu
         MOVWF    TRISC              ;nastavení portu
         BCF      STATUS,RP0         ;přesun zpět do banky 0
         BCF      STATUS,RP1         ;přesun zpět do banky 0
	BCF 	INTCON,GIE 	;zákaz přerušení
	CLRF	HODNOTA
	CLRF	ADRESA

;--------------------------------------------------------------
	BANKSEL	PORTB	
	MOVLW	0XFF
	MOVWF	PORTB



LOOP	NOP
   	banksel   	EEDATA
   	movF 	HODNOTA,W      ;příprava dat
   	banksel   	EEDATA
	MOVWF    	EEDATA        ;
	banksel	ADRESA   
	movF 	ADRESA,W       ;nastavení adresy
	banksel   	EEDATA
	MOVWF    	EEADR      ;do ukazatele 	

	banksel   	PIR2
   	bcf      	PIR2,EEIF   ; smaz bit kompletniho zapisu
   	banksel   	EECON1
   	bcf      	EECON1,EEPGD   ; nastaveni datove pameti
   	bsf      	EECON1,WREN   ; povolit zapis do EEPROM
   	bcf      	INTCON,GIE   ; !!! zakazano preruseni !!!
   	;-----------------------; aktivace zapisu
   	movlw   	055h      ; povinna povolovací sekvence
   	movwf   	EECON2
   	movlw   	0AAh
   	movwf   	EECON2
   	bsf      	EECON1,WR   ; spustit zapis
   	;-----------------------; konec aktivace
   	banksel   	PIR2
   	btfss   	PIR2,EEIF   ; pockat na konec zapisu
   	goto   	$-1
   	banksel   	EECON1
   	bcf      	EECON1,WREN   ; zakazat zapis do EEPROM
   	banksel   	0
   	bsf      	INTCON,GIE   ; !!! povoleno preruseni !!! 

	INCFSZ	HODNOTA,F
	INCFSZ	ADRESA,F
	BTFSS	ADRESA,4	

	GOTO 	LOOP

	BANKSEL	PORTB	
	MOVLW	0X00
	MOVWF	PORTB
	goto $


;--------------------------------------------------------------
         END                         ;konec programu



