大神,请问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判断去了得了,(仅代表自己看法,我也不怎么唯漏懂啊)。自己多调试调试,肯定能做好的。

胶带的宽度一定的话:

四个传感器一字排列的情况最简单:

按1234号传感器命名,照在胶带上状态位为A,否则为a.

直线正常行走时,23号持续为A,14号持续为a.

分析开始右转的逻辑:

2号变a,继续直线行走,直到4号变A,根据24号间的距离和小车在这段时间内行驶的距离计算出转动角度(这就是动态平面几何问题了,自己画图解一下,注意转弯时候前后中心点的轨迹,胶带宽度是关键,得到的角度不会也不必太精确。这里我只讨论逻辑),然后以比计算结果稍大(目的是确保能让2恢复滑茄状态A)的转动角度开始转弯,等到2和3都恢复状态A,小车变回直线行走,等到2号重新变a,小车再恢复到原先的转动角度……后面一直循环就行了

直线上如果车子前进方向倾斜,和转弯一样,下面以车子向右倾斜为例分析:

会出现3号变a的情况,继续保持直线行走,直到1号变A,计算出小车在这个过程中行进距离,结合胶带宽度,弯让厅1和3号间的距离,就可以算出偏离的角度然后决定转动角度。后面具体调整和过弯道一样。

然后我来吐槽为什么要用labview,你是想着拿着笔记本进行无线 *** 控么 - -,嵌入式的labview编程现在还不埋隐成熟好吧~


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

原文地址: https://outofmemory.cn/yw/12317240.html

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

发表评论

登录后才能评论

评论列表(0条)

保存