3 Ocak 2011 Pazartesi

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

Devre 1

Şekil 6’yı incelersek; 8 adet led 330R’lik dirençler üzerinden JP1 Jumper’ına bağlanmıştır. JP1 led'lerin katotlarına GND vermek için kullanılmaktadır. Jumper 2-3 konumuna takılırsa led’ler doğru polarlanmış olur. Devre 1 ise bu devrenin Proteus programında hazırlanmış şeklidir. Bu led'leri belirli kombinasyonlar ile yakmak için çeşitli örnek yazılımlar aşağıdadır.

Prg: 1

Device = 16F877
XTAL 4

TRISB=0 ; Bütün PortB uçları çıkış konumuna alındı
PORTB=1 ; registere binary formatta 000001 yazıldı

End


PortB’nin 0 nolu ucuna bağlı led yanar. Çünkü ilgili uç gerilimsel olarak +5V seviyesine çıkartılmıştır.

Prg: 2


Device = 16F877
XTAL 4

TRISB=0 ; Bütün PortB uçları çıkış konumuna alındı
PORTB=001111 ; PortB=15

End



Binary (ikilik sayı) formatta bir sayı değerini yazmak için sayının başına % sembolü konur.  Bu ifade PortB yazmacının içeriğini aşağıdaki gibi değiştirecektir.

7
6
5
4
3
2
1
Bit 0
0
0
0
0
1
1
1
1
Pin 7
Pin 6
Pin 5
Pin 4
Pin 3
Pin 2
Pin 1
Pin 0


PortB = 001111 sayısının ondalık karşılığını hesaplarsak
PortB = 0x27 + 0x26 + 0x25 + 0x24 + 1x23 + 1x22 + 1x21 + 1x20
PortB = 0 + 0 + 0 + 0 + 8 + 4 + 2 + 1
             PortB = 15

Yukarıdaki programda PortB=001111 yerine PortB=15 yazmak aynı durumu ifade edecektir.

Bu program çalıştığında PortB.0, PortB.1, PortB.2, PortB.3 nolu uçlarına bağlı olan led’ler yanacak diğerleri sönük kalacaktır.

Prg: 3

Device = 16F877
XTAL 4
    TRISB=0
    PORTB=000000
    DelayMS 1000
    PORTB=000001
    DelayMS 1000
    PORTB=000011
    DelayMS 1000
    PORTB=000111
    DelayMS 1000
    PORTB=001111
    DelayMS 1000
    PORTB=011111
    DelayMS 1000
    PORTB=111111
    DelayMS 1000
    PORTB=%01111111
    DelayMS 1000
    PORTB=%11111111
    DelayMS 1000
End

Yukarıdaki programda diğerlerinden farklı olarak yeni bir komut kullanıldı. DelayMS komutu milisaniye kadar bekleme işlevini yapar. Örneğin yukarıda DelayMS 1000 dendiğine göre her işlemden sonra 1000 Ms yani 1 Sn bekle demektir. Programı incelersek önce bütün ledler sönecektir. 1 Sn beklenecek arkasından PortB.0’a bağlı led yanacak 1 Sn beklenecek, arkasından PortB.1’e bağlı led yanacak ve bu PortB.7’e kadar sırası ile devam edecektir.

Hiç yorum yok:

Yorum Gönder