Microdenetleyiciler Dersi Ders Notu Mikrodenetleyici



Indir 1.36 Mb.
Sayfa48/52
Tarih11.02.2022
Büyüklüğü1.36 Mb.
#39
1   ...   44   45   46   47   48   49   50   51   52
Switch Cümlesi
Bir değişkenin farklı değerlerine göre farklı işlemlerin yapılacağı durumlarda kullanılan programlama kalıbıdır. Switch cümlesi bir değişken tarafından yönetilir. Değişkenin aldığı her değer için farklı durumlar oluşur. Her durum için farklı komutlar çalıştırılır. Örneğin 7 Segment bir displaye sayı gönderileceği zaman değişkenin her değerinin on tabanındaki sayıdan 7 segment kodu çözülerek displaye gönderilmesi gerekir böyle durumlarda switch cümlesi kullanılır. Değişkenin alabileceği tüm değerler düşünülmeli ve her değer için çalıştırılacak komutlar yazılmaldır.
Örnek:
int sayi; //degisken isimli değişken tanımlanıyor
void main()
{
switch(sayi) //switch cümlesini yönetecek değişken sayi olarak belirtiliyor
{
Case 1:
Portb=1; //sayi degiskeninin 1 olmasi durumunda yapılacak işlem
Break;
Case 2:
Portb=2; //sayi degiskeninin 2olmasi durumunda yapılacak işlem
Break;
Case 3:
Portb=3; //sayi degiskeninin 3 olmasi durumunda yapılacak işlem
Break;
}
}


Örnek Program: 0-9 arasında sayan program devresi aşağıdadır. Devre 10 tabanında yazılmış sayıdan 7 Segment display için kod dönüştürmesi yapmaktadır.

Program kodları:
int sayac; // sayac değişkeni tanımlanıyor
void main()
{
trisb=0; // B portu çıkış olarak ayarlanıyor
portb=0; //B portunun değeri sıfırlanıyor
for(sayac=0;sayac<10;sayac=sayac+1)
{ //Sayac degiskeninin 0’dan ona kadar her degeri için islenecek kodlar için for döngüsü
Delay_ms(1000); //Bir saniye bekleme
switch(sayac) //switch cümlesi sayac degiskeni ile yönetiliyor
{
case 0: //sayac degiskeni 0 olunca işlenecek satır
Portb=63; //0 sayısının 7 segment karşılığı olan sayı
break;
case 1: //sayac degiskeni 1 olunca işlenecek satır
Portb=48; //1 sayısının 7 segment karşılığı olan sayı
break;
case 2: //sayac degiskeni 2 olunca işlenecek satır
Portb=91; //2 sayısının 7 segment karşılığı olan sayı
break;
case 3: //sayac degiskeni 3 olunca işlenecek satır
Portb=79; //3 sayısının 7 segment karşılığı olan sayı
break;
case 4: //sayac degiskeni 4 olunca işlenecek satır
Portb=102; //4 sayısının 7 segment karşılığı olan sayı
break;
case 5: //sayac degiskeni 5 olunca işlenecek satır
Portb=109; //5 sayısının 7 segment karşılığı olan sayı
break;
case 6: //sayac degiskeni 6 olunca işlenecek satır
Portb=125; //6 sayısının 7 segment karşılığı olan sayı
break;
case 7: //sayac degiskeni 7 olunca işlenecek satır
Portb=7; //7 sayısının 7 segment karşılığı olan sayı
break;
case 8: //sayac degiskeni 8 olunca işlenecek satır
Portb=127; //8 sayısının 7 segment karşılığı olan sayı
break;
case 9: //sayac degiskeni 9 olunca işlenecek satır
Portb=111; //9 sayısının 7 segment karşılığı olan sayı
break;
}

}
}
Not: for döngüsünde sayac degiskeninin 0’dan 10’a kadar olan tüm değerleri için işlem yapılacağı için for döngüsünün her farklı işlenmesinde switch cümlesine gelen sayac değeri de farklı olacaktır. Sayac değişkeninin her farklı değeri için de farklı kodlar işlenecek. Yani program 7 segment kodlayıcı gibi çalışacaktır.



Katalog: ders

Indir 1.36 Mb.

Arkadaşlarınla ​​paylaş:
1   ...   44   45   46   47   48   49   50   51   52




Veritabanı telif hakkı ile korunan ©dosyalar.org 2022
mesaj gönder

    Ana sayfa