برنامجك الأول تمهيد كتابة برنامجنا الأول ثم بناءة وتصحيحة وعمل المحاة على برنامج بروتيس . لأن هذا هو برنامجنا الأول فسوف يكون بسيط وقصير. سوف نكتب برنامج يجعل ليد يومض بفترات زمنية متساوية وسوف يكون لدينا الحالة المنطقية “1”أو الحالة المنطقية “0” والتى تجعل الليد فى حالة توصيل ON أو حالة فصل OFF . 1- هنا معلومات حول الدائرة باستخدام برنامج بروتيس :- يتم توصيل الأطراف OSC1 و OSC2 بكريستال كوارتز ومكثفين 22Pf لتوليد نبضات الساعة اللازمة لعمل الميكروكونترولر . سرعة الميكروكونترولر تعتمد على تردد الكريستال , كلما زاد التردد زادت السرعة ولكن يجب ألا تزيد عن 20MHz (الحد الأقصى لعمل الميكروكونترولر ) .
- يجب أن توصل مقاومة بأحد الأطراف وليكن الطرف RB0 ثم نوصل بعدها الليد للطرف الآخر للمقاومة . يمكن إيجادج قيمة المقاومة من العلاقة R=(Vm – Vl) / I حيث Vm جهد خرج الميكروكونترولر وهو 5V و Vl هو جهد تشغيل الليد وهو 2V و I التيار اللزم لتشغيل الليد وهو يساوى 20mA كحد أقصى . نتيجة العملية الرياضية تكون 150Ω ولا توجد مشكلة عند استخدام مقاومة حتى 470Ω .
2- الخطوة التالية هى فتح برنامج MikroC PRO . نظرا لأننا سوف نستخدم الميكروكونترولر PIC16F877 فعند فتح مشروع جديد تأكد من اختياره من قائمة الأجهزة . يمكن تحديد التردد بالقيمة 8MHz . بعد فتح المشروع الجديد سوف ترى منطقة العمل كما فى الشكل السفلى ولن نستخدم أى وظائف خاصة ومن ثم لا يتم ضم أى مكتبة . 3- الآن كما ترى فى حقل النص يقوم البرنامج بإنتاج الكود التالى : هذه هى دالتنا الرئيسية main function , بدونها لن يعمل كودنا . داخل هذه الدالة سوف نكتب الأكواد . وخارجها سوف نكتب دوال أخرى تستخدم داخل الدالة الرئيسية أو تعرف متغيرات عامة global variables . 4- الخطوة التالية التى يجب أن نفعلها هى تعريف منافذنا Ports .وهذ يعنى أنه يجب علينا اختيارها كمداخل أو كمخارج . الأمر التالى يجعل المنفذ PORTB كمخارج . TRISB=0x00; الحرف الموجود بعد TRIS يبين أى المنافذ نريد لن يكون كمداخا أو كمخارج (بمعنى التحكم فى المنافذ) . فإذا أردنا اختيار المنفذ PORTA فسوف نكتب TRISA . الأعداد الموجودة بعد الأمر تعرف ما إذا كان المنفذ سوف يكون مدخل أو مخرج . هنا ماذا فعلنا ؟ . حرف xالموجود بين الأعداد يبين أن هذه الأعداد تكون بالترقيم السداسى عشر . إذا أردنا أن تكون بالترقيم الثنائى يجب علينا كتابة 0b ثم الأعداد . على سبيل المثال : 0b00010001 .الطرف الأول يسمى Pin0 وهو أول خانة من اليسار (تسمى الخانة ذات الرتبة الأقل )والطرف الثامن يسمى Pin7 وهو آخر خانة (تسمى الخانة ذات الرتبة الأعلى ) .إذا تم تعريف الطرف بالصفر 0 هذا يعنى أن هذا الطرف يكون مخرج . وإذا تم تعريف الطرف بواحد 1 فهذا يعنى أن الطرف مدخل . ومن ثم فى مثالنا 0b00010001يكون الطراف الأول Pin0 والطرف الخامس Pin4 مداخل وباقى الأطراف مخارج . لكن فى برنامجنا لن نستخدم مداخل لذلك جعلنا جميع الأطراف مخارج . باستخدام المحول السريع Quick Converterيمكنك التحويل من الترقيم السداسى عشر ألى الترقيم الثنائى والعكس. 5- بعد ذلك سوف نقوم بعمل دورة (حلقة) لا نهائية (غير منتهية) . بفضل هذه الدورة اللانهائية فإن برنامجنا لن يتوقف عن العمل وأيضا متحكمنا . يمكننا استخدام أحد تعبيرات الدورات (الحلقات) الأتية : وهى تقوم بنفس العمل فلا توجد مشكلة فى أيها نختار . الأوامر الموجودة داخل هذه الدورات سوف تتكرر عدد لانهائى من المرات حتى نقوم بفصل OFF الميكروكونترولر أو وجود أى مقاطعة . لذلك فى حالتنا سوف نقوم بجعل الليد ON و OFF عدد لا نهائى من المرات .
__________________
angel4angel4angel4angel4angel4
|