首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个关于中断嵌套的疑问,求解答~~

一个关于中断嵌套的疑问,求解答~~

本帖最后由 TT出版社 于 2013-10-9 19:50 编辑

如下,我写的一段程序,当我在执行int1这个高优先级中断的时候,为什么我点了int0的电平开关,但是执行完高优先级中断后,直接跳回主程序而不是执行完低优先级中断再返回主程序呢?我试过修改IT0跟IT1这两个的值,发现只有当IT0=1时才会执行完低优先级在返回,这是为什么?求解答,谢谢#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uint num,k;
uchar code table[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delayms(uint);
void main()
{
        uchar aa=0x00,bb=0xff;
        EA=1;
        EX0=1;
        EX1=1;
       &nbspX0=0;
       &nbspX1=1;
        IT0=0;
        IT1=0;
        while(1)
        {
                num=0;
                k=0;
                P1=aa;
                delayms(500);
                P1=bb;
                delayms(500);
        }
}
void INT_1() interrupt 2
{
        for(k=0;k<16;k++)
        {
       &nbsp1=table[k];
        delayms(500);
        }                        
}
void INT_0() interrupt 0
{
        uchar dd=0xfe;
        for(num=0;num<8;num++)
        {
       &nbsp1=dd;
        delayms(500);
        dd=_crol_(dd,1);
        delayms(500);
        }
}
void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}这个是电路图






本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
返回列表