برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C : المفاهيم الأساسية للغة السى :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C : المفاهيم الأساسية للغة السى :
برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C :
المفاهيم الأساسية للغة السى :
الميزة الرئيسية لاستخدام اللغات عالية المستوى ( لغة السى فى حالتنا) هى عدم تفاعل المصمم مع الهاردوير ، ومن ثم لا يحتاج لمعرفة تفاصيل كثيرة ، وهكذا فإن المصمم يكرس وقته فى المقام الأول لحل منطق المشكلة وليس للتفاصيل الداخلية لشريحة الميكروكونترولر نفسه .
مكونات النموذج الأساسى لبرنامج لغة السى :
توجد أربعة عناصر فى برنامج لغة السى وهى :
• التعليقات Comments .
• توجيهات قبل المعالج Preprocessor Directives .
• إعلانات البيانات Data Declarations .
• الدوال Functions .
التعليقات Comments :
يتم كتابة تعليقات فى برنامج المصدر ، حيث تسمح للمبرمج أو غيره لفهم معنى ما يجرى القيام به . من المفيد عمليا كتابة تعليقات على جميع السطور لأنه بعد فترة من الزمن قد لا يتذكر حتى المبرمج نفسة كل شىء كان قد فكر فيه وقت كتابة البرنامج . يتجاهل المترجم كل شىء يتم كتابته فى شكل تعليق .
يوجد نوعان من التعليقات :
• تعليق يحتل سطر واحد ، هذا النوع يبدأ بالأحرف "// " . فى هذه الحالة يتجاهل المترجم كل ما يكتب بعد هذه الأحرف وحتى نهاية السطر المكتوبة فيه .
مثال :
x = x + 2; // Adds 2 to the variable x
• تعليق يحتل سطور عديدة ، هذا النوع يبدأ بالأحرف "/*" وينتهى بالأحرف "*/" . فى هذه الحالة يتجاهل المترجم كل ما يكتب بين أحرف البداية واحرف النهاية .
مثال :
x = x + 2;
/ * Time ++;
A = SQRT (25); * /
x = 0;
فى المثال أعلاه ، فى وقت البرمجة يتم تجاهل السطر Time ++ وكذلك السطر A=SQR (25); .
توجيهات قبل المعالج :
توجيهات "قبل المعالج" Preprocessor
توجيهات "قبل المعالج" Preprocessor
" قبل المعالج" هو جزء لا يتجزأ من مترجم لغة السى وظيفته التعرف على تعليمات (أوامر) المعالج وتنفيذها ، هذه التعليمات عبارة عن تعليمات خاصة والتى لا تنتمي إلى لغة السى ولكنها جزء من حزمة البرمجيات التى تأتى مع المترجم . كل أمر من أوامر "قبل المعالج" يبدأ برمز الشباك (الهاش) '#' . قبل ترجمة البرنامج يقوم المترجم بتنشيط (تفعيل) جزء "قبل المعالج" والذى يأمر البرمجيات للبحث عن هذه الرموز (العلامات #) ، فإن وجد إحداها فأن "قبل المعالج" ببساطة يستبدلها بنص آخر تبعا لنوع الأمر ، حيث يمكن أن تكون محتويات ملف أو مجرد سلسلة قصيرة من الأحرف . بعد ذلك ، تبدأ عملية الترجمة . يمكن أن توجد تعليمات "قبل المعالج" في أى مكان في برنامج المصدر ، وهى تشير فقط إلى جزء من البرنامج يلى ظهورها وحتى نهاية البرنامج .
التوجيه # include
فى العديد من البرامج يتم تكرار نفس المجموعة من الأوامر لعدة مرات . من أجل تسريع عملية كتابة البرنامج ، عادة ما يتم تجميع هذه الأوامر والإعلانات في ملفات خاصة والتي يمكن إدراجها (ضمها) بسهولة في البرنامج باستخدام هذا التوجيه . لنكون أكثر دقة ، الأمر #include يستورد نص بملف موجود فى مكان آخرمحدد سلفا ، بغض النظر عن ما هو عليه (أوامر ، وتعليقات و.. الخ) ، إلى البرنامج.
مثال :
لكى نخبر المترجم بنوع جهاز الميكروكونترولر المستخدم فى البرنامج نستخدم الصيغة التالية :
- الكود:
#include <16F877A.H>
حيث أن الملف 16F877A.H يحتوى على التعريفات والمسميات الخاصة بالميكروكونترولر PIC16F877A .
التوجيه # define
التوجيه (الأمر) #define يسمح باستبدال مسميات فى هذا البرنامج بقيمها ، وبالتالى فإنه يوفر بديل نصى بسيط للمعرفات منذ لحظة التعريف وما يليها .
مثال :
- الكود:
#define PI 3.14
عند الترجمة فإن المترجم ، بناء على هذا التوجيه ، كلما وجد التسمية PI يقوم باستبدالها بالقيمة 3.14 .
" />
رد: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C : المفاهيم الأساسية للغة السى :
التوجيه #fuses
يستخدم هذا التوجيه لتعيين مصهرات التكوين (التهيئة) configuration fuses فى برامج لغة السى للميكروكونترولر PIC .
مثال لصيغة التوجيه :
- الكود:
#fuses XT,PUT,NOWDT,NOPROTECT,NOBROWNOUT
الخيارات المعرفة فى ملف الرأس للميكروكونترولر PIC16F877 هى :
- الكود:
Clock Type Select LP, XT, HS, RC
Watchdog Timer Enable WDT, NOWDT
Power Up Timer Enable PUT, NOPUT
Program Code Protect PROTECT, NOPROTECT
In Circuit Debugging Enable DEBUG, NODEBUG
Brownout Reset Enable BROWNOUT, NOBROWNOUT
Low Voltage Program Enable LVP, NOLVP
EEPROM Write Protect CPD, NOCPD
Program Memory Write Protect WRT_50%, WRT_25%,
(with percentage protected) WRT_5%, NOWRT
الحالة الافتراضية للمصهرات إذا لم يتم تضمين هذا التوجيه هى كما يلى :
- الكود:
#fuses RC,WDT,NOPUT,BROWNOUT,LVP,NOCPD,NOWRT
هذه الحالة تناظر لتحديد جميع بتات سجل التكوين بالحالة المرتفعة .
ملحوظة هامة :
يمكن تأجيل تحديد بتات التكوين حتى يحين وقت البرمجة باستخدام برمجيات جهاز البرمجة .
التوجيه #use delay (clock = 4000000)
البرنامج المذكور أعلاه يستعرض دالة التأخير . إذا لم تتواجد هذه الدالة ، فإن الحلقة سوف يتم تنفيذها فى عدة ميكروثانية ، حيث أن كل تعليمة تأخذ 4 ميكروثانية عند معدل الساعة 1 ميجا هرتز ، ومن ثم فإن وميض الليد لن يمكن ملاحظته . التأخير المطلوب (بالملى ثانية) يعطى كبارامتر للدالة ، وبالرجوع لمكتبة الدالة المتاحة عند بداية البرنامج بالتوجيه #use . هذا التوجيه يخبر المترجم لإيجاد مكتبة الدالة delay_ms() . يجب إعطاء سرعة الساعة فى هذا المتجة حتى يتم حساب التأخير بشكل صحيح داخل الدالة .
هام :
علامة نهاية العبارة :
مترجم لغة السى ليس محددا بالسطر (كما هو الحال فى لغة الأسمبلى) . فمترجم لغة السى يبحث عن علامة انتهاء العبارة أو كتلة (مجموعة) العبارات . هذه العلامة هى الفاصلة المنقوطة ";" فى حالة العبارة الواحدة أو القوس المجعد "}" فى حالة كتلة العبارات .
مثال :
- الكود:
x=x+25;
x=
x+25
;
فى هذا المثال ، الطريقتان صحيحتان ، السبب علامة انتهاء العبارة ";" فلا تنسى أن تكتبها عند نهاية كل عبارة حتى لا تحصل على أخطاء عن ترجمة البرنامج .
يوجد العديد من توجيهات قبل المعالج والتى سوف نتناولها تباعا فى حينها .
مواضيع مماثلة
» برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C برنامجك الأول :
» تدريبات على البرمجة بلغة السى مع المترجم CCS C التدريب الأول الميكروكونترولر 8 طرف EX_8PIN
» مراجعة : اذكر مع الشرح ، ما هى المفاهيم الأساسية للبرمجة بلغة السى الموجودة فى هذا البرنامج البسيط ؟
» برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
» أساسيات برمجة السلسلة PIC16 بلغة السى مع المترجم CCS C :
» تدريبات على البرمجة بلغة السى مع المترجم CCS C التدريب الأول الميكروكونترولر 8 طرف EX_8PIN
» مراجعة : اذكر مع الشرح ، ما هى المفاهيم الأساسية للبرمجة بلغة السى الموجودة فى هذا البرنامج البسيط ؟
» برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
» أساسيات برمجة السلسلة PIC16 بلغة السى مع المترجم CCS C :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى