基于MSP430G2553的超声波测距要点Word下载.docx

上传人:b****1 文档编号:5773365 上传时间:2023-05-05 格式:DOCX 页数:15 大小:602.40KB
下载 相关 举报
基于MSP430G2553的超声波测距要点Word下载.docx_第1页
第1页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第2页
第2页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第3页
第3页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第4页
第4页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第5页
第5页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第6页
第6页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第7页
第7页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第8页
第8页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第9页
第9页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第10页
第10页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第11页
第11页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第12页
第12页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第13页
第13页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第14页
第14页 / 共15页
基于MSP430G2553的超声波测距要点Word下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MSP430G2553的超声波测距要点Word下载.docx

《基于MSP430G2553的超声波测距要点Word下载.docx》由会员分享,可在线阅读,更多相关《基于MSP430G2553的超声波测距要点Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

基于MSP430G2553的超声波测距要点Word下载.docx

当被测距离小于预设报警值是,红灯亮起,提示距离过近。

在测距系统中加入蜂鸣器后可以实现预设的距离报警功能,进一步改进成为智能车倒车报警系统。

第2章超声波测距原理

2.1超声波简介

我们知道,当物体振动时会发出声音。

科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。

我们人类耳朵能听到的声波频率为20~20000赫兹。

当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。

因此,我们把频率高于20000赫兹的声波称为“超声波”。

通常用于医学诊断的超声波频率为1~5兆赫。

超声波具有方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。

可用于测距,测速,清洗,焊接,碎石等。

在医学,军事,工业,农业上有明显的作用。

2.2超声波测距原理

超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。

测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。

测量距离D为

式中c——超声波的传播速度;

——超声波发射到接收所需时间的一半,也就是单程传播时间。

第3章方案论证

3.1设计思路

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

由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,超声波测距仪可应用于倒车提醒、建筑工地、工业现场等的距离测量。

本实验设计并制作了了一款基于单片机的低成本、高精度、微型化的超声波测距仪。

采用单片机作为主控制器,控制发射触发脉冲的开始时间及脉宽,响应回波时刻并测量、计数发射至往返的时间差。

控制产生超声波信号,通过输出引脚输入至驱动器,经驱动器驱动后推动生超声波;

一旦探头接到回波,则其输出引脚的电平将从“1”变为“0”,这种电平变化可以作为单片机对接收探头的接收情况进行实时监控。

同时还控制显示电路,实现数字显示。

3.2硬件系统结构设计

超声波测距仪系统结构如下图所示。

它主要由单片机、超声波发射及接收模块、LCD显示电路及电源电路组成。

系统主要功能包括:

1)超声波的发射、接收,并根据计时时间计算测量距离;

2)LED显示器显示距离;

3)当系统运行不正常时,用复位电路复位

第4章主要元件介绍

4.1单片机MSP430launchpadM430G2553

MSP430LaunchPad是一款易于使用的闪存编程器和调试工具,它提供了在MSP430超值系列器件上进行开发所需的一切内容。

它提供了具有集成仿真功能的14/20引脚DIP插座目标板,可通过SpyBi-Wire(2线JTAG)协议对系统内置的MSP430超值系列器件进行快速编程和调试。

由于MSP430闪存的功耗极低,因此无需外部电源即可在数秒内擦除闪存并对其进行编程。

LaunchPad将MSP430器件与CodeComposerStudio版本4或IAR嵌入式工作平台等集成软件环境相连接。

MSP430超值系列器件上的这些IDE是免费且非受限的软件。

LaunchPad支持所有采用14或20引脚DIP封装(TI封装代码:

N)的MSP430G2xx闪存器件。

LaunchPad还采用用于定制项目和应用的板载可编程LED和按钮!

10引脚PCB连接器还可用于连接LaunchPad和附加器件。

实现在采用14或20引脚DIP(N)封装的所有MSP430超值系列器件上的开发。

LaunchPad的集成仿真器接口将基于闪存的MSP430超值系列器件与PC相连接,可通过USB实现实时系统内编程和调试。

4.2超声波传感器HC-SR04

接线方式,VCC、trig(控制端)、echo(接收端)、GND

模块工作原理:

(1)采用IO触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是

超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;

4.35110LCD液晶显示屏

NOKIA 

公司生产的可用于其5110、6150,6100 

等系列移动电话的液晶显示模块。

该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。

Nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示

1) 

性价比高,Nokia5110可以显示15个汉字,30个字符。

2) 

接口简单,仅四根I/O线即可驱动,LCD1602需11根I/O线,LCD12864需12根。

3) 

速度快,是LCD12864的20倍,是LCD1602的40倍。

4) 

Nokia5110工作电压3.3V,正常显示时工作电流200uA以下,具有掉电模式,适合电池供电的便携式移动设备

第5章软件设计

5.1主程序流程

系统上电后,首先系统初始化,定时器开始定时,控制超声波传感器发出超声波,同时使定时器开始定时。

当出发管脚为低电平时接收到回波,立即使定时器停止工作,保存定时器的计数值。

然后根据传输时间计算距离计算出距离后调用距离显示子程序,LCD显示距离。

N

5.2子程序设计

5.2.1超声波发送子程序及超声波接收中断子程序

超声波发生子程序的作用是通过P2.2端口发送超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T1打开进行计时。

voidsend_15us()//超声波发送15us的高电平

{

P2OUT&

=~BIT0;

delay_us(20);

P2OUT|=BIT0;

}

while

(1)

{

send_15us();

delay(100);

}

5.2.2距离计算子程序

当前温度和超声波往返时间均测量出来后,用C语言根据公式计算距离来编程是比较简单的算法。

TIME1=TA1CCR0;

if(TIME1>

TIME0)

TIME1=TIME1-TIME0;

else

TIME1=TIME1+(65535-TIME0);

Distance0=TIME1*170;

Distance_test=(Distance0/10000)-7;

ge=Distance_test%10+48;

shi=(Distance_test/10)%10+48;

bai=(Distance_test/100)%10+48;

qian=(Distance_test/1000)%10+48;

5.2.3液晶显示程序

#defineLCD5110_CE_HP1OUT|=0x80//5110片选P1.7置位1

#defineLCD5110_CE_LP1OUT&

=0x7f//5110片选P1.7复位0

#defineLCD5110_DC_HP1OUT|=0x40//5110数据命令选择端P1.6置位1

#defineLCD5110_DC_LP1OUT&

=0xbf//5110数据命令选择端P1.6复位0

#defineLCD5110_DIN_HP1OUT|=0x20//5110数据输入端P1.5置位1

#defineLCD5110_DIN_LP1OUT&

=0xdf//5110数据输入端P1.5复位0

#defineLCD5110_CLK_HP1OUT|=0x10//5110数据命令选择端P1.4置位1

#defineLCD5110_CLK_LP1OUT&

=0xef//5110数据命令选择端P1.4复位0

#defineLCD5110_BL_HP2OUT|=0x02//5110背光控制端P2.1置位1

#defineLCD5110_BL_LP2OUT&

=0xfd//5110背光控制端P2.1复位0

#defineLCD5110_RST_HP2OUT|=0x01//5110背光控制端P2.0置位1

#defineLCD5110_RST_LP2OUT&

=0xfe//5110背光控制端P2.0复位0

#defineLCD_CMD0x00//八位0

#defineLCD_DATA0xff//八位1

externvoidDELAYms(unsignedinttime);

//延时ms函数

externvoidLCD5110_SET_XY(charx,chary);

//写坐标函数

externvoidLCD5110_Init(void);

//屏幕初始化

externvoidLCD5110_Clear(unsignedcharL);

//清除指定行

externvoidLCD5110_Clear_All(void);

//清除全屏

externvoidWrite_Char(charc);

//写一个ASCII字符

externvoidWrite_String(constchar*p);

//写字符串

第6章系统调试及误差分析

6.1系统焊接

以万用板做载板,将LCD显示模块,单片机控制模块以及超声波发射接收模块组合在一起。

用杜邦线连接各模块的管脚。

6.2误差及特性分析

根据超声波的特性,距离测量时必须满足条件:

①被测目标必须垂直于超声波测距仪。

②被测目标表面必须平坦。

③测量时在超声波测距仪周围没有其他可反射超声波的物体。

因此在测量过程中稍不小心就会接收不到超声波,而导致没有测量结果。

由于超声波的往返时间由单片机msp430的定时器T1来记,定时器T1工作在方式1,其最大定时时间为65.536ms,可得出最大的测量距离在10m以内。

且因为发射功率有限,测距仪也无法测量10m外的物体。

在实际的测试中3m之内有较高的测量精度。

由于程序设计的问题,在移动测距装置的过程中,LCD液晶屏上显示的数据无法实时刷新,需要在测试时按下复位按键实现距离数据的刷新。

附录一:

主要程序

#include<

msp430g2553.h>

#include"

header.h"

charflag_time=0;

longTIME0=0,TIME1=0;

longDistance_test=0;

longDistance0=0;

charge,shi,bai,qian;

//时钟初始化

voidCLK_Init(void)

if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)

while

(1);

BCSCTL1=CALBC1_1MHZ;

DCOCTL=CALDCO_1MHZ;

//端口初始化

voidGPIO_Init(void)

P1DIR|=BIT4+BIT5+BIT6+BIT7;

P2DIR|=BIT0+BIT1;

P2DIR&

=~BIT3;

//P2.3作为捕获输入

P2SEL|=BIT3;

//主功能模块触发

P2DIR|=BIT2;

//P2.2作为触发端,设为输出

P2OUT&

=~BIT2;

//P2.2输出低电平

P1REN|=BIT3;

//启用P1.3内部上下拉电阻

P1OUT|=BIT3;

//设置为上拉电阻

P1IES|BIT3;

//P1.3为下降沿触发中断

P1IE|BIT3;

//P1.3中断允许

//定时器TIME1_A3初始化函数

voidTIME1_A3_Init(void)

TA1CTL|=TASSEL1+MC_2;

//SMCLK作为时钟源,连续计数模式

TA1CCTL0|=CM_3+CCIS_1+SCS+CAP+CCIE;

//上升沿与下降沿都捕获,输入源为CCI0B,同步捕获模式,使能中断

TA1CCR0=0;

constchartable1[]={"

DISTANCE:

"

};

constchartable2[]={"

CM(+-)1CM"

//主函数

intmain(void)

WDTCTL=WDTPW+WDTHOLD;

//关闭看门狗定时器

CLK_Init();

GPIO_Init();

TIME1_A3_Init();

LCD5110_Init();

LCD5110_Clear_All();

LCD5110_SET_XY(0,1);

Write_String(table1);

LCD5110_BL_H;

_EINT();

//中断使能

LPM0;

_NOP();

//定时器Timer1_ACCR0中断服务函数

#pragmavector=TIMER1_A0_VECTOR

__interruptvoidTIMER1_A0__ISR(void)

TACTL|=TASSEL_2+MC_2+TAIE+TACLR;

TA1CCTL0|=CM_3+CCIS_1+SCS+CAP+CCIE;

//上升沿与下降沿都捕获,

while

(1){

TIME1=TA1CCR0;

//根据实际距离校准后的数值补偿

LCD5110_Clear(4);

LCD5110_SET_XY(0,4);

Write_Char(qian);

Write_Char(bai);

Write_Char(shi);

Write_Char(ge);

LCD5110_SET_XY(24,4);

Write_String(table2);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2