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


#1

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

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

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

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

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

نقل البيانات

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

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

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

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

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

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

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

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


فهرس دروس دورة الميكروكنترولر كاملة
فهرس دروس دورة الميكروكنترولر كاملة
#2

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

وهى

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

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

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


#3

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

مقدمة

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

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

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

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

00 0000 0000 1000

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


(عباس العراقي) #4

شكرا يا اخي


(eng_hema) #5

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


(Eng. Maher) #6

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


#7

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


(الآلوسي) #8

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


(eng_asa) #9

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


(عباس العراقي) #10

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


#11

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


(الآلوسي) #12

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


(system) #13

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


(الآلوسي) #14

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


(alrashed71) #15

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


(mahmoud s) #16

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


(محمد البسيونى) #17

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


(ابو نادر) #18

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


(عباده) #19

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


(metwally.mustafa) #20

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