14 Eylül 2016 Çarşamba

CCS C 7 Segment Display 0-9 Sayıcı Uygulaması

CCS C ile 0-9 sayıcı yapmak için ya Pic Mikrodenetleyici entegreleri ya da bazı sürücü entegreleri kullanılabilir. Pic entegreleri kullanarak yapılan sayıcılarda derleyicide programı yazdıktan sonra mikrodenetleyiciye yazılan kodun hex. uzantılı dosyası mikrodenetleyici entegresine yüklenir ve devre çalıştırılır.

Bu derste mikrodenetleyici entegresi kullanılarak sayıcı tasarımı yapılacaktır. 

0-9 sayıcı devresinde 1 adet pic entegresi, 1 adet de 7 segment display kullanılmıştır. Aşağıda Pic16F877A entegresi kullanılarak yapılan devrenin İSİS şeması yer almaktadır.

0-9_sayıcı_İSİS_şeması
-şekil 1-

Devre Proteus da kurulduktan sonra Pic C derleyicisinde CCS kodları yazılır ve yazılan kodun hex. uzantılı dosyası 16F877A entegresine yüklenir ve simülasyon başlatılır. 

0-9 Sayıcı devresinin CCS kodları şu şekildedir;

----------------------------------------------------------------------------------------------------------------------
#include <16f877.h>
// derleyici kütüphanesinden denetleyicimizin özelliklerini getiriyoruz

#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
// Seçtiğimiz denetleyicinin bazı kullanmadığımız pin özelliklerini ayarlıyoruz.

#use delay(clock=4M) 
// osilatör hızı 4 Mhz olarak ayarlıyoruz

void main()
{
   set_tris_c(0x00);                                                    //C portunun tüm bitleri çıkış olarak ayarlandı.
   char dizi[]={63,6,91,79,102,109,125,7,127,111}; //10 elemanlı bir dizi oluşturuldu.
   output_c(0);                                                           //C portunun tüm çıkışları sıfır yapıldı.

   while(1)                        //sonsuz bir dizi oluşturuldu. 
   {
    for(int i=0;i<10;++i)   //0'dan 10'a kadar 1'er artan sayıyla for döngüsü oluşturuldu.
    {
      output_c(dizi[i]);      //for döngüsüne göre dizinin elemanları sırayla C portuna aktarıldı.                              
      delay_ms(100);        //100 mili saniye gecikme verildi.
    }
    
   }
   
------------------------------------------------------------------------------------------------------------------------

Aşağıdaki videoda CCS C dili ile yazılan 0-9 Sayıcı devresinin kod satırlarının açıklaması yapılmıştır ve 0-9 sayıcı devresindeki önemli kısımlar analiz edilmiştir. 





















1 yorum:

  1. #include <16f877.h>
    // derleyici kütüphanesinden denetleyicimizin özelliklerini getiriyoruz

    #fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
    // Seçtiğimiz denetleyicinin bazı kullanmadığımız pin özelliklerini ayarlıyoruz.

    #use delay(clock=4M)
    // osilatör hızı 4 Mhz olarak ayarlıyoruz
    int i;

    void main()
    {
    set_tris_c(0x00); //C portunun tüm bitleri çıkış olarak ayarlandı.
    const int digit[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; //10 elemanlı bir dizi oluşturuldu.
    output_c(0); //C portunun tüm çıkışları sıfır yapıldı.

    while(1) //sonsuz bir dizi oluşturuldu.
    {
    for( i=0;i<16;++i) //0'dan 10'a kadar 1'er artan sayıyla for döngüsü oluşturuldu.
    {
    output_c(digit[i]); //for döngüsüne göre dizinin elemanları sırayla C portuna aktarıldı.
    delay_ms(500); //100 mili saniye gecikme verildi.
    }

    }

    }

    doğru olanı budur arkadaşlar. Adminin hatası "int i;" yazmayıp i değişkenini tanıtmaması.

    YanıtlaSil