ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:594.58KB ,
资源ID:9491165      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9491165.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MSPG的超声波测距.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MSPG的超声波测距.docx

1、基于MSPG的超声波测距本科自主创新设计题目: 基于MSP430_launchpad超声波测距系统 姓 名 孙尚威 学 院 电子工程学院 专 业 电子信息科学与技术 班 级 02 学 号 49 班内序号 04 指导教师 赵同刚 2021年 5月第1章 绪论 项目简介本设计介绍了基于单片机操纵的超声测距仪的原理:由MSP430单片机操纵按时器产生超声波脉冲并计时,计算超声波自发射至接收的来回时刻,从而取得实测距离。用四位LCD液晶屏显示距离。整个硬件电路由超声波发射模块、超声波接收模块、单片机操纵模块、显示模块组成。在此基础上设计了系统的整体方案,最后通过硬件和软件实现了各个功能模块。相关部份附

2、有硬件电路图、程序流程图,给出了系统组成、电路原理及程序设计。此系统具有易操纵、可读性强和流程清楚等优势。但稳固性有待提高,后续有待实现显示数据实时刷新的功能 项目功能目标采纳单片机作为主操纵器,可实现低本钱、高精度、微型化测距系统。实现50cm-300cm的大体指标的障碍物距离测试,能够实现障碍物距离的实时显示,精准到厘米。当被测距离小于预设报警值是,红灯亮起,提示距离过近。在测距系统中加入蜂鸣器后能够实现预设的距离报警功能,进一步改良成为智能车倒车报警系统。第2章 超声波测距原理 超声波简介咱们明白,当物体振动时会发作声音。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。咱们人类

3、耳朵能听到的声波频率为2020000赫兹。当声波的振动频率大于20000赫兹或小于20赫兹时,咱们便听不见了。因此,咱们把频率高于20000赫兹的声波称为“超声波”。通经常使用于医学诊断的超声波频率为15兆赫。超声波具有方向性好,穿透能力强,易于取得较集中的声能,在水中传播距离远等特点。可用于测距,测速,清洗,焊接,碎石等。在医学,军事,工业,农业上有明显的作用。 超声波测距原理超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必需有能反射超声波的物体。测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播抵达障碍物后被反射回来,传感器接收到反射脉冲后

4、当即停止计时,然后依照超声波的传播速度和计不时刻就能够计算出两头的距离。测量距离D为 式中 c超声波的传播速度; 超声波发射到接收所需时刻的一半,也确实是单程传播时刻。第3章 方案论证 设计思路超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后碰到障碍物反射回来的时刻,依照发射和接收的时刻差计算动身射点到障碍物的实际距离。由于超声波易于定向发射、方向性好、强度易操纵、与被测量物体不需要直接接触的优势,超声波测距仪可应用于倒车提示、建筑工地、工业现场等的距离测量。本实验设计并制作了了一款基于单片机的低本钱、高精度、微型化的超声波测距仪。采纳单片机作为主操纵器,操纵发射触发脉冲

5、的开始时刻及脉宽,响应回波时刻并测量、计数发射至来回的时刻差。操纵产生超声波信号,通过输出引脚输入至驱动器,经驱动器驱动后推动生超声波;一旦探头接到回波,那么其输出引脚的电平将从“1”变成“0”,这种电平转变能够作为单片机对接收探头的接收情形进行实时监控。同时还操纵显示电路,实现数字显示。 硬件系统结构设计超声波测距仪系统结构如以下图所示。它要紧由单片机、超声波发射及接收模块、LCD显示电路及电源电路组成。系统要紧功能包括:1)超声波的发射、接收,并依照计不时刻计算测量距离;2)LED显示器显示距离;3)当系统运行不正常时,用复位电路复位第4章 要紧元件介绍 单片机MSP430 launchp

6、ad M430G2553MSP430 LaunchPad是一款易于利用的闪存编程器和调试工具,它提供了在 MSP430 超值系列器件上进行开发所需的一切内容。它提供了具有集成仿真功能的 14/20 引脚 DIP 插座目标板,可通过 Spy Bi-Wire(2 线 JTAG)协议对系统内置的 MSP430 超值系列器件进行快速编程和调试。由于 MSP430 闪存的功耗极低,因此无需外部电源即可在数秒内擦除闪存并对其进行编程。LaunchPad 将 MSP430 器件与 Code Composer Studio 版本 4 或 IAR 嵌入式工作平台等集成软件环境相连接。MSP430 超值系列器件上

7、的这些 IDE 是免费且非受限的软件。LaunchPad 支持所有采纳 14 或 20 引脚 DIP 封装(TI 封装代码:N)的 MSP430G2xx 闪存器件。LaunchPad 还采纳用于定制项目和应用的板载可编程 LED 和按钮!10 引脚 PCB 连接器还可用于连接 LaunchPad 和附加器件。实此刻采纳 14 或 20 引脚 DIP (N) 封装的所有 MSP430 超值系列器件上的开发。LaunchPad 的集成仿真器接口将基于闪存的 MSP430 超值系列器件与 PC 相连接,可通过 USB 实现实时系统内编程和调试。 超声波传感器HC-SR04接线方式,VCC、trig(

8、操纵端)、 echo(接收端)、GND 模块工作原理:(1)采纳IO触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是不是有信号返回;(3)有信号返回,通过IO输出一高电平,高电平持续的时刻确实是 超声波从发射到返回的时刻测试距离=(高电平常刻*声速(340M/S)/2; 5110LCD液晶显示屏NOKIA公司生产的可用于其5110、6150,6100等系列移动的液晶显示模块。该产品除应用于移动外,也可普遍应用于各类便携式设备的显示系统。Nokia5110是一款经典机型,可能由于经典的缘故,旧机械很多,因此很多电子工程师就把旧机械的屏幕拆下来,自己驱动No

9、kia5110,用于开发的设备显示1)性价比高, Nokia5110能够显示15个汉字,30个字符。2)接口简单,仅四根I/O线即可驱动,LCD1602需11根I/O线,LCD12864需12根。3)速度快,是LCD12864的20倍,是LCD1602的40倍。4)Nokia5110工作电压,正常显示时工作电流200uA以下,具有掉电模式,适合电池供电的便携式移动设备第5章 软件设计 主程序流程系统上电后,第一系统初始化,按时器开始按时,操纵超声波传感器发出超声波,同时使按时器开始按时。当动身管脚为低电平常接收到回波,当即便按时器停止工作,保留按时器的计数值。然后依照传输时刻计算距离计算出距离

10、后挪用距离显示子程序,LCD显示距离。 N 子程序设计 超声波发送子程序及超声波接收中断子程序超声波发生子程序的作用是通过端口发送超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12s左右,同时把计数器T1打开进行计时。void send_15us()/超声波发送15us的高电平 P2OUT&=BIT0; delay_us(20); P2OUT|=BIT0; delay_us(20); P2OUT&=BIT0; while(1) send_15us(); delay(100); 距离计算子程序当前温度和超声波来回时刻均测量出来后,用C语言依照公式计算距离来编程是比较简单的算法。TIME1

11、= 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; 液晶显示程序

12、#define LCD5110_CE_H P1OUT |= 0x80 /5110片选置位 1#define LCD5110_CE_L P1OUT &= 0x7f /5110片选复位 0#define LCD5110_DC_H P1OUT |= 0x40 /5110数据命令选择端置位 1#define LCD5110_DC_L P1OUT &= 0xbf /5110数据命令选择端复位 0#define LCD5110_DIN_H P1OUT |= 0x20 /5110数据输入端置位 1#define LCD5110_DIN_L P1OUT &= 0xdf /5110数据输入端复位 0#defin

13、e LCD5110_CLK_H P1OUT |= 0x10 /5110数据命令选择端置位 1#define LCD5110_CLK_L P1OUT &= 0xef /5110数据命令选择端复位 0#define LCD5110_BL_H P2OUT |= 0x02 /5110背光控制端置位 1#define LCD5110_BL_L P2OUT &= 0xfd /5110背光控制端复位 0#define LCD5110_RST_H P2OUT |= 0x01 /5110背光控制端置位 1#define LCD5110_RST_L P2OUT &=0xfe /5110背光控制端复位 0#defi

14、ne LCD_CMD 0x00 /八位0#define LCD_DATA 0xff /八位1extern void DELAYms(unsigned int time); /延时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

15、 c); /写一个ASCII字符extern void Write_String(const char *p); /写字符串第6章 系统调试及误差分析 系统焊接以万用板做载板,将LCD显示模块,单片机操纵模块和超声波发射接收模块组合在一路。用杜邦线连接各模块的管脚。 误差及特性分析依照超声波的特性,距离测量时必需知足条件:被测目标必需垂直于超声波测距仪。被测目标表面必需平坦。测量时在超声波测距仪周围没有其他可反射超声波的物体。因此在测量进程中稍不警惕就会接收不到超声波,而致使没有测量结果。由于超声波的来回时刻由单片机msp430的按时器T1来记,按时器T1工作在方式1,其最大定不时刻为,可得出

16、最大的测量距离在10m之内。且因为发射功率有限,测距仪也无法测量10m外的物体。在实际的测试中3m之内有较高的测量精度。由于程序设计的问题,在移动测距装置的进程中,LCD液晶屏上显示的数据无法实时刷新,需要在测试时按下复位按键实现距离数据的刷新。附录一:要紧程序#include#includechar 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 =0x

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

18、 P1IES |BIT3; /为下降沿触发中断 P1IE |BIT3; /中断允许/定时器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 =

19、 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中断服务函数#pragma vector = TIMER1_A0_VECTOR_interrupt void TIMER1_A0_ISR(void) TACTL

20、 |= TASSEL_2 + MC_2+TAIE+TACLR; /SMCLK作为时钟源,连续计数模式 TA1CCTL0 |= CM_3 + CCIS_1 + SCS + CAP + CCIE; /上升沿与下降沿都捕获, while(1) 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; 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-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1