Yedi Segment Display

Yedi Segment Display

     Displayler üzerinde bulunan diyot ledlerin enerjilenmesi ile ışık oluşturan kompanentlerdir. Bir 7 segement displayin üzerinde bulunan 7 adet display ayrı ayrı enerjilenmesi ile bir ışık bütünü oluşur ve gerekli sayı veya yazıları sembolize ederler. Bu displaylerin anot ucundan ve katot ucundan beslenen iki çeşidi mevcuttur şimdi bunları inceleyelim.

Ortak Katot Display

     Ortak katotlu (common cathode) displayde  a,b,c,d,e,f,g,nokta girişleri anot(+) girişten olan displayledir.

Bu displayde görüntülenmek harf veya yazı ne ise displayin o ledini enerjilendirmemiz gerekir.

Yedi egment display

    Yukarıda görünen displayde 1 sayısını görüntülemek için enerjilendirilmesi gereken uçlar ve uçlarıdır. Hangi harfin hangi uçlara karşılık geldiğini ve binary ve hex kodunu aşağıdaki tabloda bulabilirsiniz. Dp ucu nokta ucudur.(Tabloda Dp ucu h tır.)

Ortak Anot Display

     Ortak katotlu (common anode) displayde  a,b,c,d,e,f,g,nokta girişleri katot(-) girişten olan displayledir.

      Ortak anot uçta sizinde fark edeceğiniz gibi ışık vermesi istenmeyen lede lojik-0 verilmektedir.

Şimdi bu gösterdiğimiz displaylerle PIC16F877’de bir uygulama yapalım.

Sayıcı Devresi

     Aşağıda 0’da 9′ kadar sayan proteus devresi kurulmuş displayin kod satırları verilmiştir. 

  1. #include <16F877.h>
  2.  
  3. #FUSES NOWDT //Watch Dog Timer Kullanma
  4. #FUSES XT //Kristal Osilatör ile CLKOUT
  5. #FUSES NOPUT //Power Up Timer Kullanma
  6. #FUSES NOPROTECT //Rom'a Yazılan Veriler Okunabilir
  7. #FUSES NOBROWNOUT //Brownout Reset Kullanma
  8. #FUSES NOLVP //Düşük Gerilimler ile Programlamayı Kapt
  9. #FUSES NOCPD //Data EEPROM Korumasız
  10. #FUSES NOWRT //Program Belleği Yazmaya Açık
  11. #FUSES NODEBUG //ICD için Hata Ayıklama Modu Kapalı
  12.  
  13. #use delay(clock=4000000)
  14.  
  15. #define buton pin_A0
  16.  
  17. #use fast_io(b)
  18.  
  19. int i;
  20. /* Dizi tanımlaması Yapılıyor*/
  21. const int dizi[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F};
  22.  
  23. void main()
  24. {
  25. /* PIC ayarları yağpılıyor*/
  26. setup_psp(PSP_DISABLED);
  27. setup_adc_ports(NO_ANALOGS);
  28. setup_adc(ADC_OFF);
  29. setup_timer_1(T1_DISABLED);
  30. setup_timer_2(T2_DISABLED,0,1);
  31. setup_CCP1(CCP_OFF);
  32. setup_CCP2(CCP_OFF);
  33.  
  34. /* b portu çıkış olarak yönlendiriliyor*/
  35. set_tris_b(0x00);
  36.  
  37. /* b portunun çıkışları lojik-0 yapılıyor*/
  38. output_b(0x00);
  39.  
  40. while(1)
  41. {
  42. for(i=0;i&lt;11;i++)
  43. {
  44. output_b(dizi[i]);
  45. delay_ms(500);
  46. }
  47. }
  48. }
  49.  

Program dosyalarına buradan ulaşabilirsiniz.

Kimler Neler Demiş?

  Abone ol  
Bildir