|
تحميل كتب مجانية, مراجع للتحميل كتب مجانية, كتب عربية للتحميل, كتب ألكترونية, كتب اجنبية, كتب تعليمية, مراجع عربية,كتب للتحميل, كتب للقراءة. |
| LinkBack | أدوات الموضوع | انواع عرض الموضوع |
#16
| ||
| ||
تمهيد كتابة برنامجنا الأول ثم بناءة وتصحيحة وعمل المحاة على برنامج بروتيس . لأن هذا هو برنامجنا الأول فسوف يكون بسيط وقصير. سوف نكتب برنامج يجعل ليد يومض بفترات زمنية متساوية وسوف يكون لدينا الحالة المنطقية “1”أو الحالة المنطقية “0” والتى تجعل الليد فى حالة توصيل ON أو حالة فصل OFF . 1- هنا معلومات حول الدائرة باستخدام برنامج بروتيس :
2- الخطوة التالية هى فتح برنامج MikroC PRO . نظرا لأننا سوف نستخدم الميكروكونترولر PIC16F877 فعند فتح مشروع جديد تأكد من اختياره من قائمة الأجهزة . يمكن تحديد التردد بالقيمة 8MHz . بعد فتح المشروع الجديد سوف ترى منطقة العمل كما فى الشكل السفلى ولن نستخدم أى وظائف خاصة ومن ثم لا يتم ضم أى مكتبة . 3- الآن كما ترى فى حقل النص يقوم البرنامج بإنتاج الكود التالى : void main() 4- الخطوة التالية التى يجب أن نفعلها هى تعريف منافذنا Ports .وهذ يعنى أنه يجب علينا اختيارها كمداخل أو كمخارج . الأمر التالى يجعل المنفذ PORTB كمخارج . TRISB=0x00; الحرف الموجود بعد TRIS يبين أى المنافذ نريد لن يكون كمداخا أو كمخارج (بمعنى التحكم فى المنافذ) . فإذا أردنا اختيار المنفذ PORTA فسوف نكتب TRISA .الأعداد الموجودة بعد الأمر تعرف ما إذا كان المنفذ سوف يكون مدخل أو مخرج . هنا ماذا فعلنا ؟ . حرف xالموجود بين الأعداد يبين أن هذه الأعداد تكون بالترقيم السداسى عشر . إذا أردنا أن تكون بالترقيم الثنائى يجب علينا كتابة 0b ثم الأعداد . على سبيل المثال : 0b00010001 .الطرف الأول يسمى Pin0 وهو أول خانة من اليسار (تسمى الخانة ذات الرتبة الأقل )والطرف الثامن يسمى Pin7 وهو آخر خانة (تسمى الخانة ذات الرتبة الأعلى ) .إذا تم تعريف الطرف بالصفر 0 هذا يعنى أن هذا الطرف يكون مخرج . وإذا تم تعريف الطرف بواحد 1 فهذا يعنى أن الطرف مدخل . ومن ثم فى مثالنا 0b00010001يكون الطراف الأول Pin0 والطرف الخامس Pin4 مداخل وباقى الأطراف مخارج . لكن فى برنامجنا لن نستخدم مداخل لذلك جعلنا جميع الأطراف مخارج . باستخدام المحول السريع Quick Converterيمكنك التحويل من الترقيم السداسى عشر ألى الترقيم الثنائى والعكس. 5- بعد ذلك سوف نقوم بعمل دورة (حلقة) لا نهائية (غير منتهية) . بفضل هذه الدورة اللانهائية فإن برنامجنا لن يتوقف عن العمل وأيضا متحكمنا . يمكننا استخدام أحد تعبيرات الدورات (الحلقات) الأتية :
__________________ angel4angel4angel4angel4angel4 |
#17
| ||
| ||
- بعد الدخول فى الدورة (الحلقة) الغير منتهية أول شىء نقوم بعمله هو توصيل ON الليد . PORTB=0x01; هذا الأمر يعرف حالة أطراف المنفذ . كيف يتم ذلك ؟ : PORTB تبين إننا بصدد تغيير حالات أطرافه . العدد السداسى عشر 0x01 يساوى بالترقيم الثنائى 0b00000001 والذى يعنى أن الطرف الأول Pin0 فقط سوف يكون فى الحالة المرتفعة 1 . والمنطق "1" يعنى أنه سوف يتواجد جهد بالقيمة 5V على الطرف Pin0 .وهذا ما نحتاجه لتوصيل ON الليد لأنه متصل بالطرف Pin0 .أذا أردنا جعل الأطراف رقم 1,2,5,6 على سبيل المثال فى الحالة المنطقية "1" نكتب 0b01100110 والتى تكافىء 0x66 بالترقيم السداسى عشر . 7- التأخير Delay_ms(250); بهذا الأمر سوف نجعل الميكروكونترولر ينتظر 250ms قبل أن يغير من حالات المنافذ أو من تكملة الأمر التالى . بعد أن يرى الميكروكونترولر هذا الأمر يتوقف لفترة زمنية قدرها 250 ملى ثانية ولا يقوم بتكملة أى أمر آخر . فى حالتنا سوف يظل الليد فى حالة التوصيل ON (مضىء) لفترة 250 ملى ثانية ثم بعد ذلك يتحول إلى وضع الفصل OFF (ينطفىء) . إذا لم نكتب هذا الأمر فسوف يقوم الميكروكونترولر بعمل توصيل ON و فصل OFF لليد بسرعة لدرجة إننا لن نتمكن من رؤية أى شىء.هنا يمكننا تغيير زمن التأخير الموجود داخل الأقواس . يمكننا جعله أكبر أو أقل . كما يمكننا استخدام الأمر Delay_us(time); لعمل تأخير بالميكروثانية .8- PORTB=0x00; بواسطة هذان الأمران سوف نقوم بجعل الليد فى الحالة OFF (ينطفىء) والانتظار فى هذه الحالة لفترة 250 ملى ثانية . بعد انتهاء هذه الفترة يعود البرنامج مرة أخرى إلى بداية الدورة ويبدأ من جديد . Delay_ms(250); 9- أصبح برنامجنا جاهزا . ملخص البرنامج :
10- الآن يجب علينا بناء البرنامج . لعمل ذلك اختار القائمة وانقر Build >> Build أو مباشرة من شريط الأدوات اختار Build . بعد إكتمال البناء سوف نرى بعض الرسائل فى صندوق الرسالة Message Box .هناك بعض المعلومات عن جاهزية ready ملف .hex وإذا كان هناك أى أخطاء سوف يتم عرضها . لكن بسبب عدم وجود أخطاء فلن نرى رسائل الأخطاء . لذلك سوف يكون لدينا الملف .hex والذى يجب وضعه بالميكروكونترولر أو استخدامه فى محاكات الدائرة .
__________________ angel4angel4angel4angel4angel4 |
#18
| ||
| ||
11- هنا سوف نقوم بتشغيل Run البرنامج ومشاهدة عمله . بالقيام بتصحيح البرنامج debugging يمكننا مشاهدة طريقة تغيير حالة بعض المتغيرات وكم ثانية يأخدها البرنامج لإنهاء أى أمر وبعض المعلومات المفيدة . لعمل ذلك اختار القائمة وانقر Run >> Start Debugger وسوف ترى القائمة الموضحة بالشكل التالى بالجانب الأيمن لحقل النص . بالنقر على F7 يمكننا مشاهدة خطوة بخطوة فعل كل أمر والتغيرات التى تحدث . 1- من القائمة العلوية يمكننا اختيار أى المتغيرات لمراقبته . يمكننا اختيار أكثر من متغير واحد . بعج اختيارها سوف تظهر فى صندوق أسفل هذه القائمة . هناك يمكننا مشاهدة المعلومات حول قيمة المتغير وأين يقع فى ذاكرة البرنامج . 2- من القائمة التالية يمكننا الحصول على المعلومات حول الزمن والدورات والتى نحتاجها لتكملة أحد الأوامر أو البرنامج بالكامل . 3- الأن نحن على الاستعداد . الشىء الوحيد المتبقى هو اختبار البرنامج . نفتح برنامج المحاكاة والدائرة التى تم رسمها . عندئذ نحتاج إلى تحميل الملف .hex على الميكروكونترولر . فى برنامج بروتيس عندما ننقر بالزر الأيمن للماوس على الميكروكونترولر ونختار Edit Properties سوف نرى القائمة المبينة بالشكل التالى . فى حقل Program File نقوم بالتصفح وتحميل برنامجنا .hex . سوف نقوم أيضا بتغيير التردد Processor Clock Frequency ليصبح بالقيمة 8MHz . 4- هنا نبدأ المحاكاة . أول شىء سوف نشاهده هو أن الليد يكون مضىء ON . بعد فترة ينطفىء الليد OFF . تم تتكرر العملية ON و OFF . يمكننا تغيير زمن التأخير فى برنامجنا , يمكننا جعله 500 أو 1000 ملى ثانية لتكون عملية التوصيل والفصل أبطأ . 5- الخطوة الأخيرة : النهاية
__________________ angel4angel4angel4angel4angel4 |
#19
| ||
| ||
__________________ angel4angel4angel4angel4angel4 |
#20
| ||
| ||
__________________ angel4angel4angel4angel4angel4 |
مواقع النشر (المفضلة) |
| |
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO | ظل الكيو كو شن كاي | تحميل كتب مجانية, مراجع للتحميل | 52 | 08-23-2021 03:32 AM |
لمترجم الفوري | تحميل المترجم الفورى 2009 | برنامج المترجم الفوري كامل | amrsaid2007 | أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه | 2 | 10-12-2009 11:52 PM |