Elektronik / Elektronik Kaynakları/

PIC Programlama Nereden Başlamalı Hangi Dil

PIC Programlamak isteyen bir çok kişinin en çok takıldığı kafasının karıştığı allak bullak olduğu :) sorunlar benim gibi bu işe yabancı olan :) yeni başlayan kişiler için PIC Programlama Konusunda başalarken yardımcı olabilecek Makaleler var

İlk Yazı Sevgili ETE Abimizden

Pic yada diğer mikro işlemcilerle çalışmaya nerden başlayayım sorusu sıklıkla gündeme geliyor. Kısa kısa açıklamalar vermeye çalışarak size yol göstermeye çalışacağım.

Pic e nerden başlamalıyım?

Öncelikle şunu bilmeniz gerekiyor

Pic dünyası çok yönlü bir olay. Yalnızca pic’i bilmeniz yetmiyor. Çünki yalnız başına pic bir şey ifade etmiyor. Onunyanında diğer lojik entegreleri, transistörlü devreleri, röleleri, ledleri besleme devrelerini kısaca elektroniği içine alan bütün sistemleri az çok bilmeniz gerekiyor.
Olayı bukadar kapsamlı tutupda şevkinizi de kırmak istemem. İşin bir yerinden tutmak gerekiyor elbette. Ancak şayet digital elektronik bilginiz yok ise yada çok az ise önce onu geliştirmenizde yarar var. Neler öğrenmeniz gerekir onları sıralayayım.

1. Binary sayılar ve matematiğini bu sayıların desimal sisteme çevriliş mantığını

2. Hexadesimal sayılar ve bunların desimal sisteme çeviriliş mantığını.

3. Lojik kapıları ki bunlar çok önemli.Her gün karşınıza çıkacaklardır.

Tabiiki yalnızca kapıları değil lojik mantık mekanizmasınıda öğrenmeniz gerekir. Özellikle iki sayının birbirleri ile AND – OR – NOR – NOT – XOR yapılmasını ve sonucun neler olduğunu öğrenmeniz gerekir.

Pic ailesi genelde 5V ile çalışır. Sıkça karşılaşılan sorunlardan biriside 5 volt ile 12 volt yada diğer voltajlardaki elemanların nasıl sürüleceği (çalıştırılacağı) konusudur. Bu nedenle transistörlü sürme devreleri konusunda biraz araştırma yapmanızı öneririm. Pic ailesi çıkışta 20 ma kadar bir akım verebilir be bu akım pek çok elemanı direk çalıştırmaya yetmez. Bu nedenle bu çıkışın kuvvetlendirilmesi gerekir. Transistörlü kuvvetlendirme devreleri burada çok işe yarar.

Diğer bir öğrenmeniz gereken konuda pic ile birlikte çalışacak yardımcı elemanlarıdır. Nedir bunlar , optocoupler – röle – triac – ısı sensörleri gibi elemanlar. Birazda bu konuyu incelerseniz iyi olacaktır. Bu elemanların pic ile birlikte kullanılmalarını bulacağınız örneklerden de kolaylıkla öğrenebilirsiniz. Bu nedenle bu konuyu biraz geriye atsanız da olabilir.

Bu kadar çalışmayı yaptıktan sonra gelelim pic meselesine. Pic denile alet belirli sayıda komut seti (makine dili komutları) ile çalışan bir programlanabilir entegredir. Temel çalışma dili Makine dili dediğimiz rakamlardan oluşan komut seti ile oluşturulan bir dildir. Ancak rakam karşılıklarının anlaşılması çok zor olduğu için her bir rakama karşılık gelen komutlara harf kodları verilerek Assembly dediğimiz dil oluşturulmuştur.

Bu dil kısıtlı olanakları ile yinede anlaşılması çok kolay olmayan yada iyi programlar yazabilemek için epeyce zaman harcamanız gereken bir dildir.

Tabiiki pic üzerinde çalışan dillerin en hızlısıdır. Aynı amaca yönelik yazılmış programlardan ASM olanı en hızlı çalışandır her zaman. Ancak programlama işine çok kısa zamanda girmenizi sağlayacak ve nisbeten daha kolay öğrenebileceğiniz diğer dillerde mevcut. Bunlardan birisi BASIC dilidir. Ayrıca C dili dediğiğimiz dilde mevcut.

Herkesin merakla öğrenmek istediği konu ise hangisinden başlayayım.

Bu tamamen sizin bilgi ve becerinize bağlı bir olay. Bu konuya karar verirken bazı programların basicde yada diğer diller de yazılmasının mümkün olmadığını hemen belirteyim. Kısaca Basic yada C dilini bilsenizde biraz olsun ASM de bilmenizde yarar var. Çünki diğer dillerin içinde program yazarken programların arasına ASM de yazılmış bölümler de koyabilmeniz mümkün. Özellikle zamanlamaya bağlı işlemlerde diğer diller sınıfta kalırlar. Bu konudaki işlemler yalnızca ASM ile çözümlenir.

Bu dillerde mutlaka zaman konusunda komutlar vardır ama hassas zaman işlemleri yalnızca ASM de yapılabilir. Bu bir eksiklikmidir. Tabiiki hayır. Zaman içinde bilginiz geliştikçe sizde ASM hakkında bilgi edinir ve ufak ufak kullanmaya başlayabilirsiniz. Yada kendinize güveniyorsanız direk ASM den başlayabilirsiniz. Benim edindiğim tecrübelerden gördüğüm kadarı ile ASM en başta anlaşılması ve uygulaması gerçekten zor olan bir dil. Kısa yoldan bu işe başlamak isterseniz Basic yada C delini tercih ediniz.

Programcılıkta öğrenmenin en iyi yollarından birisi bol bol örnek incelemektir. Başka birisi bir işi nasıl yapmış görüp anlarsanız bu bilgi kafanızda daha iyi kalır. Aynı işi tarif ederlerse fazla akılda kalıcı olmaz. Bu nedenle bol bol örnek incelemeye bakın.

Dilleri bu şekilde açıkladıktan sonra gelelim size neler lazım. Bu aşamada tercih ettiğiniz dillere bağlı olarak size neler lazım olacak onları açıklamaya çalışayım.

Diyelimki ASM (Assembly) öğrenmeye karar verdiniz,

Önce piyasadan bir veya iki kitap alın. Komut setini ve fonksiyonlarını iyice öğrenmeye çalışın.

Programları yazabilmeniz için bir editör programına ihtiyacınız olacak. Bu işi MPASM denilen bir programla yapabileceğiniz gibi her hangi bir editörlede text formatında yazabilirsiniz programları.

Sonra bu yazılan ASM formatındaki programın pic in anlayacağı HEX file formatına dönüştürülmesi (derlenmesi) gerekir. Aynı işi MPASM programı yapmaktadır. Programı internette arama yaptırarak bulabilirsiniz.

Elinizde şimdi HEX formatında bir dosya var. Bu dosyayı artık pic’e aktarmaya sıra geldi. Bunun çin piyasadan 1 adet USB den çalışan bir programlayıcı satın alın. Yada forumlarda şeması verilen K128 veya Brenner programlayıcılardan birini kendiniz yapın.

Her iki programlayıcı için yazılmış arayüz programları vardır. Bu arayüz programları HEX dosyanızı alır ve programlayıcı üzerine taktığınız Pic’e yazar. Sonuç olarak birde ara yüz programını bulmanız gerekiyor. Bunların hepside internette mevcut. Yada programlayıcıyı satın aldığınız zaman size arayüz programınıda vereceklerdir zaten.

Şimdi BASIC de çalışmak isterseniz ne yapmanız gerekecek onu izah edeyim. Bu açıklamalarım Pic Basic Pro (PBP) içindir.

Bu konuda da yazılmış kitaplar mevcut. Onlardan birini alacaksın. Ayrıca yazılmış dersler var bu konuda internetten arayıp bulacaksın onları. Benim derler var 11 derten oluşuyor bu forumda ararsan bulabilirsin.

İnternet den Micro Code Studio isimli editör programını yükleyeceksin. Mechanique isimli sitede free olarak vardır.

Yine internette PBP2.47 yada PBP2.50 sürümleri olan Basic derleyicisini bir yerlerden bulacaksın . Bu derleyiciyi C ana klasörüne kuracaksın.

MCS yi çalıştırıp view menüsünde bir seçenekde PBP derleyicisinin adresini MCS ye göstereceksin. Sonra artık programlarını yazabilirsin. Yukarıda derle butonuna basınca da programın derlenecek ve aynı yerde HEX dosyası oluşturulacaktır. Hata bulunursa ekran altında sana gerekli açıklamalar verilecektir.

Piyasada birde PrOton yada Pic Basic Plus isimli bir basic derleyicisi daha var. Onun kendi editörü ve derleyicisi bulunmaktadır. Bu programı internetten bulursan yükleyip aynı şekilde önce programı yazıp sonra derleme butonuna tıklayarak programlarını Hex formatına çevirebilirsin.

Elde edilen Hex dosyasının Pic’e yazılması işlemi yine aynı. Arayüz programınızı çalıştırıp, hex dosyasını yükleyecek ve sonra yaz butonuna basıp programı pic e yazdıracaksınız.

Son olarak da C dili ile ilgili programlardan biraz bahsedeyim. Bir kaç tane C dili derleyicisi var. Bunlar derleyiciyi yazan firmalara göre değişik isimler almaktadırlar. Hepsinin kendi editörleri ve derleyicileri mevcuttur.

Programcılıkta bazı işlemlerin yaptırılması özel fonksiyonlara bağlanmıştır. Örneğin LCD ekranına bir şey yazdırılması yada bir sıcaklık sensörünün okunması gibi işlemler için uzun program parçacıkları yazılmış ve bunlar derleyici kütüphanesine atılarak başka programlarda da kullanılması sağlanmıştır. C dilini tercih ettiğinizde bu çeşit kütüphanesi bol olan dili tercih etmenizde yarar var. Yoksa epeyce zorluk çekersiniz.

Son olarak programlama işine girdiğinizi var sayarak zaman zaman buradan yada başka forumlardan yardım isteyebileceğinizi belirtmek isterim. Ancak hiç bir zaman bir şeyler karalamadan şunu nasıl yaparım diye sormayın. Kısaca hazır’a konmaya çalışmayın. Kendiniz bir şeyler yapın tıkandığınız yerlerde yardım istyin. Mutlaka beklediğiniz yardımı alacaksınız.
Epeyce açıklama verdim sanırım. Umarım size bir yol gösterebilmişimdir.

ETE

Yazı-2: PIC Programlamaya Nasıl Başlamalı?

Kaynak: www.fatiherdem.net

Merhaba Arkadaşlar,

Bu yazımızda PIC programlamaya başlamak isteyen arkadaşlara yardımcı olmaya çalışacağız. Öncelikle PIC nedir onla girelim. PIC Microchip firmasının üretimi olan mikrodenetleyicilerinin model ismidir. PIC 16F877, PIC 16F84, PIC 16F628A gibi, bunlar birer entegre ismi. Ancak Mikrochip firmasının PIC mikrodenetleyicileri o kadar yaygın kullanılıyor ki peçete yerine selpak ifadesinin kullanılması gibi PIC denilince akla mikrodenetleyici geliyor.

Neden yaygın kullanılıyor derseniz ilk başta fiyat uygunluğu geliyor, kolay bulunması ve internette ilgili dökümanların kolay bulunabilmesi de diğer artı özellikleri. Sadece PIC mikrodenetleyicisi kullanmış biri olarak diğer firmaların ürettiği (mesela motorola) mikrodenetleyiciler hakkında pek bir bilgim yok. PIC le başladı öyle gidiyor, ancak bundan sonra alternatifleri de değerlendirmeye çalışacağım.

PIC le neler yapabiliriz?

Bu soruya tam bir cevap vermek veya PIC le yapılabilecek uygulamalara bir sınır koymak oldukça zor, elektronik tecrübeniz arttıkça verebileceğiniz cevaplar da artacaktır. Ancak basitçe;mikrodenetleyiciler bizim için karar verirler, ne zaman ne yapması gerektiğini program aracılığıyla söylersiniz ve PIC bunu sizin için yapar. Örneğin: Ne zaman hangi ledleri yakacağını söylerseniz led panelde kayan yazı yapabilirsiniz veya tuş takımından girilen şifre doğru olursa röle yardımıyla şifreli kapı yapabilirsiniz vs.

PIC programlamaya hangi model PIC le başlayalım?

Yeni başlayacak arkadaşlar için en uygun modelin 16F628 veya 16F628A( 16F628A nın resmi için buraya tıklayınız) olduğunu düşünüyorum. Bu model PIC lerde dahili osilatör olduğu için harici osilatör bağlamak durumunda kalmayacaksınız. Bu durmda mikrodenetleyicimizi çalıştırmak için sadece VDD ucuna +5V ve VSS ucunu toprağa bağlamamız yeterli olacaktır.

PIC 16F628 modelinde toplam 18 adet pin bulunur, bunlardan 16 tanesi giriş-çıkış pini olarak kullanılabilir kalan 2 pin ise PIC in çalıştırılmasıyla ilgilidir(Besleme ve toprak pinleri). Bu 16 giriş-çıkış pinimizden 8 tanesi A portuna 8 tanesi de B portuna ait pinlerdir.

(bu arada mikrodenetleyici = mikroişlemci + bellek + giriş-çıkış vs çevresel birimler olduğunu bildireyim)

Fiilen PIC programlamaya başlayabilmeniz için gereken asgari gereçler;

Donanım Olarak;

1) Herhangi bir model PIC Mikrodenetleyicisi
2) PIC Programlama Cihazı (PIC Programlama devresi)
3) Bilgisayar

Yazılım olarak;

4) Derleyici (Seçtiğiniz programlama diline bağlı olarak size bir derleyici(compiler) gerekir)

5) Programlama Cihazıyla irtibatı kuracak olan(çoğunlukla programlama cihazıyla birlikte verilir) yani yazdığınız kodu entegrenize yüklenmesini sağlayan yazılım.

Şimdi internette pek sık duyduğumuz bazı isimleri bu kategorilere koyalım (terimlerden kafası karışan arkadaşlar için),

ICPROG: 5. maddemizle ilgili; yazdığımız kodların PIC e yükleme amaçlı kullanabileceğimiz aracı yazılımlardan bir tanesidir.

PicBasic: 4. maddemizle ilgili, PIC programlama yapabilmek için alternatif programlama dillerinden bir tanesi, bu dille programlamak istiyorsanız PicBasic derleyicisine ihtiyacınız var demektir.

Pic C: Yine 4. maddemizle ilgili, PIC C de pic programlamada kullanılabilecek alternatif dillerden birisidir.

Yukarıda saydığımız 5 şarta sahip olduğunuzda PIC programlamak için yapmanız gerekenler sırasıyla şöyle olacaktır.

1) Bilgisayarımızı açar, PIC C Derleyicimizi çalıştırırız. Yapmak istediğimiz uygulamaya ve mikrodenetleyicimize göre kodumuzu yazarız.

2) Kodu derleyip, hex dosyası oluşturduktan sonra hex dosyasını PIC e yükleyecek olan ve yukarıda da aracı yazılım olarak bahsettiğimiz yazılımı çalıştırırız.

3) Mikrodenetleyicimizi PIC Programlama cihazına yerleştirdiysek yazdığımız kodun hex uzantılı dosyasını bu yazılım aracılığıyla PIC imize yükleyebiliriz ve artık PIC i programlama cihazından söküp devremizde kullanabiliriz.

Ancak tüm bunları sağlamak ve hatasız uygulamalar geliştirmek yeni başlayan arkadaşlar için epeyce zor olacaktır. Bu yüzden en uygun başlama yönteminin simülasyon programlarıyla olduğunu düşünüyorum. Simülasyon programı kullandığımız durumda yukarıdaki listenin donanım bölümündeki 1)”Herhangi bir model PIC Mikrodenetleyicisi”

2)”PIC Programlama Cihazı” maddelerinden kurtuluyoruz ve daha da önemlisi yanlış bağlantılarla yanabilecek donanım veya çalışmayı önleyebilecek donanım hatalarından kurtuluyoruz.

Yazılım çevresinde elektronik simülasyonu yapan bir çok program var ancak PIC simülasyonu yapabilen pek yok. PIC simülasyonu yapan ve benim de kullandığım PROTEUS adında gayet güzel bir simülasyon programı var. (PIC simülasyonunu mümkün kılan programların özelliği yazdığınız kodları bu programlar sayesinde bilgisayar ortamında PIC e yükleme ve çalıştırma imkanı vermesidir. )

Bu işlemleri fiilen yapmak istediğimizde 1. PIC i programlamak için bir takım işlemler 2. çalıştırmak için birtakım işlemler yapmak durumundasınız, ancak simülasyon programları sayesinde programlamak için PIC inize sağ tıklayıp derleme sonucu oluşan hex dosyasını kaynak olarak göstermek, çalıştırmak için de simülasyon programınızın çalıştır düğmesine basmak yeterli olacaktır.

PIC programlamak için gereken asgari gereçlerin yeni bir listesini yapmamız gerekirse;
1) Yazacağınız kodları derleyip, hex dosyasına çevirecek derleyici. (Seçeceğiniz dile göre değişir, PIC C Dili, PIC Basic dilleri için derleyiciler internette mevcut)
2) Proteus Simülasyon Programı
olacaktır.

Bu şekilde PIC programlama dünyasına hızlı giriş yapabilirsiniz, bu işlemlere illa da fiilen başlamak istiyorsanız bir kaç denemeden sonra yine simülasyon ortamına döneceksiniz çünkü yazdığınız kodları gerçek bir PIC de denemeniz için gereken işlemler sürekli yapıldığında çok can sıkıcı olur, genelde kodumuzdan emin olduğumuzda son işlem olarak gerçek PIC e yükleme yaparız, ha bir aksilik olursa en fazla bir kaç defa değiştirip yükleriz. Kod geliştirme işlemini simülasyon üzerinden ilerletiyoruz son aşamada gerçek bir PIC e yüklüyoruz (hazır olduğunu düşündüğümüzde), bu her seviyeden PIC programcısı için böyledir.

Arkadaşlar şimdilik bu kadar, yeni başlayacak arkadaşlara yardımcı olmaya çalıştım, umarım faydalı olmuştur, sorularınızı forumlarımızda paylaşalım. İyi çalışmalar dilerim . . .

Telif : Fatih Erdem

Ek olarak işinize yarayacak bilgilerin örnek projelerin bulunduğu PIC Programlama Öğrenmek İsteyenler yazısına bakmanızda fayda var. Son olarak kendi tecrübelerimi aktardığım “Bir teknikerin pic programlama deneyimleri” yazısına da bakmanızı öneririm

  1. yasarhoca 2008/07/31
  2. Fatih 2008/10/18
  3. gevv 2008/10/18
  4. öğrenci 2009/09/25
  5. rcc 2010/10/24
  6. Fatih 2010/11/11
  7. gevv 2010/11/11
  8. jackiechan 2011/08/20
  9. EREN 2011/10/19
    • gevv 2011/10/19
  10. EREN 2011/10/19
  11. happy 2012/04/16
  12. ilker29 2013/03/22
  13. Feridun 2013/03/23
    • ilker29 2013/03/23
  14. osman 2014/09/21
    • Mehmet SERT 2017/02/13
      • gevv 2017/02/14
  15. Zeynep Ağca 2016/03/02
    • Mehmet SERT 2017/02/13
  16. HC 2016/05/05

Yorum

Soru: