返回列表 发新帖本帖赏金 5.00元(功能说明)

[应用方案] N76E003 超声波测距

[复制链接]
488|17
 楼主 | 2019-6-11 22:55 | 显示全部楼层 |阅读模式
277885cffc0cca6063.png
  1. #include "N76E003.h"
  2. #include "Common.h"
  3. #include "Delay.h"
  4. #include "SFR_Macro.h"
  5. #include "Function_define.h"

  6. #define uint unsigned int
  7. #define uchar unsigned  char
  8. #define NOP() {_nop_();_nop_();_nop_();_nop_();}


  9. sbit Trig=P0^5;//测距触发引脚
  10. long int temp,t;
  11. int i=0;

  12. /************************************************************************************************************
  13. * 外部中断0服务程序
  14. ************************************************************************************************************/
  15. void int0() interrupt 0
  16. {
  17.         t=(TH0*256+TL0);//计算高电平持续的时间,上升沿到来时候开始计时,下降沿到来进入外部中断,关闭计时器,停止计时
  18.         TH0=0;
  19.         TL0=0;
  20. }

  21. void main (void)
  22. {
  23.                 Set_All_GPIO_Quasi_Mode;
  24.                 P00_Input_Mode;//将P00设置为输入模式
  25.                 P00 = 1;
  26.                 Trig=0;//为低电平
  27.                 TMOD=0x19;
  28.                 TR0=1;//启动定时器0
  29.                 EX0=1;//使能部中断0
  30.                 IT0=1;//外部中断0下降沿触发
  31.                 set_EA;//开启总中断
  32.     while(1)
  33.     {
  34.                         Trig=1;
  35.                         NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
  36.                         Trig=0;
  37.                         temp=t*0.17;//得到距离
  38.     }
  39. }
复制代码


使用特权

评论回复

betway|备用网站榜单

linoox betway|备用网站了 5.00 元 2019-11-06
理由:正在用n76e003做超声波测距,我对这个芯片不熟,遇到了一些问题,能加您的qq咨询一下吗,我的qq是1279141018 黎工。非常感谢

评论

捉虫天师 2019-11-6 22:51 回复TA
@linoox :遇到了啥技术难题 
21mengnan 2019-11-6 19:37 回复TA
@linoox :这程序很难理解吗?就是让发射管发射信号时候开始定时器计时,然后收到回波信号触发外部中断,在中断读出来时间,这个时间是声波一来一回的时间,T*V=2S;V=340m/S所以S=t*170m/s 如果这里时间单位不是S,而是ms,那么就是S=t*0.17 
linoox 2019-11-6 10:44 回复TA
正在用n76e003做超声波测距,我对这个芯片不熟,遇到了一些问题,能加您的qq咨询一下吗,我的qq是1279141018 黎工。非常感谢 
 楼主 | 2019-6-11 22:55 | 显示全部楼层
跟尺子出来的数据差不多
951545cffc0ed51e72.png

使用特权

评论回复
 楼主 | 2019-6-11 22:56 | 显示全部楼层
觉得直接使用N76E003单片机自带的输入捕获功能就可实现对超声波模块信号宽度测量,但是测出来的数据误差很大,明明原理跟外部中断差不多的呀,还发现用3.3V驱动模块,用逻辑分析仪可以得到比较好的波形,但是单片机读取的数据就是不对,还是用5V供电才能得到一个相对准确的数据

使用特权

评论回复
 楼主 | 2019-11-6 19:38 | 显示全部楼层
这个例子使用了定时器,外部中断,所以还是非常简单的,官方提供的BSP已经充分介绍了这两个功能的用法,这是基本的功能了。这个超声波测距的理论很简单,就是发射声波时候开始计时,然后接收到声波的回波后触发中断读取计时数据。然后根据声波在空气中的速度算出来距离。

使用特权

评论回复
 楼主 | 2019-11-6 19:39 | 显示全部楼层
我觉得这个没必要再多讲了吧,哈哈。

使用特权

评论回复
| 2019-11-6 20:05 | 显示全部楼层
那意思这个需要修改一下。

使用特权

评论回复
| 2019-11-6 20:06 | 显示全部楼层
  1. #include "N76E003.h"
  2. #include "Common.h"
  3. #include "Delay.h"
  4. #include "SFR_Macro.h"
  5. #include "Function_define.h"

  6. #define uint unsigned int
  7. #define uchar unsigned  char
  8. #define NOP() {_nop_();_nop_();_nop_();_nop_();}


  9. sbit Trig=P0^5;//测距触发引脚
  10. long int temp,t;
  11. int i=0;

  12. /************************************************************************************************************
  13. * 外部中断0服务程序
  14. ************************************************************************************************************/
  15. void int0() interrupt 0
  16. {
  17.         t=(TH0*256+TL0);//计算高电平持续的时间,上升沿到来时候开始计时,下降沿到来进入外部中断,关闭计时器,停止计时
  18.         TH0=0;
  19.         TL0=0;
  20. }

  21. void main (void)
  22. {
  23.                 Set_All_GPIO_Quasi_Mode;
  24.                 P00_Input_Mode;//将P00设置为输入模式
  25.                 P00 = 1;
  26.                 Trig=0;//为低电平
  27.                 TMOD=0x19;
  28. //TR0=1;//启动定时器0
  29.                 EX0=1;//使能部中断0
  30.                 IT0=1;//外部中断0下降沿触发
  31.                 set_EA;//开启总中断
  32.     while(1)
  33.     {
  34.                         Trig=1;
  35.                         NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
  36.                         Trig=0;
复制代码

使用特权

评论回复
| 2019-11-6 20:07 | 显示全部楼层
谁有板子,试试怎么搞精度比较靠谱。比较准。

使用特权

评论回复
| 2019-11-6 22:51 | 显示全部楼层
不知道上面那位betway|备用网站的朋友是遇到了什么难题啊。应该以回帖形式提问,这样大家可以方便回复啊。

使用特权

评论回复
| 2019-11-6 23:24 | 显示全部楼层
资料不错,看看。

使用特权

评论回复
| 2019-11-7 00:02 | 显示全部楼层
看来不错,有betway|备用网站。

使用特权

评论回复
| 2019-11-7 19:35 | 显示全部楼层
多谢各位大佬分享。

使用特权

评论回复
| 2019-11-7 22:13 | 显示全部楼层
这个资料非常不错。我也借此巩固了知识。

使用特权

评论回复
| 2019-11-7 23:27 | 显示全部楼层
之前没研究过,看起来很容易理解。

使用特权

评论回复
| 2019-11-8 11:05 | 显示全部楼层
以前没研究,学习一下。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
返回列表 发新帖 本帖赏金 5.00元(功能说明)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表