16F84 Pin A0’da ki butona basılınca Pin B0’da ki LEDi yakan uygulama;
1 2 3 4 |
set_tris_a(0x01); set_tris_b(0x00); output_a(0x00); output_b(0x00); |
set_tris_a(0x01); komutu ile A0 pini giriş diğer A pinleri çıkış yapılmıştır,
1 2 3 4 |
if (input(pin_a0)==0) output_high(pin_b0); else output_low(pin_b0); |
(input(pin_a0)==0) komutu pin_a0’a bağlı olan butonu kontrol eder,
buton çıkışı lojik 0 ise output_high(pin_b0);
buton çıkışı lojik 1 ise output_low(pin_b0);
Butona basıldığında çıkışın lojik 0 olmasının sebebi direnç pull up şeklinde bağlanmıştır.
Pull down şeklinde bağlansaydı butona basılınca çıkış lojik 1 olurdu. İki bağlantı şeklini kullanmak devreyi tasarlayana kalmıştır.
Yazılım;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include #FUSES NOWDT,XT,NOPUT,NOPROTECT #use delay(clock=4000000) void main() { set_tris_a(0x01); set_tris_b(0x00); output_a(0x00); output_b(0x00); while(true) { if (input(pin_a0)==0) output_high(pin_b0); else output_low(pin_b0); } } |