PIC İLE BUTTON KONTROLÜ
CCS C derleyicisi ve PIC 16F877 ile button kullanarak led yakıp söndürme uygulaması. CCS C kodları ve devre şeması.
Mikroişlemcilerle çalışırken bize lazım olan en temel şeyler mikroişlemcinin portlarını kontrol etmektir. Çünkü bunu yapamazsak zaten program yazabilmemiz mümkün olmaz.
Mikroişlemcinin portlarını kontrol etmekten söz ederken bu portlara veri göndermekten ve bu portlardan veri almaktan söz ediyoruz.
Tabii ki eğer bu portlara veri gönderecek veya bu portlardaki verileri okuyacaksak bunu program içerisinde kodlarla yapmamız gerekecek.
Bir porta veri göndermek için o portu input, yani veri giriş portu yapmamız gerekiyor. Porttan veri okumak içinde o portu çıkış yapmamız gerekiyor.
Örneğin A portunun tüm pinlerini giriş olarak ayarlayalım.
set_tris_a(0xFF);
B portunun tüm pinlerini giriş olarak ayarlamak istersek;
set_tris_b(0xFF);
B portunun tüm pinlerini çıkış olarak ayarlamak istersek
set_tris_b(0x00);
B portunun belirli pinlerini giriş belirli pinlerini çıkış yapmak istersek;
set_tris_b(0b11001010);
Şeklinde komutlar kullanabiliriz.
Bir a portunun belirli bir pinindeki değerin 1 mi yoksa 0 mı olduğunu anlamak için kullanacağımız kod.
if(input(PIN_A0)==0)
{
output_b(0b00000001);
}
else
{
output_b(0b00000000);
}
Yukarıdaki örnek kod A portunun ilk pinini kontrol eder. Okunan değer 1 ise B portunun ilk pinini 1’e eşitler, değilse B portunun ilk pinini 0 yapar.
Örnek uygulamamızda bir button birde led kullanacağız, buttona basınca led yanacak, buttonu bırakınca led sönecektir.
Devre Şeması
Program Kodları
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
void main()
{
while(TRUE)
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_b(0x00);
set_tris_a(0xFF);
output_b(0x00);
output_a(0x00);
while(TRUE)
{
if(input(PIN_A0)==0)
{
output_b(0b00000001);
}
else
{
output_b(0b00000000);
}
}
}
}
PIC 16F877 YURUYEN ISIK
ÇOKLU LED KULLANMA
SANATSAL BİLGİ
25/10/2016