超声波模块的简单c程序,用外部中断在单片机调试,超声波没挡住怎么也会执行外部中断程序的呢

超声波模块的简单c程序,用外部中断在单片机调试,超声波没挡住怎么也会执行外部中断程序的呢,第1张

while(1)

{ Trig=1

delay_20us()

Trig=0//产生一个20us的脉冲,在Trig引脚

}

这里有问题啊,你再好好看看触发超声产生的时序!!!

触发超声模块,要用一个至少8us的方波触发,然后内部会产生8个40HZ的方波激发超声。然后超声模块输出端纯辩自然会由低电平拉高等待接收障碍物反射回的超声。如果没有障碍物,回声脉冲大约持续36ms然后就自动拉低了。

你每隔20us就让超声发生模块产生一次触发脉冲,这肯定不行。它的时序要求,从接收回声结束到下一个触发脉冲开始允许10ms时册空间间隔,你那一个while,20us就触发一次。呵呵……

加油!祝你早日成功州裤瞎!

超声波发送程序:

mov R6,#8h超声波发射宽陪前的完整波慎清形个数:共计四个

here: cpl p2.7 输出40kHz方波

nop

nop

nop

nop

nop

nop

nop

nop

nop

djnz R6,here

RET

END

或是你用 googel 搜索一下:51单片机超声波DIY ,可以找到完整的。乱局


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存