//////主函数,让led灯依次闪烁/////
/////外部中断1打断主函数,执行数码管动态扫描////
/////又一个外部中断嵌套,让led亮/////
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar temp=0xfe;
void delay50ms(uint i)
{
uint j;
for(;i>0;i--)
for(j=6245;j>0;j--);
}
void inter1()
{
EX1=1;
EA=1;
IT0=0;
}
void main()
{
inter1();
while(1)
{
P2=temp;
delay50ms(20);
temp=_crol_(temp,1);
}
}
void INT() interrupt 2
{
uchar i;
for(i=0;i<8;i++) //////////为什么体现不了实时性,得数码管走到尽头才能触发中断?? 应该怎么改???
{
P1=we;
P0=du;
delay50ms(20);
}
EX0=1;
IT0=0;
}
void INTR() interrupt 0
{
P2=0x00;
}
我自己理解的中断嵌套是把更高级的外部中断0的开关放在外部中断1的函数体内!!不知,这样理解是否正确??
大家看看我这个程序,为什么体现不了实时性,进行二级嵌套时,必须要数码管走到7才能触发更高级的中断,为什么不能就停在那里,触发中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>