收藏 分享(赏)

基于MSP430G2553的超声波测距.doc

上传人:精品资料 文档编号:8719131 上传时间:2019-07-09 格式:DOC 页数:14 大小:2.34MB
下载 相关 举报
基于MSP430G2553的超声波测距.doc_第1页
第1页 / 共14页
基于MSP430G2553的超声波测距.doc_第2页
第2页 / 共14页
基于MSP430G2553的超声波测距.doc_第3页
第3页 / 共14页
基于MSP430G2553的超声波测距.doc_第4页
第4页 / 共14页
基于MSP430G2553的超声波测距.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

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

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

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

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

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

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

7、路及电源电路组成。系统主要功能包括:1) 超声波的发射、接收,并根据计时时间计算测量距离;2) LED 显示器显示距离;3) 当系统运行不正常时,用复位电路复位第 4 章 主要元件介绍4.1 单片机 MSP430 launchpad M430G2553MSP430 LaunchPad 是一款易于使用的闪存编程器和调试工具,它提供了在 MSP430 超值系列器件上进行开发所需的一切内容。它提供了具有集成仿真功能的 14/20 引脚 DIP 插座目标板,可通过 Spy Bi-Wire(2 线 JTAG)协议对系统内置的 MSP430 超值系列器件进行快速编程和调试。由于 MSP430 闪存的功耗极

8、低,因此无需外部电源即可在数秒内擦除闪存并对其进行编程。LaunchPad 将 MSP430 器件与 Code Composer Studio 版本 4 或 IAR 嵌入式工作平台等集成软件环境相连接。MSP430 超值系列器件上的这些 IDE 是免费且非受限的软件。LaunchPad 支持所有采用 14 或 20 引脚 DIP 封装(TI 封装代码:N)的 MSP430G2xx 闪存器件。LaunchPad 还采用用于定制项目和应用的板载可编程 LED 和按钮!10 引脚 PCB 连接器还可用于连接 LaunchPad 和附加器件。实现在采用 14 或 20 引脚 DIP (N) 封装的所有

9、 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.3 5110LCD 液晶

10、显示屏NOKIA 公司生产的可用于其 5110、6150,6100 等系列移动电话的液晶显示模块。该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。Nokia5110 是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动 Nokia5110,用于开发的设备显示1) 性价比高, Nokia5110 可以显示 15 个汉字,30 个字符。2) 接口简单,仅四根 I/O 线即可驱动,LCD1602 需 11 根 I/O 线,LCD12864 需 12 根。 3) 速度快,是 LCD12864 的 20 倍,是 LCD1602 的 40 倍

11、。4) Nokia5110 工作电压 3.3V,正常显示时工作电流 200uA 以下,具有掉电模式,适合电池供电的便携式移动设备第 5 章 软件设计5.1 主程序流程系统上电后,首先系统初始化,定时器开始定时,控制超声波传感器发出超声波,同时使定时器开始定时。当出发管脚为低电平时接收到回波,立即使定时器停止工作,保存定时器的计数值。然后根据传输时间计算距离计算出距离后调用距离显示子程序,LCD 显示距离。N开始系统初始化时钟配置发射超声波,计时器打开接收到反射信号定时器停止,保存定时值根据时间计算距离显示测量距离5.2 子程序设计5.2.1 超声波发送子程序及超声波接收中断子程序超声波发生子程

12、序的作用是通过 P2.2 端口发送超声波脉冲信号(频率约 40kHz 的方波) ,脉冲宽度为 12s 左右,同时把计数器 T1 打开进行计时。void send_15us()/超声波发送 15us 的高电平P2OUTdelay_us(20);P2OUT|=BIT0;delay_us(20);P2OUTwhile(1)send_15us();delay(100);5.2.2 距离计算子程序当前温度和超声波往返时间均测量出来后,用 C 语言根据公式计算距离来编程是比较简单的算法。TIME1 = TA1CCR0;if (TIME1 TIME0)TIME1 = TIME1 - TIME0;elseTI

13、ME1 = 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 液晶显示程序#define LCD5110_CE_H P1OUT |= 0x80 /5110 片选 P1.7 置位 1#defi

14、ne LCD5110_CE_L P1OUT /延时 ms 函数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); /写一个 ASCII 字符extern void Write_String(const char *p); /写字

15、符串第 6 章 系统调试及误差分析6.1 系统焊接以万用板做载板,将 LCD 显示模块,单片机控制模块以及超声波发射接收模块组合在一起。用杜邦线连接各模块的管脚。6.2 误差及特性分析根据超声波的特性,距离测量时必须满足条件:被测目标必须垂直于超声波测距仪。被测目标表面必须平坦。测量时在超声波测距仪周围没有其他可反射超声波的物体。因此在测量过程中稍不小心就会接收不到超声波,而导致没有测量结果。由于超声波的往返时间由单片机 msp430 的定时器 T1 来记,定时器 T1 工作在方式 1,其最大定时时间为 65.536ms,可得出最大的测量距离在 10m 以内。且因为发射功率有限,测距仪也无法测

16、量 10m 外的物体。在实际的测试中 3m 之内有较高的测量精度。由于程序设计的问题,在移动测距装置的过程中,LCD 液晶屏上显示的数据无法实时刷新,需要在测试时按下复位按键实现距离数据的刷新。附录一:主要程序#include#include“header.h“char flag_time = 0;long TIME0 = 0, TIME1 = 0;long Distance_test = 0;long Distance0 = 0;char ge,shi,bai,qian;/时钟初始化void CLK_Init(void)if (CALBC1_1MHZ =0xFF | CALDCO_1MHZ

17、= 0xFF)while(1);BCSCTL1 = CALBC1_1MHZ;DCOCTL = CALDCO_1MHZ;/端口初始化void GPIO_Init(void)P1DIR |= BIT4+BIT5+BIT6+BIT7;P2DIR |= BIT0+BIT1;P2DIR /P2.3 作为捕获输入P2SEL |= BIT3; /主功能模块触发P2DIR |= BIT2; /P2.2 作为触发端,设为输出P2OUT /P2.2 输出低电平P1REN |=BIT3 ; /启用 P1.3 内部上下拉电阻P1OUT |=BIT3 ; /设置为上拉电阻P1IES |BIT3; /P1.3 为下降沿触

18、发中断P1IE |BIT3; /P1.3 中断允许/定时器 TIME1_A3 初始化函数void TIME1_A3_Init(void)TA1CTL |= TASSEL1 + MC_2; /SMCLK 作为时钟源,连续计数模式TA1CCTL0 |= CM_3 + CCIS_1 + SCS + CAP + CCIE; /上升沿与下降沿都捕获,输入源为CCI0B,同步捕获模式,使能中断TA1CCR0=0;const char table1=“DISTANCE:“;const char table2=“CM(+-)1CM“;/主函数int main(void)WDTCTL = WDTPW + WDT

19、HOLD; /关闭看门狗定时器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 中断服务函数#pragma vector = TIMER1_A0_VECTOR_interrupt void TIMER1_A0_ISR(void)TACTL |= TASSEL_2 + MC_2+TAIE

20、+TACLR; /SMCLK 作为时钟源,连续计数模式TA1CCTL0 |= CM_3 + CCIS_1 + SCS + CAP + CCIE; /上升沿与下降沿都捕获,while(1)TIME1 = TA1CCR0;if (TIME1 TIME0)TIME1 = TIME1 - TIME0;elseTIME1 = 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;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);

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报