بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله
اخي الكريم المقاطعة تحدث على الرجل pin لB0 وليس pin A0
الخطا الذي ارتكبته هو كتابة if(porta.f0==0 عوض كتابة if(portb.f0==0)
في كود المقاطعة التالي
void interrupt()
{ if(porta.f0==0){ portb=0b11111111;delay_ms(100);}
Intcon.f1=0; }
كما لا اري داع لتفعيل المقاطعات على ال pin B4, B5, B6, B7
ان لم تكن بحاجة لها Intcon=0b10010000
كما يفضل ترتيب الكود بكتابةالامرين
Intcon=0b10011000;
Option_reg=0b11000000;
بعد TRISA,TRISb...
وبخصوص باقي الكود
سيحدث عندك تداخل لان استخدمت الpin b0 كمقاطعة و كخرخ يجب الانتباه لذلك
--------------------------
هذا موضوع مهم عن المقاطعات ارجو مراجعته
http://www.qariya.com/vb/showthread.php?t=46338
والسلام عليكم ورحمة الله