新手请教:关于进入中断后退出时间的问题

2020-01-20 18:55发布

我在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();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。