بسم الله الرحمن الرحيم
الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد سيد المرسلين وعلى آله وصحبه اجمعين ...
أشكر جميع اٌخوة المتابعين واعتذر عن التأخير
واقول للأستاذ وليد ... جزاك الله خيرا على ما قدمته من توضيبحات حول موضوع المتغيرات .. ونطلب منك تعليقا لكل موضوع حتى تعم الفائدة .. بارك الله فيك
على بركة الله تعالى نكمل ...
الدرس الثالث : لا زلنا مع أساسيات لغة المايكروبيسك .... وقد تعرفنا على المتغيرات والمصفوفات ... وسنؤجل الحديث عن المتغيرات النصية ونتكلم عن موضوع مهم جدا ومفيد للغاية ألا وهو جمل الشرط
3-جمل الشرط :
نبدأ بجملة (if)
افرض أن لديك الدائرة البسيطة التالية

المصباح منطفئ ... لكن إذا غلق المفتاح أنار المصباح ...
إذن شرط إضاءة المصباح هو غلق المفتاح ... فإذا تحقق الشرط تحقق المشروط عليه ...
إذن حقيقة الشرط تتلخص في التالي ( إذا تحقق كذا .... افعل كذا )
الآن كيف نطبق الشرط في مايكروبيسك.... ايعازات سهلة
تذكير : الايعازات مشابهة تماما للغة فيجوال بيسك
كود:
If conditions then
statements
End if
إذا تحقق الشرط أو الشروطconditions نفذ الإجراءات statements
لكي نفهم الموضوع بشكل دقيق سنقوم بكتابة البرنامج التالي :
1- نهيئ المنفذ A للإدخال
2- نهيئ المنفذ B للإخراج
3- نربط مفتاح sw0 على الطرف A0 ونربط دايود ضوئي led0 على الطرف B0
4- إذا تم غلق المفتاح sw0 فإن الـ led0 يضيء
اليك البرنامج :
كود:
Program ifthen
Main
Trisa=31
Trisb=0
aa:
if porta.0=1 then portb.0=1
goto aa
end
ماذا تتوقع ان تكون نتيجة البرنامج السابق ؟؟
الظاهر : أنه عند الضغط على الزر sw0 فإن led0 يضيء ويبقى مضاء ...
جميل جدا.... تمكنا من ربط الإدخال بالإخراج ... تمكنا من التحكم بالإخراج عن طريق الإدخال.. توصلنا الى المبدأ الأساسي للسيطرة .. بهذه السهولة ؟؟؟
نعود الى البرنامج مرة أخرى .... ونطرح التساؤلات
التساؤل الأول : لماذا لم نستخدم end if ؟؟؟ اليك الاجابة وأرجو ان تنتبه اليها وتحفظها ... إذا كتبنا جملة واحدة (إجراء واحد) فقط بعد جملة الشرط if فلا حاجة الى إنهاء الشرط باستخدام end if ...
لاحظ في البرنامج السابق كتبنا عبارة portb=led0 فقط بعد جملة الشرط لذلك لم نحتج الى استخدام end if ... أتمنى أن يكون الأمر واضحا
التساؤل الثاني : كيف نعدل على البرنامج ليجعل led0 يضاء عند الضغط على الزر sw0 وينطفي عندما يكون الزر غير مضغوط .... ؟؟
لابد من استخدام else
كيف ؟؟
كود:
If conditions then
statements
else
statements
End if
ليصبح البرنامج كالتالي
كود:
Program ifthen
Main
Trisa=31
Trisb=0
aa:
if porta.0=1 then
portb.0=1
else
portb.0=0
end if
goto aa
end
التساؤل الثالث : ما فائدة استخدام إيعاز الانتقال goto aa ؟؟
أقول ... نحن نريد أن نراقب حالة الطرف A0 دائما ونسجل أي تغير يطرأ عليه ... لذلك نحتاج إلى استعمال حلقة غير منتهية بداخلها ايعازات المراقبة
ونحن قد استخدمنا هذه الحلقة التي شرحها من قبل الاستاذ وليد
Aa:
Goto aa
مع العلم أنه يمكننا استخدام أي كلمة بدل aa
مثلا
Loop :
الايعازات
Go to loop
إذن ضع هذه الملاحظة في بالك وتذكر أنه كلما أردت مراقبة الإدخال سواء كان الإدخال مفتاح أو متحسس أو ... يجب عليك أن تضع ايعازات المراقبة في حلقة غير منتهية infinite loop
.................................................. ...........................................
الآن ما رأيك أن نتحكم في إطفاء وتشغيل أجهزة تعمل على الجهد 12 فولت أو أي جهد تحتاجه باستخدام pic ؟؟
قبل الإجابة لابد من توضيح الأشياء التي تحتاجها للتحكم بهكذا أجهزة
1-ترانزستور كمفتاح وليكن 2n2222
2- مرحل relay
3- مقاومات
سيناريو البرنامج للتحكم في تشغيل وإطفاء أربعة أجهزة تعمل على 12 فولت :
1- نهيئ الطرف A كإدخال والطرف B كإخراج
2- نربط الدائرة كما في الشكل أدناه
URL=http://dreameer.com/up/]

[/URL]
3- عند الضغط على المفتاح الأول يشتغل الجهاز الأول .... وهكذا
كود:
Program ifthen
Main
Trisa=31
Trisb=0
aa:
if porta.0=1 then
portb.0=1
else
portb.0=0
end if
if porta.1=1 then
portb.1=1
else
portb.1=0
end if
if porta.2=1 then
portb.2=1
else
portb.2=0
end if
if porta.3=1 then
portb.3=1
else
portb.3=0
end if
goto aa
end
نتوقف الى هنا ...
الخلاصة :
1- لن تتمكن من ربط الإخراج بالإدخال الا باستخدام جمل الشرط
2- لكي تراقب حالة الإدخال يجب أن تستخدم حلقة تكرار غير منتهية
3- جملة if لها عدة صيغ :
الصيغة الأولى :
كود:
If conditions then one statement
الصيغة الثانية :
كود:
if conditions then
statements
end if
الصيغة الثالثة :
كود:
if conditions then
statements
else
statements
end if
سنتعرف على بقية الصيغ في الدروس القادمة إن شاء الله تعالى
سبحان ربك رب العزة عما يصفون وسلام على المرسلين والحمد لله رب العالمين