رفتن به مطلب

آشنایی با دستور else


ارسال های توصیه شده

فرض کنید همان برنامه قبل که با دستور ifنوشتیم را این بار میخواهیم به این صورت مطرح کنیم که :

اگر کلید را فشار بدهیم دیودها روشن شده وبه مدت یک ثانیه روشن وسپس خاموش شوند.

درغیر اینصورت خاموش باشند. وقتی صحبت از غیر اینصورت شود از دستور elseاستفاده میکنیم.

در برنامه نویسی Cبرای دستوری مانند elseیک جمله کلی وجود دارد که به قرار زیر است:

 

(شرطif(

}

(درصورت درست بودن شرط)

--------

[color=

#000080]مجموعه دستورات[/color]

--------

{

(ولی اگر شرط درست نباشد)

else

}

[color=

#000080]مجموعه دستورات[/color]

{

  • تمامی دستورات (مثل else) دربرنامه Cباید باحروف کوچک نوشته شوند.
  • مجموعه دستورات را باید درون دوعلامت آکلاد{}گذاشت.
  • بعد از هر دستور بایدعلامت سمی کولن(;)را گذاشت.

پس برای نوشتن این برنامه نکات زیر را رعایت کنید:

1- برای این کار نیاز به یک پایه ورودی داریم که از یک پایه آی سی استفاده می کنیم.

2- درباره ورودی وخروجی بودن یک پایه در درس اول توضیح داده شد.

3- پس پایه مورد نظر را ورودی پوش پول قرار میدهیم، مثلااولین پایه پورت A

4- پورت های دیگر را خروجی را ورودی پوش پول وپورتBرا کامل خروجی یک قرار میدهیم.

5- کتابخانه تاخیر(delay)را فراخوانی میکنیم.

6- در حلقه while(1)این برنامه را مینویسیم.

While(1){

//Dastoore else

if(PINA.0==0)

{

[color=

#000080]PORTB=0xFF //Turn ON PORTB[/color]

[color=

#000080]delay_ms(1000) //Delay For One Secound[/color]

[color=

#000080]PORTB=0x00 //Turn OFF PORTB[/color]

}

else

{

[color=

#000080]PORTB=0x00 //Turn OFF PORTB[/color]

}

}

نکته اینکه برای دستوراتی که یک خطی هستند نیاز به {} نداریم!

مثلا : else PORTB=0x00; //Else Turn OFF PORTB

توضیحات برنامه:

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

جدول تساوی:

[TABLE=align: right]

[TR]

[TD]

عملگر

[/TD]

[TD]

مفهوم

[/TD]

[TD]

مثال

[/TD]

[TD]

نتیجه

[/TD]

[/TR]

[TR]

[TD]

=>

[/TD]

[TD]

کوچکتر یا مساوی

[/TD]

[TD]

2=>2

[/TD]

[TD]

مخالف صفر

[/TD]

[/TR]

[TR]

[TD]

>

[/TD]

[TD]

کمتر

[/TD]

[TD]

3>2

[/TD]

[TD]

0

[/TD]

[/TR]

[TR]

[TD]

[/TD]

[TD]

بیشتراز

[/TD]

[TD]

3

[/TD]

[TD]

مخالف صفر

[/TD]

[/TR]

[TR]

[TD]

=

[/TD]

[TD]

بزرگتر یامساوی

[/TD]

[TD]

2=

[/TD]

[TD]

0

[/TD]

[/TR]

[TR]

[TD]

==

[/TD]

[TD]

برابر است با

[/TD]

[TD]

3==3

[/TD]

[TD]

مخالف صفر

[/TD]

[/TR]

[TR]

[TD]

=!

[/TD]

[TD]

مخالف است با

[/TD]

[TD]

3=!2

[/TD]

[TD]

مخالف صفر

[/TD]

[/TR]

[/TABLE]

در مدار بالا تا وقتی که شستی را فشار بدهیم دیود ها روشن وهر وقت که شست مان را برداریم بعد از یک ثانیه خاموش می شود.

حال می خواهیم شرط را یک جور دیگه بنویسیم یعنی:

تاوقتی که شستی را فشار نداده اییم دیود ها خاموش ودر غیر اینصورت دیود ها به اندازه 1ثانیه روشن وبعد از آن خاموش شوند.

پس:

While(1){

if(PINA.0==1)

{

//Turn OFF PORT B ;PORTB=0x00

}

else

{

//Turn ON PORT B ; PORTB=0xFF

//Delay For One Secound ; (delay_ms(1000

[color=#000080]PORTB=0x00 //Turn OFF PORT B

}

[color=#000080]}

توضیح این برنامه:

در این برنامه ما میگیم که تا وقتی که شستی را فشار نداده اییم دیود ها خاموش ودرغیر اینصورت دیودها به مدت یک ثانیه روشن وسپس خاموش شوند.

حالا شما میتوانید با استفده از یک خلاقیت دیگه این برنامه را امتحان کنید.مثلا با استفاده از علامت(!=).

یک مدار جدید با استفاده از دو کلید فشاری:

ما میخواهیم باز دن کلید اول دیود ها روشن وبا فشاردادن کلید دوم دیود ها خاموش شوند.

برای این برنامه نیاز به 8دیود،یک آی سی ودوکلید فشاری داریم.

پس:

While(1){

if(PINA.0

{

;PORTB=0xFF

}

if(PINA.1!=1)

{

}

[color=#000080]}

توضیح این برنامه:

خوب همانطور که ملاحظه میکنید از دو پایه پورت Aبرای ورودی کلید ها واز پورتBنیز برای روشن کردن 8دیود استفاده کرده اییم.

در موقع اجرای این برنامه دستورات ifبررسی میشوند وچنانچه هریک از شرط ها درست باشدمجموعه دستورات آن نیز اجرا میشوند ولی اگر هر دو دستور همزمان (یعنی هردوکلید را همزمان فشاردهیم) دستور اول یعنی روشن شدن دیود ها اجرا میشود.

درخط اول برنامه برای شرط ifاول گفتیم که اگر مقدار پایه اول پورتAاز یک کمتر شد دیود ها را روشن کند.

برای شرط ifدوم نیز همینطور، گفتیم که اگر مقدار پایه دوم پورتAنامساوی یک شد یعنی از حالت یک خارج شد حالا دیود هارا خاموش کن.

به این شکل ما میتوانیم انواع ifهای تودرتو را طراحی کنیم . وهمینطور elseifهای تودرتو.

حالا نوبت شماست که با طراحی مدارات شرطی خودتان را محک بزنید البته با صبر و حوصله نکته ایی که حتما باید رعایت کنید.

اول اینکه صبر وحوصله ودوم اینکه پشتکار وممارست و تکرار وتکرار وتکرار.

م ب

  • Like 1
لینک به دیدگاه
×
×
  • اضافه کردن...