大神,请问51单片机控制的智能小车识别铁片后进入外部中断,停车2秒,然后继续前进。程序该怎么写?

大神,请问51单片机控制的智能小车识别铁片后进入外部中断,停车2秒,然后继续前进。程序该怎么写?,第1张

你在中断里面把flag=1进入主指老烂函数后flag一直保持1,而你中断的判断条件是if(flag==0&&P32==0),它就进不了中断了。你要想这么写的话可以改成这样含芹看看:

void INT_0() interrupt 0

{

flag==0;

if(flag==0)

{

P2=0x00 //小车停车

delayms(2000) //延时两秒

flag=1

}

}

或者干脆把if判断去了得了,(仅代表自己看法,我也不怎么唯漏懂啊)。自己多调试调试,肯定能做好的。

//unsigned char a

void main(void)//主函数{TCON=0x01EX0=1//外部中断允许

EA=1//开总中断while(1){//其他程序}}

void int0(void) interrupt 0 //外部中断行搭0 中断子程序{//这里面可以写中断子程序/*a++if(a==2) a=0while(!zd)if(a) TR0=1//开关计时器

else TR0=0*/}

由于档数拿对你的要求“按下INTO接的按键,使单片机执行间隔四灯轮流闪烁的中断子程序”不够理解,只能给你这样一个程序框架了

进入中断要执行中断子毕档程序,不同的中断源要进入不同的中断子程序。对于51的C编程,可以用中断标号,如‘interrupt 0’来使中断进入不同的中断。

中断标号与它们的中断优先级一致,即


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12317486.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存