Device = 16F877 XTAL 4 TRISB=0 Dongu: PORTB=1 ; &00000001 DelayMS 500 PORTB=2 ; &00000010 DelayMS 500 PORTB=4 ; &00000100 DelayMS 500 PORTB=8 ; &00001000 DelayMS 500 PORTB=16 ; &00010000 DelayMS 500 PORTB=32 ; &00100000 DelayMS 500 PORTB=64 ; %01000000 DelayMS 500 PORTB=128 ; %10000000 DelayMS 500 PORTB=64 ; %01000000 DelayMS 500 PORTB=32 ; &00100000 DelayMS 500 PORTB=16 ; &00010000 DelayMS 500 PORTB=8 ; &00001000 DelayMS 500 PORTB=4 ; &00000100 DelayMS 500 PORTB=2 ; &00000010 DelayMS 500 GoTo Dongu End |
Genel olarak Kara Şimşek olarak da bilinen ve led'lerin sürekli yanarak sağa sola doğru hareket etmesini sağlayan uygulama.
Prg: 7
Device = 16F877 XTAL 4 TRISB=0 Dim I As Byte Dim Var1 As Word Dongu: Var1=1 For I=0 To 6 PORTB= Var1 DelayMS 200 Var1 = Var1 * 2 Next Var1=128 For I=0 To 6 PORTB= Var1 DelayMS 200 Var1 = Var1 / 2 Next GoTo Dongu End |
Yukarıdaki program işlev olarak Prg:6’dan farklı değildir. Buradaki farklılık programın yazılış tekniğindedir. Programı incelersek bir For Next döngüsü kurulmuştur. Bu döngü 7 kez dönmektedir. Her dönüşte Var1 isimli değişkeninin değeri sürekli olarak iki katına çıkmaktadır. Başlangıçta 1 olan değer sırası ile 1,2,4,8,16,32,64 olmaktadır. İkinci döngüde ise 128’ten başlayan değer sürekli ikiye bölünmektedir. Böylelikle 128,64,32,16,8,4,2 elde edilmektedir.
Dim ile değişken tanımlaması yapılmaktadır. Programda değişkenler kullanılmadan önce mutlaka tanımlama yapılması gerekmektedir. Değişken tipleri Bit,Byte,Word,DWord yada float olabilir. Burada dikkat edilmesi gereken nokta Deger değişkeni Word olarak tanımlanmıştır. Çünkü çarpma işleminde byte büyüklük yeterli olmasına rağmen bölme işlemi yaparken işlemin yapısından dolayı Word büyüklük kullanılması gerekmektedir. Eğer bu değişken Byte olarak tanımlanırsa bölme işlemi sonucu sürekli olarak 0 elde edilir.
Hiç yorum yok:
Yorum Gönder