İlk örneğimiz her klasik C kitabındaki Merhaba Dünya örneğidir. Tabi bu örneğin mikrodenetleyici dünyasına uyarlanmış şekli. PIC devresinin çalışması için 5Vluk bir besleme gerilimi, reset devresi ve bir osilatör kaynağı gereklidir. Pilli uygulamalar için daha düşük gerilim seviyelerinde üretilmiş PIClerde mevcuttur.
Osilatör devresi ise PIC’in çalışması için gerekli olan saat sinyalini üretebilir. PICler çok çeşitli saat kaynakları ile çalışabilmektedirler. Projelerimizda daha stabil ve sağlıklı olduğu için kristal kullanmayı tercih ediyoruz.
Kendi iç osilatörüne sahip PIClerde mevcuttur. MCLR ayağı PICi resetlemek için kullanır. 10Kohmluk bir direnç ile bu ayak pullup yapılır. Eğer MCLR ayağı şase seviyesine çekilirse PIC resetlenir.
İlk kodumuzu inceleyecek olursak. Hitech C derleyicisi için yazılmış her C kodu #include <htc.h> ile başlamalıdır. PIC16F serisi orta sınıf (Mid-Range) PICler için onun yerine #include <pic.h> de yazabilirsiniz.
Bu satır kullandığımız PIC ile ilgili temel tanımlamaları içeri alır. __CONFIG satırında ise PIC için hayati değer taşıyan sigorta (fuse) ayarları tanımlanmaktadır. Hangi osilatör devresinin kullanıldığı, watchdogun, kod korumasının aktif olup olmayacağı gibi bir çok ayar buradan yapılır.
Her PIC için ayar seçenekleride oldukça farklıdır. pic.h dosyasını editörde açıp kullandığınız pic ile ilgili tanımlamanın olduğu satıra giderseniz yine orada başka bir dosyanın #include ifadesi ile projeye eklendiğini görürsünüz. İşte bu dosya kullandığınız PIC ile ilgili tüm tanımlamaları içerir.
PIC16F877A için pic168xa.h dosyası include edilir. Bu dosyayı incelemenizde büyük fayda var. Dosyanın sonuna doğru #define CONFIG_ADDR 0x2007 tanımlamasının altında PIC16F877A için gerekli konfigurasyon ayar çeşitleri listelenmiştir. Ben genellikle 4MHz kristal kullanıyorsam aşağıdaki şekilde yazmayı tercih ediyorum.
__CONFIG(XT & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & WRTEN& DEBUGDIS & UNPROTECT);
Her C kodunda olduğu gibi program çalışmaya main içinden başlar. TRIS registerları ile PICin ilgili portlarının giriş veya çıkış olarak tanımlayabiliriz. 0 atanan pinler çıkış, 1 atanan pinler giriş olarak ayarlanır.
Hitech C içinda hazır bir delay fonksiyonu yoktur. Geçikme fonksiyonu iç içe yazılmış for döngüleri ile yazılır. Farklı çalışma frekansları için iç döngünün maksimum değeri değiştirilmelidir.
Bu devrede her 400milisaniyede bir led yanıp sönmektedir.
Proteus isis devre şeması;
Hi tech C hex ve proteus simülasyon dosyaları;
Şifre-Pass: 320volt.com
Yayım tarihi: 2011/01/14 Etiketler: hi tech c, hi tech led, hi tech sapmle, microchip pic projeleri, PIC16F877 örnekleri
ellerinize sağlık sayenizde ilk hitect c denememi yapıp başarılı oldum.