16 Kasım 2014 Pazar

PIC ile KEYPAD Uygulaması

Bu yazımızda KEYPAD uygulaması yapacağız . Keypad-Phone kullanarak çıkış alacağımız ISIS devremizde her rakama bastığımızda doğru çıkışı almaya çalışacağız . ISIS devresiyle başlayalım yine , böylece daha anlaşılır olabilir .




Devrede yine 7-seg  , keypad-phone , PIC16F628A kullandık . Kod kısmına geçebiliriz ;

#include "main.h"            // header dosyası oluşturduk.

//( devrede B portunun 4,5,6 pinleri sütunlara bağlıdır , yani sutun adı ile değişkenler tanımlanır. )
#define sutun1 input(pin_b4)   
#define sutun2 input(pin_b5)
#define sutun3 input(pin_b6)

//( devrede gördüğümüz üzere B portu 0,1,2,3 pinleri satırlara bağlıdır buna göre satir adı altında //değişkenler tanımlanır. )
#define satir1 pin_b0
#define satir2 pin_b1
#define satir3 pin_b2
#define satir4 pin_b3

int8 i=0;
int8 deger=0;

int8 keypad(void) 
// main() fonksiyonunda çağrılmak üzere keypad fonksiyonu açılır , ayrı bir  fonksiyonda yapılacakları yapmak bazen daha mantıklı olabilir . Daha kullanışlıdır .

{
   output_high(satir1);                 // 1. satırı seç
   output_low(satir2); 
   output_low(satir3); 
   output_low(satir4); 
   if(sutun1==1 && sutun2==0 && sutun3==0)i=1;
   if(sutun1==0 && sutun2==1 && sutun3==0)i=2;
   if(sutun1==0 && sutun2==0 && sutun3==1)i=3;
   delay_ms(10);
   
   output_low(satir1);             
   output_high(satir2);              // 2. satırı seç
   output_low(satir3); 
   output_low(satir4); 
   if(sutun1==1 && sutun2==0 && sutun3==0)i=4;
   if(sutun1==0 && sutun2==1 && sutun3==0)i=5;
   if(sutun1==0 && sutun2==0 && sutun3==1)i=6;
   delay_ms(10);
   
    output_low(satir1);
   output_low(satir2); 
   output_high(satir3);              // 3. satırı seç
   output_low(satir4); 
   if(sutun1==1 && sutun2==0 && sutun3==0)i=7;
   if(sutun1==0 && sutun2==1 && sutun3==0)i=8;
   if(sutun1==0 && sutun2==0 && sutun3==1)i=9;
    delay_ms(10);

    output_low(satir1); 
   output_low(satir2); 
   output_low(satir3); 
   output_high(satir4);             // 4. satırı seç
   if(sutun1==1 && sutun2==0 && sutun3==0)i=10;
   if(sutun1==0 && sutun2==1 && sutun3==0)i=0;
   if(sutun1==0 && sutun2==0 && sutun3==1)i=11;
    delay_ms(10);

   return(i);
}

void main()
{
  set_tris_a(0x00) ;   //a portu çıkış olarak ayarlandı
  set_tris_b(0xF0);  //son dört bit giriş , ilk dört bit çıkış
     while(TRUE)
     {
     deger=keypad();  // keypad fonksiyonunu deger değişkenine atıyoruz .
     output_a(deger); // A portundan deger değişkenini çıkış olarak alıyoruz . 
     }
}
Bu şekilde uygulamamızı tamamlayabiliriz . sorular için yorum yapabilir , mstfylmz38@gmail.com adresine mail atabilirsiniz . Kolay gelsin .

Hiç yorum yok :

Yorum Gönder