英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
关于PIC16F877的PORTB口电平中断的问题
[打印本页]
作者:
winnie
时间:
2009-4-7 10:52
标题:
关于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)
{;}
}
作者:
winnie
时间:
2009-4-7 10:52
#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)
{;}
}
这样试试看那,注意电平中断的二次中断处理,我这是一种处理方法,是二次中断时间大于中断程序执行时间的处理
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2