{ 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 ,可以找到完整的。乱局
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)