أساسيات برمجة الميكروكونترولر PIC بلغة الأسمبلى وتطبيقاتها العملية
قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
9- مثال بسيط لشفرة أو كود : بلغة الأسمبلى : لنعطى مثال على ما تعلمناه : لا تحاول ترجمة هذا المثال الآن بالأسمبلر فسوف نفعل ذلك عندما نأتي لبرنامجنا الأولى. نحن فقط نحاول إظهار كيف أن ما تعلمناه هو بالفعل جزء من البرمجة الفعلية ونحاول فى نفس الوقت التعرف على بعض التعليمات . المثال يوضح طريقة التعامل مع المنافذ. أولا: نحتاج للتحويل من البنك 0 الى البنك 1 . نفعل ذلك باستخدام سجل الحالة STATUS الواقع بالعنوان 03h بجعل الخانة 5 بقيمة 1 .
BSF 03h,5
هذه التعليمة معناها ( إجعل الخانة رقم 5 بالسجل الموجود بالعنوان 03h بالقيمة 1 ) الحرف F يعنى إننا بصدد استخدام موقع بالذاكرة ( RAM) أو ما اطلقنا عليه سجل . والرقمان (المعاملان) : 03h هو عنوان سجل الحالة STATUS و 5 هو رقم الخانة . نحن الآن فى البنك رقم 1
وضع القيمة الثنائية 00110 ( حرف b يعنى أن الرقم بالثنائى) فى سجل العمل العام W يمكنا بالطبع فعل ذلك بالسداسى عشر فى هذه الحالة تكون التعليمة :
MOVLW 06h
كلاهما يصلح . MOVLW تعنى (نقل أو ضع القيمة الثابتة والمحددة بالسجل W ) أى ضع القيمة التالية مباشرة بالسجل W الآن نحتاج إلى وضع هذه القيمة فى السجل TRISA لتحديد وتوصيف المنفذ :
MOVWF 85h
هذه التعليمة تعنى ( إنقل أو إنسخ محتويات السجل W إلى السجل ذو العنوان التالى ) فى هذه الحالة فإن العنوان يشير إلى السجل TRISA الآن أصبح فى السجل TRISA القيمة 00110 ويمكن توضيح ذلك بالشكل :
الآن تم تحديد وتوصيف أطراف المنفذ A
الآن يجب علينا العودة مرة أخرى إلى البنك رقم 0 للتعامل ومعالجة اى بيانات .
BCF 03h,5
هذه التعليمة تفعل عكس فعل التعليمة BSF
وهى تعنى ( اجعل الخانة بالسجل بصفر (
الرقمان أو المعاملان التابعان هما عنوان السجل (فى هذه الحالة السجل STATUS) ) ورقم الخانة المطلوب جعلها بصفر وهى فى هذه الحالة الخانة رقم 5 .
الآن جعلنا الخانة 5 بمسجل الحالة بصفر . إذا نحن الآن فى البنك رقم 0 . والشفرة الآن تصبح :
لقد القينا نظرة على 4تعليمات وباقى 31 تعليمة إلى لقاء قريب ان شاء الله
فى التدريب السابق رأينا كيف يتم تحديد وتخصيص أطراف المنافذ كخرج أو كدخل .
فى هذا التدريب سنرى كيف يتم إرسال البيانات إلى المنافذ (أى الكتابة عليها .( أولا دعنا نضبط أو نحدد أو نخصص الخانة رقم 2 للمنفذ A كخرج :
وهو مراجعة للتدريب السابق . والفرق أننا هنا جعلنا كل الأطراف كمخارج بوضع 0 فى السجل TRISA والأن ماذا نفعل لجعل دايود مشع يضىء . نفعل ذلك بجعل جهد أحد الأطراف الموصل إلى الدايود المشع مرتفع (أى +5 فولت ) . بعبارة اخرى أرسال ‘1’ الى الطرف . واليك الطريقة :
الأن الدايود المشع أضاء . وإذا أردنا أن نطفأه :
الآن تم إضاءة وإطفاء الدايود المشع لمرة واحدة . وإذا أردنا حدوث ذلك باستمرار نفعل ذلك بجعل البرنامج يعود مرة أخرى إلى البداية . نفعل ذلك أولا بتعريف عنوان أو لافتة (يافطة (label فى أول البرنامج ونخبر البرنامج بأن يحافظ على العودة إلى هذا العنوان . تعريف العنوان سهل . نكتب اسمه وليكن START ونكتب الكود
فكما ترى : نكتب كلمة ‘Start’ فى أقصى اليمين فى بداية البرنامج وفى النهاية نكتب ‘goto Start’ التعليمة ‘goto’ تفعل تماما كما تقول (إذهب إلى) هذا البرنامج يقوم بإضاءة وإطفاء الدايود المشع باستمرار طالما إن التغذية واصلة الى الدائرة وتقف عند فصل التغذية . أعتقد أنه يجب علينا النظر مرة أخرى إلى البرنامج
حسنا أزلنا التعليقات . لاحظ : فقط تعليمات وأرقام ؟وهذا يمكن أن يكون مربكا بعض الشيء وخصوصا عند محاولة تصحيح البرنامج debug في وقت لاحق ، وأيضا عند كتابتك لشفرة أو كود يجب عليك أن تتذكر كل العناوين. حتى مع وجود التعليقات في مكانها يحدث أيضا قليل من الارتباك . ما نحتاج إليه هو إعطاء أسماء لهذه الأرقام . وهذا هو عمل (ماتنجزه) تعليمة ( الموجه ‘equ’ ( تعليمة الموجه ‘equ’ ببساطة تعنى شىء يساوى شىء آخر . وهى ليست من تعليمات الميكروكونترولر ولكنها موجه من موجهات الأسمبلر . بهذه التعليمات يمكننا تعيين (تخصيص) اسم لعنوان (موقع- سجل -ملف) أو من حيث البرمجة تخصيص اسم لثابت. لنفعل ذلك فى برنامجنا لترى كيف أنه أصبح من السهل قراءة البرنامج .
والآن بعد أن تم تعريف القيم الثابتة لنرى وضعها فى البرنامج . القيم الثابتة يجب أن تعرف قبل استخدامها فى البرنامج لذلك تأكد دائما من أنك قد وضعتها فى بداية البرنامج . سوف نكتب البرنامج بدون تعليقات مرة أخرى لتقارن بنفسك :
أرجوا أن تكون هذه الثوابت قد جعلت البرنامج أسهل ولو قليلا على الرغم من عدم وجود التعليقات .
11- شرح الشكل النموذجى للبرنامج بلغة الأسمبلى مع مثال كامل
11- شرح الشكل النموذجى للبرنامج بلغة الأسمبلى مع مثال كامل : البرنامج النموذجى المقترح يتكون من : أولا : المقدمة أو رأسالبرنامج: يبدأ البرنامج بالمقدمة أو رأس البرنامج : وهو مكون من خمسةأسطر (أو أى عدد)كلها تعليقات commentنبدأ كلتعليق بالفاصلة المنقوطة. هذه الأسطر عبارة عن : تعريف بعنوان البرنامج – وصف مختصر لوظيفته – وتاريخ إنشاءة – والمؤلف أو الكاتب وأى شىء آخر يمكن أن تضيفه كما فى الشكل .
ثانيا :معلومات عن تهيئة كلمة الإعدادات Configuration Word settings وهى تسمح للمبرمج بتعريف بعض خصائص وسمات الميكروكونترولر عند تحميله بالبرنامج . وتكون هذه الخصائص ثابتة لحين برمجة الميكروكونترولرمرة أخرى . وهى تختلف عن الكلمات الأخرى .حيث أنها تكون جزء من البرنامج ولكن لا يمكن الوصول اليها( كباقى الكلمات) سواء عن طريق البرنامج أو أى طريق آخر طالما أن البرنامج فى حالة تشغيل . ويمكن عمل التهيئة عند وضع البرنامج على الميكروكونترولرلذلك تم كتابته فى البرنامج كتعليق للتذكير فقط . وسوف يكون لنا حديث تفصيلى عنها .
ثالثا : أول سطر فعال فى البرنامج:
هذا السطر يعرف الميكروكونترولر المستخدم باستخدام موجه لغة الاسمبلى list (يمكن إضافة بعض الموجهات الأخرى هنا وسنذكرها فى حينها) .
التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 27-10-2010 الساعة 12:42 AM
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:35 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)