Microcontroller i daha iyi anlamak için ilk önce mikro işlemci nedir ve nasıl çalışır ondan bahsedeyim; 

   Günümüzde bilgisayar alırken bahsedilen pentium 5,  Celeron 80386, I5, I7  birer mikroişlemci serileridir.  İşlemciler, bilgisayarda yapmak istediğiniz tüm işlemleri yerine getirdiği için CPU ( Central Process Unit) yani Merkezi İşlem Ünitesi olarak adlandırılırlar. Mikro işlemciler milyarlarca transistörün ve kapasitörün bir araya getirilerek kurulduğu tümleşik devrelerden oluşurlar ve aritmetik, logic işlem yapabilirler. Bu yüzden işlemci iki birimden meydana gelir. Bunlar Kontrol Birimi ve Aritmetik Logic birimidir.  Bir mikro işlemci, işlemini yerine getirebilmesi için bazı yardımcı elemanlara ihtiyaç duymaktadır. Bunlar;

  •   Input (Giriş) Ünitesi
  •   Output(Çıkış) Ünitesi
  •   Memory (Bellek) Ünitesi

mikro-islemcili-sistem

    Bu diyagramda da görüldüğü gibi işlemci ALU(Aritmetic Logic Unit) ve LU(Logic Unit yada Control Unit) olarak iki kısımdan oluşmuştur.   İşlemcinin işlemini yapabilmesi için geçici olarak programı tutacağı bir hafızaya ihtiyacı vardır. Bu hafıza çok hızlı olmalıdır bu yüzden digital bir hafızaya ihtiyaç vardır.  Bu digital hafıza RAM dir.  Aslında teknik olarak harddisk ve Ram arasında görev olarak fark yoktur. Tek farkları; harddisk mekanik olduğu için çok yavaş Ram ise digital olduğundan çok hızlıdır.  İşlemciyle dış dünyanın bağlantısını sağlayan iste I/O Üniteleridir(Giriş/Çıkış Ünteleri) .  Bu üniteler sayesinde işlemciye ulaşabilir yada ondan bilgi alabiliriz.  

chipislemciresmi

   Bu farklı chip ve elektronik elemanlardan oluşan üniteler CPU’nun dışında ana kartın üzerinde bir yerlerde bulunurlar ve aralarında Data Bus(Veri Yolu), Adress Bus(İletişim Yolu) açılmıştır.  Bunlar çoğunlukla elektroniğin dışında işletim sistemleri ile gerçekleştirilir. 

mikroislemci-programlama

  Şimdi gelelim fasulyenin faydalarına. 🙂 Pic dediğimiz şey Nedir? 

  Pic aslında sadece Microchip firmasının ürettiği bir mikrodenetleyicidir. Çok fazla kullanıldığından artık halk arasında mikrodenetleyici yerine pic denmeye başlanmıştır.  

  Bir bilgisayar içerisinde bulunması gereken temel bileşenlerden RAM, I/O ünitesinin tek bir chip içerisinde üretilmiş biçimine mikrodenetleyici (Microcontroller) denir.  Bilgisayar teknolojisi gerektiren uygulamalarda kullanılmak üzere tasarlanmış olan mikrodenetleyiciler, mikroişlemcilere göre çok daha basit ve ucuzdur. Günümüz mikrodenetleyicileri otomobillerde, kameralarda, cep telefonlarında, fax-modem cihazlarında, fotokopi, radyo, TV, bazı oyuncaklar gibi sayılamayacak kadar pek çok alanda kullanılmaktadır.

  Günümüz mikrodenetleyicileri birçok chip üreticisi tarafından üretilmektedir. Her firma ürettiği chip’e farklı isimler vermektedir. Örneğin Microchip firması ürettiklerine PIC adını verirken, Intel’in ürettiği ve 1980’lerin başında piyasaya sürdüğü 8051, bazen MCS-51 olarak da adlandırılır. 

Mikrokontroller

  Mikrodenetleyiciyi kullanma sebebimiz  şudur ki; yapay zeka oluşturacağımız bir projede mikro işlemciyi tek başına kullanamayız. İşlemci için dışarıdan Ram ve I/O ünitelerini de temin edip bu elemanlar ve CPU arasında Data Bus ve Adress Bus açmamız gerekir ki buda imkansıza yakın bir şeydir.  Bunun yerine işlemeci firmaları, bizim rahatlıkla elektronik devre dizaynında kullanabileceğimiz ve onun için program yazıp bir yapay zeka oluşturabileceğimiz, içerisinde I/O ve Ram Unitelerini bulunduran kısacası bir prototip bilgisayarı bir chip halinde sunabilecekleri entegre üretmişler.  Bu entegreye mikrodenetleyici adını vermişler ve hizmetimize sunmuşlar. İşte bu yüzdendir ki robotik daha hızlı gelişmiştir ve teknolojide yapay zeka olmazsa olmazlardan olmuştur. 

220px-Microchip_PIC24HJ32GP202

  Bir microcontrolleri programlamak için çok fazla donanıma sahip olmak gerekmez.  Bir picprogrammer, ve bir microcontroller derleyicisi işimizi görecektir.  Mikrodenetleyicileri programlamak için günümüzde birçok derleyici mevcuttur. Bunlar, Pic CCS C, Pic Basic,  Assembly, Code Composer Studio gibi deleyicilerdir.   Çok geniş kütüphanelere ve kullanım avantajlarına sahip olmasından ötürü bu derleyiciler arasında benim önerim PIC CCS C dir.    Mikrodenetleyici programlamak için ikinci sahip olmamız gereken şey ise aşağıdaki gibi bir pic programmer bulmaktır.  

PICKIT2

  Pic programmer lar, bilgisayara bir USB kablosu ile bağlanabilirler. Ve kendi arayüzleri sayesinde Hex dosyasına çevrilmiş program kodlarını Pic üzerine kolayca yazabilirler.  

  Şimdi  size kısaca  bir Pic in yapısını tanıtacağım. Pic olarak benim en çok kullandığım Microchip firmasının ürettiği  Pic16f877 yi seçiyorum. Fakat pic serileri arasında çok fazla farklar yoktur. Bir tanesini öğrenirseniz hepsini öğrenmiş olursunuz.  

 16f87716f877

   Gördüğünüz gibi Pic’ in 40 adet pini mevcuttur.  Bu pinlerin her biri farklı görevler için kullanılır.  Bu pinleri anlatmaya ilk önce  MCLR(Master Clear) pininden başlayayım.   

   MCLR(Master Clear) Pini(1.Pin) ;  Pic in içerisindeki programı resetlemek içindir. Normalde bu pine Picin çalıştığı süre bayunca 5 Volt Logic uygulanır, Pinin logic voltajı 0Volta çekildiğinde Pic içerisindeki Programı resetler ve programı okumaya baştan başlar. 

   OSC1,OSC2 Pinleri( 13 ve 14. Pin); Bu pinler pic için gerekli osilatör kaynaklarının giriş pinleridir. Osilatör kaynağı pic in çalışması için pulse üretir ve işlemci bu pulse lar üzerine işlem yaparlar.  Bilgisayar alırken 2.4 Ghz işlemci hızı diye tabir edilen şey aslında osilatör kaynaklarının ürettikleri Pulse frekansıdır.  16f877 de internal osilatör kanağı bulunur bu yüzden dışarıdan bir osilatör kaynağı bağlamasanız da mikrodenetleyicimiz çalışacaktır. 

  VDD VSS Pinleri(11, 12, 32 ,31. Pinler); Pic’in Supply Power ve ground bacaklarıdır. Pic 4.5 volt ve 5.5 volt aralığında çalışır daha fazla voltaj uygulanırsa yanar. Bu yüzden çoğu pic projesinde supply power  5 voltluk pir regüle devresi aracılığıyla sağlanır.

   RA,B,C,D,E Pinleri;  A,B,C,D,E harfleri her bir Port’u temsil eder. Her bir portun belirli sayılarda pinleri mevcuttur. Yazılan programda bu pinler giriş yada çıkış olarak tanımlanabilir ve bu amaçlar için kullanılabilirler.  Her pinin giriş çıkış için farklı özelleikleride vardır. Mesela A portu analog giriş olarak kullanılabilir.  RC1, ve RC2 pinleri PWM çıkışı olarak kullanılabilirler. Pinlerin bu özellikleri yanlarında / işaretiyle belirtilmiştir.