منتدى التحكم الآلي والإلكترونيات (تأسس سنة 2008)
مرحبا بك عزيزي الزائر يشرفنا أن تقوم بالدخول إذا كنت من الأعضاء أو التسجيل إذا كنت زائرا ويمكنك إنشاء حسابك ببساطة ويمكنك التفعيل عن طريق البريد أو الانتظار قليلا حتى تقوم الإدارة بالتفعيل
منتدى التحكم الآلي والإلكترونيات (تأسس سنة 2008)
مرحبا بك عزيزي الزائر يشرفنا أن تقوم بالدخول إذا كنت من الأعضاء أو التسجيل إذا كنت زائرا ويمكنك إنشاء حسابك ببساطة ويمكنك التفعيل عن طريق البريد أو الانتظار قليلا حتى تقوم الإدارة بالتفعيل
منتدى التحكم الآلي والإلكترونيات (تأسس سنة 2008)
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
منتدى التحكم الآلي والإلكترونيات (تأسس سنة 2008)

Automatic control , PLC , Electronics , HMI , Machine technology development , Arabic & Islamic topics , Management studies and more
 
الرئيسيةالبوابة*أحدث الصورالتسجيلدخول

 

 مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالجمعة 25 أبريل 2014 - 17:32

مدخلك الشخصى إلى الميكروكونترولر PIC :
The PIC Microcontroller:
Your Personal Introductory Course
مقدمة :
الآن أصبح من الممكن برمجة الرقائق ( الشرائح – الدوائر المتكاملة) ، لقد ولت الأيام التى كان يتم فيها بناء الدوائر تحيط بالرقائق ( دوائر خارج الرقائق) ، والآن يمكننا أن نبنى رقائق تحيط بالدوائر ( دوائر داخل الرقائق ، أى مدمجة ) . هذه التكنولوجيا الآن لا حدود لها ويمكن صنع العديد من الدوائر المعقدة أصغر بعدة مرات من خلال استخدام هذه المتحكمات الدقيقة microcontrollers ، والتى يعتبر الميكروكونترولر PIC مثال ممتاز لها .
عندما تشترى الميكروكونترولر PIC ، فإنك تحصل على كتلة من السليكون عديمة الفائدة ، بإمكانيات مذهلة . هذه القطعة لن تفعل شيئا بدون البرنامج الذى تكتبه . تحت قيادتك ، تقريبا أى عدد أو مجموعة من الشرائح المنطقية العادية يمكن أن تقلص (تحشر) فى برنامج واحد والذى بدوره يوضع داخل الميكروكونترولر PIC .
الشكل التالى يوضح خطوات تطوير برنامج الميكروكونترولر PIC .

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  133


برمجة الميكروكونترولر PIC هو كل ما تقوم به مع الاعداد ، سواء كانت ثنائية ، أو عشرية ، أو سداسية عشر .
خدعة البرمجة تكمن فى جعل الشريحة تؤدى المهمة المعينة عن طريق تحريك (نقل) ومعالجة الأعداد. والأكثر من ذلك ، هناك مجموعة محددة من المهام التى يمكن أن تؤديها على الأعداد ، هذه المهام تعرف بالتعليمات instructions . يستخدم البرنامج تعليمات عامة بسيطة ، وأيضا تعليمات أكثر تعقيدا والتى تقوم بعمل أكثر من مهمة محددة . الشريحة سوف تخطو خلال التعليمات واحدة تلو الأخرى ، وتؤدى ملايين التعليمات كل ثانية ( وهذا يعتمد على تردد المذبذب المستخدم) ، وبهذه الطريقة تؤدى وظيفتها .

الأعداد فى الميكروكونترولر PIC يمكن أن تكون :
1- مستقبلة من المداخل ( باستخدام منفذ الدخل) .
2- مخزنة فى حجرات (أماكن - مواقع) خاصة داخل الرقاقة ، وتسمى سجلات الملف ‘file registers’
3- معالجة ( العمليات الحسابية مثل الجمع والطرح والعمليات المنطقية مثل AND وغيرها ) .
4- مرسلة للخارج خلال المخارج (باستخدام منفذ الخرج) .
وهذا هو أساسا كل ما فى برمجة الميكروكونترولر PIC ، لحسن الحظ هناك بعض الوظائف المفيدة الأخرى والتى يوفرها لنا الميكروكونترولر PIC مثل المؤقتات المدمجة بالشريحة ، أو بعض الأعلام التى تشير إلى ما إذا كان حدث أو لم يحدث شىء معين ، والتى تجعل الحياة أسهل بكثير .


http://fathallaabdelaziz.forumarabia.com/
الرجوع الى أعلى الصفحة اذهب الى الأسفل
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالسبت 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) .
الجدول التالى يوضح كيفية العد باستخدام الأنظمة المختلفة :

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  231

الرقم الثنائى 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

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالسبت 26 أبريل 2014 - 16:06

الخطوة الأولى : اختيار الميكروكونترولر PIC الخاص بك :
قبل البدء فى كتابة البرنامج ، سوف تكون فكرة جيدة أن تؤدى بعض المهام الابتدائية (الأولية) .
• فى البداية تحتاج إلى ملخص للمشروع ، ما الذى أنت عازم على فعله وما الذى يفعله بالضبط .
• الخطوة التالية هى رسم مخطط الدائرة الكهربية ، والبحث على وجه الخصوص فى مداخل ومخارج الميكروكونترولر . فكل جهاز PIC له عدد محدد من المداخل والمخارج ، يجب أن تستخدم هذا بوصفه واحدا من العوامل الحاسمة فى الجهاز المستخدم ، وبالتالى يجب عليك عمل قائمة بجميع المدخلات والمخرجات المطلوبة . فى البداية سوف نستخدم الميكروكونترولر PIC16F54 ( له حتى 12 مدخل / مخرج ) .

مثال رقم 1 :
ملخص المشروع :
"تصميم جهاز لحساب أو عد عدد مرات الضغط على مفتاح ضاغط وعرض القيمة على شاشة سفن سيجمنت ذات رقم واحد . عندما تصل القيمة إلى تسعة (9) يتم إعادته للصفر".
1- شاشة السفن سيجمنت تحتاج لسبعة مخارج .
2- المفتاح الضاغط يحتاج إلى مدخل واحد .
وبالتالى نحتاج إلى 8 أطراف دخل / خرج . فى هذه الحالة ، يمكن استخدام الميكروكونترولر PIC16F54 ، على سبيل المثال ، كما فى الشكل التالى :

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  330

مثال رقم 2 :
ملخص المشروع :
تصميم نظام لاختبار 16 مفتاح ضاغط وعرض رقم المفتاح المضغوط ( على سبيل المثال الرقم 11 ) على شاشتين سفن سجمنت .
يبدو من الوهلة الأولى أننا نحتاج إلى عدد غير قليل من المدخلات والمخرجات :
1- الشاشتين السفن سيجمنت تتطلب سبعة مخارج لكل شاشة ، وبالتالى يكون المجموع 14 .
2- المفاتيح الضاغطة تتطلب مدخل لكل مفتاح ، أى الإجمالى 16 .
وبالتالى فإن المجموع الكلى يكون 30 طرف دخل / خرج ، والذى يزيد عن الحد الأقصى لإمكانيات الميكروكونترولر PIC16F54 ، ومع ذلك فإنه لن يكون من الضرورى استخدامها ، لأن هذه القيمة يمكن خفضها بشكل ملحوظ .
عن طريق عملية تعرف بعملية "المسح" scan فإن المفاتيح الضاغطة ، يمكن قراءتها جميعا باستخدام 8 أطراف فقط (8 صفوف و 8 أعمدة) ، وشاشتى السفن سيجمن يمكن التحكم بهما بواسطة 9 أطراف فقط ( 7 بيانات ، و 2 تحكم) . النتيجة أننا نحتاج إلى إجمالى 17 طرف دخل / خرج ، لذلك يمكن استخدام الميكروكونترولر PIC16F57 ، على سبيل المثال . الشكل التالى يبين كيفية تنفيذ ذلك :

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  429


• بجعل الطرف المسمى RC0 (صف) عند المنطق "1" (+5V) والأطراف RC1,RC2,RC3 (باقى الصفوف) عند المنطق صفر "0"(0V) ، يتم تمكين المفاتيح 13 إلى 16 .
• بعد ذلك يمكن اختبار كل مفتاح من هذه المفاتيح على حدة عن طريق اختبار الأطراف من RC4 إلى RC7 (الأعمدة) . وبالتالى عن طريق جعل الأطراف من RC0 إلى RC3 عند المنطق واحد "1" واحد تلو الآخر ، يمكن اختبار كل المفاتيح الضاغطة بشكل فردى .

عملية مسح شاشات السفن سيجمنت تنطوى أساسا على :
• عرض عدد على أحد الشاشات لفترة قصيرة ، ثم بعد ذلك يتم فصل off هذه الشاشة أثناء عرض عدد آخر على الشاشة الأخرى .
• الأطراف من RB0 إلى RB6 تحتوى على شفرة البيانات من أجل كل من الشاشتين (على التوازى) ، وعن طريق جعل الطرف RA0 أو الطرف RA1 عند المنطق واحد "1" ، يمكنك تشغيل on أى من الشاشتين بشكل منفرد . وبالتالى فإن العروض تكون فى الواقع وامضة (متقطعة) "تشغيل و فصل" on / off بسرعة عالية ، فتعطى الانطباع (خداع بصرى) بأنهما يكونان فى حالة تشغيل on مستمر .

تمرين :
حدد الميكروكونترولر المناسب لمشروع يستخدم من أجل عد عدد مرات الضغط على مفتاح ضاغط وعرض النتيجة على أربع شاشات سفن سيجمنت ، أى العد سوف يكون حتى "9999" .

الخطوة التالية : إنشاء مخطط السريان (الانسياب) flowchart :
الرجوع الى أعلى الصفحة اذهب الى الأسفل
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالسبت 26 أبريل 2014 - 17:18

الخطوة التالية : إنشاء مخطط السريان (الانسياب) flowchart :
بعد تحديد نموذج معين للميكروكونترولر PIC ، فإن الخطوة التالية هى إنشاء مخطط الانسياب . هذا المخطط يشكل العامود الفقرى للبرنامج ، ويكون أسهل بكثير كتابة البرنامج من مخطط الانسياب عن كتابته من الصفر (البداية) .
مخطط الانسياب يجب أن يظهر الخطوات الأساسية التى يجب أن ينفذها الميكروكونترولر PIC ، ويعرض بناء لهيكل برنامج واضح . البرنامج ممكن أن يكون به "قفزات" jumps أثناء تنقل الميكروكونترولر خلال البرنامج سطر تلو السطر ، فبدلا من تنفيذ التعليمة التالية ، فإنه يقفز إلى جزء آخر من البرنامج . جميع البرامج تتطلب نوعا من القفز ، كما أن البرامج تصنع حلقة ، لا يمكن أن تنتهى .

مثال رقم 1 :
الشكل التالى يوضح مخطط انسياب لبرنامج ببساطة يحافظ على ليد LED فى حالة تشغيل on :

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  525

صندوق "الإعداد" setup يمثل بعض الخطوات التى يجب اتخاذها كجزء من بداية كل برنامج ، وذلك لإعداد الوظائف المختلفة ، سوف نتناولها لاحقا .
يجب استخدام "مستطيلات بأركان مستديرة" من أجل صناديق البداية start والنهاية finish .
يمكن أيضا استخدام القفز الشرطى ( بصناديق على شمل معين ) : "إذا حدث شىء ما ، عندئذ يتم القفز إلى مكان ما " .

مثال رقم 2 :
الشكل التالى يوضح مخطط انسياب لبرنامج من أجل تشغيل ليد عند الضغط على مفتاح ضاغط :

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  626

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

تمرين :
ارسم مخطط انسياب يمثل البرنامج المطلوب لعمل وميض لليد ، تشغيل وإيقاف كل ثانية ( on واحد ثانية و off واحد ثانية) ، وجهاز تنبيه buzzer يصدر صوتا لمدة واحد ثانية كل خمس ثوانى .

الخطوة التالية : كتابة البرنامج :
الرجوع الى أعلى الصفحة اذهب الى الأسفل
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالأحد 27 أبريل 2014 - 3:28

الخطوة التالية : كتابة البرنامج :
بمجرد اكتمال مخطط الانسياب ، يجب عليك تحميل "قالب برنامج الميكروكونترولر PIC" على جهاز الكمبيوتر ( سوف نتناول ذلك قريبا) وكتابة البرنامج الخاص بك به . كل هذا يمكن القيام به ببرنامج نصوص بسيط مثل المفكرة Notepad والذى يأتى مع النوافذ (أو أى حزمة تطوير أخرى مناسبة ) .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالأحد 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالأحد 27 أبريل 2014 - 9:37

سجلات الملف The file registers :
"مفتاح" الميكروكونترولر PIC هو "سجلات الملف" file registers الخاصة به . إذا فهمتها تكون قد قطعت نصف الطريق . تخيل أن الميكروكونترولرPIC كأنه "خزانة ملفات" (مثل الشانون) ، به العديد من الأدراج ، كل درج يحتوى على عدد ذو 8 بت ( بايت) . هذه الأدراج هى سجلات الملف . بالإضافة إلى سجلات الملف هذه يوجد "السجل العامل" working register . هذا السجل يكون مختلف لأنه ليس جزءا من خزانة الملفات . هذا السجل ضرورى لأنه لا يمكن إلا فتح درج واحد فقط (أى سجل ملف واحد فقط) فى نفس الوقت . لذلك ، تخيل نقل عدد من أحد الأدراج إلى درج آخر . أولا ، تقوم بفتح الدرج الأول ، وأخذ العدد خارجه ثم إغلاقه ، والآن ... أين يكون العدد ؟ الإجابة تكون أنه فى "السجل العامل" ، كنوع من الجسر bridge (قنطرة عبور) بين اثنين من سجلات الملف ( فكر فيه على أنه العامل الذى يقف أمام خزانة الملفات لخدمتها) . يتم حفظ العدد مؤقتا فى السجل العامل حتى يتم فتح الدرج الثانى ، حيث يتم وضع العدد بهذا الدرج .

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  723

وكما ترى من الشكل أعلاه ، يتم تخصيص (تعيين) رقم معين لكل سجل ملف . يجب عليك استدعاء سجلات الملف بأسمائها الفعلية عند كتابة البرنامج ( لأن ذلك يكون أسهل بكثير فى المتابعة) ، ومن ثم فإن المترجم (الأسمبلر) سوف يترجم هذه الأسماء إلى أرقام مرة أخرى عند إنشاء الملف السداسى عشر .
لا تقلق بشأن أسماء ووظائف سجلات الملف هذه ، فسوف يتم مناقشتها فى وقت لاحق .
ومع ذلك ، يمكن تلخيصها فيما يلى :
• السجلات "00" إلى "06" لها وظائف محددة "أغراض خاصة" .
• والسجلات من "07" إلى "1F" هى سجلات "أغراض عامة" ، والتى يكون لك السيطرة الكاملة
عليها . يمكنك استخدام سجلات ملف الأغراض العامة لتخزين الأرقام ويمكن أن تعطى لها الاسم الذى تريده . وبطبيعة الحال سوف تحتاج إلى إخبار المترجم كيف يترجم الأسماء الخاصة بك إلى أرقام .
على سبيل المثال ، إذا كنت تريد استخدام سجل الملف "0C" لتخزين عدد الساعات التى مرت ، فربما كنت تريد أن تسميها باسم مثل "الساعات" Hours . لكن ، عندما يعمل المترجم خلال البرنامج الخاص بك ، فإنه لن يفهم ما قصدته بكلمة ‘Hours’ إلا إذا كنت قد أعلنته أولا . سوف تعرف كيف وأين تعلن سجلات الملف الخاصة بك قريبا ، عندما ننظر فى قالب البرنامج .
قبل ذلك ، نحتاج لمقدمة موجزة للسجلات "05" و "06" :
المنافذ ports هى الوصلات بين الميكروكونترولر PIC والعالم الخارجى ، فهى مدخلاته inputs ومخرجاته outputs . المنفذ الأول ، Port A ، لديه أربعة بتات فقط ، أى أنه يحتفظ بنبل nibble بدلا من بايت كامل ، وهو السجل الوحيد الذى يفعل ذلك . كل بت bit تقابل طرف دخل / خرج خاص ، لذلك فإن البت bit 0 بالمنفذ Port A تقابل الطرف المسمى RA0 ( الطرف 17 فى PIC16F54 والطرف 6 فى PIC16F57 كما فى الشكل أدناه ) .

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  820

ولذلك عندما تكتب عدد 8-bit إلى المنفذ Port A ، يتم تجاهل الأربعة بتات ذات القيمة الأعلى ، وكذلك عندما تقرأ عدد 8-bit من المنفذ Port A ، يتم قراءة الأربعة بتات ذات القيمة الأعلى كأصفار "0" .
على سبيل المثال ، دعنا نقول أن RA0, RA1, RA2 , RA3 تعمل كمداخل inputs ، وهناك مفتاح ضاغط بين كل دخل والجهد (+5 V) . إذا تم الضغط على جميع هذه المفاتيح الضاغطة ، فإن العدد العشرى "15" ( العدد الثنائى "1111") سوف يكون فى المنفذ Port A .
وعلى العكس ، إذا كانت الأطراف تعمل كمخارج وتم توصيلها جميعا إلى ليدات كما فى الشكل أدناه ، فإن تحريك (نقل) العدد "15" إلى المنفذ Port A سوف يؤدى إلى تشغيل الليدات الأربعة .

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  920

تمرين :
باعتبار الترتيب الموجود بالشكل إعلاه ، فمن أجل إنشاء أضواء متحركة (جراى) chase مكونة من أربعة ليدات ( كما بالشكل أدناه) ، يجب نقل سلسلة من الأعداد إلى المنفذ Port A واحد تلو الآخر . فما هى هذه الأعداد (مطلوب الإجابة بالثنائى والعشرى والسداسى عشر) ؟

المنفذ Port B ( والمنفذ Port C بالميكروكونترولر PIC16F57 ) هو ببساطة منفذ دخل / خرج آخر ، تماما مثل المنفذ Port A فى جميع النواحى ما عدا أن لديه 8 بتات ( أى يحفظ بايت) . المنفذ Port C بالميكروكونترولر PIC16F57 هو السجل "07" ، لذلك لاحظ أن سجلات الأغراض العامة فى هذا الجهاز تبدأ من "08" فصاعدا .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
F.Abdelaziz
عقيد
عقيد



عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالأحد 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالأحد 27 أبريل 2014 - 17:04

الآن دعونا ننظر فى "قالب البرنامج" ، مع الوضع فى الاعتبار أن هذا ما هو إلا مثال بسيط وقد ترغب فى إضافة أو إزالة عناوين من أجل القالب الشخصى الخاص بك . بشكل عام ، مع البرنامج بأكمله ، تكون فكرة جيدة استخدام الفراغات بين الأشياء ، وتقسيم الأقسام ذات الصلة بسطور . أقترح إنشاء ذلك بعلامة التساوى (=) ، وبيطبيعة الحال تحتاج للفاصلة المنقوطة (Wink فى بداية كل سطر .

الكود:

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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالإثنين 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالإثنين 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالإثنين 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالإثنين 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالإثنين 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  Empty
مُساهمةموضوع: رد: مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller    مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller  Emptyالثلاثاء 29 أبريل 2014 - 7:51

صديقي شكرا ولكن هل يمكن أن تشرح طريقة flow code
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
مدخلك الشخصى إلى الميكروكونترولر Your Personal Introductory Course :The PIC Microcontroller
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» كتاب PIC Microcontroller - Know it All
» المايكروكونترولر - المفهوم الأساسي Microcontroller
» ما هو الميكروكونترولر PIC
» microcontroller MP4040
» Programing Microcontroller

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى التحكم الآلي والإلكترونيات (تأسس سنة 2008) :: منتديات التحكم الآلي والإلكترونيات :: منتدى الميكروكنترولر Micro Controller-
انتقل الى: