30.03.2015 Views

3rmcTnUdr

3rmcTnUdr

3rmcTnUdr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ربال<br />

يتال<br />

فإذا كان درجة احلرارة أكرب من<br />

21<br />

بني القوسني } { واليت هي أوامر تشغيل التكييف.‏<br />

ملحوظة:‏<br />

عندنا تكون فعال<br />

21<br />

(Temperature > 30)<br />

احلرارة أقل من<br />

21<br />

درجة فان امليكروكنرتولر سوف يستمر يف تنفيذ األوامر اليت<br />

درجة احلرارة أكرب من درجة ففي هذه احلالة يكون الشرط<br />

قيمته تساوى واحد فيتم تنفيذ األوامر ولكن إذا كانت درجة<br />

درجة فإن قيمته ستكون بصفر،‏<br />

ولكن while<br />

تنفذ األوامر<br />

بداخل أقواسها<br />

فقط إذا كان الشرط حمقق أي إذا كانت قيمته تساوى واحد،‏ ومن هنا نسأل سؤال وهو إذا كانت<br />

while مكتوبة كما بالشكل اآلتي فكم مرة سيتم تنفيذ األوامر اليت بداخلها:‏<br />

while( 1 )<br />

{<br />

move the robot forward 3 seconds ;<br />

}<br />

اإلجابة ‏...سيتم تنفيذها عدد النهائي من املرات دون توقف ... ملاذا ؟؟؟<br />

...<br />

ألنه يف املرة األوىل ستقوم while باختبار الشرط فتجد قيمته واحد فتنفذ ما بداخلها ثم تقوم باختبار<br />

الشرط فتجده بواحد فتنفذ ما بداخلها وهكذا،‏ وحيث أن الشرط دائما حمقق ‏)يساوي واحد(‏ وال<br />

يوجد أي طريقة جتعله يتغري ‏)كتغري احلرارة يف املثال السابق(‏ فإن احللقة تستمر يف التكرار إىل ما<br />

النهاية !!!<br />

يف نهاية هذا اجلزء حنب أن نوضح أنه بطبيعة عمل امليكروكنرتولر الذي ينفذ وظيفة معينة<br />

باستمرار فإن معظم امج اليت يقوم امليكروكنرتولر بتنفيذها ينفذها ما النهاية من املرات وليس<br />

فقط مرة واحدة ثم يقف بعد ذلك عن العمل،‏ ولذا فان الغالبية العظمى من الربامج اليت سنكتبها<br />

ستكون بالشكل التالي:‏<br />

هنا تكتب جمموعة من األوامر سنتعرض هلا الحقا تعرف ب<br />

void main()<br />

{<br />

while( 1 )<br />

{<br />

Initialization & data direction<br />

األوامر املراد تنفيذها<br />

}<br />

}<br />

الفصل الرابع:‏ أساسيات برجمة البك بلغة السي 68<br />

elgammalelectronics.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!