PIC Programlama Dersleri 7 – for Döngüsü ve LED Uygulamaları

guclusat

Tanınmış Üye
Süper Moderatör

PIC Programlama Dersleri 7: for Döngüsü – MikroC PRO for PIC​

Bu derste, MikroC PRO for PIC kullanarak for döngüsünü öğreneceğiz. for döngüsü, belirli bir işlemi istenen sayıda tekrarlamak için kullanılır. PIC mikrodenetleyici programlarında LED yakıp söndürme, sayaç oluşturma ve belirli aralıklarla tekrarlanan işlemler gerçekleştirme gibi birçok uygulamada kullanılır.

Örneklerimizde PIC16F628A mikrodenetleyicisini kullanacağız.

1. for Döngüsü Nedir?​

for döngüsü, bir başlangıç değeri belirlemek, bir koşulu kontrol etmek ve her tekrardan sonra sayacı değiştirmek için kullanılır.

Genel yazım biçimi:
Kod:
for (başlangıç; koşul; artış) {
// Tekrarlanacak işlemler
}
Örneğin:
Kod:
unsigned char i;

for (i = 0; i < 5; i++) {
// Bu bölüm 5 kez çalışır
}
Bu örnekte i değişkeni 0'dan başlar. Değişken 5'ten küçük olduğu sürece döngü çalışır. Her tekrardan sonra i bir artırılır. Böylece döngü toplam 5 kez çalışır.

2. Döngüde Kullanılan İfadeler​

  • i = 0: Sayacın başlangıç değerini belirler.
  • i < 5: Döngünün devam etme koşuludur.
  • i++: Sayacı her tekrarda bir artırır.
i++ ifadesi, i = i + 1 ile aynı anlama gelir.

Döngüde kullanılan değişkenin değer aralığına dikkat edilmelidir. Örneğin, unsigned char değişkeni 0–255 arasında değer alır.

3. Uygulama 1: LED'i Beş Kez Yakıp Söndürme​

Gerekli malzemeler​

  • PIC16F628A mikrodenetleyici
  • 1 adet LED
  • LED için uygun seri direnç
  • Deney kartı ve bağlantı kabloları

Bağlantı​

LED'i uygun seri direnç üzerinden RB0 çıkışına bağlayın. Devrenin GND bağlantıları ortak olmalıdır.

MikroC PRO for PIC kodu​

Kod:
unsigned char i;

void main() {
CMCON = 0x07;
TRISB = 0x00;
PORTB = 0x00;

while (1) {
for (i = 0; i < 5; i++) {
PORTB.F0 = 1;
Delay_ms(500);

PORTB.F0 = 0;
Delay_ms(500);
}

Delay_ms(1000);
}
}

Programın çalışma şekli​

  1. RB0 çıkış olarak ayarlanır.
  2. for döngüsü beş kez çalışır.
  3. Her tekrarda LED 500 milisaniye yanar.
  4. Ardından LED 500 milisaniye söner.
  5. Beş tekrar tamamlandığında program 1 saniye bekler.
  6. while (1) nedeniyle işlem yeniden başlar.
Önemli: Bu örnekte LED beş kez yanıp söner, ardından bir saniyelik bekleme yapar ve aynı işlem sürekli tekrarlanır.

4. Uygulama 2: Sayaç ile PORTB Çıkışlarını Kontrol Etme​

Bu örnekte sayacın değerini kullanarak PORTB çıkışlarını sırayla kontrol edeceğiz.
Kod:
unsigned char i;

void main() {
CMCON = 0x07;
TRISB = 0x00;
PORTB = 0x00;

while (1) {
for (i = 0; i < 8; i++) {
PORTB = 1 << i;
Delay_ms(250);
}
}
}
Bu programda RB0'dan RB7'ye kadar çıkışlar sırayla lojik 1 yapılır. Her adımda 250 milisaniye beklenir ve ardından bir sonraki çıkış etkinleştirilir.

1 << i ifadesi, 1 değerindeki biti sola doğru i kadar kaydırır.

Not: PIC16F628A'nın PORTB çıkışlarına LED bağlayacaksanız her LED için uygun seri direnç kullanın ve mikrodenetleyicinin çıkış akımı sınırlarını aşmayın.

5. for Döngüsünde Dikkat Edilmesi Gerekenler​

  • Döngünün başlangıç, koşul ve artış bölümlerini doğru yazın.
  • Koşul hiçbir zaman yanlış olmuyorsa döngü beklenenden uzun sürebilir.
  • Delay_ms() gibi gecikmeler döngünün toplam çalışma süresini artırır.
  • Mikrodenetleyici, gecikme komutları çalışırken diğer işlemleri aynı anda yürütmez; zamanlaması hassas uygulamalarda zamanlayıcılar ve kesmeler tercih edilebilir.

6. Alıştırmalar​

  1. LED'i beş yerine on kez yanıp söndürecek şekilde programı değiştirin.
  2. LED'in yanma süresini 500 ms yerine 200 ms yapın.
  3. PORTB çıkışlarının daha hızlı sırayla değişmesi için gecikme süresini azaltın.
  4. Döngünün yalnızca üç kez çalışması için koşulu düzenleyin.

Sonuç​

Bu derste for döngüsünün çalışma mantığını öğrendik. Sayaç kullanarak işlemleri belirli sayıda tekrarlamayı, LED'i beş kez yakıp söndürmeyi ve PORTB çıkışlarını sırayla etkinleştirmeyi uyguladık.

Bir sonraki derste PIC programlamada diziler ve değişkenlerle birden fazla veriyi saklamayı öğreneceğiz.
 
Geri
Yukarı