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
Yorum Gönder