单片机高手进来有分 指出下列程序中,使用外部中断几?程序的目的是什么?

2024-12-05 01:07:54
推荐回答(3个)
回答1:

unsigned char i;
void extl(void) interrupt 2 // interrupt 2是指定外部中断1的中断函数
//(如果以主函数为准的话要interrrupt==0)
{i++; //进入中断变量i自动+1,因为是下降沿触发,所以触发一次+1,如果是低电平触发的
//话,只要是低电平就会一直++//
P2=i; //把i的值送入P2(也许是P2口显示或者有某些LED灯之类的东西把)
}
main() //注意主函数里面却是开外部中断0
{i=0;
EX0=1; //开外部中断0
IT0=1; //设置中断0 中断触发方式=下降沿触发
EA=1; //打开总中断开关
while(1); //主函数停止在这里(有中断自然会进入中断里面)
}

回答2:

unsigned char i;
void extl(void) interrupt 2 //外部中断1
{i++; //开始是0,INT1有低电平就加一
P2=i; //让P2输出i;
}

main()
{i=0;
EX1=1; //应该要开外部中断1
IT1=1; //
EA=1;
while(1);
}
程序的目的是可以计数INT1你按了几次,通过可以接LED什么的可以读显示出来。

回答3:

这个中断设废了吧?
主函数开了外部中断0,也设置了它的触发方式,但是中断服务程序却指向外部中断1,表错情了吧?
就算上面指向对了,另外,i 没有做任何的防溢出处理,很快i将发生溢出,程序有可能跑飞,至于程序的目的,不知道,就是简单地让P2输出从0到255.