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

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

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

مثال على المقاطعة الخارجية External interrupt :  عداد تصاعدى  Empty مثال على المقاطعة الخارجية 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)


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



فى هذا البرنامج سوف يتم توصيل ساعة خارجية على الطرف 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

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

https://fathallaabdelaziz.forumarabia.com

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

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


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