CCS-C ile BCD Sayıcı Uygulaması

Standart

BCD KODU;

BCD (Binary Coded Decimal) Kodu, bilgisayar ve elektronik sistemlerinde onluk tabandaki (decimal) sayıların ikilik tabana (binary) dönüştürülmesi için kullanılan sayısal kodlama metodudur. Bu dönüştürme işlemi yapılırken öncelikle sayının her bir basamağı tek tek ikilik tabana (genellikle dört veya sekiz bit ile ifade edilir ancak farklı uzunluklarda da olabilir) çevrilir ve ardından her basamağın karşılık geldiği binary değerler sırasıyla birleştirilerek sayının BCD Kodu ile gösterimi elde edilir.

Decimal Sayıların Binary Dönüştürülmesi;

BCD

Tablo-1.

Yukarıdaki tablodan da görüldüğü gibi onluk sayı sistemi 0 ile 9 arasındaki sayıları içerdiğinden, her basamaktaki sayının ikili sistemde kodlanması için 4 bite ihtiyaç vardır. Onlu bir sayıyı BCD kodlu olarak yazmak için onlu sayının her bir basamağı 4 bitlik iki tabanlı sayı grupları şeklinde yazılır. Yazılan gruplar bir araya getirilince BCD kodlu sayı elde edilir.

Örneğin;

(134)= (0001 0011 0100)

(5698)= (0101 0110 1001 1000)

Proteus Devre Çizimi;

  • Proteus Devresini Şekil-1’deki gibi Çizelim.
31

Şekil-1.

YAZILIM;

  • CCS-C programı çalıştıralım ve yeni proje oluşturalım.
  • Proje Ayarları: PIC16F877, Osilatör Frekansı 4MHZ ve Kristal Osilatör.
  • “buton” adında bir sabit tanımlayalım.

#define buton pin_A0                   // “buton” adında “pin_A0” kelimesine eşit bir                                                                       // sabit tanımlandı.

  • Şimdi 8 bitlik bir değişken tanımlayalım ve başlangıç değerini 1 yapalım.

int i=1 ;                                               // 8 bitlik tamsayı tipinde değişken tanımlanıyor

  • Proteus çizime göre Port ayarlarını yapalım. RA0- Buton olduğu için giriştir ve değeri 1 dir. RB – LED olduğu için çıkıştır ve değeri sıfırdır.

void main()
{

set_tris_a(0x01);                              // RA0 pini giriş olarak ayarlandı.
set_tris_b(0x00);                            // RB pinleri hepsi çıkış olarak ayarlandı.

while(1)
{

}

}

  • Şimdi sonsuz döngüye (while(1)) kodların yazılımını yapalım. Yani butonu tıkladığımızda “i” değeri bir artıcak ve b portuna aktarılacak.

while(1)
{
if (input(buton))                                      // Buton basıldıysa döngü içine gir.
{
delay_ms(15);                                         // Butona basıldığında meyana gelen arkın                                                                               // etkisini önlemek için gecikme.
output_b(i);                                            // i değişken değerini B portuna gönderdi.
i=i+1;                                                         // i değerini bir arttırdı.
while (input(buton))                           // Buton bırakılana kadar bekle.
if (i==10)                                                 // i değeri on olunca döngüye gir.
{
i=0;                                                         // i değerini sıfırla.
}
}
}

  • Aşağıdaki gibi yazdığımız bütün kodları “Build” diyerek kontrol edelim ve hex dosyasını oluşturalım.

#include <BCD Sayaci.h>
#define buton pin_A0               // “buton” adında “pin_A0” kelimesine eşit bir sabit                                                             // tanımlandı.

int i=1;                                            // 8 bitlik tamsayı tipinde değişken tanımlanıyor

void main()
{

set_tris_a(0x01);                     // RA0 pini giriş olarak ayarlandı.
set_tris_b(0x00);                   // RB pinleri hepsi çıkış olarak ayarlandı.

while(1)
{
if (input(buton))                     // Buton basıldıysa döngü içine gir.
{
delay_ms(15);                        // Butona basıldığında meyana gelen arkın etkisini                                                                //önlemek için gecikme.
output_b(i);                           // i değişken değerini B portuna gönderdi.
i=i+1;                                        // i değerini bir arttırdı.
while (input(buton))          // Buton bırakılana kadar bekle.
if (i==10)                                // i değeri on olunca döngüye gir.
{
i=0;                                        // i değerini sıfırla.
}
}
}

}

  • Proteus devresindeki PIC’ e, oluşturduğumuz hex dosyasını yükleyelim ve frekans değerini 4MHZ olarak ayarlayalım.(Şekil-2)
32.jpg

Şekil-2.

  • Ve Proteus programını “Run” diyerek çalıştıralım. (Şekil-3)
33.jpg

Şekil-3.

Proteus Devre Çizimi + CCS-C Kodu + Hex Dosyası

Yorum bırakın