آموزش برنامه نویسی میکروکنترلر AVR به زبان کدویژن درس چهارم دستورات شرطی

آموزش جامع برنامه نویسی میکروکنترلر AVR به زبان کدویژن درس سوم دستورات حلقه

دستورات شرطی :

۳ نوع دستور شرطی داریم که میتوانیم در کدویژن استفاده کنیم همچنین میتوانیم از عملگرهای مقایسه ای و عملگرهای منطقی استفاده کنیم درزیر انواع دستورات توشیح دادیم .

تعریف دستور if :

if(شرط مورد نیاز) 

{

دستور یا مجموعه دستورات

}

درصورت صحیح بودن شرط دستور یا دستورات اجرا می شود

تعریف دستور if…..else :

if(شرط مورد نیاز) 

{

دستور یا مجموعه دستورات

}

else

{

دستور یا مجموعه دستورات

}

در دستور شرطی بالا اگر شرط صحیح نباشد دستور داخل حلقه else اجرا می شود

 

مثال عملی:

 ()void main

}

;PORTB=0b00000001

;DDRB=0b00000010

این دستور یک حلقه ی بی انتها را ایجاد کرده است و مطالب درون آن مدام خوانده می شود//(۱)while       

 }         

(if(PINB.0= =0            

}               

;PORTB.1=1                  

{               

else                  

}                  

;PORTB.1=0                     

{                  

 {  

{

توضیحات مثال بالا به سه قسمت زیر تقسیم بندی میشود :

۱-تعریف ورودی و خروجی: با دستور DDR  پین دوم از پورت B را خروجی تعریف کردیم و بقیه پین های این پورت را ورودی تعریف کردیم

۲-دستور حلقه بی نهایت : با استفاده از دستور WHILE(1) یک حلقه بی نهایت ایجاد کردیم

۳-دستور شرطی : در دستور شرطی بالا در صورتی که PINB.0= =0 شود PORTB.1  که قبلا خروجی تعریف کرده بودیم برابر یک می شود ودر صورتی که شرط بر قرار نباشد PORTB.0 =0  می شود

تعریف دستور SWITCH :

از این دستور برای انتخاب کردن یک متغییر استفاده می شوده و حالت های مختلفی را با توجه به محتوای آن متغییر تعریف می کنیم. یا به عبارت دیگر یک گروه از دستورات بین چندین گروه از دستورات انتخاب می شود. ساختار کلی این دستور به صورت زیر می باشد:

شکلی کلی دستور switch

switch (متغییر) {
 case مقدار۱ :
  { مجموعه دستورات۱ };
 case مقدار۲ :
  { مجموعه دستورات۲ };
 case مقدار۳ :
  { مجموعه دستورات۳ };

default:
  { مجموعه دستورات };
}

دستور BREAK :

کلمه کلیدی break به معنی شکستن می باشد، که در زبان سی همان معنی شکستن حلقه یا خارج شدن از حلقه می باشد. وقتی برنامه به این دستور برسد از ساختار حلقه خارج می شود و دستورات بعدی را اجرا می کند. منظور دستورات داخل  {} می باشد از این دستور بیشتر در حلقه switch استفاده می شود .

برای روشن تر شدون موضوع به مثال زیر توجه کنید:

switch (i) {
 case 3:
  b=5;

break;
 case 6:
  b=7;

break;
 case 2:
  b=7;

break;
default:
 b=55;
}

در این مثال ابتدا متغییر i انتخاب می شود و بعد ۳ حالت یا کیس مختلف براش در نظر گرفتیم. نوشتیم که اگر متغییر i=3 باشد مقدار متغیر b=5 قرار دهد و از حلقه خارج شود یعنی حالت های بعدی رو دیگه امتحان نکند. خوب اگر در این مرحله i برابر با ۳ نبود دستور break اجرا نخواهد شد و حالت بعدی امتحان می شود. و این کار همین طور ادامه دارد تا مقدار یکی از حالت ها با مقدار متغییر i برابر باشد، که در این صورت دستور break هم اجرار خواهد شد و حالت های بعدی امتحان نمی شوند و برنامه از حلقه خارج می شود. حال اگر هیج یک از حالت ها با مقدار متغییر برابر نباشد!! در این صورت دستور default اجرا می شود (به معنی مقدار پیش فرض) و متغییر b مقدار پیش فرض ۵۵ را می گیرد. البته نوشتن دستور default اختیاری می باشد و شما می توانید ننویسید.

 نکته :

در جلوی دستور case فقط می توانیم مقدار ثابت قرار دهیم یعنی نمی توانیم یک متغییر قرار دهیم.اگر در یکی از حالت ها یا همون case دستور break را قرار ندهیم با مقدار حالت بعدی OR می شود.

 دستور goto :

از این دستور برای پرش به یک لیبل یا برچسب می باشد. فرم کلی آن به صورت زیر می باشد:

goto  نام برچسب
نام برچسب:

مثال:

while (1) {
 i++;
  if (i==56) goto picpars;
}
avr:
دستورات;

 ابتدا یک حلقه بی نهایت  تشکیل دادیم وبعد هم افزایش یک واحدی متغییر i را داریم و بعد از آن تست یک شرط  را داریم که اگر متغییر i برابر با ۵۶ باشد از حلقه خارج می شود و به لیبل avr پرش می کند و دستورات بعد از آن اجرا می شود.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1 × یک =