أسرع طريق لاحتراف برمجة المايكروكنترولر
وبهذا بعد أن تصبح قيمة 00110 بصفر سيخرج البك من جملة 101 ويتنفن الأمر الذي يليها وهو الانتظار
لمدة ثانية فيظهر الرقم صفر على السفن سيجمنت ثم يتم تكرار تتنفين هذه الأوامر مرة أخرى لأنهم ضمن
ولكن طبعا هذا الحل لا نريده لأننا فى الأساس كنا نريد استخدام آمر الانتظارمرة واحدة فقط
عزيزي القارىئٌ : إن الكلام السابق والحلول هذه كان من الممكن الاستغتناء عنها فلن تحدث مشكلة آثناء
تنفين هذه التجربة عند تطبيقنا لأول كود كتبتاه ففي مثل هذه المشاريع البسيطة ليست هذه مشكلة
إطلاقا ولكن في بعض المشاريع قد تحتاج لتغيير الكود بسبب قله الذاكرة ونحوه لهذا كانت هذه محاولة
مني لتوسيع الأفق البرمجي لديك أتمنى من الله أن توفق في حل مشاكلك البرمجية القادمة بكل مهارة
وأتمنى أن تكون استفدت من هذا الدرس واستمتعت به و أن تكون قوة فهمك لما سينفذه البك خطوة خطوة
العالم الذين يمكلون هذه المهارة الاحتراف فهذه نقطة إحترافية وإلى مزيد من الإحتراف أكثر وأكثر إن
مسبب كل نجاح وتفوق واحتراف فاللهم ارزقنا وإياكم العلم النافع
"لي اس اسأاكفقدها
أسرع طريق لاحتراف برمجة المايكروكنترولر
في هذه التجربة ستقوم بعمل عداد تصاعدي يقوم بعد الأعداد الزوجية فقط وسأقوم بشرح بعض الأوامر
الحساسة
اهمع 21:1 05 ٍ
ج] 1 - ودج
با بجح
4 جردي ]13 _ 1ط
نفس الدائرة السابقة
من المعلوم أن الفرق بين أي عدد زوجي وآخر يساوي اثنين بمعتنى أن العدد أربعة مثلا عدد زوجي والعدد
السابق ستحصل بذلك على عداد للأعداد الزوجية إذن يمكن كتابة الكود التالي ليؤدي هذه الوظيفة :
أسرع طريق لاحتراف برمجة المايكروكنترولر
يما آن الأمر ++001106 يزيد من القيمة السايقة يمقدار واحد إذن فإن كتابة هذا الأمر مرتين يجعل البك
يزيد من القيمة السابقة اثنين وهذا هو المطلوب
ولكن ماذا لو آردنا أن نزيد القيمة خمسة أو مثة أو أي رقم كبير إن عملية تكرار الكود فى هذه الحالة يعد
هذا الأمر قد يخطر بذهنك فكرة أخرى وهى استخدام جملة 10١ وداخل جملة 107 نكتب الأوامر التى
تريد تكرارها وهذه فكرة جيدة ولكن هناك حل آخر أسهل وأفضل
هذا الأمر سينظر للقيمة السابقة ل 00110 ويضيف إليها ؟ وبنفس الطريقة يمكن كتابة أمر يضيف على
القيمة السابقة ل 00+10 الرقم ٠0
وبهذه الطريقة يمكن كتابة الكود المطلوب بالشكل التالي :
اسرع طريق لاحتراف برمجة المايكروكنتروتر
وهنا يجب التنبيه إلى نقطة مهمة جدا وهى أننا فى حالة كتابتنا لمثل هذه المعادلات فإن الطرف الأيسر من
المعادلة هو الذي نريد تغيير قيمته أما الطرف الأيمن فلن يحدث له أي تغيير
وسأضرب لك هذا المثال : نفرض أن :0011323 ونريد أن نجعل قيمة 00110 تساوي خمسة فإننا ستكتب
الكود التالي :
الطرف الأيسر هو الذي سيتغير أي أن 00110 ستصبح قيمته تساوي قيمة 00113 مضافا إليها ؟ وبالتالي
ستصبح قيمة 00110 بخمسة أما الطرف الآأيمن فلن يحدث له أي تأثير بمعنى أن المتغير أو المسجل 00113
الأيمن والأيسر كلاهما بهما 00110 فهنا المقصود من 00115 التي على اليمين أنها القيمة السابقة ل
06 وأما الطرف الأيسر فإن 00110 هي القيمة الجديدة التي ستكون بإجراء تنفين العملية الحسابية
التي في الطرف الآيمن ( وهي القيمة السابقة ل 00115 + ؟ )
يؤدي نفس الوظيفة وهى إضافة أو جمع واحد على القيمة السابقة ل 00110
محتالد ٠
أسرع طريق لاحتراف برمجة المايكروكنترولر
ورب رض عجن ل قت
تغمر , الدائرة السابقة ب
نمس لله -
00110-00110-2 وستقوم بتعديلات بسيطة في الأرقام اترزك لك اكتشافها
أاسرع طريق لاحتراف برمجة المايكروكنتروتر
بقي آن تعرف أن الأمر 00110<]0110-2 يمكن كتابته بشكل آخر وهو
والأمر 00110]00110+2 يمكن كتباته بشكل آخرأيضا
ويهذا تكون قد تعلمنا بعض الأوامر الحسابية المهمة جدا فى العديد من التطبيقات
ولنفترض الآن أن لدينا مشروع معين وداخل هذا الكود نريد القيام بعملية حسابية معينة وتضع النتيجة
: فإننا نكتب الأمر التالي ٠
لعلك لاحظت وجود الأقواس فهى تعنى أن ما بداخلها من عمليات حسابية سيتم تنفيذه أولا ثم بعد ذلك
فهذا يعنى أن المتغير لالا فقط هو الذي سيقسم على ٠١ لذلك الأقواس مهمة جدا خاصة فى العمليات
عملية حسابية كالجمع والطرح وتحوه
توجد عمليات حسابية أخرى ستتعرف عليها فى تجارب أخرى بإذن الله طريقة هذا الكتاب خطوة خطوة
يكون التعلم من خلال هذا الكتاب سهل وميسر للجميع
أسرع طريق لاحتراف برمجة المايكروكنترولر
هذه أول تجربة لبرمجة المايكروكنترولر وستستخدم النوع 012161843 والهدف من التجرية هو تشغيل
(اع) ستوصله على الطرف رقم 80 القارئئٌ العزيز : يجب عليك أن تعلم أن التجارب الأولى لها أهمية
كبيرة جدا لأنك إذا نتجحت في تنفينها سيصبح الأمر لديك أسهل وأكثر متعة وستخترق هذا العالم
وتفتح لك أبوابه وتذلل لك الصعاب أتمنى لك التوفيق
الخطوة الأولى فى تنفين التجرية هى توصيل الدائرة كما بالشكل
3 7805 بطارية 4 قوتت
/1 2 صفر فولت ١/55 ي
14 3 5 مقاومة 4١ اوم 5
مكثف 7١" بيكو -خح- 12 <لا 7
ملاحظات مهمة :-
بمنظم جهد 7505 والذي يخرج خمسة فولت منتظمة
"- يمكن استبدال البطارية واستخدام مصدر جهد آخر 1م5000 0010/61 يخرج تيار مستمر ؟ فولت
أو > فولت بحيث تكون قيمة الخرج لمصدر الجهد هذا أكبر من خمسة فولت
أسرع طريق لاحتراف برمجة المايكروكنترولر
ضحي
ضحي
هبا ينا تكتب الكود )
الآن في مشروعنا هذا لدينا سويتشين (مفتاحين) أريد أن آآمر البك وأقول له لو تم الضغط على السويتش
الأول افعل كذا ولو تم الضغط على السويتش الثاني إفعل كذا إذن ستستخدم جملتين أ الجملة
الأولى خاصة بالمفتاح الأول والجملة الثانية خاصة بالمفتاح الثاني كما يلى :
ٍ نفد هذه الأوامر إذا ثم الضغط على السويتش الأول ا (0--0+71310م )1
أاسرع طريق لاحتراف برمجة المايكروكنتروتر
ولكن ما هى الأوامر التى تريد تتنفيذها إذا تم الضغط على السويتش الأول ؟؟ ستكتب الأمر الذي يجعل
قيمة 00110 تزداد بمقدار واحد فمثلا يمكننا أن نكتب ++00110 وهذا الأمر كما ذكرنا سابقا سيجعل
0 تتنقص بمقدار واحد فمثلا يمكننا أن نكتب --00+710 وهذا الأمر سيجعل قيمة 00110 تنقص
تحذير !! يجب عليك عند كتابة الأمر ++00110 أو --00110 أن تكتب بعدهم أمر يجعل البك ينتظر
لمدة معينة لأنه في حالة عدم فعل ذلك وعندما تضغط على السويتش الذي يزيد القيمة بمقدارواحد لن
يزيدها بمقدار واحد بل ريما يزيدها بأكثر مع أنك ضغطت ضغطة واحدة على المفتاح والسبب العلمي
الذي يفسر ذلك هو أن البك يتفذ جميع الأوامر بسرعة رهيبة جدا فأنت عندما تضغط على المفتاح وترفع
يدك بسرعة قد تستغرق في هذا الأمر ربع ثانية أو نصف ثانية وريما أكتثر أثناء هذه المدة يكون البك قد
فيجد أنه محرر فيرجع مرة أخرى ويختبر السويتش الذي أنت ضاغط عليه فيزيد من قيمة العداد مرة
أخرى ثم يختبر السويتش الآخر وهكذا فريما في ربع ثانية ([زمن ضغطك على المفتاح) يكون البك قد
اختبر فيها هذا المفتاح أو السويتش الكثير من المرات وبالتالي سيزيد من القيمة التي عليها العداد العديد