
Aşağıdaki şekilde görüldüğü gibi led kullanılarak yapılan rakam, harf gösterici devre elemanlarına display denir. Yaygın olan yedi parçalı led göstergeler anodu şase (ortak) ve katodu şase olmak üzere iki tipte üretilir.
Ortak Anotlu (common anode) display’ler
Bu tip display’lerin içinde bulunan tüm ledlerin anodları gövde içinde birbiriyle birleÅŸtirilmiÅŸtir. Eleman alıştırılırken artı (+) besleme ortak anoda uygulanır. DiÄŸer uçlara uygulanan eksi (-) beslemelere göre display’de çeÅŸitli rakamlar oluÅŸur.
Ortak Katotlu (common cathode) display’ler
Anodu şasenin tam tersi özelliktedir. Yani gövde içindeki ledlerin tümünün katot uçları birbirine bağlıdır.
Ortak Anotlu bir display’de ortak uca (+) besleme uygulanır. Display’de onlu 0 sayısını görebilmek için, a, b, c, d, e, f ledlerine kod çözücü entegre tarafından 0 V (yani ÅŸase) gönderilir. Display’de desimal (onlu) 1 sayısı görülmek istendiÄŸinde ise b ve c ledlerine 0 V uygulanır.
Aşağıdaki tabloda ortak anot ve katot displaylerde rakam oluşturmak için pinlere uygulanması gereken lojik değerler gösterilmiştir.
Rakamların yanında bazı harfleride display üzerinde göstermek mümkündür. Burada yapılması gereken gösterilmesi istenen harfi oluşturacak ledlere enerji vermektir.
Yukarıda resmi verilen devrede ilk olarak her harfi oluşturan değerler desimal olarak bir diziye atılmıştır.
int tab7seg[8]={57,109,115,6,55,55,0,63}; //C S P I m m o
ÖrneÄŸin “C” harfini oluÅŸturmak için displayde a,f,e,d segmentlerindeki ledlerin yanması diÄŸerlerinin sönük kalması gerekmektedir. Daha sonra bu segmentlerin desimal deÄŸerleri (a için 1, f için 32, e için 16 ve d için 8 toplam 57 ) toplanarak tabloya yazılır ve bu iÅŸ diÄŸer harfler içinde tekrarlanır. Buradaki tabloda desmal deÄŸer kullanılmıştır. Tabloda bu 57 deÄŸeri yerine hexadesimal olarak 0×39 yada binary olarak 0b1001110 deÄŸeri kullanılabilirdi.
Karakter tablosu oluşturulduktan sonra program aracılığıyla harf dizileri b portundan gönderilir, ve tarama yapılarak harf dizilerinin ekranda gösterilmesi sağlanır.
Tüm rakamları 7 segment dipslayde gösteren tablo aşağıdadır
int tab7seg[10]={0×3F,0×06,0×5B,0×4F,0×66,0×6D,0×7D,0×07,0×7F,0×67}; //0-9
AÅŸağıda 0-9 yukarı sayıcı devresi verilmiÅŸtir. Programı inceleyecek olursak standart tanımlamalar yapıldıktan sonra ana foksiyonda rakamları ifade eden tablo oluÅŸturulmuÅŸtur. Daha sonra sonsuz döngü içerisinde “i” deÄŸiÅŸkeni sürekli artırılarak tablodan sırası gelen rakam b portundan dışarı gönderilir. “i” deÄŸiÅŸkeni 9 sayısını geçerse sıfıra eÅŸitlenerek tekrar baÅŸa dönülür.
AÅŸağıdaki programda ise 0-9 sayıcı verilmiÅŸtir. Burada “i” deÄŸiÅŸkeni ilk baÅŸta 9′a eÅŸitlenir daha sonra sonsuz döngü içerisinde sürekli azaltılır.
Aşağıdaki örnekte ise yukarıdaki iki programın bileşimi olan aşağı yukarı sayıcıuygulaması yer almaktadır. Programda yukarı ve aşağı sayma işlemleri fonksiyon olarak tanımlanmışlardır. Devreda A0 pinine bağlanacak anahtarın durumuna göre aşağı yada yukarı sayma işlemi gerçekleştirilir. Eğer anahtar 1 konumunda ise yukarı, 0 konumunda ise aşağı doğru sayar.
Yukarıda anlatılan programları ve proteus devre şemalarını, 0 99 ,0 9999 sayıcı, led dotmatrix uygulamalarını ve daha fazlasını buradan indirebilirsiniz.
Åžifre: ccspic.com

gökhan Eki 29, 2009
int tab7seg[10]={0*3F,0*06,0*5B,0*4F,0*66,0*6D,0*7D,0*07,0*7F,0*67};
bu komutta hata var galiba
0*5B de 0*6D de ve 0*7D de hata veriyor neden olabilir acaba?
admin Eki 29, 2009
* yerine x yaparak deneyiniz
gökhan Eki 29, 2009
bu arada
0*3F,0*06,0*5B,0*4F vs işaretlerin anlamını anlatabilirmisiniz?
ben 0b10000001 (b0 ve b7 ledlerini yak gibi)
gibi yazıyorum öyle daha anlaşılır oluyor ama sizin kullandığınız şekilde kullanıyor herkes.
admin Eki 29, 2009
bunu üç şekilde yapabiliriz. birincisi senin kullandığın gibi 0b10000001 şeklinde olan binary gösterimdir
ikincisi bu sayfada gösterilen hexadesimal gösterim bu örnek için 0×21 olur
son olarak ta desimal (onlu) gösterimde 129 olur.
gökhan Eki 30, 2009
taban aritmatiÄŸi ile çevirme konusunu biliyorum ama 0×21 gibi biÅŸey hiç görmedim bildiÄŸim tek fark hexadecimal de 9 dan sonra sırayla A B C D E F harflerinin gelmesi.0x ne anlama geliyor? Müsaitseniz anlatırmısınız veya döküman paylaÅŸabilirmisiniz?
admin Eki 30, 2009
sabit sayı tanımlamalarında;
0b sağındaki sayının binary olduğunu belirtir
0x sağındaki sayının hexadesimal olduğunu belirtir
herhangi bir ifade yoksa sayı desimaldir
gökhan Eki 30, 2009
teşekkürler hocam
ImHACK Ara 25, 2009
Merhaba ArkadaÅŸlar,
Portan hertürlü veri gönderilebilir.
Örneğin:
Karakter ‘A’ verisini gönderebilirsiniz.
Ama displayde bu A karakteri olarak belirmez.
O harfin binary değerini alırsınız.
char veri = ‘A’;
output_b(veri);
“veri” burda sabit veya deÄŸiÅŸken olabilir.
Bunu siz direkt olarak
output_b(’A'); // diyede yazabilirsiniz.
Göndereceğiniz veriyi string olarak gönderemezsiniz.
Örneğin:
output_b(”Serhat”); //diye
yalnız
char veri[] = {”Serhat”};
veya
char veri[7] = “Serhat”;
diye yazarak
for(i=0; i<7; i++)
{
output_b(veri[i]);
}
şeklinde bir döngü işlemiyle gönderebilirsiniz.
char tanımlamasında veri[7] bildirilmiş ama karakter adedi 6 ydı. Bunun nedeni string veriler birde null taşır. null yani yazının sonunu bildiren veri.
Hexadecimal, karakterler, octal sayıların hepsi sonunda binary olarak anlaşılır. Siz bu verileri ister binary olarak girin ister hex olarak. Derleyici hepsini anlar.
Hesap Makinasını bilimsel segmesini tıklayarak veri çevrimi yapabilirsiniz.
ÖrneÄŸin binary verimiz 0b10100011 olsun bu sayının Hex karşılığı 0xA3′tür.
C dilinde * işareti pointerlarda (işaretçilerde) ve çarpma işleminde kullanılır.
Yanlış [ char i = 0*23; ]
DoÄŸru [ char i = 0×23; ]
Yukarıda yanlış veri tanımlama ve doğru veri tanımlamayıda göstermiş oldum.
Umarım işlerinizde başarılı olursunuz.
Bu site size çok şey kazandırır.
Takip edin.
Başarılar.