![]() |
#1
|
||||
|
||||
![]() الماكرو Macro: موجه الماكرو : Macro. . . . Endm الماكرو هو مجموهة او بلوك من شفرة البرنامج والتى توضع فى البرنامج عندما يستخدم اسمها كتعليمة . ومن ثم فان استخدام الماكرو يكافىء انشاء تعليمة جديدة من التعليمات القياسية او بعبارة اخرى هى عملية نسخ copy ولزق paste اتوماتيكية . الموجه ماكرو يبدا ب MACRO لتعريف بداية المجموعة او البلوك ( باسم عنوان label )وينهيها ب ENDM لتعريف نهاية البلوك . وهو يسمح لك وبشكل فعال بانشاء تعليماتك الخاصة . فيكون لديك تعليمات قياسية (35 تعليمة ) علاوة على عدد اخر من التعليمات تحدده انت مما يسمح بسهولة البرمجة والتطوير . والماكرو يشبه الى حد ما البرنامج الفرعى subroutine ولكن مع اختلاف طريقة تعامل الاسمبلر معهما . فعند ترجمة شفرة المصدر فان الماكرو ينسخ ويلصق فى البرنامج الاصلى مكان تعليمته التى تعرفه ومن ثم فان الماكرو يعتبر شكل من اشكال كتابة البرنامج بالاختزال وليس كطريقة بناء برنامج . شكل او هيئة موجه الماكرو : ![]() فى الاماكن الفارغة يوضع (حسب المطلوب) تعليمات الPIC وموجهات الاسمبلر وموجهات الماكرو واستدعاء للماكرو . وعادة ما يتم تعريف الماكرو فى بداية البرنامج لانه من غير المسموح بالبحث عنه . والادلة الاختيارية للماكرو (arg1, arg2, etc) هى القيم التى تتحدد عند استدعاء (استخدام) الماكرو بالبرنامج . امثلة : 1- الماكرو movlf يقوم بوضع بيانات ثابتة فى موقع ذاكرة . لانه من المعروف لوضع البيانات الثابتة فى موقع ذاكرة يجب اولا وضع الثابت فى السجل W بالتعليمة movlw ثم بعد ذلك نسخ محتويات W الى الموقع بالتعليمة movwf وهذا الماكرو يسمح لنا بالكتابة مباشرة على اى موقع بذاكرة ال RAM . هذا الماكرو له دليلين arg1, arg2 هما قيمة الثابت const وعنوان الملف address ![]() 2- الماكرو bfbset ( تفرع او قفزb اذا كانت الخانة المذكورةb بالملف المذكور f ب1 اى set ) والماكرو bfbclr ( تفرع او قفز b اذا كانت الخانة المذكورة bبالملف المذكور f ب0 اى clear ) ![]() ![]() هذا النوع من الماكرو له ثلاثة ادلة هى الملف file والخانة bit والهدف او المقصود للذهاب اليه اى العنوان target وهما يستخدمان لاختبار حالة خانة الدخل (مثل المفتاح) الاول يختبر خانة الدخل وان كانت ب 1 يذهب الى عنوان معين الثانى يختبر خانة الدخل وان كانت ب 0 يذهب الى عنوان معين اخر . 3- ماكرو اختيار البنوك لاحظ ان لا يوجد به دليل لانه لا توجد عمليات بل اختيار للبنك فقط ![]() بمجرد كتابة اسم الماكرو Bank1 نكون فى البنك رقم 1 مباشرة الى لقاء قريب ان شاء الله |
#2
|
|||
|
|||
![]()
السلام عليكم
شرح موفق اخي الكريم وبجد طريقة عرضك للمواضيع رائعة . هل ممكن اسال سؤال بنفس الموضوع عن الماكرو وهو هل ممكن ان توضخ لي هذه الماكرو بنفس الطريقة وفيما نستخدما وهي... Macros WAIT, WAITX Macro PRINT ارجوا التوضيح وساكون شاكرا ... تحياتي |
#3
|
||||
|
||||
![]() اقتباس:
اخى الكريم شكرا جزيلا لك من فضلك اكتب الماكرو المطلوب كاملا كما تم فى الشرح بدءا من اول سطر وهو العنوان ومعه الادلة arg منتهيا بعبارة نهايته endm وبينهما التعليمات بلغة الاسمبلى المطلوب تنفيذها . ربما عند كتابتك باللغة الانجليزية تتحول الى شكل خاطىء فمن الافضل اما ان تجعلها على شكل صورة او تنظمها وتعالجها بحيث تكون مقرؤة لك على الوجه الصحيح على سبيل المثال اذا حاولت (كمحاولة ) اعادة كتابة ما سبق يكون كما يلى : WAIT MACRO ....................... ...................... ENDM او يكون PRINT MACRO ....................... ....................... ENDM ومكان النقط تعليمات بلغة الاسمبلى وشكرا |
#4
|
|||
|
|||
![]()
هذا ما طلبته اخي الكريم ..
ارفقته لك علي شكل صورة ... ![]() في راس هذه الصورة مكتوب ايضا من ضمن الصورة constant prescstd=.1 standard prescaler value for tmro ارجوا ان لايكون اي خلل...... |
#5
|
||||
|
||||
![]() اقتباس:
اخى الكريم شكرا لك وصلت الصورة سؤالك من جزئين الاول : توضيح الماكرو وهذا ممكن الثانى : فيما يستخدم الاجابة العامة هى فى عمل تاخير زمنى ولكن كيف ولماذا : يلزم لذلك باقى البرنامج وخصوصا تعريفات المتغيرات وخاصة ان كان هناك تعليقات فهى طريقة التفاهم وتذكر الاشياء . فى انتظار ردك وشكرا |
#6
|
|||
|
|||
![]() |
#7
|
||||
|
||||
![]() اقتباس:
شكرا لك وصل الاستفسار والكتاب والاجابة تعتمد على استخدام التيمر tmro فى عمل التاخير الزمنى لذلك اجد من الافضل اولا شرح هذا الموضوع ومن ثم ستجد الماكرو واضح تماما سيكون ذلك فى موضوع مستقل علاوة على هذا المكان ساجهز الرد ان شاء الله |
#8
|
|||
|
|||
![]()
انا في الانتظار ...
بالتوفيق |
#9
|
|||
|
|||
![]()
الرجاء شرح عمل هذا الماكرو كيف تنفذ كل تعليمة وماهية فائدتها اي عملها بحثت كثيرا في المواقع ولم اجد الاجابة الكثير منا لايعرف ماهو عمل الماكرو في pic
هذا هو الماكرو المطلوب شرحه |
![]() |
مواقع النشر (المفضلة) |
الكلمات الدلالية (Tags) |
الماكرو, الاسمبلى, البرمجة, استخدام, بلغة, macro, نجاح |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|