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