Bu devre, ” *Elektronik devreler*, *Pic ile 7 segment Display Uygulamasi* 7 segment Display Uygulamasi* hobi devreleri* ” ile etikenlendi.
Pic ile 7 segment Display Uygulamasi
Led tabela ve Elektronik Devreler için tıklayınız.
Pic ile 7 segment Display Uygulamasi devresinde kullandığımız 7 segment display bize 0 dan başlayıp 9 a kadar rakamları gösteren bir elemandır.(Dosya dökümanları en aşagı mevcuttur)
7 segment displayleri piyasada ortak anotlu ve ortak katotlu olarak iki farklı şekilde bulabilirsiniz.
Ayriyeten bu devrede kullandığımız 74164 entegreside bize tasarruf sağlayarak 2 portla (2 bacakla)bu işi halletmemizi sağlıyor.Pic167877a den 74164 e bağladığımız 2 bacaktan biri clock sinyali diğer bacakta veri iletimi yapacak.
Ortak katot ve Ortak anot displayin farkı nedir?
Ortak katot displayin hangi bacağına enerji gelirse yanar.(yani displaydeki kısımların şasesi ortaktır ve bağlanmıştır hangisine enerji verirsek devresini tamamlar ve yanar)
Ortak anot displayde ise anot(enerji ) direkt bağlıdır hangi bacağa şase(nötür,pic den 0 yollarız) verirsek devresinini tamamlar ve yanar.
Biz ortak katot display kullanıyoruz.
Malzeme listesine bakacak olursak,
-Pic 16f877a
-Ortak katot 7 segment display
-7 segment display soketi
– 74164 entegresi
-Kristal osilatör(4Mhz yeterlidir)
-1 tane 10k direnç
-7 tane 330ohm direnc.
-22pf 2 tane kondansatör
-100nf 1 tane kondansatör
Pic ile 7 segment Display Uygulamasi Devre Şeması
Devrenin ccs ile yazılmış programı
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
//***********Denetleyici konfigürasyon ayarları************
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor
#use fast_io(b) // Port yönlendirme komutları b portu için geçerli
#define data pin_b0 // data sabiti pin_b0’a eşitleniyor
#define clock pin_b1 // clock sabiti pin_b1’e eşitleniyor
// Ortak katot display için veri değerleri
int digit[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x6F};//arkadaşlarda burda sayılarımızın binart olarak değeri var örnek verecek olursam 3f değerinin binary gösterimi 0011 1111 tür.bu değeri sıra ile yolladığımızda displayde a b c d e f kısmı yanar//
char i=0,j=0; // Karakter tipinde değişken tanımlaması yapılıyor
/********* ANA PROGRAM FONKSİYONU********/
void main ()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş 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ışı
set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor(çıkış elemanı yani lamba bile diyebiliriz,lamba,zil tüm alıcılarımızı
output_b(0x00); // İlk anda B portu çıkışı sıfırlanıyor yani çıkışların enerjisi kesiliyor
while(1)
{
for(i=0;i<10;i++) // Displayde gösterilecek 0-9 sayıları için döngü
{
for(j=0;j<8;j++) // Gönderilecek verinin bit bit gönderilmesi için
// oluşturulan döngü
{
output_bit(pin_b0,bit_test(digit[i],j)); // Bit değeri data pinine gönderiliyor İlk değeri inceleyecek olursak yukardan i=0 ve j=0 degeri gelecek bu bize yukarda yazdığımız int digit[10] dizisinin 0. Elemanının 0. Bitini kullandiyor bir sonraki adımda i=0 j=1 olacak burda da int digit[10] dizisinin 0.elamanının 1. Bitini kullan diyor.Binary olarak bit bit ayırmıştır değerlerimizi//
output_high(pin_b1); // Clock sinyali lojik-1 yapılıyor,74164 entegresinin çalışması için clock sinyaline ihtiyaç vardır yani devamlı
DOSYA DÖKÜMANLARI İNDİRMEK İÇİN TIKLAYINIZ.
Yapılan Yorum (1)
Bir Devre İşim Olunca Hemen Sizin Sitenize Bakıyorum.Harikasınız.
Bir Cevap Yazın