ساختار if که نام دیگرش، دستور انتقال کنترل شرطی است، شرطی را تست می کند و در صورتی که شرایط آن شرط برقرار باشد مجموعه ای از دستورات را اجرا می کند. که این دستور به دو صورت می باشد:
روش اول:
(شرط) if
;دستور
else
;دستور
اگر بخواهیم تنها یک دستور بعد از if و else بنویسیم از این روش استفاده می کنیم.
روش دوم:
ساختار if که نام دیگرش، دستور انتقال کنترل شرطی است، شرطی را تست می کند و در صورتی که شرایط آن شرط برقرار باشد مجموعه ای از دستورات را اجرا می کند. که این دستور به دو صورت می باشد:
روش اول:
(شرط) if
;دستور
else
;دستور
اگر بخواهیم تنها یک دستور بعد از if و else بنویسیم از این روش استفاده می کنیم.
روش دوم:
(شرط) if
}
;دستور1
;دستور2
...
;دستورn
{
else
{
;دستور1
;دستور2
...
;دستورn
{
در روش دوم اگر دستورات ما بعد از شرط بیشتر از یکی باشد بعد شرط } باز می کنیم و دستورات را می نویسیم و بعد از پایان دستورات { قرار می دهیم.
حال وظیفه این دستور چیست؟
این دستور ابتدا شرط بعد از if را اجرا میکند اگه شرط برقرار بود در نتیجه دستورات بعد از if را اجرا می کند و دستورات بعد از else را نادیده می گیرد. حال اگر شرط برقرار نبود دستورات بعد از if را نادیده می گیرد و دستورات بعد از else را اجرا می کند.
در اینجا مثالی از کاربرد این دستور را تشریح خواهم کرد:
برنامه ای بنویسید که یک کلید به پورت P3.0 میکرو وصل شود حال اگه این کلید در وضعیت یک منطقی باشد میکرو از عدد 9 یک واحد کم کند تا به عدد 0 برسد و این روند همین طور ادامه داشته یاشد.و اگه این کلید در وضعیت صفر منطقی باشد میکرو به عدد 1 یک واحد اضاف کند تا به عدد 9 برسد و این روند همین طور ادامه داشته باشد. عدد روی پورت 2 میکرو توسط سون سگمنت نمایش داده شود؟
برنامه مدار:
#include
sbit key=P3^0;
void delay()
{
Unsigned int MGH;
For (MGH=0; mgh<32000; MGH++);
}
main();
{
Char MGH8051=0x00;
For (;;)
{
P2=MGH8051;
if (key==0)
{
MGH8051++;
if (MGH8051==10) MGH8051=0;
delay();
}
else
{
MGH8051--;
If (MGH8051==-1) MGH8051=9;
P2=MGH8051;
Delay();
}
}
}
کد هگز برنامه:
:0C083000787FE4F6D8FD7581070208000F
:10081F00E4FFFE0FBF00010EE4B507F7EEB47DF362
:01082F0022A6
:10080000E4FD8DA020B00B0DBD0A02E4FD12081F0F
:0F08100080F01DBDFF027D098DA012081F80E33F
:00000001FF
سخت افزار مدار:
منبع:www.mc8051.blgfa.comمنبع