关于PIC16F877的PORTB口电平中断的问题
我写了一段PORTB口电平中断的程序,不知道为什么中断后老停留在中断函数的最后一个反括号处,不能返回到主程序,希望大家有空帮我改一改。#include<pic.h>void PORTBINT(void)
{
TRISB=0xf0;
RBPU=0;
PORTB=0x00;
RBIE=1;
PORTB=PORTB;
}
void interrupt intRORTB(void)
{
RC0=1;
PORTB=PORTB;
RBIF=0;
}
void main()
{
TRISC0=0;
RC0=0;
PORTBINT();
GIE=1;
PEIE=1;
while(1)
{;}
} #include
void PORTBINT(void)
{TRISB=0xf0;
OPTION=0X7F;
RBIF=0;
RBIE=1; //B口变位中断允许
PORTB=0x00;
PORTB=PORTB;
}
void interrupt intRORTB(void)
{
if((RBIF)&&(RB4)) //B口电平变化中断服务子程序
{ RC0=1;
PORTB=PORTB;
RBIF=0;
RBIE=1;
return;
}
else{ PORTB=PORTB;
RBIF=0;
RBIE=1;
return;
}
}
void main()
{
TRISC0=0;
RC0=0;
PORTBINT();
GIE=1;
PEIE=1;
while(1)
{;}
}
这样试试看那,注意电平中断的二次中断处理,我这是一种处理方法,是二次中断时间大于中断程序执行时间的处理
页:
[1]