Matris Led Display
Matris Led Display ve Pic Programlamada Kullanımı
Matris Led Display
Genellikle reklam sektöründe görüntüleme amaçlı olarak çeşitli özellikte LED’ler matris yapısında birbirine bağlanır.
Elde edilen bu LED bağlantısında istenen görüntüler elde edile bilir. Matris LED displayler satır ve sütunları LED’lerden oluşan bir matris bağlantısın içerisinde barındıran tümleşik bir matris bağlantılı LED gurubudur. Piyasada 5×7(5 ütun ,7 satır), 8×8 (8 sütun,8 satır) gibi çeşitli yapılarda LED display’ler vardır.
5X7 Dot Matris Led Display Sürme İşlemi
Matris LED displayler sütün ve satır olmak üzere bilgi uçlarına sahiptir. Bu displayleri sürmek için tarama metodu kullanılır.


Tarama metodu: ilk başta ilk sütun aktif edilir daha sonra ilk sütunda bulunan yanması istenen LED’i yakmak için ilgili satır veya satırlar aktif edilir. Ardından ikinci sütun aktif edilir ve bu sütunda yanması istenen LED’ler için gerekli satırlar aktif edilir. Tarama işlemi bu şekilde devam eder. Tarama işelmi ile yakılan LED displaylerde görüntünün göz tarafından algılanması için yeterli bir süre tarama işleminin tekrar edilmesi gerekir.
Katot sütun LED displaylerde sütunları aktif etmek için ilgili sütuna lojik-0, satırları aktif etmek için ilgili satıra lojik-1 uygulanmalıdır.
Anot sütun LED displaylerde ise sütunları aktif etmek için ilgili sütuna lojik-1,satırları aktif etmek için ilgili sütuna lojik-0 uygulanmalıdır. Şimdi buna bir örnek üzerinde inceleyelim.


Şimdi yukarıda görülen LED matris displayde üst uçları(B0…B6) satırlar alt uçları(C0..C4) sütunlardır.
LED matrisin üzerinde görülen sarı ışıkları yakmak için C sütununki C4:lojik-1 diğerleri C3:lojik-0,C2:0,C1:lojik-0,C0:lojik-0 vermeliyiz . Bu şekilde uçlarına bağlı olan pinlere: (0x10) vermek gerekir. bu şekilde C sütunundan 4 sütun enerjilendi şimdi bu sütundan yanmasını istediğimiz satırları ayarlayalım yani B satılarına bakalım.
B pinlerinden yani yukarından aşağıya doğru geldiğini düşünürsek yanmasını istediğimiz LED lojik-0 veriyoruz. Bu şekilde B0:lojik-1, B1-lojik-1, B2:lojik-0, B3:lojik-0, B4:lojik-0, B5:lojik-0, B6:lojik-0 şeklinde olacaktır.
Sağdaki resimden daha net anlaşılacağı gibi C pinleri aktif edilmesi istenen sütunları belirtir bu sütunlardan aktif edilmek aktif edildikten sonra bunların satırları da istenen şekilde aktif edilir. Yukarıdaki LED bağlantıları ile aşağıdaki Matrisleri karşılaştırdığınızda daha net anlaşılacaktır.
CCS C PIC Programlama ile Matris Led Sürme Programı
Şimdi tarama metodunu kullanarak Matris LED’de A,B,C,D,E,+ ve çift yönlü ok karakterlerini gösteren programı CCS C ile yazalım.
#include <16F877.h> #FUSES NOWDT //Watch Dog Timer Kullanma #FUSES XT //Kristal Osilatör ile CLKOUT #FUSES NOPUT //Power Up Timer Kullanma #FUSES NOPROTECT //Rom'a Yazılan Veriler Okunabilir #FUSES NOBROWNOUT //Brownout Reset Kullanma #FUSES NOLVP //Düşük Gerilimler ile Programlamayı Kapt #FUSES NOCPD //Data EEPROM Korumasız #FUSES NOWRT //Program Belleği Yazmaya Açık #FUSES NODEBUG //ICD için Hata Ayıklama Modu Kapalı #use delay(clock=4000000) // Gecikme için osilatör frekansı #use fast_io(b) // B portu yönledirme #use fast_io(c) // C portu yönledirme // Matrise gelecek karakterler int A[]={0x03,0x75,0x76,0x75,0x03}, B[]={0x00,0x36,0x36,0x36,0x49}, C[]={0x41,0x3E,0x3E,0x3E,0x5D}, D[]={0x00,0x3E,0x3E,0x3E,0x41}, E[]={0x00,0xB6,0xB6,0xB6,0xBE}, arti[]={0x77,0x77,0x41,0x77,0x77}, cift_ok[]={0x6B,0x5D,0x00,0x5D,0x6B}; /*Hangi sütnun seçileceği fonksiyon*/ int sutunsec(int s) { switch(s) { case 0: return(0x10);break; case 1: return(0x08);break; case 2: return(0x04);break; case 3: return(0x02);break; case 4: return(0x01);break; } } /* Matrise karakter gönderme fonkisyonu*/ void matris_karakter_gonder(char harf[],int tekrar) { int i,j,k; for(i=1;i<tekrar;i++) { for(k=0;k<10;k++) { for(j=0;j<5;j++) { output_c(sutunsec(j)); output_b(harf[j]); delay_ms(1); } } } } /* Ana fonksiyon*/ void main() { setup_psp(PSP_DISABLED); // Paralel Slave Prot devre dışı setup_adc_ports(NO_ANALOGS); // Analog Dijital Converter Portları devre dışı setup_adc(ADC_OFF); //Analog Dijital Converter devre dışı setup_timer_1(T1_DISABLED); // Timer 1 devre dışı setup_timer_2(T2_DISABLED,0,1); // Timer 2 devre dışı setup_CCP1(CCP_OFF); // Capture Compare PWM devre dışı setup_CCP2(CCP_OFF); // Capture Compare PWM devre dışı set_tris_b(0x00); // B portu çıkış olarak yönlendirildi set_tris_c(0x00); // C portu çıkış olarak yönlendirildi while(1) { matris_karakter_gonder(A,20); // A karakteri matrise geliyor matris_karakter_gonder(B,20); // B karakteri matrise geliyor matris_karakter_gonder(C,20); // C karakteri matrise geliyor matris_karakter_gonder(D,20); // D karakteri matrise geliyor matris_karakter_gonder(E,20); // E karakteri matrise geliyor matris_karakter_gonder(arti,20); // + karakteri matrise geliyor matris_karakter_gonder(cift_ok,20);// <-> karakteri matrise geliyor } }
Yukarıdaki program kodlarında hangi kod satırının ne işleve yaptığı detaylıca açıklanmıştır. Aşağıdan programın devre ulumunu inceleye bilirsiniz. Uygulama dosyalarına buradan ulaşa bilirsiniz.
