الدرس السادس : التعليمات (أكواد البرنامج)

التعليمات (أكواد البرنامج)

اولا يجب ان نعرف جيدا ان الميكرو كونترولر ليس مثل اى قطعة اليكترونية يكون جاهز للاستعمال بمجرد الانتهاء من التصنيع.

ولكن يجب علينا ان نقوم بتحديد ما سوف يقوم بعمله اولا وهذا معناه انه يجب ان نقوم بكتابة برنامج وهذا ما سنتعرضه فى هذا الجزء وهو كيفية كتابة برنامج للميكرو بلغة الاسمبلى والاكواد الموجودة بها خاصة بالميكرو من النوع PIC فقط ولكل نوع له اكواده الخاصة وهى ايضا لغة ذات مستوى اقل والعكس توجد اللغات ذات المستوى العالى مثل السى ولكن لا يفهمها الميكرو مباشرة.

وكما عرفنا سابقا ان الميكرو الخاص بنا يفهم 35 تعليمة وهى موجودة فى جدول فى الداتا شيت المرفق اسفله.

وايضا من خلال الجدول كالاتى

نقل البيانات

نقل البيانات فى الميكرو يتم بين مسجلين مهمين جدا وهما المسجل Wوالمسجل f وهما يمثلان اماكن فى الرام التى توجد بوحدة المعالجة المركزية.

وهناك ملاحظة مهمة جدا

انه فى جميع الميكروكنترولات تقوم فقط بالعمليات الحسابية الجميع والطرح

وهناك الاعلام كما ذكرنا سابقا فى المسجل STATUS والتى تعتمد قيمها على حالة الجمع والطرح.

وتقوم ايضا بالعمليات المنطقية مثل AND و OR وXOR وعمليات ROTATE و SHIFT .

ومن الجدول يتضح ان هناك تعليمات خاصة بالبت الواحدة فقط مثل BCF و BSF

وهناك ايضا تعليمات تستخدم فى توجيه البرنامج مثل GOTO وCALL و RETURN

ويجب ملاحظة ان جميع تعليمات الميكرو تنفذ فى دورة واحدة ماعدا الجمل الشرطية والتى تنفذ فى دورتين

الاختصارات الموجودة فى التعليمات

وهى

f : وهى تعبر عن اى مكان فى ذاكرة الميكرو
W : وهو المسجل W او working register
b : وهو مكان البت فى المسجل f
d : وهو البت المقصود او الموجه اليه
label : وهو مجموعة تحتوى على 8 حروف ونعلم بيها جزء معين من البرنامج
TOS : وهو بداية الاستاك وهى اختصار لى Top of stack

option
<> : مكان البت فى المسجل

وهذه الاختصارات ايضا تساعدنا فى فهم الجدول السابق

البرمجة بلغة الاسمبلى

مقدمة

اولا يجب علينا ان نعرف معلومة هامة جدا وهى ان الاتصالات اصبحت لها دور حيوى فى حياتنا ومن اهم شروط الاتصال بين اثنين ان تكون لغتهم واحدة حتى يفهموا بعضهم البعض .

وهذه المفاهيم موجودة ايضا فى الميكروكنترولر ويكون الاتصال بين الانسان والميكرو واللغة المشتركة بينهم هى الاسمبلى ولكن هذه ليست اللغة الاصلية للميكرو ولذلك لابد من ان تترجم الى اللغة التى يفهما وهى الاصفار والواحد او لغة الالة machine language ويكون هذا عن طريق ال Translator

وهذه العملية موضحة فى الشكل الاتى :

وعلى سبيل المثال الامر RETURN مكتوب الان بلغة الاسمبلى وهى لغة يفهما الانسان لانها تتكون من حروف اللغة العادية لكن بعد التحويل الى لغة الالة تكون كما يلى

00 0000 0000 1000

وهى مجموعة من الاصفار والواحد وتتكون من 14 بت وبعد الترجمة تكون موجودة فى ملف اسمه execution او يسمى غالبا بى هيكس HEX file فمثلا يكون الملف كما يلى micro.hex .

شكرا يا اخي

جزاك الله خيرا على هذا المجهود الرائع وخاصة فى الميكاترونيك و الميكرو كنترولر وبارك الله فيك فى طريقة شرحك الرائعة و نرجوا ان نتعرف على شخصيتك اكثر حتى نسفيد من خبراتك

جزيتم خيرا انشاالله ومزيدا من التقدم مع خالص الشكر والتقدير

شكرا لكم جميعا اخوانى الاعزاء على ردودكم الطيبة
وبالنسبة للتعرف على شخصيتى فانا جاهز للرد على اسئلتكم

شكرا على الدرس المبسط اخ احمد
لقد ورد سؤال في ذهني اثناء قرأة الدرس هل هناك فرق بين Pic16f84 و Pic16f84a
وكيف احصل على تعليمات الاسمبلي الخاص بكل بهما
وجزاك الله عن جوابك وازادك الله علما

جزاك الله خيرا
فى انتظار الدرس القادم

ارجو ان تقوم بأعطاء امثلة اخي
مثلا اذا كانت لدي بيانات كيف اخزنها في الذاكرة
وهل تخزن هذه البيانات في ذاكرة الفلاش

يكون الاختلاف بسيط بين كل نوع والاخر ولاتنسى انهم من عائلة واحده ويمكنك الحصول على الداتا شيت من موقع الشركة حيث يحتوى على التفاصيل الخاصة بكل نوع وساقوم بارفاق الداتا شيت الخاص بى Pic16f84

شكرا اخ احمد على الجواب و حثقل عليك بسؤالين اخرين لو سمحت
اريد ان اعرف كم تستغرق دورة كل ايعاز من وقت
وهل يتوفر محاكي Pic بلغة الاسمبلي و البيسك
مع الشكر الجزيل لك على هذه الدورة القيمه
جزاك الله خيرا

اخى احمد الديب

هل من الممكن سؤال اخر اخ احمد
هل الفرق البسيط بين Pic و أخر يسمح لنا بتعلم احدها وتطبيق ما تعلمناه على Pic برقم اخر
واذا كان الجواب لا فلماذا مع الشكر الجزيل على مجهودك بالدوره وصبرك على الاسئله
وجزاك الله واثابك اخ احمد

الله يجزيك الخير وما قصرت

الف الف الف شكر

جزاك الله خيرا أخى الكريم وبارك الله فيك

الف شكر على هذا الدرس الرائع وعلى باقي الدروس
زادك الله من علمه

بارك الله فيك اخ احمد وجعل جهدك وعملك في سجل حسناتك

شكرا لك اخى الكريم