Device = 16F877 XTAL 4 TRISB=0 PORTB=1 ; 000001 DelayMS 500 PORTB=2 ; 000010 DelayMS 500 PORTB=4 ; 000100 DelayMS 500 PORTB=8 ; 001000 DelayMS 500 PORTB=16 ; 010000 DelayMS 500 PORTB=32 ; 100000 DelayMS 500 PORTB=64 ; %01000000 DelayMS 500 PORTB=128 ; %10000000 DelayMS 500 End |
Yukarıdaki örnekte PortB=1 demek ikilik sayı olarak 000001 demektir. Yani PortB.0 ucu Logic 1 olacak ve bağlı led yanacaktır. 500 Ms sonra PortB 000010 olacaktır. Bu durumda sadece PortB.1’re bağlı olan led yanacak diğerleri sönük kalacaktır. Bu şekilde birinci led’den itibaren bütün ledler 500ms aralıklarla sırası ile yanacaktır.
İlk bakışta 3. Program ile bu program aynı gibi gözükse de eylemler farklıdır. Birinci programda ledler sıra ile yanmaya başlayacak ve en son komutla bütün ledler yanık kalacak ve program sona erecektir. Fakat 4. Programda aynı anda sadece tek bir led yanık kalacaktır. Ledler sıra ile tek tek yanacak diğerleri ise sönük kalacaktır.
Prg 5:
Device = 16F877 XTAL 4 TRISB=0 Dongu: PORTB=1 ; 000001 DelayMS 500 PORTB=2 ; 000010 DelayMS 500 PORTB=4 ; 000100 DelayMS 500 PORTB=8 ; 001000 DelayMS 500 PORTB=16 ; 010000 DelayMS 500 PORTB=32 ; 100000 DelayMS 500 PORTB=64 ; %01000000 DelayMS 500 PORTB=128 ; %10000000 DelayMS 500 GoTo Dongu End |
Yukarıdaki programda yeni bir yapı kullanıldı. Dongu: bir etikettir. Bu etiket program içinde belirli noktaları işaretlemek amacıyla kullanılır. Programın normal akışı içinde farklı noktalara gitmek istediğimizde bu etiketleri kullanırız. Bu etiketlere gidebilmek içinde GoTo komutu kullanılır. Goto git anlamına gelmektedir. Program çalışmaya başladığında GoTo Dongu komutunu gördüğünde program Dongu: ile işaretli yere geri döner. Böylece bu arada sonsuz bir döngü kurulmuş olur. Program sürekli olarak başa dönerek aynı işlemleri yapmaya devam eder.
Hiç yorum yok:
Yorum Gönder