CCS C Tek Buton ile Birden Fazla İşlem Yapmak (16F628A)

16F628A işlemcisinde tek butonla üç farklı işlem yapma örneği.
Önemli notlar:
1- Butonun diğer ucunu +5V'a ve pin (RA0) çıkışındaki ucunu  4K7-10K dirençle şaseye (-) bağlayın.
2- LED'lerdeki 100R dirençleri beslemenizin akımına göre 330R-1,5K arasında kullanın.
3- Şemada osilatör devresi gösterilmesine rağmen, programlamada iç osilatör kullandım.

Gif Video:
 Proteus Şema:
CCS C Kodları:

#include <16F628A.h>
#use delay(crystal=4000000)  //Buradaki komut satırı olmadığında  program içinde kullandığınız delay derlemede hata veriyor(Error112[Function used but not defined: ...]).

//BUTON TANIMLAMALARI
#define buton1 pin_A0     
// #define buton2 pin_A1

//LED (ÇIKIŞ) TANIMLAMALARI
#define led1 pin_B0
#define led2 pin_B1
#define led3 pin_B2
// #define led4 pin_B3

void main()
{
int buton_durum = 0;    // başlangıç olarak buton durumuna 0 dedik

  while(TRUE)
  {
   if(input(buton1)==1)     // Buton okuma.
    {
      buton_durum++;         // Her buton basıldığında buton_durum değişkenini 1 arttır
   delay_ms(100);
   }
   
   if(buton_durum > 4)      // beş durumumuz (0-1-2-3-4) olduğundan dörtten sonra sıfırladık.
   {
   buton_durum = 0;
   }
   
   switch(buton_durum) {
   case 0:      //    buton değeri sıfırsa 
 // isterseniz burada bir şeyler yaptırabilirsiniz
      break;     

   case 1:  
    //   buton değeri 1 ise LED1 yak
       output_high(led1);
      break;     

   case 2:  
    // buton değeri 2 ise LED2  yak
      output_high(led2);   
      break;   

   case 3:      //buton değeri 3 LED3 yak
     output_high(led3); 
       break;

       case 4:      //buton değeri 4 ise hepsini söndür
     output_low(led1);
     output_low(led2);
     output_low(led3);
       break;
   }
  }
}



HEX Kodu:

:1000000000308A0019280000223084008313000881
:10001000031918280130F800F701F70B0D28F80B29
:100020000C284A30F700F70B13281628800B0A28F3
:10003000292803081F39830007309F008313A1017B
:10004000831605148312051C2928A10A6430A20016
:1000500004282108043C031CA1012108FB3E0318CD
:100060004F28053E51284F28831606108312061488
:100070004F2883168610831286144F288316061184
:10008000831206154F288316061083120610831656
:1000900086108312861083160611831206112028FB
:1000A00063000A108A100A1182073328342839287D
:0400B0003E2843287B
:02400E00613F10
:00000001FF
;PIC16F628A
;CRC=38D9  CREATED="26-Eki-19 21:26"




KULLANILAN PROGRAMLAYICI: PIC C Compiler CCS PCWHD v4.068



Yorumlar