PIC Proje 2 – Buton İle Led Yakma

PIC mikrodenetleyicilerden PIC16F877 ile bu yazımızda buton yardımıyla led yakma ve söndürme uygulamasını yapacağız. Butonun basılı olduğu durumlarda ledimizi yakarken butondan elimizi çektiğimizde ledimizi söndüreceğiz. Bu uygulamanın devresini Proteus programının ISIS ortamında tasarlarken kodlarını ise CCS C derleyicisinde derleyerek simülasyonumuzun içerisine aktaracağız.

Devrenin Oluşturulması

Öncelikle devremizi aşağıdaki gibi tasarlayalım. 13 ve 14 numaralı pinleri daha önceki led yakma uygulamamızda olduğu gibi kristallerle bağlantısını yapalım ve uçlarına birer kondansatör bağlayarak kristal uçlarındaki gerilimleri sabitleyelim. Ardından 1 numaralı pinimize 5V besleme vererek reset pinimizin bağlantısını tamamlayalım.

Daha sonra B portuna bağlı RB0 pinnimize akım sınırlayıcı direncimiz ve yakacağımız ledi bağlayarak tüm led bağlantılarımızı tamamlayalım. Geriye sadece buton bağlantımız kaldı.

Buton bağlantısını yaparken öncelikle dikkat etmemiz gereken husus buton basılı konumdayken iligi pic pinimize bir akım gitmesi ve basılı konumda değilken ise pin ile GND hattının güvenli bir şekilde birbirine bağlanmış olmasıdır.

Hemen aşağıdaki devremizde yukarıda anlatılan tüm adımlar yapılmış bir şekilde mevcuttur.

CCS C Kodu

Led yakma uygulamasında yazmış olduğumuz başlangıç kodlarını yine bu projemizde de yazacağız. Öncelikle kullandığımız PIC modelini projemize tanıtıp denetleyimizde kullanacağımız özellikleri #fuses komutu ile aktif edeceğiz. Sonrasında gerekli portları tanımlayıp fonskiyonumuzu yazacağız.

#include<16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCDP
#uses delay (clock = 40000000) 
#uses fast_io(b) 

int1 x;
void main()
{
   set_tris_a(0b00000001);
   set_tris_b(0x00);
   
   while(1)
   {
      x = input(pin_a0);
      output_bit(pin_b0,x);
   }
}

Yukarıdaki kodumuzu PIC içerisine attığımızda devremizin çalışan son durumu aşağıdaki gibidir.