PIC Programlama Dersleri 1 – MikroC PRO for PIC ile Başlangıç

guclusat

Tanınmış Üye
Süper Moderatör

PIC Programlama Dersleri 1: MikroC PRO for PIC ile Programlamaya Giriş​

Bu konu dizisinde PIC mikrodenetleyicileri ve mikroC PRO for PIC v7.60 programını kullanarak C diliyle yazılım geliştirmeyi adım adım öğreneceğiz. Anlatımlar başlangıç seviyesine uygun olacak; her derste komutları örnek kodlarla açıklayıp uygulamalar yapacağız.

İlk örneklerde PIC16F628A mikrodenetleyicisini kullanacağız. Öğrendiklerimizi LED kontrolü, buton uygulamaları, röle kontrolü ve zamanlama devreleri gibi projelerde uygulayacağız.

1. PIC programlama nasıl yapılır?​

PIC mikrodenetleyiciye bir görev yaptırmak için önce C dilinde program yazılır. Bu program mikroC derleyicisiyle derlenerek HEX dosyasına dönüştürülür. Daha sonra uyumlu bir programlayıcı yardımıyla HEX dosyası PIC'e yüklenir.

Programlama süreci genel olarak şu adımlardan oluşur:
  1. MikroC PRO for PIC programında yeni proje oluşturulur.
  2. Kullanılacak PIC modeli ve işlemci frekansı seçilir.
  3. Program kodu yazılır.
  4. Gerekli yapılandırma bitleri (Configuration / Device Flags) ayarlanır.
  5. Kod derlenerek HEX dosyası oluşturulur.
  6. HEX dosyası uygun bir programlayıcıyla PIC'e aktarılır.
Önemli: Projeyi yalnızca kaynak kod olarak değil, proje ayarlarıyla birlikte kaydetmek gerekir. Yapılandırma bitlerinin doğru ayarlanması, PIC'in beklenen şekilde çalışması açısından önemlidir.

2. MikroC'de kullanılan temel ifadeler​

Komut veya ifadeAçıklama
void main()Ana program fonksiyonunu tanımlar.
{ }Bir kod bloğunun başlangıcını ve sonunu belirtir.
TRISBPORTB pinlerinin giriş veya çıkış yönünü belirler.
PORTBPORTB pinlerinin çıkış seviyelerini kontrol etmek için kullanılır.
PORTB.F0 = 1;RB0 pinini çıkış olarak kullanırken lojik 1 seviyesine getirir.
PORTB.F0 = 0;RB0 pinini lojik 0 seviyesine getirir.
while(1)İçindeki komutların sürekli tekrarlanmasını sağlar.
Delay_ms(1000)Yaklaşık 1000 milisaniye bekler.
if (...)Belirtilen koşul doğruysa ilgili kodu çalıştırır.

3. İlk örnek: LED yakıp söndürme​

Bu örnekte PIC16F628A'nın RB0 çıkışını bir saniye aralıklarla açıp kapatacağız.

Kod:
void main() {
TRISB = 0;
PORTB = 0;

while(1) {
PORTB.F0 = 1;
Delay_ms(1000);

PORTB.F0 = 0;
Delay_ms(1000);
}
}

Kodun açıklaması​

  • TRISB = 0; komutu PORTB pinlerini çıkış olarak ayarlar.
  • PORTB = 0; başlangıçta PORTB çıkışlarını sıfırlar.
  • while(1) döngüsü programın sürekli çalışmasını sağlar.
  • PORTB.F0 = 1; RB0 çıkışını lojik 1 seviyesine getirir.
  • Delay_ms(1000); bir saniyelik bekleme oluşturur.
  • PORTB.F0 = 0; RB0 çıkışını lojik 0 seviyesine getirir.
Bu işlemler sürekli tekrarlandığı için RB0 çıkışına uygun dirençle bağlanan LED yanıp söner.

Not: mikroC proje ayarındaki işlemci frekansı, PIC'in gerçek çalışma frekansıyla aynı olmalıdır. Örneğin iç osilatör 4 MHz olarak kullanılacaksa proje frekansı da 4 MHz seçilmelidir. LED bağlantısında uygun akım sınırlama direnci kullanılmalıdır.

4. Öğrendiklerimizi kontrol edelim​

PORTB.F0 = 0; komutu ne yapar?
  • A) RB0 pinini giriş olarak ayarlar.
  • B) RB0 çıkışını lojik 0 seviyesine getirir.
  • C) Programı tamamen durdurur.
Doğru cevap: B. Bu komut çıkış seviyesini değiştirir; pinin giriş veya çıkış yönünü tek başına belirlemez.

Sonraki ders​

Bir sonraki konuda TRISA, TRISB, PORTA ve PORTB arasındaki farkları öğreneceğiz. Bu bilgiler, butonla röle kontrolü gibi uygulamaların temelini oluşturur.
 
Geri
Yukarı