14 Kasım 2014 Cuma

PIC ile Buton Uygulaması

Bu uygulamada bir 7-segment kullanacağız . Bir butonla sayıyı artırıp başka bir butonla sayıyı azaltacağız . Son bir butonu da reset butonu yapacağız .



Öncelikle ISIS kısmını halledelim .


Görüldüğü üzere giriş portu olarak A , çıkış portu olarak B portunu seçtik . Programda bunu belirtmemiz gerekecek unutmayalım! 

include "BUTON.h"

#define buton input(pin_a0)
#define puton input(pin_a1)
unsigned int8 sayi[10]={0x3F,0X06,0X5B,0X4F,0X66,0x6D,0X7D,0X07,0X7F,0X6F};   
signed int8 i=0;

main() fonksiyonu öncesi bazı kodlar yazdık bunları açıklayalım .

include"BUTON.h"  : Burada BUTON adında bir header oluşturuyoruz.

#define buton input(pin_a0) : A portunun 0. bitini input olarak ayarladık ve buton değişkenini pin_a0 yaptık.
#define puton input(pin_a1) : A portunun 1. bitini input olarak ayarladık ve puton değişkenini pin_a1 yaptık.
unsigned int8 sayi[10]={0x3F,0X06,0X5B,0X4F,0X66,0x6D,0X7D,0X07,0X7F,0X6F};  sayi adında bir dizi tanımladık ve bu dizinin elemanlarını 0'dan 9'a kadar rakamlar olarak tanımladık.

    void main()
   {set_tris_a(0xFF);   // A portunu giriş portu olarak ayarladık
    set_tris_b(0x00);    // B portunu çıkış portu olarak ayarladık
      output_b(0x00);   // B portunu resetledik .
      output_b(sayi[i]); 
      while(1)
      {
      
     /* for(i=0;i<10;i++)
      {
      output_b(sayi[i]);
      delay_ms(100);
      }
      */
      if(buton==0)              // buton (pin_a0) sayıyı artıracak şekilde ayarlandı
      {
       i++;
      if(i>9)
      i=0;
      output_b(sayi[i]);
     
      delay_ms(200);
      }
      if(puton==0)              // puton (pin_a1) sayıyı azaltacak şekilde ayarlandı
      {
       i--;
      if(i<0)
      i=9;
      output_b(sayi[i]);
     
      delay_ms(200);
      }
      } 
      }

reset butonu için de pull up yaptık . Böylece istediğimiz zaman enerjiyi kesip resetleme yapabiliriz . 


Hiç yorum yok :

Yorum Gönder