基于单片机的超声波测距仪设计与实现Word文档下载推荐.docx
- 文档编号:19487894
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:15
- 大小:661.21KB
基于单片机的超声波测距仪设计与实现Word文档下载推荐.docx
《基于单片机的超声波测距仪设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距仪设计与实现Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
2项目分析和系统设计3
3硬件设计3
3.1单片机选型模块4
3.2SDM-IO集成模块4
3.31602液晶显示模块5
3.4系统电源5
4软件设计5
4.1主程序5
5系统调试6
5.1硬件调试6
5.2程序调试7
5.3联合调试9
6项目演练9
7项目总结9
附录1电路设计原理图(参考)10
附录2PCB设计原理图(参考)11
附录3关键程序(参考)12
1项目要求
本系统利用MSP430单片机为核心器件,外加超声波接收、发射电路和报警电路,用动态扫描法实现LCD1602数字显示,完成超声波测距及报警功能。
该系统主要实现的功能如下:
1.测量与被测物体之间的距离,采集室内温湿度(用于声速的温湿度补偿);
2.采用液晶动态显示与被测物体之间的距离及温湿度等;
3.设置距离阈值,当超过此值时蜂鸣器会发出报警信号,且距离越近发出的声音的频率越高,当与障碍物之间的距离超过最小距离时,红色LED会发亮,实现报警;
2项目分析和系统设计
由单片机向Trig管脚输入一个10uS以上的高电平,可触发模块测距。
接外部电路的Echo端,当测距结束时,此管脚会输出一个高电平,电平宽度为超声波往返时间之和,在通过单片机340M/S乘以往返时间除以2得到了数据通过1602显示出来,得数据后在判断语句if状态下为以下三种情况时会使P2.5端口输出一个高电平使蜂鸣器发出报警:
①当小于等于1米大于0.6米时;
②当小于等于0.6米到大于0.3米时;
③当小于0.3米时。
3硬件设计
本系统利用MSP430单片机为核心加上外部自己设计的超声波接收和发射电路,完成超声波测距及报警功能,在可能的情况下,将测量距离提高到1m以上,精度控制在5%以内,当距离在相应范围内时,蜂鸣器会发出一定频率的报警声,从而实现距离报警功能。
硬件电路系统框图如图3-1:
障碍物
图3.1系统结构框图
3.1单片机选型模块
基于名为LaunchPad,MSP-EXP430G2低成本实验板是一款适用于TI最新MSP430G2XXX犀利产品的完整开发解决方案。
基于USB的集成型仿真器可提供全系列MSP430G2XX器件开发应用所必备的所有软件、硬件。
LunchPad具有集成的DIP目标插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够轻松插入LaunchPad实验板电路。
图3.2单片机选型模块图
3.2SDM-IO集成模块
采用市场上卖的集成模块SDM-IO,该模块只需Trig端口发出一个超过10us的低电平,然后将Trig端的电平拉高,此时在模块内部会自动发出8个40kHz的超声波脉冲。
发射出的超声波经障碍物反射回来后,Echo端口会输出一个宽度为150us的负脉冲,并由高电平变为低电平,从Trig端口的高电平到Echo端口的低电平之间的时间就是超声波由发送到反射被接收这段时间
3.31602液晶显示模块
该频率计显示选用1602来进行显示,1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线,VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
图3.41602显示电路
3.4系统电源
整个电路采用USB电源,为所有的USB外设提供了单一的易于使用的标准的连接类型,简化了USB外设的设计。
整个的USB的系统只有一个端口和一个中断节省了系统资源。
4软件设计
4.1主程序
本系统整体工作主要由单片机程序控制实现,其工作过程为:
利用MSP430单片机加上外部自己设计的超声波接收和发射电路,完成超声波测距及报警功能,在可能的情况下,将测量距离提高到1m以上,精度控制在5%以内,当距离在相应范围内时,蜂鸣器会发出一定频率的报警声,从而实现报警功能。
系统程序框图如图4-1所示:
开始
NN
Y
图4.1系统程序流程图
5系统调试
本单片机的温度控制系统的设计分为硬件电路设计和软件设计两个部分,因此调试也分成两部分进行调试。
5.1硬件调试
主要根据系统框图和硬件原理设计进行原理的绘制、各参数的设置、电路板的制作,以及元器件的焊接等。
具体如下:
5.1.1各单元电路,确认各单元电路链接无误,尤其是关键元器件,一定要接保护电阻。
(1)在样机加电之前,首先用万用表等工具,根据硬件电器原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。
应特别注意电源的走线,防止电源之间的短路和极性错误,电源连接是否正确测试LCD显示屏是否有输出,LCD显示屏上的温度的显示是否符合;
(2)运用MSP430单片机中简单的I/O口功能,优异在检查硬件是否正常工作时先检测单片机本身的I/O口设置,可以先不连接外部电路,使用单片机本身I/O口,测试程序是否正确,以免在软件调试中引起不必要的麻烦。
5.1.2PCB设计注意事项:
在进行PCB设计时,必须遵守PCB设计的一般原则,并注意其要求。
(1)此系统采用的电阻和电容较多,注意在画PCB时注意各器件的封装,对照使用的实物选取封装,保证焊接硬件的正确性。
(2)此系统采用光敏电阻及较大的极性电容,介于成本的原因,采用的封装是是直插式的,在PCB设计时特别注意其大小位置。
(3)根据电路的模块布局,这样便于在出现问题时进行检查,尤其注意MSP430单片机系统中I/O口是否设置正确。
5.2程序调试
此程序设计中仅使用了MSP430单片机系统中I/O口资源,调试过程中,主要使用寄存器窗口,以及设置断点,观察系统程序主要实现对采集来的模拟信号进行模数转换,并对数字信号进行液晶显示,所以程序有采集模拟信号、DA转换和液晶显示三部分;
在中断子程序设置断点,判断运行是否正确。
在调试过程中,由局部到整体,判断程序可能出现的问题,认真分析逻辑,实现要求的功能,在简化程序。
5.2.1CCSV5的打开步骤
(1)右键CodeComposerStudiov5快捷方式,左键打开。
会出现如图5-1所示界面:
图5-1CodeComposerStudiov5软件加载界面
(2)加载完毕之后会有如图5-2所示界面出现:
图5-2CodeComposerStudiov5软件打开界面
(3)选择Project->
ImportExistingCCSEclipseProject,导入程序文件夹中的工程;
具体操作如图5-3:
图5-3CodeComposerStudiov5程序导入步骤图
5.3联合调试
整个系统的软硬件都完成后,需要进行联合调试,主要是针对系统设定的功能能否完成和完善进行调试。
图5.4联合调试图
6项目演练
对于本设计,尚可以进一步进行如下设想:
《基于MSP430单片机的超声波物位及流量监控系统》
设计思路如下:
利用超声波在空气中的可传播性及确定的传播速度,通过实时测量超声波在空气中的传播时间,根据时间和速度相乘为距离原理,设计了一种基于MSP430单片机的超声波测距系统。
系统通过实时检测汽车尾部与障碍物的距离,并根据设定的距离值由蜂鸣器发出不同频率的警报信息反馈给司机,对正常驾驶行车或倒车安全将起到至关重要的作用。
该测距系统最大测量距离6.5米,精确度可达15cm。
7项目总结
此系统单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
但仍有不足,对于准确性来讲距离范围还是太小。
附录1电路设计原理图(参考)
附录2PCB设计原理图(参考)
附录3关键程序(参考)
/*
*main.c
*/
#include<
msp430g2553.h>
intrinsics.h>
#include"
lcd1602.h"
#defineCPU_F1100000
#definedelaynms(x)__delay_cycles((long)((double)CPU_F*x/1000.0))
#definedelaynus(x)__delay_cycles((long)((double)CPU_F*x/1000000.0))
#defineTRIGBIT3
#defineUS_OUTP2OUT
#defineUS_DIRP2DIR
#defineECHOBIT4;
#defineUS_IEP2IE
#defineUS_IESP2IES
#defineUS_SELP2SEL
unsignedintpwm_wide;
unsignedintpwm_start;
unsignedintpwm_end;
doublepwm_time;
doubledistance;
charstr[16];
char*DoubleToString(doubled,char*str)
{
charstr1[40];
intj=0,k,i;
i=(int)d;
while(i>
0)
{
str1[j++]=i%10+'
0'
;
i/=10;
}
for(k=0;
k<
j;
k++)
str[k]=str1[j-1-k];
//
str[j++]='
.'
d-=(int)d;
for(i=0;
i<
10;
i++)
d*=10;
str[j++]=(int)d+'
while(str[--j]=='
);
str[++j]='
\0'
returnstr;
}
voidmain()
WDTCTL=WDTPW+WDTHOLD;
//Stopwatchdog
LCD_init();
US_DIR|=TRIG;
US_OUT|=TRIG;
US_SEL|=ECHO;
TA1CTL=TASSEL_2+MC_2;
TA1CCTL2=CAP+CM_3+CCIS_0+SCS+CCIE;
_EINT();
delaynms
(1);
LCD_write_string(0,0,"
Distance:
(m)"
while
(1){
US_OUT|=TRIG;
delaynus(24);
US_OUT&
=~TRIG;
unsignedintx,y;
delaynms(25);
pwm_time=1.12826e-6*pwm_wide;
distance=pwm_time*340/2.0;
delaynms
(1);
LCD_write_string(0,1,DoubleToString((double)distance,str));
delaynms(200);
#pragmavector=TIMER1_A1_VECTOR
__interruptvoidTimer_A(void){
switch(TA1IV){
case2:
break;
case4:
if(TA1CCTL2&
CCI)
pwm_start=TA1CCR2;
else
pwm_end=TA1CCR2;
pwm_wide=pwm_end-pwm_start;
break;
case10:
break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距仪 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)