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


ahmedeldeep
05-10-2006, 02:36 AM
التعليمات (أكواد البرنامج)




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








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








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








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








http://www.almohandes.org/vb/uploaded/micro/32.gif









نقل البيانات



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






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



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

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






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








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








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






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

ahmedeldeep
05-10-2006, 02:37 AM
الاختصارات الموجودة فى التعليمات
وهى








f : وهى تعبر عن اى مكان فى ذاكرة الميكرو








W : وهو المسجل W او working register


b : وهو مكان البت فى المسجل f
d : وهو البت المقصود او الموجه اليه






label : وهو مجموعة تحتوى على 8 حروف ونعلم بيها جزء معين من البرنامج








TOS : وهو بداية الاستاك وهى اختصار لى Top of stack


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




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

ahmedeldeep
05-10-2006, 02:38 AM
البرمجة بلغة الاسمبلى





مقدمة


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








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








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








http://www.almohandes.org/vb/uploaded/micro/33.gif








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


00 0000 0000 1000


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

عباس العراقي
05-10-2006, 11:18 AM
شكرا يا اخي

eng_hema
06-10-2006, 02:28 AM
جزاك الله خيرا على هذا المجهود الرائع وخاصة فى الميكاترونيك و الميكرو كنترولر وبارك الله فيك فى طريقة شرحك الرائعة و نرجوا ان نتعرف على شخصيتك اكثر حتى نسفيد من خبراتك

Eng. Maher
06-10-2006, 04:00 PM
جزيتم خيرا انشاالله ومزيدا من التقدم مع خالص الشكر والتقدير

ahmedeldeep
07-10-2006, 12:18 AM
شكرا لكم جميعا اخوانى الاعزاء على ردودكم الطيبة
وبالنسبة للتعرف على شخصيتى فانا جاهز للرد على اسئلتكم

الآلوسي
07-10-2006, 01:02 AM
شكرا على الدرس المبسط اخ احمد
لقد ورد سؤال في ذهني اثناء قرأة الدرس هل هناك فرق بين Pic16f84 و Pic16f84a
وكيف احصل على تعليمات الاسمبلي الخاص بكل بهما
وجزاك الله عن جوابك وازادك الله علما

eng_asa
07-10-2006, 01:49 AM
جزاك الله خيرا
فى انتظار الدرس القادم

عباس العراقي
07-10-2006, 03:44 PM
ارجو ان تقوم بأعطاء امثلة اخي
مثلا اذا كانت لدي بيانات كيف اخزنها في الذاكرة
وهل تخزن هذه البيانات في ذاكرة الفلاش

ahmedeldeep
07-10-2006, 08:56 PM
شكرا على الدرس المبسط اخ احمد
لقد ورد سؤال في ذهني اثناء قرأة الدرس هل هناك فرق بين Pic16f84 و Pic16f84a
وكيف احصل على تعليمات الاسمبلي الخاص بكل بهما
وجزاك الله عن جوابك وازادك الله علما
يكون الاختلاف بسيط بين كل نوع والاخر ولاتنسى انهم من عائلة واحده ويمكنك الحصول على الداتا شيت من موقع الشركة حيث يحتوى على التفاصيل الخاصة بكل نوع وساقوم بارفاق الداتا شيت الخاص بى Pic16f84

الآلوسي
08-10-2006, 12:22 AM
شكرا اخ احمد على الجواب و حثقل عليك بسؤالين اخرين لو سمحت
اريد ان اعرف كم تستغرق دورة كل ايعاز من وقت
وهل يتوفر محاكي Pic بلغة الاسمبلي و البيسك
مع الشكر الجزيل لك على هذه الدورة القيمه
جزاك الله خيرا

م/عبدالظاهر
08-10-2006, 11:24 PM
http://www.w6w.net/album/35/w6w20050419152250d4d6f757.gifاخى احمد الديب

الآلوسي
09-10-2006, 01:44 AM
هل من الممكن سؤال اخر اخ احمد
هل الفرق البسيط بين Pic و أخر يسمح لنا بتعلم احدها وتطبيق ما تعلمناه على Pic برقم اخر
واذا كان الجواب لا فلماذا مع الشكر الجزيل على مجهودك بالدوره وصبرك على الاسئله
وجزاك الله واثابك اخ احمد

alrashed71
16-10-2006, 12:21 PM
الله يجزيك الخير وما قصرت

mahmoud s
19-10-2006, 12:25 AM
الف الف الف شكر :sm113:

محمد البسيونى
06-03-2007, 06:24 PM
جزاك الله خيرا أخى الكريم وبارك الله فيك

ابو نادر
20-03-2007, 03:19 AM
الف شكر على هذا الدرس الرائع وعلى باقي الدروس
زادك الله من علمه

عباده
29-03-2007, 08:10 PM
بارك الله فيك اخ احمد وجعل جهدك وعملك في سجل حسناتك