منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB :

اذهب الى الأسفل

المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB : Empty المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB :

مُساهمة من طرف Admin الخميس أبريل 30, 2015 12:12 pm

المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB :

سوف نستعرض هذا النوع من مصادر المقاطعة من خلال المثال التالى لبرنامج المقاطعة الخارجية  :
الدائرة الكهربية :

المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB : 119


المقاطعات : المقاطعة الخارجية عن طريق تطبيق نبضة على الطرف RB : 217


فى هذا البرنامج سوف نبين الإعدادات الأساسية للمقاطعة .
• المهمة الأصلية للبرنامج هى إنشاء عداد ثنائى تصاعدى (متزايد) على خرج المنفذ Port D  باستخدام العبارات output_d(x); x++;  .
• يتم مقاطعة هذه المهمة عند الضغط على المفتاح الضاغط المتصل بالطرف RB0 ليصبح الطرف RB0 (الخاص بالمقاطعة الخارجية) فى الحالة المنخفضة ، وفقا للعبارة ext_int_edge(H_TO_L); ، مما يجبر البرنامج على تنفيذ روتين خدمة المقاطعة الخارجية void isrext() ، والذى يتسبب فى إضاءة جميع الليدات output_d(255); لمدة ثانية واحدة delay_ms(1000); . ثم بعد ذلك يتم استئناف المهمة الأصلية تلقائيا من عند نقطة توقف التنفيذ .
• عندما يتم كشف مقاطعة الطرف RB0 خلال الحلقة الرئيسية ، يتم حفظ السياق ( محتويات السجل الحالى) قبل تنفيذ روتين خدمة المقاطعة .

البرنامج :


الكود:


// External interrupt RB0 low interrupts output count
#include <16F877A.h>
#use delay(clock = 4000000)

#int_ext             // Interrupt name
void isrext()             // Interrupt service routine
{
output_D(255);       // ISR action
delay_ms(1000);
}

void main() //*******************
{
int x;

enable_interrupts(int_ext);       // Enable named interrupt
enable_interrupts(global);       // Enable all interrupts
ext_int_edge(H_TO_L);       // Interrupt signal polarity

while(TRUE)             // loop
{
output_D(x); x++ ;
delay_ms(100);
}
}

Admin
Admin

عدد المساهمات : 1194
تاريخ التسجيل : 28/01/2014

https://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى