CCS C ile Flip-Flop Devre Yapalım

Bu yazımızda, CCS-C ile flip-flop uygulamasını nasıl yapacağımızı anlatacağız.

(Bu uygulama için bilgisayarınızda Proteus ve PIC C Compiler programları bulunmalıdır. )

Öncelikle, daha önce Arduino yazılarımızda olduğu gibi flip-flop devrelerini hazırlarken, kod kısmı ve devre kurulumu kısmını iki adımda inceleyeceğiz.

PIC C Derleyicisi (PIC C Compiler) ile Kodların Yazılması

PIC projelerinde öncelikle karar vereceğimiz şey, hangi PIC ile çalışacağımız olacaktır. Bu projede kullanacağımız  model PIC 16f628a olacaktır. Bu yüzden yeni bir proje oluştururken, bu model PIC’i seçiyoruz. Oscilator Frequency değerini 4.000.000 Hz’ye ayarladıktan sonra kodlarımızı yazmaya başlıyoruz. 🙂

C diline hakim olanlar, herhangi bir kütüphane tanımlarken #include ifadesinin kullanıldığını bilirler. CCS C dilinde de aynı şekilde kütüphaneleri eklerken #include komutunu kullanacağız. Burada ekleyeceğimiz ilk şey hangi PIC kütüphanesi ile çalışıyor oluşumuzdur. Bu yüzden program yazmaya başlarken aşağıdaki kütüphaneleri ekliyoruz. (delay kütüphanesinin kullanılmasının sebebi, delay komutunu yani bekletme fonksiyonunu kullanacak olmasıdır. )

#include <16f628a.h>
#use delay(clock=4000000)


 

Daha sonra ana fonksiyonda (void main fonksiyonunda) hangi port ile çalışacağımızı programa tanıtıyoruz. B portu ile çalışacağımız için, set_tris_b komutu ile tüm portları çıkış (output) pini olarak ayarlıyoruz. Kodları aşağıdaki şekilde ekleyebilirsiniz.

 

set_tris_b(0x00); //b portunun tüm pinleri output olarak ayarlandı.
output_b(0x00); // b portununun tüm pinlerine lojik 0 atamak için kullanılır.


Daha sonra sonsuz döngüleri barındıran, kısım yani while(TRUE) döngüsü içerisine, sürekli gerçekleşmesini istediğimiz olayları yazıyoruz. Olayın senaryosu tamamen size kalmış ancak biz bu yazımızda flip-flop uygulaması yapacağımız için senaryomuzu ona göre yazıyoruz. 2 adet led olmasını istediğimiz için B portunda 2 adet pin seçeceğiz. Bunlar pin_b0 ve pin_p1 olarak ayarlanmaktadır. Output_high(pin_b0) ile b0 pinine high değerini veriyoruz. Bunun anlamı “ledi yak” demektir. Daha sonra bu şekilde kısa bir süre bekletmek istediğimiz için delay fonksiyonunu kullanıyoruz. Kullandığımız delay_ms(500); ile 500 ms ledi yanık bırakıyoruz. Daha sonra bu ledi söndürmek istediğimizde output_low(pin_b0) komutunu verip “ledi söndür” diyoruz. Aynı şeyi b1 pinindeki led içinde yaptığımızda, flip-flop ledleri oluşturmuş oluyoruz. Kodları bu şekilde görebilirsiniz.

while(TRUE){ 
output_high(pin_b0);// b0 portuna high değeri verilir.
delay_ms(500); //500 ms bekle
output_low(pin_b0); // b0 portuna low değeri verlir.
delay_ms(500); 
output_high(pin_b1);//b1 portuna high değeri verilir.
delay_ms(500);
output_low(pin_b1); //b1 portuna low değeri verilir.
delay_ms(500);


}

Program kodlarını yazdıktan sonra, proteusta simülasyonunu çalıştırmamız gerekiyor. Bunun için hex dosyası oluşturmamız lazım. CCS C kodlarını yazıp bitirdikten sonra F9 ile kodları derliyoruz. Build All ile hex dosyasını programı kaydettiğimiz dosya içerisinde oluşturmuş oluyoruz. Kodlarla ilgili olan kısmı tamamlamış bulunuyoruz. Artık devrenin simülasyon kısmına geçebiliriz.

Proteus İle Devre Simülasyonunun Yapılması:

Proteus programı ile flip-flop devremizi kuralım. Bunun için P tuşu ile Pick Devices penceresini açıyoruz. Buradan PIC16f628a, LED ve RES (Direnç) elemanlarımızı seçiyoruz. Şekildeki gibi bağlantıları yapıyoruz. Ledlere bağlı dirençlerin 330Ohm’ a ayarlandığına dikkat ediniz.

CCS C

PIC üzerine gelerek, clock değerini 4MHz’e ayarlayıp, Program File kısmından, yukarda oluşturduğumuz hex dosyasını seçip kaydedelim ve devremizi tamamlamış olalım artık simülasyonu çalıştırabiliriz.

Videoyu izleyerek simülasyonu görebilirsiniz. 🙂

 

CCS-C ile ilgili diğer projeleri incelemek için tıklayınız .