我在Keil里编译了下面的程序,烧写进芯片后运行情况却很奇怪,P2口外接8个LED,流水灯停止进入中断后8个LED全亮,但是持续了好一阵子才退出中断,完全超出延时函数的延时,一时想不明白,请各位高手指教!程序如下:
#include<REG51.H>
void init(void)
{
EX0=1;
IT0=1;
EA=1;
}
void delay(void)
{
unsigned int i,j;
for(i=0;i<500;i++)
{
for(j=0;j<121;j++)
{
;
}
}
}
void light1(void)
{
P2=0XAA;
}
void light2(void)
{
P2=0X55;
}
void main(void)
{
init();
while(1)
{
light1();
delay();
light2();
delay();
}
}
void extern_int0(void) interrupt 0 using 0
{
P2 = 0X00;
delay();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你的程序很奇怪,不太清楚你想要什么样的效果,中断时间长是因为中断服务里有延时,去掉这个延时,中断应该就正常了,见下面
void extern_int0(void) interrupt 0 using 0
{
P2 = 0X00;
delay(); /* 去掉这句 */
}
一周热门 更多>