标题: (资料分享)51单片机超声波测距时发现只测一次或几次数据就会陷入死循环,现已解决。 [打印本页]

作者: 低调的黑马    时间: 2019-3-9 19:43
标题: (资料分享)51单片机超声波测距时发现只测一次或几次数据就会陷入死循环,现已解决。
在设置发送模式后,有时程序会停留在等待ECHO引脚置1这个while循环里出不来,只要在这个循环里加入防死循环跳出程序即可,此外在设置发送模式成功以后收不到反射回来的信号的while等待中也需要加入防死循环语句。 。附上完整程序。

超声波测距(LCD1602显示).zip

67.46 KB, 下载次数: 77, 下载积分: 黑币 -5

实测解决只测一次或几次问题


作者: 不伤手的立白    时间: 2019-3-14 21:06
有三个警告
作者: bluewn    时间: 2019-8-18 10:25
不错,方法可行,不过我建议在第一张图里for语句即可实现,执行效率会高点,因为我的中断中flag=1,所以取的反,可供参考

51hei浏览器截图20190818102440.png (4.46 KB, 下载次数: 76)

51hei浏览器截图20190818102440.png

作者: capacitance_1    时间: 2020-1-20 16:16
bluewn 发表于 2019-8-18 10:25
不错,方法可行,不过我建议在第一张图里for语句即可实现,执行效率会高点,因为我的中断中flag=1,所以取 ...

程序用的好特别
作者: 13681878016    时间: 2020-5-5 15:36
楼主牛逼!当初做超声波实验的时候就想到这个问题了。。。但是倒是一直没发生死循环卡住的问题就没太在意。 另外楼主如果没有收到echo的1的话,可能是因为一开始20微秒的启动方波给的时常不够,再多给点延时看看。还有我把这个hcsr04朝天射过,感觉它一定时间(很长时间,超过量程最大时间)之后,echo引脚好像必定会置1的,然后根据长短时间再变0。 我看了hcsr04内部也是个单片机,估计里面程序有防止没回波置1的保障的,也就是只要启动发射超声波了,长时间后echo必定会给个置1。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1