我的单片机超声波测距课程设计

发布者:RadiantEyes最新更新时间:2019-12-18 来源: 51hei关键字:单片机  超声波测距 手机看文章 扫描二维码
随时随地手机看文章

制作出来的实物图如下:
在设置范围外工作.JPG在设定范围内工作.JPG设置范围界面.JPG 

电路原理图如下:

原理图

原理图 

一、作品简介
以51单片机为核心,利用超声波传感器对障碍物进行距离测量并将结果发送到液晶显示屏上,并可以设定距离,当数据高于预警值时可以进行声光报警。


二、设计原理
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。


三、功能说明
设计单片机最小系统,供电电路有上电指示功能,采用串口下载程序,USB供电,具有复位功能。采用超声波传感器,能够实现对障碍物距离的测量;采用液晶显示,能够对测量的距离进行显示。


报警电路,能够实现对预警值的设置,同时当数据高于设定预警距离的时候可以进行声光报警(有声音报警,并且通过红绿的指示灯对非正常和正常情况进行报警)。

Altium Designer画的原理图和PCB图如下:
0.png0.png 

软件:KEIL5、altium proteus
仿真内容:LCD1602显示,超声波测距(程序非阻塞方式,使用外部中断,平均值滤波更精准)真机测试:正常,使用HC-SRF04超声波测距模块(测距范围:4-450cm),STC89C52单片机。


//超声波管脚定义
sbit RX=P3^3;
sbit TX=P3^2;
//超声波初始化
void Init_ultrasonic_wave()
{
  TX=0;      //关闭发射
  TMOD=0x01;     //设T0为方式1,GATE=1;
  TH0=0;
  TL0=0;          
  ET0=1;           //允许T0中断
  EA=1;      //开启总中断 
}
//启动超声波
void StartModule()  //启动模块
{
TX=1;         //启动一次模块
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_();
_nop_(); 
_nop_(); 
_nop_(); 
_nop_();
TX=0;
}
//距离计算 SD为当时的超声速度
void Conut()
{
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
  L_=(time*3.49)/200;     //算出来是CM;  
  //距离大于200或者超时
  if(L_>500||flags==1)
  {
  flags=0;
  //无效显示
  flag1s=0;
  L_=0;
  FW=1; 
  Feng_Start(); 
  } 
  //距离小于100
  else if(L_<=500)
  {
  flag1s=1;
  FW=1; 
  Feng_Stop();
  }

关键字:单片机  超声波测距 引用地址:我的单片机超声波测距课程设计

上一篇:51单片机测量PWM脉冲宽度LCD1602显示当前PWM占空比频率
下一篇:51单片机红外线接收系统设计文档

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved