Elektronik / Elektronik Kaynakları/

MikroC Dersleri 2

Merhaba elektronik Severler…

1. dersimizi siz değerli katılımcılarla geçen hafta işledik. Mademki ders edasıyla ders işliyoruz hoca bir önceki dersten bahsetmeden geçmez.Peki ne gördük geçen hafta ? Arkadaşlar bir önceki dersimizde C dilini kullanmanın kolaylıklarından pratikliğinden bahis ettik mikroC derleyicisinde Proje dosyası oluşturmayı öğrendik kısa bir programla örnke proje dosyasını gerçekleştirdik.

Bugün dersimiz kısaca Proteusun İSİS simulatörü ve C dilinde bize gerek olan Veri Değişkenleri , İşleçler (operatörler) konularını işleyip Program kontrol deyimlerine giriş yapacağız.

2.1 Proteus ISIS eki

Bu konu başlığında programlarımızın çalışıp çalışmadığını gözleyebilmek için yeterli düzeyde İSİS öğreneceğiz.

proteus-isis

Programlar altından kurulumunu yapmış olduğunuz Proteus İSİS çalıştırılır ve karşınıza boş çalışma sayfası çıkar. Şimdi adımları takip edelim.

NOT: Proteus programını edinmek için BURAYA tıklayınız.

proteus-isis-2

Resimdeki pencereden malzemelerimiz çizim sayfasına alınır .

proteus-isis-3

Şimdi sıra çizdiğimiz devrede PIC içine yazdığımız programdan oluşan HEX kodunu yüklemek.
PIC Sembolü çift tıklanır ve resimde görülen adımlar gerçekleştirilir.

proteus-isis-4

Evet var mı anlamayan içinizde ???

2.2 Veri Değişkenleri

Programlamada bir sayı bir bilgi direk olarak kullanılamazlar ve işlemler veri değişkenleri ile yapılır.

MikroC nin desteklenen veri çeşitleri;

Bit 0-1
Sbit 0-1
Unsigned char 0-255 arası sayılar(işaretsiz)
Signed char -128 – 127
Unsigned short int 0 – 255
Signed short int -128 – 127 (PİC hafızasında char tipi ile aynı yeri kaplar)
Signed int -32768 .. 32767 sayıları arası
Unsigned int 0 – 65535
Signed long -2147483648 – 2147483647
Unsigned long 0 .. 4294967295 arası

Kullanılacak değişken tiplerimiz bu kadar. Eğer programımızda kullanacağımız sayaçlar işlem sonuçları olacaksa değişkenlerimizi bu aralıklara uygun tanımlamamız gerekir.

2.3 Program Kontrol Deyimleri

Programlar kontrol altında tutulması istenen işlemlerdir. Fakat bu kontrol gelişi güzel yapılmaz. Bunun için kontrol deyimlerini iyi bilmek gerekir.

1-if    2-Else if   3-Else   4-For  5-While    6-Do   7-goto  8- break   9 – Switch Case

Bu komutlar sayesinde döngü yapabilir, butonla kontrol sağlanabilir veya bir değişkene bağlı değişik işlemler yapılabilir.

Şimdi burada verilen komutların kullanımını derslere yayıp ayrıntılı işleyeceğiz.
İlk olarak İf nedir nasıl kullanılır ona değinelim.

İf  (eğer) şartı.
İf(şart); ya da şartlar şeklinde kullanılır.

Şimdi unsigned char veri tipinde sifre değiskenimiz olsun ve sifre verisinin Örneğin 243 olduğunda işlem yapan bir program parçası yazalım. Öncelikler program başlangıcında

Unsigned char sifre;

Tanımlamasını yapalım. Bu pıc ram hafıza alanından bir kutu kiraladık ve içine şifre değerini saklayacağız.

Ve programın şartı oluşturalım

İf(sifre==243) lambayı yak;   eğer şarta bağlı tek işlem varsa {} gerek yoktur.
İf(sifre==243) {
Lambayı yak;
Fan çalıştır;} 

şeklinde alt alta sıralanabilir.

Evet değerli öğrencilerim Şimdi İf deyimini bir kenara bırakalım da veri değişkenlerini kullanacağımız bir program yazalım. İf deyiminide kullanabilirmiyiz bir bakalım. Şimdi bir sayac değişkeni tanımlayalım ve bu sayacı 10a kadar saydırıp PORTB de gösterelim. :D

Ha bu arada ben bu tür uygulamalarda 16F628A kullanmayı tercih ediyorum sebebine gelince bikere 16F84A dan daha ucuz ikincisi 2Kword program belleği var ve gerektiğinde dahili osilatörünü kullanabiliyoruz ve toplamda 15pin çıkış veya 16 pin giriş olabiliyor.olarak kullanılabiliyor. 16F84A da ise dahili osilatör ve reset olmadığı için 13 çıkış kullanılıyor ve 1Kword program hafızası var.Neyse ya gevezeliğim tuttu yine bir sürü şey araya girdi.

Gelelim Programımıza

unsigned char sayac=0; /*değişkenlerin ilk değeri burada verilebilir*/

void main() {

/*PORT AYARLAMALARI YAPILACAK GİRİŞ ÇIKIŞ AYARLARI Ve varsa Analog ve Karşılaştırıcı MOdüller Ayarlanır*/

TRISB=0x00;

PORTB=0;

TRISA=0;

PORTA=0;

CMCON =0x07;  /*Comparator(karşılaştırıcı) kapatıldı Pinler dijitale ayarlandı*/

for(;;){ /*Program sonsuz döngü içinde çalışacak for(;;) sonsuz döngü */

PORTB=sayac;

delay_ms(1000); /*sayma işlemi 1saniye ara ile yapılıyor*/

sayac=sayac+1; /*sayac değişkeni bir artırılıp tekrar sayac değişkenine yazılır.*/

if(sayac==11)sayac=0; /*sayac değeri kontrol ediliyor ve 10a kadar saymasını istediğimiz için sayac11 olur olmaz sıfırlıyoruz*/

}

}

Bu programda değişken kullanımını ve if deyimini kullanmayı örnekledik. Devreyi kurup çalıştırması artıksiz çalışkan öğrencilere kalıyor.

Not: Devre 0 dan 10a kadar Binary olarak sayacaktır 10dan sonra 0dan tekrar başlayacaktır.

Bu haftalıkta dersimiz bukadar Haftaya ödevlerinizi yapmış olarak görüşmek üzere..Kolay gelsin İyi çalışmlar.

Devrenin uygulamasının Proteus görüntüsü Resimdeki gibidir.

proteus-isis-devre-4

Ben devrelerde gözlemlerimi renklere göre yapmayı daha kolay buluyorum. Ama yeni öğrenenler devreyi led bağlantıları dahil kurmalı diye düşünüyorum.

  1. Murat 2011/01/13
  2. aytac dürgen 2011/01/13
  3. kubilay 2011/01/16
  4. gevv 2011/01/16
  5. abdullah 2011/01/16
  6. kubilay 2011/01/16
  7. ismail.cal 2011/01/16
  8. snsuzluk 2011/01/17
  9. aytac dürgen 2011/01/17
  10. aytac dürgen 2011/01/17
  11. kubilay 2011/01/18
  12. snsuzluk 2011/01/18
  13. Hakan 2011/02/23
  14. iso gul 2011/05/14
  15. Aytaç Dürgen 2011/05/16
  16. Ferdi Gürtekin 2011/10/30
  17. ibora 2011/11/17
  18. aytaç dürgen 2011/11/22
  19. Müslim Duman 2011/12/18
  20. BARIŞ ATALAR 2013/12/28

Yorum

Soru: