"Karmaşıklığı kontrol etmek Programlamanın en asıl işidir."

27 Ağustos 2014 Çarşamba

CCS C 7 Seg Display Kullanımı




7 parçalı gösterge 7 adet led den oluşturulmuş bir yapıdır ve elektronik devrelerde numaralar ve bazı karakterleri göstermek için kullanılır.
7 parçadan hariç birde sağ alt köşede nokta görevini yapan bir led daha vardır. bu durumda aslında 8 parçalı gösterge denmesi gerekirken, bu 
parçaların sayısı 16 da olsa adı gene 7 parçalı gösterge olarak kalmıştır.

temel olarak 2 tür gösterge vardır.

1) ortak anot.
2) ortak katot.

1) ortak anot display.

bu yapıda ledlerin anotları birleştirilmiş ve gerekli girişler katottan verilmektedir. bu durumda yanmasını istediğimiz parçaya ait uçtan(-)vermemiz gerekir.

oratk anot displayde girişler 7 parça + 1 decimal nokta için= 8 adet katot ucu ve bir adet de anot ucu olmak için üzere esas istibarıyle 9 uç olacaktır. 

ama yapı itibarıyle göstergelerde ortak olan ucun tek olması sorun oluşturacağı için ve bizlere kolaylık olması için displaylerde ortak olan uçtan hem üstte hemde altta olmak üzere 2 adet bulunur.

2) ortak katot display.

bu yapıda ledlerin katotları birleştirilmiş ve gerekli girişler katottan verilmektedir.bu durumda yanmasını istediğimiz parçaya ait uçtan (+) vermemiz gerekir. 

ortak anot display de de 8 adet anot ucu ve 1 adet de katot ucu olmak üzere esas istibarıyle 9 uç vardır.

(Yukarıda Yer Alan Metin Alıntıdır Devamı Bana aittir)


Örnek Ortak Anotlu bir displayde 0 sayısını göstermek için yukardaki ortak anot display iç yapısna bakaraktan;




--- 0 ---
0 ---- 0 
--- 1 --- 
0 ---- 0 
--- 0 ---

A B C D E F G
0 0 0 0 0 0 1

1 sayısı için ;



--- 1 ---
1 ---- 0 
--- 1 --- 
1 ---- 0 
--- 1 ---

A B C D E F G
1 0 0 1 1 1 1

0-9 Kadar Sayan Basit Bir Sayaç (7 seg Anode)








//------------------------------------------------------------------------------
#include <16F876.h>// Kullanılcak denetleyicinin başlık dosyası tanımlanıyor
#include <stdio.h>
// Denetleyici konfigürasyon ayarları
#FUSES HS                       //High Speed
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection    
#use delay (clock=20000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı
//------------------------------------------------------------------------------
const int sayilar[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // Hexadecimal Çevirilmiş Hali Sabit Diziye Yükleniyor
int sayi=-1;
//------------------------------------------------------------------------------
void main () {
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // Timer1 devre dışı
setup_timer_2(T2_DISABLED,0,1); // Timer2 devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG girdi yok
setup_adc(ADC_OFF);  //  ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
while(1){
sayi++;
if (sayi==10){
sayi=0;
}
delay_ms(1000);
output_b(sayilar[sayi]);
// for döngüsü ilede yapılabilir
// for (sayi=0;sayi<10;sayi++){
// output_b(sayilar[sayi]);
// delay_ms(1000);
//}
}
}
//------------------------------------------------------------------------------

0 yorum:

Yorum Gönder

İletişim Formu

Ad

E-posta *

Mesaj *