SAYAC1 EQU h’0C’
SAYAC2 EQU h’0D’
CLRF PORTB ;potrbnin içi en başta temizleniyor
BANKSEL TRISB
CLRF TRISB ;portb çıkış portu yapıldı
BANKSEL PORTB
MOVLW h’01’
MOVWF PORTB ;portb nin içine b’00000001' sayısı atıldı
SOL:
CALL GECIKME ;en başta bi bekleme anı oluyor
RLF PORTB,F ;içerik 1 birim sola kaydı
BTFSS PORTB,7 ;portbnnin 7. biti kontrol ediliyor,1 ise sağa kaydırma başlayacak 1 değilse tekrar ;sola kayma
GOTO SOL
SAG:
CALL GECIKME ;bekleme yapılıyor
RRF PORTB,F ;içerik 1 birim sağa kaydırılıyor
BTFSS PORTB,0 ;portbnin 0. biti kontrol ediliyor 1 ise sola kaymaya geçilecek,0 ise sağa ;kaymaya devam
GOTO SAG
GOTO SOL
GECIKME:
MOVLW h’FF’
MOVWF SAYAC1 ;gecikme için sayac1 in içine h’FF’ sayısı atılıyor
DONGU1:
MOVLW h’FF’
MOVWF SAYAC2 ;gecikme için sayac1 in içine h’FF’ sayısı atılıyor
DONGU2:
DECFSZ SAYAC2,F
GOTO DONGU2 ;sayac2 nin içindeki sayı 0 olana kadar her defasında 1 azalt,0 olunca saya1 i ; ;azaltmaya git
DECFSZ SAYAC1,F ;sayac1in içi 0 olana kadar her defasında 1 azalt,0 olduğunda return yap
GOTO DONGU1
RETURN ;en son callın yapıldığı adrese gider
END ;programı bitir



Başarılı
YanıtlaSilbaşarılı
YanıtlaSilBaşarılı tebrikler
YanıtlaSil