3rmcTnUdr
3rmcTnUdr
3rmcTnUdr
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
عندما يصل امليكرو إىل األمر:<br />
PORTB = 0B00000000;<br />
فإنه يقوم بإخراج صفر على كل رجول خمرج امليكروكنرتولر ثم ينتظر ثانيتني بناء على األمر<br />
التالي وذلك حتى نتمكن من مالحظة القيمة صفر اذ أن األوامر تنفذ بسرعة كبرية جدا.<br />
ثم يقوم باالنتقال إىل حلقة ال while وخيترب شرطها فيجد قيمته بواحد فينفذ ما بداخلها وأول<br />
األوامر كاآلتي:<br />
والذي يتم حساب ما باجلهة اليمنى أوال ثم ختصيص الناتج للجهة اليسرى وهذت يعين إضافة واحد إىل<br />
قيمة ال PORTB ثم إخراج ناتج اجلمع ثانية على نفس املخرج، وحيث أن قيمة<br />
املخرج كانت بصفر<br />
فبزيادة واحدة تكون قيمته بواحد اليت تنعكس على اخلرج، ثم يأتي األمر التالي وهو االنتظار<br />
ثانيتني لكى نستطيع رؤية القيمة واحد أيضا، ثم تنتهى while فيعود للبداية الختبار الشرط مرة<br />
أخرى فيجد قيمته بواحد فيدخل لينفذ ما بداخل ال while مرة ثانية، وبنفس الطريقة ستخرج القيمة<br />
4 على املخرج B<br />
ثم ينتظر ثانيتني ... وهكذا، وبالتالي إمجاال فان هذا الربنامج يقوم بإخراج القيم<br />
الثنائية من صفر إىل 499 على املخرج B.<br />
ملحوظة: القيمة ستزداد باستمرار بداية من صفر إىل 499 ولكن ماذا سيحدث بعد ذلك؟؟ سيتم<br />
إضافة واحد كما هو واضح يف األمر ولكن هذه اإلضافة ستجعل القيمة 496 وهوا ما ال ميكن<br />
عرضة يف 8 خانات فقط وبالتالي سيعود العداد إىل الصفر ثانية حيث أن التمثيل الثنائي للقيمة<br />
فيبدأ العداد من جديد<br />
أصفار ثم واحد وهو ما يتم إهماله وال يظهر سوى<br />
األصفار ...<br />
496 يتضمن 8<br />
بقيت مشكلة بسيطة وهي كيفية قراءة هذه القيم الثنائية اليت ستخرج على املخرج B ؟؟؟ لذلك<br />
سنقوم بوضع ليدات على رجول هذا املخرج وإذا كان الليد مضيء فهذا يعين أن الرجل املتصل بها الليد<br />
قيمتها تساوى واحد ولو الليد غري مضيء فهذا معناه أن قيمة الرجل تساوى صفر.<br />
elgammalelectronics.com<br />
112 ميكروبيديا - موسوعة امليكروكنرتولر