3rmcTnUdr
3rmcTnUdr
3rmcTnUdr
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
kp = Keypad_Key_Click();<br />
if (kp == 2) kp = ‘8’;<br />
وهكذا بالنسبة لباقي األزرار، فلو نظرنا للزر املكتوب عليه عالمة القسمة من املمكن أن نكتب<br />
أمر الشرط له هكذا:<br />
kp = Keypad_Key_Click();<br />
if (kp == 4) kp = ‘÷’;<br />
ولعلك إذا حبثت يف نافذة املساعدة جتد مثال كامل على ذلك ميكنك االستفادة منه ...<br />
مشكلة أخرى<br />
Keypad_Key_Click();<br />
فإنه يف حالة وجود<br />
عند تنفيذ الربنامج والوصول بالتنفيذ لألمر<br />
زر مضغوط عليه ترسل قيمته للميكرو ويف حالة عدم الضغط على أي زر فإن القيمة صفر يتم<br />
إرساهلا ووضعها يف املتغري ثم يستمر الربنامج يف التنفيذ من بعده وهو على عكس املطلوب، فاملفرتض<br />
أال يتعدى الربنامج هذا األمر قبل الضغط على أي زر حيث أن سرعة التنفيذ أسرع من سرعتنا يف الضغط<br />
على الزر ففي الغالب سيستقبل القيمة صفر قبل أن نضغط على أي زر<br />
وحلل هذه املشكلة وهذا يتم من خالل وضع هذا األمر داخل حلقة while حبيث تكون كما باآلتي:<br />
while (kp == 0)<br />
{<br />
kp = Keypad_Key_Click();<br />
}<br />
بشرط وضع قيمة املتغري kp يف البداية بصفر، وبالتالي يقوم امليكرو باختبار شرط while ألول مرة<br />
فيجد قيمة kp تساوى صفر وهذا معناه أن الشرط حمقق فيتم تنفيذ ما بداخل while وهو امر القراءة<br />
فاذا مل تكن قد ضغطت على أي زر فإن kp تبقي على قيمتها بصفر ملرة ثانية وبالتالي عند اختبار<br />
الشرط يكون حمقق مرة أخرى فيتم تنفيذ ما بداخل while مرة أخرى أيضا ... وهكذا حتى تضغط<br />
على أي زر فعندها يصبح لل kp<br />
قيمة خالف الصفر من 1 إىل 16 وعند اختبار الشرط تكون قيمة kp<br />
ال تساوى صفر فال يتحقق الشرط فال يتم تنفيذ أوامر while وختطاها إىل األمر التالي هلا، وهذا هو ما<br />
نريده، حيث لن يتم ختطي امر استقبال القيم من الكيباد إال بعد الضغط على احد األزرار وهذا مهم<br />
جدا.<br />
166<br />
الفصل الثامن: التعامل مع لوحة املفاتيح Keypad<br />
elgammalelectronics.com