7 seg 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);
//}
}
}
//------------------------------------------------------------------------------