PIC 16F877 Efeitos LED LED Circuito Moon Star 1994
Autor: Nilson Bávaro | Publicado: 2017-01-22T18:37:00-02:00


&nbsp;
Author: Sami Hoxha Projeto PIC16F877-94ledli, graças meses estrelas arquivos para as pessoas que trabalham

Circuito PIC16F877 com base em 94 levou Usado saídas do microcontrolador BC547 transistores com abundância maior de transistores e resistores são simuladas (. DSN) PCB (. Lyt) asm Source e software hex tem 4 hex arquivo, cada LEDs de trabalho diferentes em imagens diferentes para criar ofertas liderada por alterar o posicionamento ou a montagem de uma mudança no software é possível criar diferentes efeitos
Diagrama do circuito do projeto
 
Código Assembléia





;--------------------------------------------------------------
;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 &amp; _CP_OFF &amp; _PWRTE_OFF &amp;_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