
你在中断里面把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判断去了得了,(仅代表自己看法,我也不怎么懂啊)。自己多调试调试,肯定能做好的。
别想那么复杂。
首先,你把检测黑线的传感器就当一普通开关。因为,当照射在黑线上时,光线反射能力弱,输出低电平。照在黑线外,则输出高电平。只有高低两种电平,所以,你只需要把它当一个普通开关看待。
然后,既然是普通开关,写代码时只需要位声明以及设置gpio为双向或强拉模式,51单片机都不用设置gpio。
最后,程序里,检测到高电平然后io口电平取反就行。
以上就是关于大神,请问51单片机控制的智能小车识别铁片后进入外部中断,停车2秒,然后继续前进。程序该怎么写全部的内容,包括:大神,请问51单片机控制的智能小车识别铁片后进入外部中断,停车2秒,然后继续前进。程序该怎么写、51单片机智能两路循迹小车程序,检测到黑线直走,检测不到黑线就左转或右转都可以,需要程序代码麻烦了、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)