6 Ocak 2011 Perşembe

1.4 Port Yazmacı (devam 3) (Port Register)

Prg: 6

       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