بيئة التطوير PicBasic Pro و برنامج Blinking LED
شرح لكيفية العمل على بيئة التطوير PicBasic Pro مع مثال Blinking LED
سنتعرف في هذا الدرس إلى بيئة التطوير PicBasic Pro من شركة microEngineering Labs عن طريق كتابة و تنفيذ برنامج بسيط يقوم بتشغيل و إطفاء LED مربوط إلى المتحكم المايكروي PIC12f675.
يمتاز المتحكم المايكروي PIC12F675 بصغر حجمه (8pin) و رخص سعره و احتوائه على مذبذب داخلي (Internal Oscillator) إضافة إلى مجموعة من المدخلات التماثلية. يكون ربط الدائرة كما في الشكل أدناه
يمكنك الاستعانة بالكثير من الامثلة المتوفرة مع بيئة التطوير PBP في المجلد Examples, لكننا سنقوم بكتابة البرنامج لمناقشة الخطوات و فهم طريقة عمله. نقوم في البداية باختيار المتحكم المطلوب العمل معه.
كما تلاحظ من رسم الدائرة فإن الـLED مرتبط بالنقطة رقم 5 وهو GPIO.2 كما موضح في بيانات المتحكم. سنقوم بالرمز إلى النقطة GPIO.2 بالرمز LED عن طريق كتابة الأمر LED var GPIO.2. نحن الآن بحاجة إلى حلقة غير منتهية تقوم بتشغيل الـLED لفترة معينة ثم إطفاؤه لفترة اخرى. للحصول على حلقة غير منتهية, سنقوم بوضع عنوان عند بداية الأوامر المطلوب تكرارها ليكن mainloop ثم نقوم بالعودة إليه عند نهاية تنفيذ الأوامر. ستكون الأوامر بسيطة جداً خصوصا مع بيئة العمل PBP, الأمر الأول high LED سيقوم برفع مستوى الفولتية على النقطة GPIO.2 الى مستوى VCC (5 Volts) مما سيؤدي إلى تشغيل الـLED. نقوم الآن بكتابة الأمر pause 500 و الذي سيقوم بتأخير تنفيذ الأمر التالي بمقدار 500 ملي ثانية (نصف ثانية). بعد ذلك نقوم بكتابة الأمر low LED الذي سيقوم بخفض الفولتية على النقطة GPIO.2 الى صفر فولت مما سيؤدي إلى إطفاء الـLED نقوم بعده بتأخير تنفيذ الأمر التالي بمقدار نصف ثانية اخرى عن طريق الأمر pause 500. تقوم الأوامر السابقة بتشغيل الـLED نصف ثانية ثم إطفاؤه لنصف ثانية اخرى, نحتاج الآن إلى تكرار تلك الاوامر بشكل دائم عن طريق إعادة البرنامج إلى العنوان الذي قمنا بتحديده باستخدام الأمر goto mainloop.
بعد الانتهاء من كتابة البرنامج, يجب الآن الحصول على ملف يحتوي على الأوامر بصيغة يمكن للمتحكم فهمها و تنفيذها. يمكن الحصول على هذا الملف بصيغة hex عن طريق الضغط على Compile في بيئة التطوير PBP.
يمكنك الآن تحميل البرنامج إلى المتحكم و تشغيله بالاعتماد على المذبذب الداخلي للمتحكم. تذكر ربط الطرف رقم 4 (MCLRE) إلى VCC عن طريق مقاومة, حيث إن انخفاض مستوى الفولتية على هذا الطرف سيؤدي إلى أيقاف تنفيذ البرنامج و العودة إلى بدايته.