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
Yayım tarihi: 2008/04/13 Etiketler: Assembly, kılavuz, mikroişlemci, nasıl pic programlanır, pic basic, pic programlamak, programlama
Açıklamalarınız için teşekkürler
Yeni başlayacak olan arkadaşların
bir çoğu için gerçekten faydalı olmuş
emeğinize sağlık
Merhabalar, diğer yazılarda olduğu gibi bu yazıyı da zaman zaman gözden geçirip güncelliyorum, dolayısıyla adresi buraya yazmakta fayda olabilir:
http://www.yucomp.org/icerik.asp?yer=gst&t=2&id=105
İyi çalışmalar 🙂
Teşekkürler gerçi yazıda link vermiştim ama yorumunuz sayesinde yazının güncellendiğinini öğrendik 🙂
emeğiniz için teşşekür ederim. güzel çalışmalar.
Çok teşekkürler gerçekten açıklayıcı olmuş.
yucomp.org u ayakta tutamayan yeni yönetime teessüflerimi belirterek yazının yeni adresini veriyorum:
http://www.fatiherdem.net/pic-programlamaya-nasil-baslamali/
İyi çalışmalar.
@Fatih
Hocam yeni adresi yazıya ekledim yucomp.org` kapanmasıda garip şimdi masrafları karşılayamadılar diyeceğim ama sanırım sorun başka hayırlısı olsun ne diyelim
iyi çalışmalar
muhteşem olmuş emeğinize sağlık
Merhaba ben pic programlamayı öğrenmek istiyorum. Web ve masa üstü programcısıyım. Elektroinği biliyorum meslek lisesi elektronik mezunuyum mikrodenetleyicilerin iç yapısında biliyorum fakat hangi dilden başlıyıcağıma karar veremedim. C dilini öğrenmek istiyorum ama MikroC var CCS C var kafam karıştı MikroC nin cok kütüphanesi var sanırım CCS C ninde varmı acaba? bunu merak ediyorum. Dili biraz inceledim değişkenler if else fln filan zaten programcı olduğum için diller benziyor biribrine . Değişken olusturmayı dizi fonksiyon trısa falan öğrendim biraz ama. Mikro C mi CCS C mi arada kaldım.
@EREN hocam normalde yeni başlayan için zordur ama sizin durumunuz istisna zaten programlama işlerinde tecrübe var C bilginizde var
direkt saf C kullanın 🙂
mikro c ccs c iyidir ikisininde bolca kütüphaneleri var ama benim gördüğüm en esnek, taşınabilir olanı C hitech c ile uğraşın daha iyi olur
ama şöyle bir durumda var picbasic ya da jal gibi diller ilede süper projeler yapılıyor hatta piyasada ürünlerde bile kullanılıyor
bence fazla takılmayın boşuna zamanınnız gider
https://320volt.com/bir-teknikerin-pic-programlama-deneyimleri/
ama C tecrübeniz olduğu için hitech daha uygun olur
iyi çalışmalar
Peki teşekkür ederim.Hitech i hiç araştırmamıştım biraz bilgi edineyim.
Emeğine sağlık sayın yönetici çok güzel bilgiler vermişsin ben biyomedikal cihaz teknolojisi bölümünü okuyorum doğru düzgün elektronik bilgim yok ve işe nereden başlayacağımı bilmiyordum çok yardımın oldu teşekkür ederim 🙂
açıklama için teşekkürler
hocam
pic programlayıcı almayı düşünüyorum hangi model programlayıcıyı önerirsiniz
bu işe ilk kez başlayacağım internette bir çok model var rast gele birtane almak istemiyorum
amacım led kontrolü internette mevcut olan led cube projelerinden yapmak istiyorum
saygılarımla
Eğer masa üstü PC niz ve seri portunuz(rs232)jdm programmer yapın. çok ucuza malolur. hazırlarıda çok ucuzdur. laptoptan usb ile programlayacaksanız pickit2 veya brenner dışında seçeneğiniz yok. ikiside işinizi görür. ben ikisinide yaptım. nette araştır kendin de yapabilirsin. brenner 8 v 5 i tavsiye ederim. sprut.de adresinde tüm dökümanları var
teşekkürler
Merhabalar , PIC programlamak için ve simülasyon yapmak için açık kaynak (open source)derleyiciler var mı? Yardımcı olursanız sevinirim.
Isis simülasyon yapabileceğiniz bir program. Devreyi oluşturup, pic in içine hex dosyasını ekleyebilir ve çalışıp çalışmadığını, simülasyonu nü yapabilirsiniz. Programın 30 günlük deneme sürümü işinizi görür Ücretsiz olarak bildiğim bir program yok.
katkınız için teşekkürler. çok gelişmiş olmasa da ücretsiz bir program var.
https://320volt.com/pic-simulator-programi/
Merhaba, pic programlama öğrenmeye yeni başladım. Derleyicinin çalışması için şart olan bir Windows sürümü varmı? Windows 10 kullanıyorum bir sıkıntı yaşarmıyım?
Yaşamazsınız
FATİH BEY BÖYLE BAŞARILI VE BİLGİ DOLU BİR WEB SAYFASI HAZIRLAYIP ÜLKEMİZE BU ŞEKLİDE KATKI SAĞLADIĞINIZ BİLGİ KÜTÜPHANENİZİ PAYLAŞTIĞINIZ İÇİN ÇOK TEŞEKKÜR EDERİM.