|
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:328
|
|
20-09-2012, 08:14 PM
المشاركة 1
|
|
الدورة الجديدة :الفصل الحادى عشر المقاطعات interrupts
المقاطعات هى أحداث مجدولة والتى تجعل الميكروكونترولر PIC "يعلق" برنامجه القائم على تنفيذه ويقوم بتشغيل جزء من برنامج (برنامج فرعى يسمى روتين المقاطعةinterrupt routine) مقترن بحدث .
عند اكتمال روتين المقاطعة يستمر PIC فى تنفيذ سريان البرنامج من عند نفس النقطة حيث التى كان قد علق عندها التنفيذ.
مصادر المقاطعة تختلف تبعا لنوع الميكروكونترولر . على سبيل المثال الميكروكونترولر PIC 16F877A له 15 مصدر للمقاطعة مثل : - المقاطعة بالمؤقت Timer0 عند حدوث طفحان بالمؤقت .
- المقاطعة عند تغيير حافة النبضة الخارجية على الطرف RB0(تعرف بالمقاطعة الخارجية) .
- المقاطعة عند وصول البيانات التسلسلية خلال الوحدة USART .
- المقاطعة بالمحول من تناظرى لرقمى ADC عند انتهاء التحويل
وغيرها من المقاطعات .
مترجم الميكروسى برو يتضمن دالة سابقة التعريف من أجل تنفيذ المقاطعة , هذه الدالة هى "دالة أو روتين المقاطعة" وهى بالصيغة التالية :
كود:
void interrupt (void
يجب إعلان هذه الدالة قبل الدالة الرئيسية . عند حدوث مقاطعة يتم استدعاء "دالة المقاطعة" تلقائيا عن طريق البرنامج , داخل هذه الدالة يجب تحديد ما هى المقاطعات التى يتم بدؤها وأعلام (معلمات - علامات) flags كل مقاطعة .
لإعداد المقاطعات يجب تفعيل البتات المناظرة بسجلات المقاطعة . فى الميكروكونترولر , على سبيل المثال , سجلات المقاطعة هى : INTCON, PIR1, PIR2, PIE1 , PIE2 . الشكل التالى يبين هذه السجلات يالميكروكونترولر PIC 16F877A :
لتنفيذ المقاطعات يجب اتباع الخطوات المناسبة للإعداد مع مرعاة ما يلى :- أولا يتم تفعيل المقاطعات المطلوب استخدامها عن طريق بت التمكينIEالمناسب مثل :
TMR0IE, INTE, RCIE وغيرها .- يجب عدم تمكين أعلام المقاطعات مثل :
TMR0IF, INTF, RCIF وغيرها .
· يجب تمكين مقاطعات الطرفيات عندما يتطلب ذلك , على سبيل المثال المقاطعات التابعة للسجلات :
PIE1 و PIE2.
· وأخيرا يتم تحديد set بت تمكين عموم المقاطعات : GIE .
|