1000 kişiden bir kişi için ! devam.... 320volt blog

Elektronik Devreler Projeler » Kullanım Kılavuzları Dersler, Yazar Projeleri Makaleler Elektronik Genel »

MikroC Dersleri 3

mikroc-dersleri-3

Merhaba elektronik Severler…

Bir önceki dersimizde 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 değindik ilgili programları inceledik.

Bugün Dersimizde DÖNGÜLER konusuna değineceğiz.

Ama önce birkaç önemli not eklemek gerektiğini düşünüyorum. Program geliştirmenin yanı sıra birazda donanım bilgisi gerekiyor.

• PICler 5V sabit gerilimli besleme kaynağı ile beslenmeli.

• PIC Pinlerine doğru(buton) uygulanacak akım SİNK akımı 25mA dir.

• PIC pinlerinden şaseye(toprak)akan akım SOURCE akımı20mA dir.

• Bu akım seviyelerini (Led bağlantısı için) 100 150 Ohm arası dirençle sağlanır.

• Butonların Lojik ir gerilimi sağlama dirençleri( PULL UP) 4.7KOhm ile 10KOhm dirençlerden seçilmelidir.

• Pıc Donanımında Anagol Dijital(ADC) varmı ? karşılaştırıcı Varmı bunları bilmemiz gerek. Bu yapılar varsa ve kullanılmayacaksa programda bu donunımlar kapatılmalıdır.(kapatılmazsa programı olumsuz etkileyebilir.

3.DÖNGÜ YAPILARI

• For
• While
• Do While

Tanım : Döngüler bir programın yada program parçasının keç defa çalışacağını sonsuza kadar mı çalışacağını belirleyeceğimiz yapılardır. Döngüler hemen hemen bütün programların bel kemiğini oluşturur.

3.1 FOR Döngüsü

Kullanım yapısı : For (DöngüBaşlangıçdeğeri; DöngüBitişDeğeri; ArtışVeyaAzalışMiktarı) {Buraya Maddeler halinde Yapılacak işlemler yazılır;}

Yukarıdaki yapının çalışması için {} parantezlere ve ; Noktalı virgüllere dikkat edilmelidir.

Programalarımızda For döngüsünü sıklıkla kullanacağımız için iyi öğrenilmesi gerekmektedir ve en esnek kullanımı olan döngüdür.

Şimdi For döngüsünü detaylı inceleyelim

Öncelikle döngüde kullanılacak değişkenin tanımlamasını unutmayalım programın başında i gibi bir değişken tanımlayalım

10 Ledle yürüyen ışık program parçasını yazalım ve bilmediğimiz bit kaydırma işlemini de görelim

Unsigned int  i;
for(i=1;i<1024;i=i*2)
{
PORTB=i;          İ değişkeninin değerini PORTBde göster (ilk (bitini)
PORTA=i>>2;   İ değişkeni 2bit sağa kaydırılarak son 2biti PORTA da gösterilir.
Delay_ms(500);  500 milisaniye bekle.
}

Programımızı incelersek i sayısı 1 den başladıtıldı i sayısı 2 ile çarpılıp tekrar i içine yazıldı Ve for içine girildi i değeri 1 dir ve PortBde 1 görüldü tekrar For döngüsüne gidildi 1*2 =2 olan i 1024 den küçük olduğu için 2*2=4 i içine yazılır ve 2 değeri PORTBdegösterilir 500ms beklenir bu işlem 1024den küçük olana kadar devam edilir ve döngü sonlanır.

PORTA=i>>2; Burada kullanılan bit kaydırma işlemi İ değerinin bit sayısı 8bit i geçince yani 256,512, sayıları 9bit ve 10bit olduğundan PORTB ye sığmayacağından son iki bit i PORTA da gösterilir.

Yukarıda ele aldığımız Programın sonsuza kadar çalışmasını istiyorsak program parçasını

For(;;)

Bu yapı sonsuz döngüdür.

{ yukarıdaki programı buraya yazmalıyız }

Yapısı içine yerleştirmeliyiz.

3.2. WHİLE Döngüsü

While (şart ifadesi)

{
Burada şart sağlandığı sürece komutlar çalıştırılır;
}

While ile forla yapılan döngüler yapılabilir ancak kullanımı for kadar esnek değildir.

i=1

While (i < 1024)
{

PORTB=i;
PORTA=i>>2;
Delay_ms(500)
i=i*2;
}

For ile yapılan yazılımın While döngsü ile yazımı üstteki gibidir.

While ile sonsuz döngü

While(1)

{
Buraya program parçasını yerleştiriniz;
}

Şeklinde yapılır.

3.3. do while Döngüsü While döngüsü ile aynı şekilde kullanıma sahiptir ancak bir farkı vardır o da şart sağlansa da sağlanmasada döngü 1 kez (program ilk çalıştığında) çalışır

i = 100;
do {
PORTB=i;
i++; bu kullanım i değişkenini 1 artırır yani i=i+1; ile aynıdır
} while ( i > 200 );

Başlangıçta i 100 dür do ( yap ) PORTB=i; i gösterilir i 1 artırılır Döngü şartı sağlanıyorsa döngü devam eder programda i 200den küçük olduğu için tekrarlanmaz.

Evet kıymetli elektronik sever öğrencilerim Bu günlük dersimiz buraya kadardı. Yukarıdaki döngüleri kendiniz basit programlar üzerinde deneyin. Gelecekdersimizde bu örneklere yar vereceğiz. Takıldığınız yerde iletişimi geçin.

İyi ÇALIŞMALAR.

Yazar: Aytaç Dürgen

Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 26 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız;

Elektronik

 
  1. Hakan says:

    derslerin devamı gelecekmi ? gelecekse mikroc ye başlıyacağım ayrıca hazırladığınız bu güzel dökümanlar için çok çok sağ olun…

  2. aytaç dürgen says:

    evet derslerin devamı gelecek 4. dersi bir kaç gün içinde hazırlayacağım. 14 15 derse kadar ilerlemeyi düşünüyorum

  3. Hakan says:

    çok iyi o zaman başlıyorum ilk dersten teşekkürler.

  4. aytaç dürgen says:

    4.ders hazır yayın için düzenleme aşamasında. Uğraşanlara kolay gelsin

  5. hakan says:

    zahmetli ve güzel bir çalışma olmuş elinize sağlık

  6. ZKAN says:

    Hocam çalışmalarınız çok güzel fakat verdiginiz anlatım örneklerinde
    her satırın karşısına açıklama yaparsanız özellikle yeni başlayanlar için çok iyi olur benim gibi :) yani yazdıgınız bazı satırlarda açıklama yapılamış sanırım bilgimiz varsayılmış, bilenler için sorun olmaz ama benim gibiler çırmalıyor :)

  7. emre says:

    hocam elinize sağlık c++ biliyordum öğrenmem fazla zor olmuyor çalışmalarınız çok güzel derslerinizin devamını görmek dileğiyle….

  8. Turgay says:

    Bir önceki konuda(MikroC Dersleri2) bahsedilen reset devresi ve osilatör devrsinin bağlantısını araştırdım ancak bulamadım.Yardımcı olabilirmisiniz.

Yorum yapın

Doğrulama: (kutuyu işaretleyiniz)

  • Lütfen Türkçe imla kurallarına dikkat etmeye özen gösteriniz.
  • Yorumunuz yönetici tarafından kontrol edilmeden yayımlanmaz.
  • Paylaşılan devrelerin malzeme listesini istemeyiniz. Olsa zaten paylaşılırdı şema üzerinden listeyi çıkartabilirsiniz
  • Gavatar sitesine avatarınızı yükleyebilirsiniz.