| مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller | |
|
|
كاتب الموضوع | رسالة |
---|
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| |
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller السبت 26 أبريل 2014 - 11:14 | |
| بعض النصائح قبل البدء: لأولائك الذين لا دراية لهم بالبرمجة على الإطلاق ، قد يكون هناك بعض الأفكار والتى تكون جديدة تماما ، بل وبعض جوانب المتحكم PLC قد تبدو غريبة . سوف يتم الآن شرح بعض النقاط الأساسية .
أنظمة الترقيم : الثنائى binary ، والعشرى decimal ، والسداسى عشر hexadecimal : فى البداية هناك العمل على أنظمة الأعداد المختلفة : الثنائى ، والعشرى ، والسداسى عشر . العدد الثنائى هو عدد "قاعدته أو أساسه " العدد "2" ، أى هناك نوعين فقط من الأرقام digit هما الصفر "0" والواحد "1" . على خلاف العدد العشرى الذى قاعدته العدد "10" ، أى أن هناك عشر أرقام مختلفة هى الأرقام من "0" إلى "9" . وبالمثل العدد السداسى عشر قاعدته العدد "16" ، ومن ثم فإن هناك 16 رقم مختلف هى (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E , F) . الجدول التالى يوضح كيفية العد باستخدام الأنظمة المختلفة :
الرقم الثنائى binary digit ( أو البت bit) الموجود أقصى اليمين يعرف بالبت الأقل أهمية (الأدنى قيمة) أو اختصارا "LSB" كما يسمى أيضا "bit 0" ( الترقيم يبدأ من الصفر وليس من الواحد ) . البت bit 0 تعرض "أحاد العدد" ( الواحد "1" قيمته بواحد "1" ) . البت الموجودة على يسارها (bit 1) الواحد "1" قيمته "2" ، والبت التالية (bit 2 ) الواحد "1" قيمته "4" وهكذا . لاحظ أن "1" يساوى 2 أس صفر أى 2^0 ، وأن "2" تساوى 2 أس واحد أى 2^1 ، وأن "4" تساوى 2 أس 2أى 2^2 وهكذا ، ومن ثم فإن رقم البت يناظر قوة أو أس العدد "2" التى تمثلها البت ، ولكن لاحظ أن الترقيم يذهب من اليمين إلى اليسار ( أحيانا يتم نسيان ذلك) . السلسلة المكونة من 8 بت تعرف بالبايت byte . البت الأعلى فى الترقيم تعرف بالبت الأكثر أهمية ( الأقصى قيمة) واختصارا MSB ، وهى البت bit 7 فى حالة البايت . بالمثل فى نظام الترقيم السداسى عشر ، البت bit 0 تمثل عدد الأحاد (مضاعفات الواحد) (16^0 = 1) والبت bit 1 تمثل عدد مضاعفات العدد 16 (16^1 = 16) وهكذا . أحد الأشياء المفيدة للنظام السداسى عشر هى سهولة ترجمة النظام الثنائى . فإذا قسمت العدد الثنائى إلى مجموعات كل مجموعة مكونة من 4 بت ( تسمى نبل nibbles أى بايتات صغيرة) ، فإن هذه المجموعات الصغيرة يمكن أن تترجم بشكل فردى (كل على حدة) إلى رقم سداسى عشر ‘hex’ digit .
نظام 8 بت 8-bit system : الميكروكونترولر PIC هو نظام 8 بت ، لذلك فهو يتعامل مع الأعداد بطول 8 بت . العدد الثنائى "11111111" هو أكبر عدد مكون من 8 بت وهو يساوى "255" بالعشرى ويساوى "FF" بالسداسى عشر . مع برمجة الميكروكونترولر PIC ، تستخدم رموز مختلفة لتحديد نظم الترقيم المختلفة ( العدد العشرى 11111111 يختلف كثيرا عن العدد الثنائى 11111111 ) . فى لغة الأسمبلى (التجميع) ، يتم بيان العدد الثنائى بالشكل b’00101000’ ، والعدد العشرى بالشكل d’72’ أو بالشكل .72"" ( تبدو مثل 72 من المئة ولكنها قد تكون أسرع كثيرا فى الكتابة ، إذا كنت تستخدم الأعداد العشرية بكثرة ) . نظام الترقيم السداسى عشر هو النظام الافتراضى ، ولكن من أجل التوضيح يتم كتابة الحرف الصغير "h" بعد العدد ، على سبيل المثال 28h . بدلا من ذلك ، يمكنك كتابة الحروف "0x" عند بداية العدد ، على سبيل المثال "0x3D" . عند التعامل مع مدخلات ومخرجات الميكروكونترولر PIC ، دائما يتم استخدام النظام الثنائى ، مع كل طرف دخل أو طرف خرج يناظر بت معينة . الواحد "1" يناظر لما يعرف "بالمنطق واحد" logic 1 ، وهذا يعنى أن طرف الميكروكونترولر PIC يكون عند جهد المنبع ( على سبيل المثال +5 V ) . الصفر "0" يدل على أن الطرف عند "المنطق صفر" logic 0 ،أو عند "0 V" . عند استخدام الأطراف كمداخل ، فإن الحدود بين منطق الصفر ومنطق الواحد تكون عند منتصف جهد المنبع ، على سبيل المثال +2.5 V . وأخيرا ، إذا رغبت ، فى أى مرحلة البحث عن ما تعنيه تعليمة معينة ، يمكنك بسهولة الرجوع إلى الملحق الذى سوف نرفقة والذى يبين قائمة بجميع التعليمات مع وظائفها . الخطوات الأولية : تتكون العملية الأساسية لتطوير برنامج الميكروكونترولر PIC من خمس خطوات : 1- اختيار نموذج الميكروكونترولر ، وبناء مخطط السريان flowchart للبرنامج . 2- كتابة البرنامج ( باستخدام برنامج المفكرة Notepad المتوفر مع النوافذ أو غيره من برمجيات التطوير المناسبة ) . 3- ترجمة (تجميع) البرنامج ( تغيير ما قمنا بكتابته إلى شىء يفهمه الميكروكونترولر PIC ) . 4- محاكاة البرنامج لمعرفة أنه يعمل أو لا يعمل . 5- تحميل البرنامج إلى الميكروكونترولر الفعلى .
http://fathallaabdelaziz.forumarabia.com/
دعونا ننظر إلى بعضها بمزيد من التفصيل . 1- اختيار الميكروكونترولر PIC الخاص بك : | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| |
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| |
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الأحد 27 أبريل 2014 - 3:28 | |
| الخطوة التالية : كتابة البرنامج : بمجرد اكتمال مخطط الانسياب ، يجب عليك تحميل "قالب برنامج الميكروكونترولر PIC" على جهاز الكمبيوتر ( سوف نتناول ذلك قريبا) وكتابة البرنامج الخاص بك به . كل هذا يمكن القيام به ببرنامج نصوص بسيط مثل المفكرة Notepad والذى يأتى مع النوافذ (أو أى حزمة تطوير أخرى مناسبة ) . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الأحد 27 أبريل 2014 - 3:30 | |
| الخطوة التالية : التجميع (الترجمة) : عندما تنتهى من كتابة البرنامج ، يكون جاهزا للترجمة . وهذا يعنى تحويل ما كتبته ( والذى يتكون فى الغالب من الكلمات) إلى سلسلة من الأعداد التى يفهمها الكمبيوتر وسوف تكون قادرة على الاستخدام للتحميل على الميكروكونترولر PIC . هذا الشكل الجديد للبرنامج يتكون فقط من الأعداد وهو يسمى الكود السداسى عشر hex code أو الملف السداسى عشر hex file ويكون له الامتداد (.hex) . فى الأساس ، لغة الميكروكونترولر PIC "المعقدة" التى سوف تتعلمها قريبا هى هنا ببساطة لجعل كتابة البرنامج أكثر سهولة . جميع البرامج الأولية تتكون من أعداد ( بعض الأشخاص يكتب البرامج فعليا باستخدام الأعداد فقط ولكن ذلك بالتأكيد ليس من المستحسن كما أن إصلاح المشاكل يكون مثل الكابوس ) . لذلك فإن المجمع (المترجم) أو الأسمبلر ، وهو قطعة من البرمجيات تقوم بترجمة كلماتك إلى أعداد . إذا فشلت فى التعرف على أحد كلماتك فسوف تسجل خطأ (الخطأ الأكيد) . وقد تسجل تحذير للأخطاء المحتملة ( أشياء بالتأكيد غير عادية ولكن ليس بالضرورة غير صحيحة) . الشىء الآخر الذى قد تعطيه لك هو "رسالة" message ( شىء لايكون خطأ ، ولكن عند الترجمة كان غير مألوف . لا تقلق إذا كنت مرتبكا نتيجة للغة الأسمبلى ، فكل شىء سوف يكون واضحا كلما تقدمت فى البرمجة الفعلية . فأنت الأن يجب أن تكون على استعداد لبدء كتابة البرنامج الأول الخاص بك ..... | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الأحد 27 أبريل 2014 - 9:37 | |
| | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الأحد 27 أبريل 2014 - 15:39 | |
| قالب البرنامج A program template : فى هذا الجزء والأجزاء اللاحقة سوف نبدأ فى النظر فى "التعليمات" . قد تجد أنها غير مألوفة ، ولكن لحسن الحظ هناك عدد قليل من القواعد العامة التى يمكن استخدامها لفك شفرة التعليمات المجهولة . القاعدة الأولى : أينما تواجه الحرف "f" فى التعليمة ، فهو يشير إلى "سجل ملف" file register . والحرف "w" دائما تقريبا يعنى "السجل العامل" working register ، والحرف "b" تشير إلى البت bit فى الغالبية العظمى من الحالات . وأخيرا الحرف "l" عادة يشير إلى "الحرفى" literal ، وهو ما يعنى فعليا "العدد" . ولذلك فإن التعليمة التى تحتوى على الحرف "l" تتطلب "عدد" ليتم تحديده بعد ذلك . على سبيل المثال ، التعليمة المستخدمة فى المثال القادم (bsf) "تحدد" set بت فى سجل الملف ( تجعلها بواحد) . مثال :
- الكود:
-
(Label) bsf porta, 0 ; turns on LED
هناك عدد قليل من العناصر الأساسية لكتابة برنامج PIC ، واحدة من هذه القواعد هى " بنية السطر" . المثال السابق يوضح "عينة لسطر برمجة" . • "الاختيارى" الأول هو التسمية أو العنوان label ، وهو مطلوب إذا كنت تريد أن تقفز إلى هذا المكان فى البرنامج . • بعد ذلك تأتى "التعليمة الفعلية" : وهى "bsf" ، وتعنى "ماذا أنت فاعل" . • بعد ذلك يأتى "المفعول به" إى المقصود بالفعل . • وأخيرا يأتى شرح بكلمات خاصة بك بما قمت بفعله للتو . من المهم أن تلاحظ أنه يمكنك كتابة ما تريد فى برنامج PIC طالما أنه يأتى "بعد فاصلة منقوطة" . وإلا فإن المترجم سيحاول ترجمة ما كتبته ( على سبيل المثال ‘turns on LED’ ) ، وبالطبع سوف يفشل ويعطىك خطأ ERROR . أثناء قيام الأسمبلر بالمسح خلال السطر تلو الآخر ، فسوف يقفز إلى أسفر إلى السطر التالى بمجرج أن يأتى إلى الفاصلة المنقوطة . لا أستطيع أن أؤكد كم هو مهم شرح كل سطر تكتبه . أولا ما كتبته قد يكون له معنى إثناء كتابته ، ولكن عند العودة إلية بعد فترة من الوقت ، سوف يكون من الصعب فهمه . وثانيا ، فإنه يسمح لشخص آخر أن يقرأ خلال البرنامج الخاص بك بسهولة معقولة . يمكن فى بعض الأحيان أن يكون من الصعب جدا كتابة شرح جيد ، لأنه يجب أن يكون واضح جدا وفى نفس الوقت غير طويل جدا . مثال :
- الكود:
-
bsf porta, 0 ; sets bit 0 of Port A
التعليق أعلاه يعنى القليل جدا ( فمن السهل أن ترى أن البت bit 0 يتم تحديدها) . فمن الأفضل القول "لماذا" كتبت ما كتبته ، والآثار المترتبة على ذلك .
| |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الأحد 27 أبريل 2014 - 17:04 | |
| الآن دعونا ننظر فى "قالب البرنامج" ، مع الوضع فى الاعتبار أن هذا ما هو إلا مثال بسيط وقد ترغب فى إضافة أو إزالة عناوين من أجل القالب الشخصى الخاص بك . بشكل عام ، مع البرنامج بأكمله ، تكون فكرة جيدة استخدام الفراغات بين الأشياء ، وتقسيم الأقسام ذات الصلة بسطور . أقترح إنشاء ذلك بعلامة التساوى (=) ، وبيطبيعة الحال تحتاج للفاصلة المنقوطة ( فى بداية كل سطر .
- الكود:
-
Program template ;************************************ ; written by: * ; date: * ; version: * ; file saved as: * ; for PIC… * ; clock frequency: * ;************************************ ; PROGRAM FUNCTION: _______________________________________ ;______________________________________________________________ list P = 16F5x include “c:\pic\p16f5x.inc” ;============ ; Declarations: porta equ 05 portb equ 06 (portc equ 07) org 1FFh goto Start org 0 ;=========== ; Subroutines: Init clrf porta ; resets input/output ports clrf portb (clrf portc) movlw b’xxxx’ ; sets up which pins are inputs and which tris porta ; are outputs movlw b’xxxxxxxx’ tris portb (movlw b’xxxxxxxx’ tris portc) retlw 0 ;============= ; Program Start: Start call Init Main (Write your program here) END
| |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الإثنين 28 أبريل 2014 - 18:36 | |
| الجزء الأول : "رأس أو مقدمة أو عنوان البرنامج " المحاط بسطرين لرمز النجمة (*) ( بهدف الأناقة ليس إلا ) :
- الكود:
-
;************************************ ; written by: * ; date: * ; version: * ; file saved as: * ; for PIC… * ; clock frequency: * ;************************************
يحتوى هذا الجزء على بعض العناوين (الرؤوس) التى تسمح لأى قارىء آخر الحصول بسرعة على فكرة البرنامج . أهم ما يوجد به : • "for PIC…." ، لكى يتم إدراج رقم نموذج الجهاز مثل 16F54 أو 16F57 ، اعتمادا على الميكروكونترولر PIC الذى تستخدمه . • clock frequency: لبيان تردد المذبذب ( مقاومة / مكثف أو كريستال ) الذى قمت بتوصيله . الميكروكونترولر PIC يحتاج إلى إشارة ثابتة (مستقرة) لتخبره متى يتحرك (ينتقل) إلى التعليمة التالية ( فى الواقع ينفذ تعليمة كل أربع دورات للساعة ) ، لذلك إذا ، على سبيل المثال ، قمت بتوصيل مذبذب 4 MHz ( أى أربعة ملايين إشارة كل ثانية) فإن الميكروكونترولر PIC سوف ينفذ مليون تعليمة فى الثانية الواحدة . فى هذه الحالة يكون تردد الساعة 4 MHz . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الإثنين 28 أبريل 2014 - 18:39 | |
| الجزء الثانى :
- الكود:
-
;_______________________ list P = 16F5x include “c:\pic\p16f5x.inc” ;============
والأهم أكثر بكثير من هذه العناوين هى الإجراءات (الأفعال) الأولية الفعلية التى يجب أداؤها . • السطر list P = 16F5x : وهو غير مكتمل . يتم استبدال 5x برقم الميكروكونترولر PIC الذة تسنخدمه ( على سبيل المثال 54) ، ولذلك سوف تكون عينة السطر هى list P = 16F54 . هذا السطر "يخبر المترجم" (الأسمبلر) بنوع الميكروكونترولر PIC الذى تستخدمه . • السطر include “c:\pic\p16f5x.inc” : يمكن المترجم لتحميل ما يعرف باسم "ملف البحث أو التفتيش " look-up file . هذا الملف مثل "قاموس الترجمة " للمترجم . سوف يفهم المترجم معظم البنود التى كتبتها ، ولكنه قد يحتاج للبحث ترجمات لبعضها الآخر . جميع سجلات الملف ذات الوظائف الخاصة (00 to 07) يتم إعلانها (تعريفها) فى ملف البحث . عند تثبيت برمجيات PIC سيتم تلقائيا إنشاء ملفات البحث هذه ووضعها فى دليل ( على سبيل المثال “C:/Program Files/Microchip/MPASM Suite/” ) . أقترح عليك نسخ ملفات البحث ذات الصلة ( بالامتداد .inc) فى مجلد يسمى "PIC" على محرك الأقراص "C" بحيث يكون من الأسهل أن تتذكر المسار الصحيح ، ولكن هذا الأمر متروك لك . وبغض النظر ، يجب أن تكتب مسار صالح لملف البحث . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الإثنين 28 أبريل 2014 - 18:45 | |
| الجزء الثالث :
- الكود:
-
;============ ; Declarations: porta equ 05 portb equ 06 (portc equ 07) org 1FFh goto Start org 0 ;===========
بعد ذلك يأتى فراغ من أجلك لعمل الإعلانات (التعريفات)declarations الخاصة بك . هذه الإعلانات ، بمعنى من المعانى ، هى الإضافات الخاصة بك إلى قاموس الترجمة . فإذا كان عليك أن تعلن Hours على أنها سجل الملف 0C ، يجب أن تكتب ما يلى :
- الكود:
-
;============ ; Declarations: Hours equ 0Ch
قد تحتاج أيضا إلى إعادة إعلان بعض سجلات الملف لوظائف محددة . وذلك لأن المترجم قد يكون حساس للحروف الصغيرو والكبيرة . على سبيل المثال ، ملف البحث يعلن سجل الملف "05" باعتباره PORTA . وقد يكون من الأفضل كتابته بالشكل porta ( قد تفضل أن تترك كل شىء على ما هو عليه ولكننا بصدد التوضيح) ، لذلك سوف يتم إعادة "05" باعتباره porta جنبا إلى جنب مع باقى الإعلانات الأخرى كما يلى : - الكود:
-
;============ ; Declarations: porta equ 05h Hours equ 0Ch
وهذا يعنى أنه يمكنك كتابة porta أو PORTA وسوف يفهم المترجم كل منهما باعتباره سجل الملف "5" ، من المفضل أيضا إعلان أرقام سجلات الملف بترتيب تصاعدى .
أسفل الإعلانات يوجد ثلاثة سطور :
- الكود:
-
org 1FFh goto Start org 0
الغرض من هذه السطور لضمان أن تقوم الشريحة بتشغيل البرنامج بدءا من القسم المسمى (المعنون) labelled بكلمة "البداية" start . لفهم هذا المبدأ يجب أن تفهم أن "كل سطر تعليمة" ( وليس مجرد فراغ أو سطر ببعض التعليقات) يكون "له رقم معين" (أو عنوان address ) يخصص (يعين) له . مثال رقم 1 : - الكود:
-
start 0043 bsf porta, 0 ; turns on LED ; (This is to prove comments aren’t counted) 0044 goto start ; loops back to start
لاحظ كيف أن السطور التى بها تعليمات فقط هى التى لها عناوين ( البداية تكون مجرد تسمية وليست تعليمة). الآن ، مواقع العناوين تكون منهجية ، العد التصاعدة كلما ذهبت إلى أسفل البرنامج ، إلا إذا ذكرت غير ذلك . يمكنك فعليا تسمية السطر التالى بعنوان معين ، وبالتالى فإنه فى السطر التالى سوف يستمر العد التصاعدى . بعد ذلك يأتى أمر المترجم "org" ، متبوعا برقم العنوان الذى ترغب فى إعطائه للسطر التالى .
مثال رقم 2 :
- الكود:
-
start 0043 bsf porta, 0 ; turns on LED org 3 ; makes the address number of the next ; instruction 3 0003 bsf porta, 1 ; turns on buzzer 0004 goto start ; loops back to start
لاحظ أن الأمر "org" لا يتم إعطاؤه عنوان . وهذا بسبب أنه ليس تعليمة من التعليمات الذى يقوم الميكروكونترولر PIC بتنفيذها ، بل هو ملاحظة من أجل المترجم لتخبر بلصق التعليمة التالية عند (على سبيل المثال) العنوان "0003" فى ذاكرة برنامج الميكروكونترولر PIC . المثال السابق لن يعمل ، لأنه بعد تنفيذ العنوان "0043" ، فإن الشريحة ستحاول تنفيذ العنوان "0044" ، ولكن بغض النظر عن ذلك فإن المثال يوضح مبدأ عمل الأمر "org" . الميكروكونترولر PIC16F54 له "512" عنوان ( 200h بالسداسى عشر) فى ذاكرة البرنامج الخاصة به ، وبعبارة أخرى أنه يمكن حفظ البرامج التى تصل إلى "512" تعليمة فى الطول .
أول تعليمة يتم تنفيذها عندما يتم تشغيل الميكروكونترولر PIC ( أو عند إعادة التعيين reset) هى المسماه "متجه إعادة التعيين" reset vector ، وتشير للعنوان 1FFh بالنسبة للميكروكونترولر PIC16F54 . ونحن نريد أن يبدأ الميمروكونترولر PIC من عند مكان فى البرنامج والذى قمنا سميناه start ، لذلك حتى نضمن أن التعليمة الموجودة عند العنوان 1FFh تكون goto start . فى القالب ، يتم استخدام "org" لوضع التعليمة goto start عند العنوان 1FFh ، مما يجعلها أول ما يتم تنفيذه . ومع ذلك ، فإن التعليمات اللاحقة يجب أن تبدأ العد من الصفر ، وبالتالى فإن الأمر التالى يكون "org 0 " . كتابة عنوان ذاكرة البرنامج بواسطة التعليمة يوضح كيف تعمل : - الكود:
-
org 1FF 01FF goto start org 0 ;=========== ; Subroutines: 0000 Init clrf porta ; 0001 clrf portb ; etc.
التعليمة الأولى التى يتم تنفيذها (goto start) تجعل الشريحة تذهب (تقفز) إلى الجزء من البرنامج المسمى "start" ، وبالتالى سوف يبدأ الميكروكونترولر PIC فى تشغيل البرنامج من المكان الذى قمت بكتابة start فيه . الأنواع المختلفة من الميكروكونترولر PIC لها متجهات إعادة تعيين مختلفة ، لذلك يجب تغيير قالب البرنامج وفقا لذلك . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الإثنين 28 أبريل 2014 - 18:50 | |
| الجزء الرابع :
- الكود:
-
;=========== ; Subroutines: Init clrf porta ; resets input/output ports clrf portb (clrf portc) movlw b’xxxx’ ; sets up which pins are inputs and which tris porta ; are outputs movlw b’xxxxxxxx’ tris portb (movlw b’xxxxxxxx’ tris portc) retlw 0 ;=============
هذا الجزء من القالب يحتوى على "الروتينات الفرعية" subroutines . وهى معقدة جدا وسيتم مناقشتها فى مرحلة لاحقة ، كل ما تحتاج أن تعرفه فى هذه اللحظة هو أن القسم المسمى (المعنون) "التهيئة" Init هو روتين فرعى ، ويتم الوصول إليه باستخدام تعليمة "الاستدعاء" call . يجب استخدام الروتين الفرعى Init لتهيئة كل ما يخص الميكروكونترولر PIC . مع شرائح الميكروكونترولر PIC16F5x ، فإن هذا ينطوى أساسا على اختيار أى أطراف الميكروكونترولر PIC يقوم بالعمل كمداخل inputs ، وأيها يقوم بالعمل كمخارج outputs . فى حالات أخرى مع أنواع PIC الأكثر تعقيدا ، سوف يتطلب تهيئة أكثر . لاحظ أن هذه التهيئة تم وضعها فى الروتين الفرعى Init فقط لجعله خارج طريق الجسم الرئيسى للبرنامج وبالتالى جعله أكثر إتقانا وأكثر سهولة فى القراءة . • فى البداية يتم استخدام التعليمة : - الكود:
-
clrf FileReg ;
هذه التعليمة "تمسح" clear ( تجعل بأصفار) العدد الموجود فى سجل ملف . يتم استخدام هذه التعليمة فى بداية الروتين الفرعى للتهيئة للتأكد من أن المنافذ يتم إعادة تعيينها reset عند بداية البرنامج .
• التعليمة الثانية :
- الكود:
-
movlw number ;
هذه التعليمة تحرك (تنقل) "حرفى" literal ( العدد الذى يلى التعليمة ) ، وهو فى الحالة الأولى b’xxxx’ ) إلى "السجل العامل" . • بعد ذلك تأتى التعليمة : tris لتأخذ العدد الموجود بالسجل العامل وتستخدمه لتحديد أى بتات المنفذ تعمل كمداخل وأيها يعمل كمخارج . الواحد "1" الثنائى سوف يناظر المدخل والصفر "0" الثنائى يناظر الخرج . الأطراف التى لا تستخدم من الأفضل أن تجعلها مخارج . مثال : باستخدام PIC16F54 ، وتوصيل الأطراف RA0, RA1,RA3 إلى مفاتيح ضاغطة ، وتوصيل شاشة سفن سيجمنت إلى الأطراف RB0 إلى RB6 ، وتوصيل الأطراف RA2 و RB7 إلى أجهزة تنبيه buzzers . ما الذى يجب أن تكتب لتحديد أطراف الدخل / الخرج بشكل صحيح ؟
- الكود:
-
movlw b’1011’ tris porta movlw b’00000000’ tris portb retlw 0
يوجد ملاحظتان : أولا : ليس هناك مواصفات للمنفذ Port C ( وهذا طبيعى لأن PIC16F54 لا يملك هذا المنفذ ) . ثانيا : تذكير بأن ترقيم البت يذهب من اليمين إلى اليسار .
تمرين : باستخدام PIC16F57 ، وتوصيل الأطراف RA1 و RA2 لتشغيل ليدات ، وتوصيل الأطراف RA0 و RA3 بحساسات لدرجة الحرارة ؟، والأطراف من RB0 إلى RB6 تتحكم فى شريحة منفصلة ، والطرف RB7 متصل بمفتاح ضاغط . والأطراف من RC1 إلى RC5 تحمل إشارات إلى الميكروكونترولر PIC من الكمبيوتر ، وباقى الأطراف الأخرى غير متصلة . ما الذى يجب أن تكتب فى قسم التهيئة Init من البرنامج ؟
يتم وضع التعليمة retlw فى نهاية الروتين الفرعى ، عادة مع صفر "0" بعدها . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الإثنين 28 أبريل 2014 - 18:53 | |
| الجزء الأخير : - الكود:
-
;============= ; Program Start: Start call Init Main (Write your program here) END
أخيرا الجزء الأخير من القالب يحمل "البداية" start ، حيث يبدأ البرنامج . • لاحظ أن الشىء الأول الذى يتم عمله هو إعدادات تهيئة مداخل ومخارج المنافذ . • بعد السطر call Init يوجد العنوان Main والذى بعده تقوم بكتابة البرنامج الخاص بك . • فى نهاية البرنامج يجب أن تكتب "النهاية" END . | |
|
| |
ibrahimabugabal نقيب
عدد الرسائل : 160 العمر : 50 تاريخ التسجيل : 15/04/2011
| موضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller الثلاثاء 29 أبريل 2014 - 7:51 | |
| صديقي شكرا ولكن هل يمكن أن تشرح طريقة flow code | |
|
| |
| مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller | |
|