Merhaba Arkadaşlar, geçen yazımda CCS-C PIC Derleyici programı ile proje oluşturup, LED yakma-söndürme uygulamasını yapmıştık. Bu yazımda ise Buton ile LED Kontrol Uygulamasını göstericem.
- İlk önce CCS-C programı ile proje oluşturalım. (Program Ayarları: PIC16F877, 4MHZ frekans ve Kristal osilatör).
- Buton için x değişkeni oluşturalım.
#include <Butonlu LED Kontrol.h>
int x;
void main(){
}
- Port ayarlarını yapalım. Port A0: Giriş (Buton) olarak ayarlıcaz. Yani Butonun sayısal değeri 1 dir. Port B: Çıkış (LED) olarak ayarlıcaz. Yani LED’in değeri ise sıfırdır. Bunları geçen yazımda da söylemiştim 🙂
void main()
{set_tris_a(0b00000001); // RA0 ucu giriş olarak ayarlandı.
set_tris_b(0x00); // RB portu tümüyle çıkış olarak ayarlandı.}
- Şimdi Proteus ile devre tasarımını yapalım. Yani PA0: buton ve PB: LED
- Bu devrede Kristal osilatör dahil edilmiştir. Bu uygulamada 3 adet LED kontrolü yaptığım için 3 adet çıkış ayarı yapıcam.
output_b(0x00); // B Portunun 0.pini çıkış yapıldı.
output_b(0x01); // B Portunun 1.pini çıkış yapıldı.
output_b(0x02); // B Portunun 2.pini çıkış yapıldı.
- Şimdi Buton kontrolü yapıcaz. Yani Butonu tıkladığımızda LED’lerin hepsi “ON” olucak yani yanıcak.
buton:
x=input(pin_a0); // RA0 girişi okunuyor, tersleniyor ve x değişkenine aktarılıyor.
output_bit(pin_b0,x); // x değişkeni değeri RB0 pini çıkışına aktarılıyor.
output_bit(pin_b1,x); // x değişkeni değeri RB1 pini çıkışına aktarılıyor.
output_bit(pin_b2,x); // x değişkeni değeri RB2 pini çıkışına aktarılıyor.
goto buton; // buton etiketinin olduğu yere gidiyor.
- Kodları yazdıktan sonra “Build” diyerek kodları derleyelim. Proteus programına, oluşturulan hex dosyasını yükleyelim ve çalıştıralım.
TÜM KODLAR:
#include <Butonlu LED Kontrol.h>
int x;
void main()
{set_tris_a(0b00000001); // RA0 ucu giriş olarak ayarlandı.
set_tris_b(0x00); // RB0 portu tümüyle çıkış olarak ayarlandı.output_b(0x00);
output_b(0x01);
output_b(0x02);buton:
x=input(pin_a0); // RA0 girişi okunuyor, tersleniyor ve x değişkenine aktarılıyor.
output_bit(pin_b0,x); // x değişkeni değeri RB0 pini çıkışına aktarılıyor.
output_bit(pin_b1,x); // x değişkeni değeri RB1 pini çıkışına aktarılıyor.
output_bit(pin_b2,x); // x değişkeni değeri RB2 pini çıkışına aktarılıyor.
goto buton; // buton etiketinin olduğu yere gidilir.}