PIC ile led yakalım – II

Geçtiğimiz günlerde kullanacağımız PIC12f675 mikro denetleyici ve yazılım ortamları hakkında biraz bilgi vermiştik. Bu yazıda artık yazılımsal kısımlara başlayalım istedim. Mikrodenetleyicilerde , algoritmaya başlamadan önce bir kaç ayar yapmalıyız. Mikrodenetleyicinin çalışma frekansı , osilatör seçimi , timer ayarları gibi.

Öncelikle kullanacağımız mikrodenetleyiciyi belirtiyoruz ki, yazılım derlemesi bu entegreye göre yapılsın.

Device 12F675 ‘işlemci belirtiliyor. Burada 12f675 mikrodenetleyiciyi belirttik.

Daha sonra sigorta ayarlarını yapalım.

Config INTRC_OSC_NOCLKOUT, BODEN_OFF, MCLRE_OFF, PWRTE_ON, WDT_OFF, CP_ON

Bu config satırındakileri sırayla belirtirsek;
INTRC_OSC_NOCLKOUT : işlemci çalışırken dahili osilatörü kullanacak. dahasheti incelediğimizde farklı osilatör tiplerini de ayrıntılı görebiliriz. 8 pinli bir entegrede ayrıca 2 bacağı harici osilatöre ayırmak mantıklı gelmiyor. Hassas zaman işlemleri yapılacak ise harici osilatör kullanmak daha iyi olacaktır. Elektronik haberleşmede zaman önemli olduğu için dahili osilatördeki %1 hata payı çok nadir de olsa dez avantaj sayılabilir.
BODEN_OFF : İşlemcinin besleme gerilimindeki değişimler varsa devrenin stabil çalışması mümkün olmayabilir. Besleme gerilimdeki düşüşlerde işlemcinin stabil yapısı ozulmasın diye işlemciye reset atılmasını sağlar. Biz , böyle bir durumu göz ardı ederek çalışmasına devam etmesini sağladık. BODEN_ON değeri ile isterseniz böyle bir durumda işlemciye reset attırabilirsiniz.
MCLRE_OFF : Önceki yazımızda mikrodenetleyicinin bir ucunun sadece giriş olarak kullanılabileceğinden bahsetmiştik. Bu pin ayrıca donanımsal reset olarak da kullanılabilir. Bu pine , bir buton bağlayıp GND ye verdiğinizi varsayalım. Butona basılınca mikrodenetleyici yeniden başlayacaktır. Biz bu butonun bu özelliğini iptal ederek giriş olarak kullanacağız. Bu yüzden OFF değerini verdik , reset işlemi için kullanılacaksa MCLRE_ON değeri verilebilir.
PWRTE_ON : Pic’e ilk enerji verildiğinde, gerilim belli bir süre stabil olmayabilir. Bu durumlar için PIC’i belli bir süre kapalı durumda tutup sonrasında çalıştırır ki bu da bize devreye ilk enerji verildiğinde pic’in stabil çalışmasını sağlar.
WDT_OFF : watch dog timer olarak geçer. Algoritma içerisinde belli bir zaman döngüde kalırsa bu işlem devreye girer ve pic’e reset attırır. Şimdilik bu özelliği kapatıyoruz. İlerleyen yazılarda daha ayrıntılı bilgi vereceğim.
CP_ON : En sevdiğim özellik :) Code protect on. Efenim , güzel bir proje geliştirdiniz ve işlemciyi ele geçiren birinin bu yazılımı almasını istemiyorsunuz. işte tam olarak bu işe yarıyor. PIC’e yazılımı bir kez yükledikten sonra okunmasını kapatıyor.

Set_OSCCAL ‘ Bu komutu sadece 12f675 , 12f629 gibi entegrelerde kullanıyoruz. Dahili osilatör için kalibrasyon yapılabilen nadir işlemciler. Yazılım yüklemesinde kalibrasyon bozulmasın diye kullanılıyor.

Xtal = 4 ‘ Bu komut , PIC in hangi frekansta çalışacağını belirtiyor. Biz projemizde 4 Mhz hız seçtik.

All_Digital = TRUE ‘ Bu satırda ise tüm pinlerin giriş-çıkış lojik olarak kullanılacağını belirtiyoruz. Analog işlere şimdilik girmeyeceğiz.

Tüm kod bloğunu toparlarsak şu şekilde bir blog karşımıza çıkıyor;

Device 12F675
Config INTRC_OSC_NOCLKOUT, BODEN_OFF, MCLRE_OFF, PWRTE_ON, WDT_OFF, CP_ON
Set_OSCCAL
Xtal = 4
All_Digital = TRUE

Bir sonraki yazımızda da port ayarlarını ve değişkenler üzerine değineceğiz.