基于MSP430G2553的超声波测距讲解_第1页
基于MSP430G2553的超声波测距讲解_第2页
基于MSP430G2553的超声波测距讲解_第3页
基于MSP430G2553的超声波测距讲解_第4页
基于MSP430G2553的超声波测距讲解_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科自主创新设计 题目: 基于 MSP430 launchpad 超声波测距系统 姓 名 孙尚威 学 院 电子工程学院 专 业 电子信息科学与技术 班 级 2013211202 学 号 2013210849 班内序号 04 指导教师 赵同刚 2015 年 5 月 目录 第 1 章 绪论 3 1.1 项目简介 3 1.2 项目功能目标 3 第 2 章 超声波测距原理 3 2.1 超声波简介 3 2.2 超声波测距原理 4 第 3 章 方案论证 4 3.1 设计思路 4 3.2 硬件系统结构设计 4 第 4 章 主要元件介绍 5 4.1 单片机 MSP430 LAUNCHPAD M430G255

2、3 5 4.2 超声波传感器 HC-SR04 6 4.3 5110LCD 液晶显示屏 6 第 5 章 软件设计 7 5.1 主程序流程 7 5.2 子程序设计 8 5.2.1 超声波发送子程序及超声波接收中断子程序 8 5.2.2 距离计算子程序 8 5.2.3 液晶显示程序 9 第 6 章 系统调试及误差分析 10 6.1 系统焊接 10 6.2 误差及特性分析 10 附录一:主要程序 12 第 1 章 绪论 1.1 项目简介 本设计介绍了基于单片机控制的超声测距仪的原理:由MSP430单片机控制定时器 产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到实测距离。用 四位 LC

3、D液晶屏显示距离。整个硬件电路由超声波发射模块、超声波接收模块、单片机 控制模块、显示模块组成。在此基础上设计了系统的总体方案,最后通过硬件和软件实 现了各个功能模块。相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原 理及程序设计。此系统具有易控制、可读性强和流程清晰等优点。但稳定性有待提高, 后续有待实现显示数据实时刷新的功能 1.2 项目功能目标 采用单片机作为主控制器,可实现低成本、高精度、微型化测距系统。实现 50cm-300cm的基本指标的障碍物距离测试, 能够实现障碍物距离的实时显示, 精确到厘 米。当被测距离小于预设报警值是,红灯亮起,提示距离过近。在测距系统中加入蜂鸣

4、 器后可以实现预设的距离报警功能,进一步改进成为智能车倒车报警系统。 第 2 章 超声波测距原理 2.1 超声波简介 我们知道,当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频 率,它的单位是赫兹。我们人类耳朵能听到的声波频率为 20 20000 赫兹。当声波的振 动频率大于 20000 赫兹或小于 20 赫兹时,我们便听不见了。因此,我们把频率高于 20000 赫兹的声波称为“超声波” 。通常用于医学诊断的超声波频率为 1 5 兆赫。超声波具有 方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。可用于测 距,测速,清洗,焊接,碎石等。在医学,军事,工业,农业上

5、有明显的作用。 2.2 超声波测距原理 超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须 有能反射超声波的物体。测量距离时,将超声波传感器对准反射物发射超声波,并开始 计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停 止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。测量距离D为 1 D ct 2 式中 c 超声波的传播速度; 1t 2 超声波发射到接收所需时间的一半,也就是单程传播时间。 第 3 章 方案论证 3.1 设计思路 超声波测距的原理是利用超声波在空气中的传播速度为已知, 测量声波在发射后遇 到障碍物反射回来的时间,

6、根据发射和接收的时间差计算出发射点到障碍物的实际距 离。由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触 的优点,超声波测距仪可应用于倒车提醒、建筑工地、工业现场等的距离测量。本实验 设计并制作了了一款基于单片机的低成本、高精度、微型化的超声波测距仪。采用单片 机作为主控制器,控制发射触发脉冲的开始时间及脉宽,响应回波时刻并测量、计数发 射至往返的时间差。控制产生超声波信号,通过输出引脚输入至驱动器,经驱动器驱动 后推动生超声波;一旦探头接到回波,则其输出引脚的电平将从“1”变为“ 0”,这种 电平变化可以作为单片机对接收探头的接收情况进行实时监控。同时还控制显示电路,

7、 实现数字显示。 3.2 硬件系统结构设计 超声波测距仪系统结构如下图所示。 它主要由单片机、 超声波发射及接收模块、 LCD 显示电路及电源电路组成。系统主要功能包括: 1) 超声波的发射、接收,并根据计时时间计算测量距离; 2) LED 显示器显示距离; 3)当系统运行不正常时,用复位电路复位 第 4 章 主要元件介绍 4.1 单片机 MSP430 launchpad M430G2553 MSP430 LaunchPad 是一款易于使用的闪存编程器和调试工具,它提供了在 MSP430 超值系列器件上进行开发所需的一切内容。它提供了具有集成仿真功能的 14/20 引脚 DIP 插座目标板,可

8、通过 Spy Bi-Wire ( 2 线 JTAG )协议对系统内置的 MSP430 超值系列器件进行快速编程和调 试。由于 MSP430 闪存的功耗极低,因此 无需外部电源即可在数秒内擦除闪存并对 其进行编程。 LaunchPad 将 MSP430 器件 与 Code Composer Studio 版本 4 或 IAR 嵌入式工作平台等集成软件环境相连接。 MSP430 超值系列器件上的这些 IDE 是免 费且非受限的软件。 LaunchPad 支持所有采 用 14 或 20 引脚 DIP 封装( TI 封装代 码 : N ) 的 MSP430G2xx 闪 存 器 件 。 LaunchPa

9、d 还采用用于定制项目和应用的板载可编程 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 个 40k

10、hz 的方波,自动检测是否有信号返回; (3) 有信号返回,通过 IO 输出一高电平,高电平持续的时间就是 超声波从发射到返回的时间测试距离 =(高电平时间 *声速 (340M/S)/2; 4.3 5110LCD 液晶显示屏 NOKIA 公司生产的可用于其 5110、6150,6100 等系列移动电话的液晶显示模块。 该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。 Nokia5110 是一款经典机型,可能由于经典的缘故,旧机器 很多,所以很多电子工程师就把旧机器的屏幕拆 下来,自己驱动 Nokia5110,用于开发的设备显 示 1) 性价比高, Nokia5110 可以显示

11、 15 个 汉字, 30 个字符。 2) 接口简单,仅四根 I/O 线即可驱动, LCD1602 需 11根 I/O 线,LCD12864 需 12根。 3) 速度快,是 LCD12864 的 20倍,是 LCD1602 的 40倍。 4) Nokia5110工作电压 3.3V,正常显示时工作电流 200uA 以下,具有掉电模式, 适合电池供电的便携式移动设备 第 5 章 软件设计 5.1 主程序流程 系统上电后,首先系统初始化,定时器开始定时,控制超声波传感器发出超声波, 同时使定时器开始定时。当出发管脚为低电平时接收到回波,立即使定时器停止工作, 保存定时器的计数值。然后根据传输时间计算距

12、离计算出距离后调用距离显示子程序, LCD 显示距离。 5.2 子程序设计 5.2.1 超声波发送子程序及超声波接收中断子程序 超声波发生子程序的作用是通过 P2.2 端口发送超声波脉冲信号(频率约 40kHz 的 方波),脉冲宽度为 12s左右,同时把计数器 T1 打开进行计时。 void send_15us()/超声波发送 15us 的高电平 P2OUT delay_us(20); P2OUT|=BIT0; delay_us(20); P2OUT while(1) send_15us(); delay(100); 5.2.2 距离计算子程序 当前温度和超声波往返时间均测量出来后, 用 C

13、语言根据公式计算距离来编程是比 较简单的算法。 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

14、 test /1000) % 10 + 48; 5.2.3 液晶显示程序 #defineLCD5110_CE_H P1OUT |= 0 x80 #defineLCD5110_CE_L P1OUT extern void LCD5110_SET_XY(char x, char y); extern void LCD5110_Init(void); extern void LCD5110_Clear(unsigned char L); extern void LCD5110_Clear_All(void); extern void Write_Char(char c); extern void W

15、rite_String(const char *p); /5110 片选 P1.7 置位 1 /5110 片选 P1.7 复位 0 /5110 数据命令选择端 P1.6 置位 1 /5110 数据命令选择端 P1.6 复位 0 /5110 数据输入端 P1.5 置位 1 /5110 数据输入端 P1.5 复位0 /5110 数据命令选择端 P1.4 置位1 /5110 数据命令选择端 P1.4 复位 0 /5110 背光控制端 P2.1 置位1 /5110 背光控制端 P2.1 复位0 /5110 背光控制端 P2.0 置位1 /5110 背光控制端 P2.0 复位0 / 八位 0 /八位 1

16、 / 延时 ms 函数 /写坐标函数 /屏幕初始化 /清除指定行 /清除全屏 /写一个 ASCII 字符 /写字符串 第 6 章 系统调试及误差分析 6.1 系统焊接 以万用板做载板,将 LCD 显示模块,单片机控制模块以及超声波发射接收模块组 合在一起。用杜邦线连接各模块的管脚。 6.2 误差及特性分析 根据超声波的特性,距离测量时必须满足条件: 被测目标必须垂直于超声波测距仪。 被测目标表面必须平坦。 测量时在超声波测距仪周围没有其他可反射超声波的物体。 因此在测量过程中稍 不小心就会接收不到超声波,而导致没有测量结果。 由于超声波的往返时间由单片机 msp430的定时器 T1来记,定时器

17、 T1 工作在方式 1,其最大定时时间为 65.536ms,可得出最大的测量距离在 10m 以内。且因为发射功率 有限,测距仪也无法测量 10m 外的物体。在实际的测试中 3m之内有较高的测量精度。 由于程序设计的问题, 在移动测距装置的过程中, LCD 液晶屏上显示的数据无法实时刷 新,需要在测试时按下复位按键实现距离数据的刷新。 附录一:主要程序 #include #includeheader.h char flag_time = 0; long TIME0 = 0, TIME1 = 0; long Distance_test = 0; long Distance0 = 0; char g

18、e,shi,bai,qian; /时钟初始化 void CLK_Init(void) if (CALBC1_1MHZ =0 xFF | CALDCO_1MHZ = 0 xFF) while(1); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; /端口初始化 void GPIO_Init(void) P1DIR |= BIT4+BIT5+BIT6+BIT7; /P2.3 作为捕获输入 /主功能模块触发 /P2.2 作为触发端,设为输出 /P2.2 输出低电平 / 启用 P1.3 内部上下拉电阻 /设置为上拉电阻 /P1.3 为下降沿触发中断 /P1.3

19、 中断允许 P2DIR |= BIT0+BIT1; P2DIR P2SEL |= BIT3; P2DIR |= BIT2; P2OUT P1REN |=BIT3 ; P1OUT |=BIT3 ; P1IES |BIT3; P1IE |BIT3; /定时器 TIME1_A3 初始化函数 void TIME1_A3_Init(void) CCI0B , TA1CTL |= TASSEL1 + MC_2; /SMCLK 作为时钟源,连续计数模式 TA1CCTL0 |= CM_3 + CCIS_1 + SCS + CAP + CCIE;/ 上升沿与下降沿都捕获,输入源为 同步捕获模式,使能中断 TA1

20、CCR0=0; const char table1=DISTANCE:; const char table2=CM(+-)1CM; /主函数 int main(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();/ 中断使能 while(1) LPM0; _NOP(); /定时器 Timer1_A CCR0 中断服务函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论