关于超声波发送频率问题

2020-01-30 14:03发布

本帖最后由 simon_leung 于 2013-3-18 11:14 编辑

在论坛上看了很多资料,相信大家都是用的40kHz的探头,但问题是:大家的发送周期好像都不太一样。

1:有的在每次取反波形输出脚时,就用

  1. times = 8;
  2. while(times--)
  3. {
  4.         out = ~out;
  5.         while(i--);
  6. }
复制代码的方法,但大家i 的值预设都不一样,有的3有的5什么的,这方法while(i--)好像运行一次延时挺久的;
2:有的直接用

  1. while(times--)
  2. {
  3.         out = ~out;
  4. }
复制代码这个方法我用反汇编看了一下,好像也延时15us取反一次,周期就变成了30us了,算下来也不是40kHz。这个 我是用单片机是stc89c52rc,12mhz测的。

请问大家是怎么计算精确延时的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
simon_leung
2020-01-30 14:50
本帖最后由 simon_leung 于 2013-3-18 11:13 编辑

自己顶一下。

刚又试验了一下,第2种方法

  1. while(times--)
  2. {
  3.         out = ~out;
  4.         _nop_();
  5.         _nop_();
  6.         _nop_();
  7.         .
  8.         .
  9.         .
  10.         .
  11.         100个(_nop_();)
  12.         .
  13.         .
  14.         _nop_();
  15. }
复制代码这样好像也不形响接收,就是说,一样可以接收到波形,检测得出来

接收电路是这样的:

未命名.jpg (79.56 KB, 下载次数: 0)

下载附件

2013-3-18 11:13 上传

一周热门 更多>