برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C برنامجك الأول :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C برنامجك الأول :

مُساهمة من طرف Admin في الأحد أبريل 19, 2015 8:40 pm

برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C
برنامجك الأول :
اتبع الخطوات التالية :
• قم بتشغيل برمجيات المترجم CCS C  ، يظهر لك بيئة التطوير المتكاملة . إذا وجدت أى ملف مفتوح انقر على File > Close All لغلق جميع الملفات .




• انقر على File > New > Source File لإنشاء ملف مصدر جديد . تظهر لك نافذة الحفظ باسم Save As .  




• قم بتحديد مسار المجلد الذى ترغب فى حفظ الملفات به ، وأدخل الاسم المناسب للملف ، على سبيل المثال EX1 .




• اكتب البرنامج التالى :

الكود:


#include <16f877.h>
#fuses HS,NOLVP,NOWDT,PUT
#use delay(clock=20000000)

#define GREEN_LED PIN_A5
Void main() {
while(TRUE) {
utput_low(GREEN_LED);
delay_ms(1000);
output_high(GREEN_LED);
delay_ms(1000);
}
}
• انقر على القائمة Compile ثم اختار Compile لترجمة البرنامج وتأكد من صحة الترجم .






ملاحظات مختصرة :
• فى الثلاثة سطور الأولى من البرنامج : يتم تعريف بيئة الهاردوير الأساسية ، فهى توضح أن الميكروكونترولر المستخدم هو PIC16F877A ، وأنه يعمل بساعة خارجية عند تردد 20 Mhz . هذه السطور تسمى توجيهات قبل المعالج ( سوف نتعرف عليها لاحقا) .
• فى السطر الرابع : يستخدم التوجيه #define فى استخدام التسمية GREEN_LED  فى البرنامج بدلا من تسميتة PIN_A5 ، وذلك لتحسين قابلية قراءة البرنامج .
• فى السطر الخامس : الصيغة void main () تسمى الدالة الرئيسة ، وهى تشير إلى مكان بداية البرنامج وتضم بين قوس بدايتها "{" وقوس نهايتها "}" كتلة البرنامج الرئيسى الذى سوف يتم تنفيذه (سوف نستعرض الدوال بشكل مفصل لاحقا) .
• فى السطر السادس : استخدام العبارة “while (TRUE)”  ما هى إلا وسيلة بسيطة لإنشاء حلقة لا تتوقف مطلقا .
• فى السطر السابع : الأمر (أو الدالة)  output_low(GREEN_LED) يتسبب فى جعل الطرف المتصل بالليد فى الحالة المنخفضة (0V) .
• فى السطر الثامن : الأمر delay_ms(1000)  تتسبب فى تأخير زمنى (إنتظار) لفترة واحد ثانية (1000 ملى ثانية ) .
• فى السطر التاسع : الأمر output_high(GREEN_LED)  يتسبب فى جعل الطرف المتصل بالليد فى الحالة المرتفعة (+5V) .
• فى السطر العاشرة : الأمر delay_ms(1000)  تتسبب فى تأخير زمنى (إنتظار) لفترة واحد ثانية (1000 ملى ثانية ) .
• فى السطر الحادى عشر : قوس نهاية حلقة While ، حيث يقفز تنفيذ البرنامج إلى مكان قوس البداية مرة أخرى .
• السطر الثانى عشر : قوس نهاية الدالة الرئيسية main .

النتيجة : يومض الليد ، أى يضىء لمدة ثانية ويطفىء لمدة ثانية ، ويتكرر ذلك بصفة مستمرة .

الآن إلى المحاكاة ببرنامج بروتيس Proteus :
الدائرة الكهربائية :

Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى