Elektronik / Elektronik Kaynakları/

MikroC Dersleri 1

Sponsorlu Bağlantılar

MİKROC’ye GİRİŞ

Merhaba elektronik severler. Daha önceki yazılarımda kullandığım MikroE firmasının derleyicisi MikroC ile PIC programlamayı bilgilerimin el verdiği ölçüde anlataya çalışacağım.

Yazılarımı bir aksilik olmadığı taktirde onargün ara ile yayınlamayı planlıyorum ve okullarda olduğu gibi kendi hazırladığım plan dahilinde işleyeceğim.Bu plan kolaydan zora doğru ilerleyen yapıda olacak ve konular çeşitli örneklerle desteklenip ödevler şeklinde ilerleyecektir.

Şimdi gelelim dersimize!

PIC (programmable intelligent computer ) Programlanabilen akıllı bilgisayarlar.Son yıllarda popüler hale gelen PIC diğer denetleyicilerden ATMEL, 8051, MSP430 gibi işlemci ailelerine kullanımda açık ara fark atmıştır.

Pıc programlama için kullanılabilecek dilin başında assembly gelmektedir fakat assembly ile program yazmak oldukça zor ve zaman alıcıdır. Bu yüzden PIC için oluşturulmuş yüksek seviyeli bir C dili kullanacağız.

Kullanacağımız mikroC derleyicisi ile temel işlevlerden Analog işlemlere,PWM den grafik LCD ekrana , RF kontrolden pic ile internet kontrole kadar bir çok uygulama yapmak mümkün olacaktır.Fakat biz derslerimizde bukadar ileriye gidecekmiyiz Hayır tabikide. Ama sizleri orta seviye bir pıc programlama bilgisine ulaştırmayı umarım.

İlk dersimizde Çalışmamız için gerekli olan şeyleri Listeleyelim.

1.MikroC Compiler: Program C dosyası elde etmek,C kodlarını derlemek ve .hex kodudosyasını elde etmek için kullanacağız.

2.Proteus ISIS-ARES: yazdığımız programların simulasyonunu yapıp yazdığımızın porgramın denenmesi için ve tasarlanan projelerin hayata geçirilmesi için baskı devre çizmek için kullanacağız.

Not: Dersleri takip etmek için MikroC programını kurup Derslerde yapacağınız projeleri klasör klasör kaydetmenizi öneririm. Programı edinmek için BURAYA tıklayın.

1-MikroC derleyicisinin Kullanımı

İlk olarak mikroC derleyicisinin kullanımına proje oluşturmayı ve derlemeyi gözden geçireceğiz ve bunun için basit bir uygulama yapacağız.

MikroC yi açalım ve Project sekmesinden new Project i seçelim ve sonrasında açılan proje sihirbazını takip edelim gerekli ayarları yapalım.

mikroc-project-new-mikro-c-build

mikroc-yeni-proje-olusturma

Nexti tıklayın

mikroc-islemci-secimi-device-name-pic16f628

Kullanılacak olan denetleyici seçilir.

mikroc-osilator-secimi-setup-clock-8mhz

Osilatör frekansı seçilir

Sonrasında gelecek akran projenizi nereye ve ne adla kaydedeceğinizdir (ilk uygulama ledBlink led yak söndür). (step3/6) (step4/6) eğer hazırlanmış bir C dosyası varsa Dosyayı projeye dahil etme akranı Sonrasında gelecek iki adımı NEXT diyerek proje dosyalarını oluşturalım.

Proje dosyaları oluşturulunca derleyici açılacak ve main fonksiyonu ile baslayan bir c kitapı görülecektir. Bu aşamada Proje PIC varsayılanlarıyla oluşturulmuştur ve eğer PIC in bazı özellikleri açılıp kapatılacaksa Project sekmesinden edit Project tıklanarak açılan ekrandan bazı özel ayarlar yapılabilir.

Programda ilk olarak yapmamız gereken şeyler PIC in portlarını ayarlamak.Eğer programda değişkenler kullanılacaksa değişkenler tanımlanır ve programa gidilir.

Not: (ilk olarak yazılacak program mikroCyi tanıtmak için yazılacaktır ve sorgulama yapılmaksızın ders dinlenecektirve yazılım kodları kopyalanmaksızın tek tek yazılacaktır aksini yapan Dinlemeyeni atarım dersten :) …

void main() {
PORTB=0; /*portb yi temizle*/
TRISB=0; /*TRISB ye 0 değerini yükler ve PORTB yi çıkış yapar*/
for(;;){/*sonsuz döngü yapısı for ile bu şekil yapılır*/
PORTB.B0=1;      / *PORTB nin 0. BİTini bir yapar*/
delay_ms(1000);  /*1000mili saniye(1SN)bekler*/
PORTB.B0=0;
DELAY_MS(1000);
}
}

MikroC de program parçacıklarına Açıklama yazmak için /*Buraya Açıklama yazınız*/ şeklinde bir yapı kullanılır.

Programı yazdıktan sonra derlemeye sıra geldi

mikroc-derleme-mikro-c

Resimde görülen sekmelerden programı derleyin.

Eğer kodları hatasız yazdıysanız program penceresinin alt tarafında

mikroc-derleme-mikro-c-2

Derleme başarılı uyarıları alacaksınız Fakat bir yerlerde yanlış varsa aşağıdaki gibi bir uyarı alacaksınız.

mikroc-kod-hata-code-error

Eğer bunun gibi bir ekran görüyorsanız programı gözden geçirin yazım hatalarını giderin ve tekrar BUILD edin. Başarılı bir şekilde derleme bittikten sonra projenizi kayıt ettiğiniz dosyaya proje adında hex uzantılı bir dosya oluşturulmuş olacaktır. Artık ilgili devreyi Proteus ta kurup çeşitli gözlemlerde bulunabilirsiniz.

Proteus programının kullnımına ilişkin kapsamlı konu anlatım modülüne BURDAN ulaşabilirsiniz.

İlk çalışmanın isis ile denenmesinin yanı sıra breadboard üzerinde kurulup çalıştırılmasını daha uygun bulunuyorum malzemeler ile ne kadar çok pratik yaparsanız daha hızlı ilerlersiniz

İlk çalışmanın proteus isis simülasyon, breadboard yerleşim ve basit devre şeması ek olarak breadboard yapısını anlamanız için bağlantı noktalarının belirtildiği (siyah çizgili bölümler bütündür kısa devredir) breadboard resimleri aşağıda bulunuyor. Ayrıca PIC16F628 Hakkında Türkçe bilgiler için BURAYA bakınız.

led-yak-proteus-sis-semasi-mikroc mikroc-breadboard-led-yak-2 mikroc-ilk-proje-led-yak-devresi-basit2 breadboard-plan-tenplate

İlk devremizde kullanılan malzemeler;

pic-devresi-malzemeler-10k-100-22pf-100nf-kiristal-led

Not: Uygulama devresinde pic16f628a mikrodenetleyicisinin 14 numaralı besleme bacağına en yakın bölgeye 100nf kondansatör bağlamayı unutmayın bu kondansatör parazitleri, gürültüyü bastırır bir çok devre şemasında bulunmaz fakat uygulamada kullanılır sadece PIC için değil diğer mikrodenetleyiciler, entegreler içinde durum aynıdır. Kullanacağınız kıristalin değeri 4 mhz olabilir.

DEĞERLENDİRME

Yukarıdaki konu anlatımını dikkatlice okuyun.

Kısa program parçasını kopyalamadan proje dosyasına yazınız.

Derleme işlemini yapınız.

Proteusa çalışınız.

Bütün bunları sorunsuz yaptıysanız ve çalıştığınız desi anladıysanız Artık ikinci derse hazırsınız.

Diğer derste görüşmek üzere .

  • mesut

    Aytaç abi ellerine sağlık pik programlamaya başlıyorum ilk mikroc olacak tam olmasada anlıyorum :) ilk bölüm biraz kısa ama bildiğiniz vardır diye düşündüm şemalar benim gibi bilmeyenler için çok iyi olmuş

  • Hasan

    Güzel bir anlatım olmuş teşekkürler ama PIC16F628A 18 bacağı varken siz resimde 20 ayaklı bir entegre koymuşunuz…

  • @Hasan hocam ilginiz için teşekkürler resimler düzenlendi tamamen benim hatam kusura bakmayın umarım şimdi bir sorun yoktur :)

    iyi çalışmalar

  • yunus

    faydalı bir yazı tebrikler emeği geçen arkadaşla sonsuz teşekkürler ben el attığımda böyle bir kaynak ile karşılaşamamıştım :) ileri seviye bölümleri sabırsızlık ile bekliyorum

    Saygılarımla

  • aytac durgen

    Bu yazının görsel ögelerle desteklenmesinde site yazarımız GEW in büyük katkıları olmuştur. Kendisine çok teşekkür ediyorum.

    İlk yazı giriş mahiyetinde olup ilerleyen derslerde çeşitli örneklerle açıklamaya çalışacağız.

    Umarız faydalı olur.
    İlgilenenlere kolay gelsin.
    ilgili konulara forumda tarışmaya açabilirsiniz.
    Derslerde görüşmek üzere

  • Fearless828

    Öncelikle emeğinize sağlık diyerek başlıyayım arkadaşlar. Bu arada pic programlamayla uğraşmak istiyorum, aynı zamanda mühendisimde fakat geçmişte pek ilgilenme fırsatım olmadı ve bu aralar özellikle bol bol vaktim var ve sürekli takipteyim.

    Bu boş vaktide en iyi şekilde değerlendirmek istiyorum. Pic programlama için assembly öğretildi zamanında bizlere oda yüzeysel olarak tabi. Eğer tavsiye edebileceğiniz daha açıklayıcı, daha detaylı kaynaklar varsa c dili için yol gösterirseniz sevinirim. Ayrıca bu kullandığımız ccs tam olarak c diliyle aynımı programlamada entegreye ait yada lcd kullanıyosak örneğin ona ait ayarları tam olarak nasıl yapıyoruz bi kısaca değinip yol gösterirseniz sevinirim arkadaşlar. Çalışmalarınızın devamını merakla bekliyorum sadık takipçinizden şimdiden teşekkürler…

  • kaan

    Elinize sağlık çok istifade ediyorum yeni başlayan biri olarak devamının gelmesini ısrarla istiyorum iyi çalışmlar….

  • Hakan

    umarım ilerleyen derslerde biraz daha ileri düzey anlatımlar yaparsınız derslerin devamını diliyorum. emeğiniz için çok sağ olun mikro c yi anlatan başka kaynak yok :)

    sizden ricam bu adc ve kesme işlemlerine gelince detaylı anlatırsanız çok sevineceğim. yüreğinize sağlık allah kolaylık versin

  • Elo

    Bu Board Üzerine yapılan çizimler hangi programla yapılıyor merak ettim Paylaşabilirmisiniz program ismini

  • Özkan ATAŞ

    Hocam emeğinize sağlık…

  • furkan rıza aytaç

    hocam 1. dersin örneğini eksiksiz yazdım undeclared identifier ‘PORTB’ in expression hatası veriyor.Daha sonra belki yanlışımı göremiyorum diye örneği kopyala yapıştır yaptım gene de olmadı.Hatan neden kaynaklanmaktadır?Şimdiden teşekkür ederim…

  • ahmet

    hocam ben derslere yeni başladım ve

    “internal exception access violation in module 0,000005000”

    hatası alıyorum ne yapabilirim

  • Sinan

    .hex i oluşturdum ve led in proteusda yanıp sönmesi beni mutlu etti :) ms ile oynayarak hızı değişiyor falan. Teşekkürler.

  • Doruk

    Hocam gerçekten çok güzel olmuş elinize sağlık. Burdan öğreneceğim bende. Çok sağ olun

  • aytaç dürgen

    @Doruk : kolay gelsin umarım faydalı olur

  • sırrı

    hocam,paylaşmış olduğunuz bilgiler için teşekkur ederim. emeginiz saglık.

    benim sorum ,portb yi sıfırladıktan sonra trisb yi neden sıfırlıyoruz ?

  • ERSİN

    Pıc programlamayı yeni öğreniyorum. Verdiğiniz bilgiler için teşekkürederim o küçük ledin yanmasını görmek amatör kullanıcı için güzel bir duygu. Derslere devam.

  • Fatih

    Emeğinize sağlık hocam.

  • oğuzhan

    hocam öncelikle teşekkürler ders için. programı bi 5-6 kere baştan yazdım her seferinde hatalara da baktım ama bir türlü çözemedim. 5. ve 7. PORTB.B0’lı satırda operator isn’t applicated to this operands hatası alıyorum çözümü nedir.??

  • furkan

    arkadaşlar . hex dosyasında bır sıkıntı yaşıyorum . her yazdıgım programı nereye kaydedersem oraya build yaptk dan sonra hex dosyasını yuklemesı gerekıyor fakat save çalışmıyor sadece save as var ve onu da yapıyorum olmuyor.

    • ahmet

      1-programi yazdiktan sonra BUILD butonu ile derle
      2-kaydetmene gerek yok C:UsersPublicDocumentsMikroelektronikamikroC PRO for PICExamples
      dosyasinin icerisine derledikten sonra otomatik olarak .hex olusturuyor
      UltraEdit Document (.hex) (.hex)uzantili dosya

  • fatih

    hocam cok teşekkür ederim .. söylediklerinizi adım adım yaptım 10 numara oldu fakat başta ısıs semasına baktım semada 100nf capasitor olmadığı için devre bir türlü çalışmadı daha sonra,elemanları koyarak göstermiş olduğunuz semayı tekrar ısıs’te denedim tek seferde oldu emeğinize sağlık 5 yıl sonra denedik biraz geç oldu ama çok faydalı tekrar teşekkürler :D