MİKRODENETLEYİCİ PROGRAMLAMA
Mikrodenetleyici, tek çipe sığdırılmış eksiksiz bir bilgisayardır: merkezi işlem birimi, bellek ve giriş-çıkış uçları aynı entegrenin içindedir. Masaüstü bilgisayardan farkı ölçek ve amaçtır — kaynakları sınırlıdır ama tek bir işi yıllarca, kesintisiz ve kuruşluk maliyetle yapar. Çamaşır makinenizin programını da, arabanızın motor beynini de mikrodenetleyiciler yürütür. Mikrodenetleyici programlama, bu çiplere ne yapacaklarını öğretme işidir ve bu yazıda o işin bütün zincirini — kavramdan programlama kartına — dolaşıyoruz.
Mikrodenetleyici Nedir, Mikroişlemciden Farkı Ne?
Ayrım tek cümledir: mikroişlemci yalnızca işlem birimidir — bellek ve çevre birimlerini dışarıdan ister; mikrodenetleyici ise hepsini tek pakette taşır. İçindeki analog-dijital çevirici sensör verilerini okur, zamanlayıcılar süre tutar, haberleşme birimleri diğer çiplerle konuşur. Küçük, ucuz ve kendine yeter olması, onu gömülü sistemlerin varsayılan beyni yapmıştır. Aileler çeşitlidir — PIC, AVR, ARM tabanlı çipler — ama programlama zinciri hepsinde aynıdır; bu yazıda zinciri, öğretimde en köklü aile olan PIC üzerinden anlatıyoruz. İsim, "Peripheral Interface Controller" (çevre birim arayüz denetleyicisi) ifadesinden gelir; kökleri 1970'lerin ilk programlanabilir giriş-çıkış denetleyicilerine uzanır.

Programlama İçin Gerekenler
Bir mikrodenetleyiciyi programlamanın alet çantası altı kalemdir:
- Bilgisayar: Güncel herhangi bir bilgisayar fazlasıyla yeter; bağlantı günümüzde USB üzerinden yapılır.
- Geliştirme ortamı (IDE): Kodun yazıldığı editör — üreticilerin ücretsiz IDE'leri, editör ve derleyiciyi tek pakette sunar. Assembly kaynak dosyaları .asm uzantısıyla kaydedilir.
- Derleyici (assembler/compiler): İnsan diline yakın kodu, çipin anladığı makine diline çevirir.
- Mikrodenetleyici: En az bir adet çip — deneme yanılma payıyla birkaç adet almak akıllıcadır.
- Programlayıcı donanımı: Derlenen kodu çipin belleğine fiziksel olarak yazan ara kart — bilgisayar ile çip arasındaki köprü.
- Programlama yazılımı: .hex dosyasını programlayıcı üzerinden çipe aktaran araç; modern IDE'ler bunu da içine almıştır.

Programlama Zinciri: Koddan Çipe
Akış hangi dil ve aile seçilirse seçilsin değişmez: yaz → derle → yükle → çalıştır. Kod Assembly ya da C ile yazılır; derleyici onu 0 ve 1'lerden oluşan makine diline çevirip .hex uzantılı dosya üretir; programlayıcı bu dosyayı çipin kalıcı program belleğine yazar. Enerji verildiği anda çip, belleğine yazılan programı ilk komuttan başlayarak yürütür — ve siz onu değiştirene kadar aynı işi sadakatle tekrarlar. Dil tercihi klasik ikilemdir: Assembly donanımı kaydedici düzeyinde öğretir ve en sıkı kodu üretir; C ise geliştirmeyi hızlandırır — pratik yol, mantığı Assembly ile kavrayıp projeleri C ile yazmaktır.
Programlama Kartı Yapımı
Hazır programlayıcılar uygun fiyata satılır; ama kendi programlama kartını yapmak, hem elektronik hem mikrodenetleyici bilgisini tek projede birleştiren klasik bir eğitim çalışmasıdır. Adımlar bir baskı devre projesinin adımlarıdır: şemaya uygun PCB çıkarılır, malzemeler kontrol edilir, montaj ve lehimleme yapılır, kart tabanı hazırlanır, bilgisayar bağlantı kablosu kontrol edilir ve kartın çalıştığı bilinen bir çiple doğrulanır. Kendi yaptığı programlayıcıyla ilk çipini yazan kişinin yaşadığı an, bu hobinin bağımlılık noktasıdır.

Nereden Devam Etmeli?
Zincir kurulduktan sonra yol projelerden geçer: led yakma, buton okuma, ekran sürme, motor kontrolü... Sistemli ilerlemek isteyenler için PIC programlama eğitimi komut setinden uygulama devrelerine bütün müfredatı çalıştırır; C tabanlı geliştirmeye yönelmek isteyenler için mikroC ile PIC programlama eğitimi doğal alternatiftir.
Sıkça Sorulan Sorular
Mikrodenetleyici ile mikroişlemci arasındaki temel fark nedir?
Mikroişlemci yalnızca merkezi işlem birimini barındırır; bellek ve giriş-çıkış birimlerini dışarıdan ister. Mikrodenetleyici ise işlem birimini, RAM, ROM ve giriş-çıkış uçlarını tek bir entegre içinde toplar. Bu yüzden gömülü uygulamalarda tek çiple çalışan kompakt bir çözüm sunar.
PIC ismi nereden gelir?
PIC, Peripheral Interface Controller (çevre birim arayüz denetleyicisi) ifadesinin kısaltmasıdır. Harvard mimarisine sahip ilk denetleyici fikri 1970'lerde ortaya çıkmış, programlanabilir giriş-çıkış portu sağlayan bir çevre birim olarak tasarlanmıştır.
Bir PIC'i programlamak için en az hangi donanım ve yazılım gerekir?
Bir bilgisayar, kod yazmak için bir metin editörü veya geliştirme ortamı, assembly kodunu makine diline çeviren derleyici, en az bir adet PIC çipi, çipe kod aktaran programlayıcı donanımı ve bu aktarımı yöneten yazılım gerekir. Bu altılı bir araya gelince programlama tamamlanır.
Yazılan kod neden .hex dosyasına dönüştürülür?
PIC, insan tarafından okunan assembly veya C kodunu doğrudan anlamaz; yalnızca sıfır ve birlerden oluşan makine dilini işler. Derleyici, kaynak kodu .hex uzantılı onaltılık makine koduna çevirir. Programlayıcı bu .hex dosyasını okuyarak çipin program belleğine yazar.
Programlama kartı (programmer) ne işe yarar?
Programlama kartı, bilgisayardaki .hex dosyasını PIC'in program belleğine fiziksel olarak aktaran ara donanımdır. Bilgisayar portu ile çip arasında köprü kurar, çipe gereken programlama gerilimini sağlar ve doğru zamanlamayla veriyi belleğe yazar.
PIC programlamaya assembly ile mi yoksa C ile mi başlamak gerekir?
Assembly, donanımı pin ve kaydedici seviyesinde tanımayı öğretir ve çevrim sürelerini net gösterir. C dili ise insan diline yakın olduğu için daha hızlı geliştirme sağlar. Yeni başlayanlar genellikle temel mantık için assembly görür, projelerde ise verimlilik için C tercih edilir.


