16F84A ile Led Kontrol Uygulaması

Öncelikle, özür dileyerek başlıyorum, çünkü bu konuda çok daha fazla yazı yazmak istememe rağmen, Paderborn Üniversitesinde öğrenci olduğum için, bir süre ara vermem gerekecek, ancak umuyorum, daha sonra kaldığımız yerden tekrar devam edebiliriz. Yine de ilk fırsatta kaldığımız yerden devam edeceğiz inşallah.

Bilindiği gibi, çevrenizde de görmüşsünüzdür, amatör elektroniğin, bilhassa bu pic programlama uygulamalarının oldukça fazla meraklıları vardır. Öncelikle pic lerin yada microişlemcilerin ilginç özelliklerinden bahsedelim. Günümüzdeki bütün mikroişlemciker yarıiletken teknolojisine dayanır. Evinizdeki bilgisayar, mikrodalga fırındaki işlemci vs.vs.. Peki nedir bu yarıiletken teknolojisi. Yarı iletken teknolojiyi anlatırken, transistörlerden yararlanmakta fayda olduğunu düşünüyorum, çünkü piyasada örneğini görebileceğimiz en popüler parça. Transistörün 3 bacağı vardır, bu bacaklardan base bacağına akım geldiğinde diğer iki bacak arasında elektrik akımının geçmesine izin verilir. İşte yarıiletken budur. Base bacağına akım gelmeden önce iletkenlik göstermezken, akım geldiğinde iletken olur. Burada bahsetmeden geçmeyeceğim, bütün bu müthiş kanunlar, Allah’ın ilminden bizlere sadece ufak birer nümunedir, O bunları yaratmış, bizler sadece yaratılmış olanı keşfediyoruz.

Hazırladığımız örneğe gelirsek, bugün 16F84A ile led kontrolu uygulaması yapacağız. Burada aslında daha üstün bir mikroişlemci olan 16F877 kullanmak istiyorum, ancak yeni başlayanlar için hazırladığımız bir örnek olduğu için, örneklerimizi 16F84A ile yapmaktayız, 16F84A ve 16F84 diye iki tane model bulunur, her ne kadar A modeli bir üst model olsa da çok fazla fark yoktur, bu yüzden istediğinizi alabilirsiniz. İkiside işinizi görecektir.

Hazırladığımız örnekte, mikroişlemciden yapmasını istediğimiz, biz butona bastığımızda led yansın, butonu bıraktığımızda sönsün. Tabi bunu yapmak için bir elektronik devre kurmaya gerek yok diyeceksiniz, ancak programlama ve pic böyle öğreniliyor.

Şimdi programımıza gelirsek, öncelikle, RA ve RB portlarının giriş mi yoksa çıkış mı olacağına karar vermeliyiz.
Bizim programımızda RA0 bacağı giriş RB portuysa tamamen çıkış olacak şekilde ayarlanmıştır. Bunun için gerekli komut;

set_tris_a();
set_tris_b();

komutlarıdır.

#include “C:\Program Files\PICC\Examples\bilgiustam-2.h”
#use fast_io(a)
#use fast_io(b)
int1 x;
void main()
{

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

// TODO: USER CODE!!

set_tris_a(0b0001); // burada A portunun sadece A0 bacağını giriş yaptık
set_tris_b(0x00); // burada ise, B portunu tamamen çıkış yaptık

BASLA:

x=input(pin_a0); //RA0 bacağı okunuyor ve değer x’e yükleniyor
output_bit(pin_b0,x); //x değeri RB0’a yükleniyor
goto BASLA;
}

Bu komutlar programımızın düzgün çalışması için hazırlanmış ve denenmiş komutlardır, hata yoktur. Programızı burayla kıyaslayarak test edebilirsiniz.

(Not: Yarıiletken hakkındaki detaylı bilgiler, Gazi Üniversitesinde master yapan arkadaşım, Abdullah Fatih Kuloğlu‘ndan alıntıdır. )

Yazar: Ahmet Serdar Güldibi