;--------------------------------------------------------------
;YAZAN		SAMİ HOCA
;--------------------------------------------------------------
;TARİH		18-07-2006
;DOSYA ADI	DENEY3
;PIC ADI	16F877
;REZONATÖR	4 MHZ XT
;KOMUT HIZI	
;WATCHDOG	DEVRE DIŞI
;KOD KORUMA	YOK
;KONU		LEDLERLE ÇEŞİTLİ EFEKTLER
;------------------------------------------
	Title "LED Efektleri"
    list P = 16f877
    include "P16f877.inc"  ; use definition file for 16f877
	__CONFIG _XT_OSC & _CP_OFF & _PWRTE_OFF &_WDT_OFF

;---------------------------------------------------------------
;KULLANICI RAM TANIMLAMALARI
;-TANIMLAR------------------------------------------------------
	S1		EQU		20H	;S1 DEĞİŞKENİ TANIMLANDI
	S2 		EQU		10H	;S2 DEĞİŞKENİ TANIMLANDI
	S3		EQU		11H	;S3 DEĞİŞKENİ TANIMLANDI
;	S4		EQU		14H	;S3 DEĞİŞKENİ TANIMLANDI
	ADET	EQU		12H	;DEĞİŞKEN TANIMLANDI
	HIZ		EQU		13H
    org 	0x0000      ; start address = 0000h

;PORTLARI SİLME-----------------------------------------------
	CALL	SIL
;PORTLARI DÜZENLEME-------------------------------------------
    bsf STATUS,RP0  	;BANK1'E GEÇ
    movlw b'000000'       
    movwf TRISA			;BÜTÜN PİNLER ÇIKIŞ
    movlw b'00000000'
    movwf TRISB			;BÜTÜN PİNLER ÇIKIŞ
    movlw b'00000000'
    movwf TRISC			;BÜTÜN PİNLER ÇIKIŞ
    movlw b'00000000'
    movwf TRISD			;BÜTÜN PİNLER ÇIKIŞ
    movlw b'00000000'
    movwf TRISE			;BÜTÜN PİNLER ÇIKIŞ
    bcf STATUS,RP0  	;BANK0'A GEÇ
;-------------------------------------------------------------
BASLA  

;	GOTO	SONDENEY


	CALL	HIZLAN
TEKRAR	
;-1- TEK TEK YANARAK VE SÖNMEDEN SONA GİT
;PORTA 0-1-2-3-5
	MOVLW 	B'000001'
	MOVWF 	PORTA
	CALL 	BEKLE
	MOVLW 	B'000011'
	MOVWF 	PORTA
	CALL 	BEKLE
	MOVLW 	B'000111'
	MOVWF 	PORTA
	CALL 	BEKLE
	MOVLW 	B'001111'
	MOVWF 	PORTA
	CALL 	BEKLE
	MOVLW 	B'101111'
	MOVWF 	PORTA
	CALL 	BEKLE
;PORTE 3 ADET	
	MOVLW 	B'001'
	MOVWF 	PORTE
	CALL 	BEKLE
	MOVLW 	B'011'
	MOVWF 	PORTE
	CALL 	BEKLE
	MOVLW 	B'111'
	MOVWF 	PORTE
	CALL 	BEKLE

;PORTC 0-1-2-3-4-5-6-7
	MOVLW 	B'00000001'
	MOVWF 	PORTC
	CALL 	BEKLE
DON2
	RLF		PORTC
	BSF		PORTC,0
	CALL	BEKLE
	BTFSS	PORTC,7
	GOTO	DON2
;PORTD 0-1-2-3
	MOVLW 	B'00000001'
	MOVWF 	PORTD
	CALL 	BEKLE
DON3
	RLF		PORTD
	BSF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTD,7
	GOTO	DON3

;PORTB 0-1-2-4-5-6-7
	MOVLW 	B'00000001'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'00000011'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'00000111'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'00010111'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'00110111'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'01110111'
	MOVWF 	PORTB
	CALL 	BEKLE
	MOVLW 	B'11110111'
	MOVWF 	PORTB
	CALL 	BEKLE
;GERİ DÖNÜŞ - LEDLERİ TEK TEK SÖNDÜREREK GİT
;PORTA LEDLERİNİ SÖNDÜR
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	CALL	BEKLE
;PORTE LEDLERİNİ SÖNDÜR 0-1-2
	MOVLW	B'110'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'000'
	MOVWF	PORTE
	CALL	BEKLE
;PORTC LEDLERİNİ SÖNDÜR 0-1-2-3-4-5-6-7
	MOVLW	B'11111110'
	MOVWF	PORTC
	CALL	BEKLE
DON8
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
	BTFSC	PORTC,7
	GOTO	DON8
;PORTD LEDLERİNİ SÖNDÜR 0-1-2-3-4-5-6-7
	MOVLW	B'11111110'
	MOVWF	PORTD
	CALL	BEKLE
DON9
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSC	PORTD,7
	GOTO	DON9
;PORTB LEDLERİNİ SÖNDÜR 0-1-2
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	CLRF	PORTB
	CALL	BEKLE

	CALL	SIL
	BCF		STATUS,0

	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK1		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH1		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK1	
	RLF		HIZ		;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR		;TEKRAR RUTİNİNE GİT
FLH1
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL


;----------------------------------------------------------------
;-2- ÜÇ LED YAK VE SONA KADAR 3'LÜ OLARAK GİT (ÜÇLÜ KARA ŞİMŞEK)
;----------------------------------------------------------------
	CALL	HIZLAN

;PORTA LEDLERİ 0-1-2-3-5
TEKRAR2
	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
;3'LÜ HAREKET PORTE'YE GEÇİYOR
	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'011'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	MOVLW	B'111'
	MOVWF	PORTE
	CALL	BEKLE
;3'LÜ HAREKET PORTC'YE GEÇİYOR
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTC
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTC
	CALL	BEKLE
	CLRF	PORTE
	MOVLW	B'00000111'
	MOVWF	PORTC
	CALL	BEKLE
DON13
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
	BTFSS	PORTC,7
	GOTO	DON13	
;3'LÜ HAREKET PORTC'DEN PORTD'YE GEÇİŞ
	MOVLW	B'00000001'
	MOVWF	PORTD
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
DON14
	RLF		PORTC
	BCF		PORTC,0
	RLF		PORTD
	BSF		PORTD,0
	CALL	BEKLE	
	BTFSS	PORTD,2
	GOTO	DON14
DON15
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTD,7
	GOTO	DON15
;3'LÜ HAREKET PORTD'DEN PORTB'YE GEÇİŞ
	MOVLW	B'00000001'
	MOVWF	PORTB
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
DON16
	RLF		PORTD
	BCF		PORTD,0
	RLF		PORTB
	BSF		PORTB,0
	CALL	BEKLE	
	BTFSS	PORTB,2
	GOTO	DON16
	MOVLW	B'00010110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01110000'
	MOVWF	PORTB
	CALL	BEKLE
DON17
	RLF		PORTB
	BCF		PORTB,0
	CALL	BEKLE
	BTFSC	PORTB,7
	GOTO	DON17
;3'LÜ HAREKET GERİ DÖNÜŞ
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00010110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000011'
	MOVWF	PORTB
	MOVLW	B'10000000'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'00000001'
	MOVWF	PORTB
	MOVLW	B'11000000'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'00000000'
	MOVWF	PORTB
	MOVLW	B'11100000'
	MOVWF	PORTD
	CALL	BEKLE
DON18
	RRF		PORTD
	BCF		PORTD,7
	CALL	BEKLE
	BTFSS	PORTD,0
	GOTO	DON18
	MOVLW	B'00000011'
	MOVWF	PORTD
	MOVLW	B'10000000'
	MOVWF	PORTC
	CALL	BEKLE
	MOVLW	B'00000001'
	MOVWF	PORTD
	MOVLW	B'11000000'
	MOVWF	PORTC
	CALL	BEKLE
	MOVLW	B'00000000'
	MOVWF	PORTD
	MOVLW	B'11100000'
	MOVWF	PORTC
	CALL	BEKLE
DON19
	RRF		PORTC
	BCF		PORTC,7
	CALL	BEKLE
	BTFSS	PORTC,0
	GOTO	DON19
	MOVLW	B'00000011'
	MOVWF	PORTC
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'00000001'
	MOVWF	PORTC
	MOVLW	B'110'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'00000000'
	MOVWF	PORTC
	MOVLW	B'111'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'011'
	MOVWF	PORTE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001'
	MOVWF	PORTE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK2		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH2		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK2
	RLF		HIZ		;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR2		;TEKRAR RUTİNİNE GİT
FLH2
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL


;----------------------------------------------------------------
;-3- BAŞTAN VE SONDAN BİRER TANE YANARAK AKARDİON
;----------------------------------------------------------------
	CALL	HIZLAN
TEKRAR3
;PORTA VE PORTB'DEN BİRER TANE YAKARAK ORTADA BULUŞ
	MOVLW	B'000001'
	MOVWF	PORTA
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'000011'
	MOVWF	PORTA
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'000111'
	MOVWF	PORTA
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'001111'
	MOVWF	PORTA
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE

;PORTB VE PORTE YANIYOR
	MOVLW	B'11110110'
	MOVWF	PORTB
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'11110111'
	MOVWF	PORTB
	MOVLW	B'011'
	MOVWF	PORTE
	CALL	BEKLE
;PORTE VE PORTD YANIYOR
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'10000000'
	MOVWF	PORTD
	CALL	BEKLE
;PORTD VE PORTC YANIYOR
	MOVLW	B'11000000'
	MOVWF	PORTD
	MOVLW	B'00000001'
	MOVWF	PORTC
	CALL	BEKLE
DON20
	RRF		PORTD
	BSF		PORTD,7
	RLF		PORTC
	BSF		PORTC,0
	CALL	BEKLE
	BTFSS	PORTC,7
	GOTO	DON20
;AKARDION PORTA VE PORTB'DEN İTİBAREN SÖNÜYOR
	MOVLW	B'101110'
	MOVWF	PORTA
	MOVLW	B'01110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'00000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	MOVLW	B'00000011'
	MOVWF	PORTB
	CALL	BEKLE
;PORTE VE PORTB SÖNÜYOR
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00000000'
	MOVWF	PORTB
	CALL	BEKLE
;PORTE VE PORTD SÖNÜYOR
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'01111111'
	MOVWF	PORTD
	CALL	BEKLE
;PORTC VE PORTD SÖNÜYOR
	MOVLW	B'11111110'
	MOVWF	PORTC
	MOVLW	B'00111111'
	MOVWF	PORTD
	CALL	BEKLE
DON21
	RLF		PORTC
	BCF		PORTC,0
	RRF		PORTD
	BCF		PORTD,7
	CALL	BEKLE
	BTFSC	PORTC,7
	GOTO	DON21

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK3		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH3		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK3
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR3		;GERİ DÖN
FLH3
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL

;----------------------------------------------------------------
;-4- PORTA'DAN İTİBAREN 5 LED YAKARAK SONA KADAR GİT(BEŞLİ KARA ŞİMŞEK)
;----------------------------------------------------------------

	CALL	HIZLAN
TEKRAR4
	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	CALL	BEKLE
;PORTE'YE GEÇİYOR
	MOVLW	B'101110'
	MOVWF	PORTA
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE

	MOVLW	B'101100'
	MOVWF	PORTA
	MOVLW	B'011'
	MOVWF	PORTE
	CALL	BEKLE

	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'111'
	MOVWF	PORTE
	CALL	BEKLE
;PORTC'YE GEÇİYOR
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTC
	CALL	BEKLE

	CLRF	PORTA
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTC
	CALL	BEKLE

	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000111'
	MOVWF	PORTC
	CALL	BEKLE

	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00001111'
	MOVWF	PORTC
	CALL	BEKLE

	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'00011111'
	MOVWF	PORTC
	CALL	BEKLE
DON22
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
	BTFSS	PORTC,7
	GOTO	DON22

	MOVLW	B'11110000'
	MOVWF	PORTC
	MOVLW	B'00000001'
	MOVWF	PORTD
	CALL	BEKLE
DON23
	RLF		PORTC
	BCF		PORTC,0
	RLF		PORTD
	BSF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTD,4
	GOTO	DON23
DON24
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTD,7
	GOTO	DON24

	MOVLW	B'11110000'
	MOVWF	PORTD
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11100000'
	MOVWF	PORTD
	MOVLW	B'00000011'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11000000'
	MOVWF	PORTD
	MOVLW	B'00000111'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'10000000'
	MOVWF	PORTD
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE

	CLRF	PORTD
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'01110110'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE

	CLRF	PORTB
	CALL	BEKLE
;-------------
;5 LED YAKARAK GERİ DÖNÜŞ
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
;PORTD'YE GEÇİYOR
	MOVLW	B'00010111'
	MOVWF	PORTB
	MOVLW	B'10000000'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'00000111'
	MOVWF	PORTB
	MOVLW	B'11000000'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'00000011'
	MOVWF	PORTB
	MOVLW	B'11100000'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'00000001'
	MOVWF	PORTB
	MOVLW	B'11110000'
	MOVWF	PORTD
	CALL	BEKLE
	CLRF	PORTB
	MOVLW	B'11111000'
	MOVWF	PORTD
	CALL	BEKLE
DON25
	RRF		PORTD
	BCF		PORTD,7
	CALL	BEKLE
	BTFSS	PORTD,0
	GOTO	DON25
;PORTC'YE GEÇİYOR
	MOVLW	B'00001111'
	MOVWF	PORTD
	MOVLW	B'10000000'
	MOVWF	PORTC
	CALL	BEKLE	
DON26
	RRF		PORTD
	BCF		PORTD,0
	RRF		PORTC
	BSF		PORTC,7
	CALL	BEKLE
	BTFSS	PORTC,3
	GOTO	DON26
DON27
	RRF		PORTC
	BCF		PORTC,7
	CALL	BEKLE
	BTFSS	PORTC,0
	GOTO	DON27
;PORTE'YE GEÇİYOR
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00001111'
	MOVWF	PORTC
	CALL	BEKLE	

	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000111'
	MOVWF	PORTC
	CALL	BEKLE	

	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTC
	CALL	BEKLE	
;PORTA'YA GEÇİYOR
	MOVLW	B'00000001'
	MOVWF	PORTC
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE

	CLRF	PORTC
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'011'
	MOVWF	PORTA
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'001'
	MOVWF	PORTA
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE

	CLRF	PORTE
	MOVLW	B'101111'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'001111'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'000111'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE

	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE

	CLRF	PORTA
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK4		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH4		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK4
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR4		;GERİ DÖN
FLH4
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL


;----------------------------------------------------------------
;PORTB'DEN GERİYE DOĞRU EN BAŞA KADAR YANARAK GİTSİN  
;----------------------------------------------------------------

	CALL	HIZLAN
TEKRAR5
;PORTB LEDLERİ GERİYE DOĞRU YANSIN
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE
;PORTD LEDLERİ GERİYE DOĞRU YANSIN
	MOVLW	B'10000000'
	MOVWF	PORTD
	CALL	BEKLE
DON63
	RRF		PORTD
	BSF		PORTD,7
	CALL	BEKLE
	BTFSS	PORTD,0
	GOTO	DON63
;PORTC LEDLERİ GERİYE DOĞRU YANSIN
	MOVLW	B'10000000'
	MOVWF	PORTC
	CALL	BEKLE
DON64
	RRF		PORTC
	BSF		PORTC,7
	CALL	BEKLE
	BTFSS	PORTC,0
	GOTO	DON64
;PORTE LEDLERİ GERİYE DOĞRU YANSIN
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'110'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'111'
	MOVWF	PORTE
	CALL	BEKLE
;PORTA LEDLERİ GERİYE DOĞRU YANSIN
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	CALL	BEKLE
;PORTA'DAN İTİBAREN GERİ SÖNSÜN	
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	CALL	BEKLE
;PORTE GERİ SÖNSÜN
	MOVLW	B'110'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'000'
	MOVWF	PORTE
	CALL	BEKLE
;PORTC GERİ SÖNSÜN
	MOVLW	B'11111111'
	MOVWF	PORTC
DON65
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
	BTFSC	PORTC,7
	GOTO	DON65
;PORTD GERİ SÖNSÜN
	MOVLW	B'11111111'
	MOVWF	PORTD
DON66
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSC	PORTD,7
	GOTO	DON66
;PORTB GERİ SÖNSÜN
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000000'
	MOVWF	PORTB
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK5		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH5		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK5
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR5		;GERİ DÖN
FLH5
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL

;----------------------------------------------------------------
;-6- PORTA'DAN İLERİYE 1-11-21-31. LEDLER YANSIN VE BİRER ARTSIN  
;----------------------------------------------------------------
	
	CALL	HIZLAN
TEKRAR6
;PORTA 0 + PORTC 2 + PORTD 4+ PORTB 7  LEDLERİ YANSIN
	MOVLW	B'000001'
	MOVWF	PORTA
	MOVLW	B'00000100'
	MOVWF	PORTC
	MOVLW	B'00010000'
	MOVWF	PORTD
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'000011'
	MOVWF	PORTA
	MOVLW	B'00001100'
	MOVWF	PORTC
	MOVLW	B'00110000'
	MOVWF	PORTD
	CALL	BEKLE

	MOVLW	B'000111'
	MOVWF	PORTA
	MOVLW	B'00011100'
	MOVWF	PORTC
	MOVLW	B'01110000'
	MOVWF	PORTD
	CALL	BEKLE

	MOVLW	B'001111'
	MOVWF	PORTA
	MOVLW	B'00111100'
	MOVWF	PORTC
	MOVLW	B'11110000'
	MOVWF	PORTD
	CALL	BEKLE

	MOVLW	B'101111'
	MOVWF	PORTA
	MOVLW	B'01111100'
	MOVWF	PORTC
	MOVLW	B'10000001'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'001'
	MOVWF	PORTE
	MOVLW	B'11111100'
	MOVWF	PORTC
	MOVLW	B'10000011'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'011'
	MOVWF	PORTE
	MOVLW	B'11110001'
	MOVWF	PORTD
	MOVLW	B'10000111'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'11110011'
	MOVWF	PORTD
	MOVLW	B'10010111'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'111111101'
	MOVWF	PORTC
	MOVLW	B'11110111'
	MOVWF	PORTD
	MOVLW	B'10110111'
	MOVWF	PORTB
	CALL	BEKLE

	MOVLW	B'111111111'
	MOVWF	PORTC
	MOVLW	B'11111111'
	MOVWF	PORTD
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE

;GERİ SÖNME İŞLEMİ
	MOVLW	B'101110'
	MOVWF	PORTA
	MOVLW	B'11111011'
	MOVWF	PORTC
	MOVLW	B'11101111'
	MOVWF	PORTD
	CALL	BEKLE
;2.LEDLER SÖNÜYOR
	MOVLW	B'101100'
	MOVWF	PORTA
	MOVLW	B'11110011'
	MOVWF	PORTC
	MOVLW	B'11001111'
	MOVWF	PORTD
	CALL	BEKLE
;3.LEDLER SÖNÜYOR
	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'11100011'
	MOVWF	PORTC
	MOVLW	B'10001111'
	MOVWF	PORTD
	CALL	BEKLE
;4.LEDLER SÖNÜYOR
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'11000011'
	MOVWF	PORTC
	MOVLW	B'00001111'
	MOVWF	PORTD
	CALL	BEKLE
;5.LEDLER SÖNÜYOR
	MOVLW	B'000000'
	MOVWF	PORTA
	MOVLW	B'10000011'
	MOVWF	PORTC
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
;6.LEDLER SÖNÜYOR
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTC
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
;7.LEDLER SÖNÜYOR
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00001110'
	MOVWF	PORTD
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
;8.LEDLER SÖNÜYOR
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'00001100'
	MOVWF	PORTD
	MOVLW	B'11100000'
	MOVWF	PORTB
	CALL	BEKLE
;9.LEDLER SÖNÜYOR
	MOVLW	B'00000010'
	MOVWF	PORTC
	MOVLW	B'00001000'
	MOVWF	PORTD
	MOVLW	B'11000000'
	MOVWF	PORTB
	CALL	BEKLE
;10.LEDLER SÖNÜYOR
	MOVLW	B'00000000'
	MOVWF	PORTC
	MOVLW	B'00000000'
	MOVWF	PORTD
	MOVLW	B'00000000'
	MOVWF	PORTB
	CALL	BEKLE


	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK6		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH6		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK6
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR6		;GERİ DÖN
FLH6
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL

;----------------------------------------------------------------
;-7- PORTA'DAN İLERİYE LEDLER 5'ERLİ YANSIN VE MEKSİKA DALGALANMASI  
;----------------------------------------------------------------


	CALL	HIZLAN
TEKRAR7
;PORTA 0-5 LEDLERİ YANSIN
	MOVLW	B'101111'
	MOVWF	PORTA
	CALL	BEKLE
;PORTE 0-1-2 VE PORTC 0-1 LEDLERİ YANSIN
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTC
	CALL	BEKLE
;PORTC 2-3-4-5-6 LEDLERİ YANSIN
	MOVLW	B'01111111'
	MOVWF	PORTC
	CALL	BEKLE
;PORTC 7 VE PORTD 0-1-2-3 LEDLERİ YANSIN
	MOVLW	B'11111111'
	MOVWF	PORTC
	MOVLW	B'00001111'
	MOVWF	PORTD
	CALL	BEKLE
;PORTD 4-5-6-7 VE PORTB 0 LEDLERİ YANSIN
	MOVLW	B'11111111'
	MOVWF	PORTD
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
;PORTB 1-2-4-5-6-7- LEDLERİ YANSIN
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE
;MEKSİKA DALGALANMASI -3 LEDLİ HAREKET
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'100001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000111'
	MOVWF	PORTA
	MOVLW	B'110'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'001111'
	MOVWF	PORTA
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	MOVLW	B'000'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'001'
	MOVWF	PORTE
	MOVLW	B'11111110'
	MOVWF	PORTC
	CALL	BEKLE
	MOVLW	B'011'
	MOVWF	PORTE
	MOVLW	B'11111100'
	MOVWF	PORTC
	CALL	BEKLE
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'11111000'
	MOVWF	PORTC
	CALL	BEKLE
DON67
	RLF		PORTC
	BSF		PORTC,0
	CALL	BEKLE
	BTFSC	PORTC,7
	GOTO	DON67
DON68
	RLF		PORTC
	BSF		PORTC,0
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSC	PORTD,2
	GOTO	DON68
DON69
	RLF		PORTD
	BSF		PORTD,0
	CALL	BEKLE
	BTFSC	PORTD,7
	GOTO	DON69

	MOVLW	B'00111111'
	MOVWF	PORTD
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01111111'
	MOVWF	PORTD
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11111111'
	MOVWF	PORTD
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000011'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'10000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE
;GERİ DÖNÜŞ
	MOVLW	B'01110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'10000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11000011'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11100001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'11110000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01111111'
	MOVWF	PORTD
	MOVLW	B'11110100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00111111'
	MOVWF	PORTD
	MOVLW	B'11110110'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00011111'
	MOVWF	PORTD
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE
DON70
	RRF		PORTD
	BSF		PORTD,7
	CALL	BEKLE
	BTFSC	PORTD,0
	GOTO	DON70
DON71
	RRF		PORTD
	BSF		PORTD,7
	RRF		PORTC
	BCF		PORTC,7
	BTFSC	PORTC,5
	GOTO	DON71
DON72
	RRF		PORTC
	BSF		PORTC,7
	CALL	BEKLE
	BTFSC	PORTC,0
	GOTO	DON72

	MOVLW	B'00111111'
	MOVWF	PORTC
	MOVLW	B'011'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'01111111'
	MOVWF	PORTC
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'11111111'
	MOVWF	PORTC
	MOVLW	B'000'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'001111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'000111'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'000011'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'100001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101110'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK7		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH7		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK7
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR7		;GERİ DÖN
FLH7
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL

;----------------------------------------------------------------
;-8- ORTADAN BAŞA VE SONA DOĞRU AKARDION  
;----------------------------------------------------------------

	CALL	HIZLAN
TEKRAR8
	MOVLW	B'10000000'
	MOVWF	PORTC
	CALL	BEKLE
DON73
	RRF		PORTC
	BSF		PORTC,7
	RLF		PORTD
	BSF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTC,0
	GOTO	DON73
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'11111111'
	MOVWF	PORTD
	CALL	BEKLE
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'111'
	MOVWF	PORTE
	MOVLW	B'00000011'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'00000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101110'
	MOVWF	PORTA
	MOVLW	B'01110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101111'
	MOVWF	PORTA
	MOVLW	B'11110111'
	MOVWF	PORTB
	CALL	BEKLE
;GERİ DÖNÜŞ HAREKETLERİ
	MOVLW	B'101110'
	MOVWF	PORTA
	MOVLW	B'01110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101100'
	MOVWF	PORTA
	MOVLW	B'00110111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'101000'
	MOVWF	PORTA
	MOVLW	B'00010111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	MOVLW	B'00000111'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	MOVLW	B'00000011'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'110'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	MOVLW	B'00000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'01111111'
	MOVWF	PORTD
	CALL	BEKLE
DON74
	RLF		PORTC
	BCF		PORTC,0
	RRF		PORTD
	BCF		PORTD,7
	CALL	BEKLE
	BTFSC	PORTD,0
	GOTO	DON74
	MOVLW	B'00000000'
	MOVWF	PORTC
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK8		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH8		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK8
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR8		;GERİ DÖN
FLH8
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL

;----------------------------------------------------------------
;-9- PORTA'DAN SONA DOĞRU TEK TEK HAREKET (TEKLİ KARA ŞİMŞEK)   
;----------------------------------------------------------------
;	SONDENEY

	CALL	HIZLAN
TEKRAR9
	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000010'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
;PORTE LEDLERİ YANIYOR
	MOVLW	B'000000'
	MOVWF	PORTA
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'010'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
;PORTC LEDLERİ YANIYOR
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'00000001'
	MOVWF	PORTC
	CALL	BEKLE
DON75
	RLF		PORTC
	BCF		PORTC,0
	CALL	BEKLE
	BTFSS	PORTC,7
	GOTO	DON75
;PORTD LEDLERİ YANIYOR
	MOVLW	B'00000000'
	MOVWF	PORTC
	MOVLW	B'00000001'
	MOVWF	PORTD
	CALL	BEKLE
DON76
	RLF		PORTD
	BCF		PORTD,0
	CALL	BEKLE
	BTFSS	PORTD,7
	GOTO	DON76
;PORTB LEDLERİ YANIYOR
	MOVLW	B'00000000'
	MOVWF	PORTD
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000010'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00010000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000000'
	MOVWF	PORTB
	CALL	BEKLE
;GERİ DÖNÜŞ HAREKETLERİ -PORTB
	MOVLW	B'10000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'01000000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00100000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00010000'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000100'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000010'
	MOVWF	PORTB
	CALL	BEKLE
	MOVLW	B'00000001'
	MOVWF	PORTB
	CALL	BEKLE
;PORTD LEDLERİ GERİ DÖNÜŞ
	MOVLW	B'00000000'
	MOVWF	PORTB
	MOVLW	B'10000000'
	MOVWF	PORTD
	CALL	BEKLE
DON77
	RRF		PORTD
	BCF		PORTD,7
	CALL	BEKLE
	BTFSS	PORTD,0
	GOTO	DON77
;PORTC LEDLERİ GERİ DÖNÜŞ
	MOVLW	B'00000000'
	MOVWF	PORTD
	MOVLW	B'10000000'
	MOVWF	PORTC
	CALL	BEKLE
DON78
	RRF		PORTC
	BCF		PORTC,7
	CALL	BEKLE
	BTFSS	PORTC,0
	GOTO	DON78
;PORTE LEDLERİ GERİ DÖNÜŞ
	MOVLW	B'00000000'
	MOVWF	PORTC
	MOVLW	B'100'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'010'
	MOVWF	PORTE
	CALL	BEKLE
	MOVLW	B'001'
	MOVWF	PORTE
	CALL	BEKLE
;PORTB LEDLERİ GERİ DÖNÜŞ
	MOVLW	B'000'
	MOVWF	PORTE
	MOVLW	B'100000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'001000'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000100'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000010'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000001'
	MOVWF	PORTA
	CALL	BEKLE
	MOVLW	B'000000'
	MOVWF	PORTA
	CALL	BEKLE

	BCF	STATUS,0
	DECFSZ	ADET,1		;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT
	GOTO	MUK9		;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT
	GOTO	FLH9		;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT
MUK9
	RLF		HIZ			;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100)
	GOTO	TEKRAR9 	;GERİ DÖN
FLH9
	MOVLW	B'001'
	MOVWF	HIZ
	CALL	FLASH		;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL



	GOTO	BASLA


;-------------------------------------------------------
HIZLAN
	MOVLW	.3		;W REG'E DECIMAL 3 SAYISINI YÜKLE (3 DEFA TEKRAR ETMEK İÇİN)
	MOVWF	ADET	;W REG'DEKİ 3 SAYISINI ADET DEĞİŞKENİNE YÜKLE
	MOVLW	B'001'	;W REG'E BINARY'001' SAYISINI YÜKLE (3 FARKLI HIZ İÇİN)
	MOVWF	HIZ		;W REG'DEKİ '0001' SAYISINI HIZ DEĞİŞKENİNE YÜKLE
	RETURN
;-------------------------------------------------------
SIL
	CLRF	PORTA
	CLRF	PORTB
	CLRF	PORTC
	CLRF	PORTD
	CLRF	PORTE
	RETURN
;-------------------------------------------------------
FLASH
	MOVLW	.3
	MOVWF	ADET
FLSH1
	MOVLW	B'101111'
	MOVWF	PORTA
	MOVLW	B'11110111'
	MOVWF	PORTB
	MOVLW	B'11111111'
	MOVWF	PORTC
	MOVLW	B'11111111'
	MOVWF	PORTD
	MOVLW	B'111'
	MOVWF	PORTE

	CALL	BEKLE
	CALL	BEKLE
	CALL	BEKLE

	CLRF	PORTA
	CLRF	PORTB
	CLRF	PORTC
	CLRF	PORTD
	CLRF	PORTE

	CALL	BEKLE
	CALL	BEKLE
	CALL	BEKLE

	DECFSZ	ADET,1
	GOTO	FLSH1
	RETURN


; 1/2 SEC BEKLE SUBROUTINE WITH 4MHz CLOCK

;-------------------------------------------------------	
BEKLE	
	BTFSS	HIZ,0
	GOTO	HIZ2
	GOTO	BEKLE1
HIZ2	
	BTFSS	HIZ,1
	GOTO	HIZ3
	GOTO	BEKLE2
HIZ3
	BTFSS	HIZ,2
	GOTO	BEKLE3	
	GOTO	BEKLE3
	
BEKLE1	
	MOVLW	.150		;W REG'E 200 SAYISINI AT
	MOVWF	S1		;S1 DEĞERİNİ W'DEN AL
SAY1	MOVLW	.150		;WREG'E 200 SAYISINI AT
	MOVWF	S2		;S2 DEĞERİNİ W'DEN AL
	MOVLW	.150
	MOVWF	S3
;	MOVLW	.150
;	MOVWF	S4

SAY2	DECFSZ	S2,1		;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA	
	GOTO	SAY2		;0 DEĞİLSE, D2'YE GİT
SAY3	DECFSZ	S3,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY3		;0 DEĞİLSE, A1'E GİT
;SAY4	DECFSZ	S4,1
;	GOTO	SAY4
	DECFSZ	S1,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY1		;0 DEĞİLSE, A1'E GİT
	RETURN

BEKLE2	
	MOVLW	.120		;W REG'E 200 SAYISINI AT
	MOVWF	S1		;S1 DEĞERİNİ W'DEN AL
SAY21	MOVLW	.120    	;WREG'E 200 SAYISINI AT
	MOVWF	S2		;S2 DEĞERİNİ W'DEN AL
	MOVLW	.120
	MOVWF	S3
SAY22	DECFSZ	S2,1		;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA	
	GOTO	SAY22		;0 DEĞİLSE, D2'YE GİT
SAY23	DECFSZ	S3,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY23		;0 DEĞİLSE, A1'E GİT
	DECFSZ	S1,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY21		;0 DEĞİLSE, A1'E GİT
	RETURN
BEKLE3	
	MOVLW	.90		;W REG'E 200 SAYISINI AT
	MOVWF	S1		;S1 DEĞERİNİ W'DEN AL
SAY31	MOVLW	.90		;WREG'E 200 SAYISINI AT
	MOVWF	S2		;S2 DEĞERİNİ W'DEN AL
	MOVLW	.90
	MOVWF	S3
SAY32	DECFSZ	S2,1		;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA	
	GOTO	SAY32		;0 DEĞİLSE, D2'YE GİT
SAY33	DECFSZ	S3,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY33		;0 DEĞİLSE, A1'E GİT
	DECFSZ	S1,1		;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA
	GOTO	SAY31		;0 DEĞİLSE, A1'E GİT
	RETURN


	END	
