超声波测距仪设计报告.docx
- 文档编号:6039136
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:16
- 大小:1.61MB
超声波测距仪设计报告.docx
《超声波测距仪设计报告.docx》由会员分享,可在线阅读,更多相关《超声波测距仪设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
超声波测距仪设计报告
超声波测距仪(液晶屏加报警)设计报告(总20页)
超声波测距仪设计报告
一、设计要求
1、提供2cm—400cm的非接触式距离测量功能,测距精度达到3mm。
2、测量结果通过液晶屏实时显示。
3、当测量距离小于20cm时,进行声音和灯光报警。
二、超声波测距原理
测量距离的方法有很多种,短距离的可以用米尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。
因为超声波在标准空气中的传播速度为米/秒,由单片机负责计时,系统的测量精度理论上可以达到毫米级。
超声波测距的原理一般采用渡越时间法TOF(time of flight),也可以称为回波探测法,如图1所示。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在介质中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
根据传声介质的不同,可分为液介式、气介式和固介式三种。
根据所用探头的工作方式,又可分为自发自收单探头方式和一发一收双探头方式。
而倒车雷达一般是装在车尾,超声波在空气中传播,超声波在空气中(20℃)的传播速度为340m/s(实际速度为344m/s这里取整数),根据计时器记录的时间就可以计算出发射点距障碍物的距离,公式
。
图1超声波测距原理
由于超声波也是一种声波,其声速c与温度有关,表1列出了几种不同温度下的声速。
在使用时,如果温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
表1声速与温度的关系
温度(℃)
-30
-20
-10
0
10
20
30
100
声速(m/s)
313
319
325
323
338
344
349
386
三、硬件系统设计
1、设计框图
本研究设计的超声波测距仪框图如图2所示。
图2超声波测距仪方框图
2、US-100超声波收发模块
该超声波收发模块可自己产生40kHz的方波,并经放大电路驱动超声波发射探头发射超声波,发射出去的超声波经障碍物反射后由超声波接收探头接收。
经接收电路的检波放大,积分整形,在ECHO引脚上产生方波脉冲,该脉冲宽度与被测距离成线性关系。
具体过程如图3所示。
图3US-100超声波收发模块工作时序图
上图表明:
只需要在Trig/TX管脚输入一个10us以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号,当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。
在此模式下,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一个高电平,可根据此高电平的持续时间来计算距离值。
即距离值为:
(高电平时间*340m/s)/2
注:
因为距离值已经经过温度校正,此时无需再根据环境温度对超声波声速进行校正,也就是不管温度多少,声速选择340m/s即可。
使用US-100超声波收发模块进行距离测量测量时,单片机只需要输出触发信号,并监视回响引脚,通过定时器计算回响信号宽度,并换算成距离即可。
该模块简化了发送和接收的模拟电路,工作稳定可靠,其参数指标如表2所示。
表2US-100模块电气参数
应注意测量周期必须在60毫秒以上,防止发射信号对回响信号的影响。
图4US-100超声波模块外形图
模块共有两个接口,即模式选择跳线和5pin接口。
模式选择跳线接口设置为当安装上短路帽时为UART(串口)模式,拔掉时为电平触发模式。
3、单片机电路
本设计选用宏晶公司高性能单片机STC89C52,其管脚如图5所示。
图5STC89C52单片机管脚图
该芯片为52核8位单片机,兼容Intel等52核单片机,支持ISP下载,适用于常用检测控制电路。
由STC89C52组成的单片机系统原理图如图6所示。
图中TRIG引脚为单片机发送触发信号的引脚,ECHO引脚为US-100模块送回回响信号的引脚,接至单片机外部中断脚上,可以利用外部中断测量回响信号宽度。
当测量距离小于阈值20cm时,单片机通过管脚发出灯光报警信号,触发LED报警灯亮,同时通过管脚发出声音报警信号beep,该信号用以触发蜂鸣器鸣响报警。
图6单片机系统及超声波模块接口原理图
4、蜂鸣器报警电路
图7所示为蜂鸣器报警电路。
由于单片机管脚的灌电流比拉电流容量大,因此电路设计为低电平输出时蜂鸣器响,高电平关闭。
当脚输出低电平时,PNP型三极管8550导通,有集电极电流通过,蜂鸣器鸣响。
当脚输出高电平时,三极管截止,蜂鸣器关闭。
图7蜂鸣器报警电路
5、显示电路
显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:
表3液晶屏技术指标
接口信号说明如表4所示。
表4液晶屏接口信号说明
与单片机接口电路如图8所示。
图8LCD与单片机接口电路
6、供电及程序下载电路
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图9所示。
图9供电及程序下载电路
四、软件编程
1、软件流程图
本设计软件主程序流程图如图10所示,(a)为主程序流程图,(b)为定时中断子程序流程图,(c)为外部中断子程序流程图。
(a)主程序流程图(b)外部中断流程图
图10程序流程图
2、主程序
下面介绍主程序编写,其他程序略。
(1)头文件和一些宏定义
/*******************************************************************/
/*******************超声波测距仪************************************/
/*******************(液晶屏显示)************************************/
/*******************晶振********************************/
#include<>
#include""
typedefunsignedcharU8;/*definedforunsigned8-bitsintegervariable无符号8位整型*/
typedefsignedcharS8;/*definedforsigned8-bitsintegervariable有符号8位整型*/
typedefunsignedintU16;/*definedforunsigned16-bitsintegervariable无符号16位整型*/
typedefsignedintS16;/*definedforsigned16-bitsintegervariable有符号16位整型*/
typedefunsignedlongU32;/*definedforunsigned32-bitsintegervariable无符号32位整型*/
typedefsignedlongS32;/*definedforsigned32-bitsintegervariable有符号32位整型*/
typedeffloatF32;/*singleprecisionfloatingpointvariable(32bits)单精度浮点数32位长度*/
typedefdoubleF64;/*doubleprecisionfloatingpointvariable(64bits)双精度浮点数64位*/
;
*描述:
该程序实现了对液晶1602的控制。
***********************************************************************/
#include""
#include""
/********************************************************************
*名称:
delay()
*功能:
延时,延时时间大概为140US。
*输入:
无
*输出:
无
***********************************************************************/
voiddelay()
{
inti,j;
for(i=0;i<=10;i++)
for(j=0;j<=2;j++)
;
}
/********************************************************************
*名称:
Convert(ucharIn_Date)
*功能:
因为电路设计时,接法刚好了资料中的相反,所以设计该函数。
*输入:
1602资料上的值
*输出:
送到1602的值
***********************************************************************/
ucharConvert(ucharIn_Date)
{
/*
uchari,Out_Date=0,temp=0;
for(i=0;i<8;i++)
{
temp=(In_Date>>i)&0x01;
Out_Date|=(temp<<(7-i));
}
returnOut_Date;
*/
returnIn_Date;
}
/********************************************************************
*名称:
enable(uchardel)
*功能:
1602命令函数
*输入:
输入的命令值
*输出:
无
***********************************************************************/
voidenable(uchardel)
{
P0=Convert(del);
RS=0;
RW=0;
E=0;
delay();
E=1;
delay();
}
/********************************************************************
*名称:
write(uchardel)
*功能:
1602写数据函数
*输入:
需要写入1602的数据
*输出:
无
***********************************************************************/
voidwrite(uchardel)
{
P0=Convert(del);
RS=1;
RW=0;
E=0;
delay();
E=1;
delay();
}
/********************************************************************
*名称:
L1602_init()
*功能:
1602初始化,请参考1602的资料
*输入:
无
*输出:
无
***********************************************************************/
voidL1602_init(void)
{
enable(0x01);
enable(0x38);
enable(0x0c);
enable(0x06);
enable(0xd0);
}
/********************************************************************
*名称:
L1602_char(ucharhang,ucharlie,charsign)
*功能:
改变液晶中某位的值,如果要让第一行,第五个字符显示"b",调用该函数如下
L1602_char(1,5,'b')
*输入:
行,列,需要输入1602的数据
*输出:
无
***********************************************************************/
voidL1602_char(ucharhang,ucharlie,charsign)
{
uchara;
if(hang==1)a=0x80;
if(hang==2)a=0xc0;
a=a+lie-1;
enable(a);
write(sign);
}
/********************************************************************
*名称:
L1602_string(ucharhang,ucharlie,uchar*p)
*功能:
改变液晶中某位的值,如果要让第一行,第五个字符开始显示"abcdef",调用该函数如下
L1602_string(1,5,"abcdef;")
*输入:
行,列,需要输入1602的数据
*输出:
无
***********************************************************************/
voidL1602_string(ucharhang,ucharlie,uchar*p)
{
uchara;
if(hang==1)a=0x80;
if(hang==2)a=0xc0;
a=a+lie-1;
enable(a);
while
(1)
{
if(*p=='\0')break;
write(*p);
p++;
}
}
ex文件后,就可以下载并进行调试了。
1、USB转串口驱动安装
打开USB驱动文件夹下的安装文件,按提示安装USB转串口驱动程序。
安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(ProlificUSB-to-SerialCommPort(COMX)。
X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。
记住括号里的COM口号。
图11成功安装USB转串口驱动示意图
2、下载程序
打开STC单片机下载软件文件夹,点击运行程序,出现如下界面。
图12下载软件
正确选择MCU类型为STC89C52,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps(下载线PL2303芯片所限,没办法!
),并打开正确的.hex数据文件。
点击“Download/下载”按纽,窗口出现提示:
Chinese:
正在尝试与MCU/单片机握手连接...
Connectionisfailure.Youcantry:
yourMCUPowerOnReset.
operation,thenre-selectCOMPort.
PLCC-DIP/PQFP-DIPSockettracetoolong.
theSTCversion.
stillerror,yourMCUFirmwareiserror
ornull.
Chinese:
连接失败,请尝试以下操作:
1.在单片机停电状态下,点下载按钮,再给单片机上电
2.停止下载,重新选择RS-232串口,接好电缆
3.可能需要先将短接到地
4.可能外部时钟未接
5.因PLCC、PQFP转换座引线过长而引起时钟不振荡,请
调整参数
6.可能要升级电脑端的STC软件
7.若仍然不成功,可能MCU/单片机无ISP系统引导码,
或需退回升级,或MCU已损坏
8.若使用USB转RS-232串口线下载,可能会遇到不兼容
的问题,可以让我们帮助购买兼容的USB转RS-232
串口线
仍在连接中,请给MCU上电...
按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。
芯片烧录成功后,程序开始运行,超声波测距仪正常工作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 测距仪 设计 报告