İçeriğe geçmek için "Enter"a basın

7 Segment Displayin Yapısı ve Çevrim Tablosu

7 Segment displayleri öğrenmek için önce LED’in yapısını bilmek gerekir.

LED:

Led’ler elektronikte kullanılan en basit devre elemanı diyebileceğimiz diyotların ışık yayan bir türüdür. Led’ler tüm diyotlar gibi tek yönlü akım geçiren devre elemanlarıdır. Bu devre elemanlarında akım daima Anot (+)’dan Katod (-)’a doğru geçmek zorundadır. Ters bağlantı yapılması durumunda diyotun üzerine düşen ters gerilim diyot’un bozulmasına sebep olur.

7 SEGMENT DISPLAY:

7 Segment Display’ler bünyesinde 7 adet (noktalı ise 8) led bulunan ve digital rakam görüntüsü oluşturmak için kullanılan devre elemanlarıdır. Aşağıda çeşitli display örneklerini görebilirsiniz:

Displayi oluşturan ledler yukarıdan başlayarak saat yönünde sırasıyla harflerle isimlendirilmiştir. 

Her bir ledin yanması için – ucunun toprağa + ucunun da bir gerilim kaynağına (lojik 1) bağlanması gerekir. Bu ilkeden hareketle Toprak (-) uçları ortak (Ortak Katodlu) ve + uçları ortak (Ortak Anotlu) olmak üzere iki tip 7 Segment display geliştirilmiştir. Aşağıda bunların iç yapısı görülmektedir.

Ortak katodluda ortak olan Gnd ucu toprağa bağlanırken yanması istenilen Led için o ledin + ucuna bağlanan pine + gerilim (lojik 1) uygulanır.

Ortak anotluda ise ortak olan Vcc ucu bir gerilim kaynağına (pile) bağlanırken yanması istenilen Led için o ledin – ucuna bağlanan pine – gerilim (lojik 0) uygulanır.

PIC’e 7 Segment Dislplay Bağlanması:

Aşağıda B Portu tamamen çıkış için kullanılan bir PIC’e ortak katodlu (toprak uçları ortak) bir displayin bağlantısı gösterilmiştir.

Örneğin PIC’in çıkışı olan PORTB’ye h’02’ verisini yazdığımızı düşünelim. Bu çıkışa binary olarak b’00000010′ verisinin gönderilmesi anlamına gelir. Yukarıdaki şekilden de anlaşılacağı gibi displaye gönderilen böyle bir veri sadece sağ üstte yer alan b ledinin ışık vermesi diğerlerinin ise sönük kalması sonucunu doğurur. Yani PIC’ten gönderilen h’02’ verisi displayde 2 sayısının OLUŞTURMAZ. 

Displayde 2 rakamının oluşması için displayde a, b, d, e, g ledlerinin yanması gerekir. Bunun için de displaye binary olarak b’01011011′ yani h’5B’ verisinin gönderilmesi gerekir. Displayde gösterilecek her rakam için bu şekilde çözümleme yaparak uygun değerin displaye verilmesi gerekir. Yani bir dönüşüm (çevrim) şarttır.

PIC’den PORTB’ye veri gönderen program örneğini buradan indirebilirsiniz.

Bu dönüşüm (çevrim) iki türlü olabilir:

  1. Donanımsal Çevrim: PIC’den çıkan veri displaye girmeden önce bir dönüştürücü (converter) entegreden geçirilir ve veri dönüştürülür.
  2. Yazılımsal Çevrim: PIC’e gönderilecek veri program kodunun içine gömülen bir çevrim (dönüşüm) tablosu yardımıyla dönüştürülür ve daha sonra veri porta gönderilir.

PIC’den PORTB’deki Display’e Çevrim Tablosu Kullanarak veri gönderen örnek programı (Prog21) buradan indirebilirsiniz.

ÇEVRİM TABLOSU NEDİR NASIL ÇALIŞIR?

Çevrim tabloları sadece display uygulamalarında değil dönüşüm verileri belirli olan tüm veri dönüşüm işlemlerinde kullanılabilir. 

Çevrim tabloları program kodunun içerisine gömülen bir ALT PROGRAM parçasıdır. Her alt programda olduğu gibi başına yazılacak etiket ifadesi CALL komutu ile çağrılır ve böylece program o satıra dallanır. (Örnek: CALL  CEVTAB)

Çevrim tablolarının başındaki satırda ADDWF komutu ile yapılan bir toplama işlemi vardır. Daha önceki derslerden hatırlanacağı gibi bu komut bir File Register ile W Registerini toplar. Çevrim tablolarında PCL adındaki özel file register ile W registerinin toplanması ve sonucun yine PCL üzerine yazılması işlemi uygulanır. Bu aslında PCL’nin değerinin W’daki sayı kadar artırılması demektir. Peki nedir PCL? Bunun için Program Counter (Program Sayacı) bilinmelidir.

Basit bir tanım yapacak olursak Program Counter bir programda sıradaki okunacak satırın yerini gösterir. Eğer siz PCL’nin dolayısıyla Program Counter’ın değerini değiştirirseniz okunacak sıradaki satırı da değiştirmiş ve programı başka satıra atlatmış olursunuz. İşte çevrim tablosunun başında yapılan toplama işlemi de aşağıdaki satırlardan hangisinin okunacağının belirlenmesi işleminden başka bir şey değildir. 

Gelelim aşağıdaki satırlara. Toplama işleminden sonraki her satırda RETLW komutunu görmekteyiz. Bu komut önündeki sabit sayıyı W Registerine yazan ve sonra da alt programdan ana programa (Return) yapılmasını sağlayan bir komuttur. Yani bu komutun işletilmesinin ardından W registerinde önceden yazılı olan değerin yerine RETLW’nin önünde yazan yeni değer atanmış olur.  Böylece sayı çevrim (dönüşüm) işlemi gerçekleşmiş olur ve program ana programdaki kaldığı yerden devam eder.

Bir 7 Segment Display üzerinde tek hane olarak 0-F arasında saydırma yapan program örneğini (Prog22) buradan indirebilirsiniz.

Arkadaşlar sizler de verdiğimiz kendiniz örnek programlardan farklı olarak ileri saydırmaya benzer şekilde geri saydırma, 0-F arası değil farkı aralıklarda (ör. 1-5 arası) saydırma, Ortak Katodlu değil Ortak Anotlu display kullanma gibi farklı örnekler yapın. 

BCD (Binary Coded Decimal) Display:

Bu display türleri kendi içerisinde donanımsal olarak dönüştürücüye sahiplerdir. Bu nedenle kendilerine verilen 4 bitlik binary bir veriyi 16’lık olarak dönüştürüp doğrudan ekranda gösterebilirler. BCD Displayler aslında bir dönüştürücü (converter) entegre ile 7 Segment Displayin birleştirilmiş halidir.



BCD’nin girişlerine uygulanacak bir binary verinin karşılığı olarak ekranda gösterilecek Hex. rakamlar aşağıdaki tabloda görülmektedir.

BCD’lerin 4 girişi olduğuiçin 8 bitlik PORTB’ye 2 adet BCD bağlanabilir. Böylece program kodundan 8 bitlik bir HEX sayı ekranda gösterilebilir.

Sizlerde kendiniz mutlaka yukarıdaki örnek kodları BCD kullanarak da uygulamaya gayret gösterin.

Konu Anlatım Videoları:

İlk yorum yapan siz olun

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir