مثال على المقاطعة الخارجية External interrupt : عداد تصاعدى

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

مثال على المقاطعة الخارجية External interrupt : عداد تصاعدى

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

مثال على المقاطعة الخارجية External interrupt : عداد تصاعدى
تمهيد :
• الميكروكونترولر PIC16F877A يسمح بالمقاطعة الخارجية INT_EXT ، مصدر المقاطعة الخارجية ينبغى أن يوصل إلى الطرف RB0/INT .
• قبل تمكين المقاطعة الخارجية يجب تحديد نوع حافة الساعة الخارجية :
# حافة موجبة أى صاعدة ext_int_edge(L_TO_H)
# أو حافة سالبة أى هابطة ext_int_edge(H_TO_L)






فى هذا البرنامج سوف يتم توصيل ساعة خارجية على الطرف RB0 ، ويقوم البرنامج بعد النبضات وعرض قيم العداد عندما يتم الضغط على المفتاح الضاغط المتصل بالطرف RB1 .
البرنامج :

الكود:


#include <16F877A.h>
#use delay(clock=4000000)
#include<lcd.c>

long count = 0;          /* Global variable */

#INT_EXT          /* ISR for external "B0" interrupt */
void isr(){count++;}

void main() {

lcd_init();

ext_int_edge(L_TO_H); /* Interrupt on (+) edge */
enable_interrupts(INT_EXT); /* Enable interrupts */
enable_interrupts(GLOBAL);

while(TRUE){
if(input(pin_b1))  { /* When SW is depressed... */
printf(lcd_putc,"\fCounter = %lu",count); /* ...send it out! */
delay_ms(200); /* Wait 200 ms to debounce */
}
}
}



Admin
Admin

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

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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