 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
23-07-2010, 02:06 AM
المشاركة 18
|
|
التدريب الشامل على برنامج LDmicro Tutorial :
التدريب الشامل على برنامج LDmicro Tutorial :
فى هذا التدريب سنتعرف على كيفية كتابة برنامج بسيط المهم هو تتبع خطوات التنفيذ.
وصف البرنامج المطلوب وأجهزة الدخل وأجهزة الخرج
جهازالدخل سيكون مفتاح ضاغط (يمثل أى حساس رقمى ) وجهاز الخرج دايود مشع للضوء (ليد) (يمثل أى جهاز تنفيذ للخرج الرقمى ).
فى بداية البرنامج يكون الليد off .
عند الضغط على المفتاح الضاغط (أول ضغطة) يتحول الليد إلى وضع on أى مضاء باستمرار .
إذا ضغطت على المفتاح الضاغط مرة أخرى(الضغطة الثانية) يبدأ الليد فى الوميض أوالإضاءة المتقطعة .
إذا ضغطت على المفتاح للمرة الثالثة (الضغطة الثالثة) يتحول الليد إلى حالة off مرة ثانية .
• وتتكرر الدورة بتكرار الفعل .
1- إختيار الميكروكونترولر والدائرة الكهربائية :
سوف نستخدم الميكرومونترولر PIC16F876 . وهذه هى الدائرة الكهربائية :
الميكروكونترولر PIC16F876-20I (IC1) بمذبذب رنين resonator سيراميكى (U1) (يحتوى داخله على المكثفات ) ويمكن استخدام كريستال مع مكثفين ~20 pF .
المفتاح الضاغط متصل بحيث عند تشغيله يعطى جهد موجب إلى دخل الميكروكونترولر (أسهل فى الفهم) ويسمى ‘active HIGH’ أى جهد مرتفع او منطق 1 عند التشغيل أو التوصيل .
الدائرة على لوحة الاختبار (البريد بورد) كما فى الشكل :
2- المخطط السلمى للبرنامج :
أ- شرح فكرة البرنامج
أولا سنحتاج إلى مذبذب لتوليد إشارا الوميض او الفلاشر لليد .
توجد طريقة معروفة لفعل ذلك بمخطط المنطق السلمى كما فى الشكل التالى :
وهى تعطى معدل وميض (التردد = مقلوب الزمن الدورى) 1/((250+250) ms) أى 2 Hz أو مرتين كل ثانية .
النتيجة تكون توصيل " 250 ms = on " وفصل 250 ms = off " ".
هذه الدائرة يمكنها عمل أى نوع من المذبذبات وبأى عرض فيجب تذكرها .
أيضا لاحظ أننا اخترنا استخدام ريلاى داخلى (‘R’) بدلا من ربطه بطرف دخل ‘X’ أو طرف خرج ‘Y’. وهذا منطقى لأنه لا يوجد سبب معين لربط الإشارة بأى طرف . يقوم البرنامج تلقائيا بتخصيص موضع فى الذاكرة للريلاى الداخلى .
البرنامج له ثلاثة حالات : وهى تبطيل (عدم اضاءة) off – إضاءة مستمرة – إضاءة متقطعة .
يحب أن يحول البرنامج حالته عند كل إرتفاع فى حافة الإشارة من المفتاح الضاغط .
وهذا يعتبر تطبيق جيد للعداد الدائرى .
سوف نقول أن الحالة 0 هى حالة off وأن الحالة 1 هى حالة الإضاءة المستمرة والحالة 2 هى حالة الوميض .
العداد سوف يعد 0, 1, 2, 0, 1, 2, ..., وهكذا.
كل ما نفعله هوأن نجعل السطر به عداد Cstate (يسمى العداد المعبر عن حالة الدخل ) مرتبط (أى الشرط) بالمفتاح الضاغط بالدخل Xbutton وسوف يعمل كل شىء وفق ما نريد .
الآن الشىء الوحيد الباقى هو استخدام حالة البرنامج (والتى يعبرعنها عداد الحالة) فى ضبط وتحديد حالة الليد .
نستطيع فعل ذلك بأستخدام إحدى تعليمات المقارنة ( لكل حالة من حالات العداد على حدة ) وهى هنا التساوى بالطريقة الاتية :
من السهل فهم عمل البرنامج لإنه :
إذا كان البرنامج فى الحالة 1 عندئذ تكون التعليمة ‘Cstate == 1’ لها خرج مرتفع (اى يتحقق الشرط) ومن ثم تعمل على إثارة او تشغيل الخرج ‘Yled’ كما هو مطلوب .
بينما فى الحالة 2 تقوم التعليمة ‘Cstate == 2’ بإثارة الخرج ‘Yled’ (لتحقق الشرط) ولكن فقط عندما يكون ‘Rosc’ حقيقى أو مرتفع . ونظرا لان ‘Rosc’ متذبذب يكون الليد أيضا متذبذب فى الإضاءة اى متقطع كما هو مطلوب .
واخيرا فى الحالة 0 لا يكون أى من تعليمتى التساوى حقيقى (عدم تحقق أى شرط) ولا يوجد طريق لاضاءة الليد أبدا .
ب- طريقة ادخال (كتابة) المخطط السلمى (البرنامج)
|