课程设计-超声波测距+实际MSP430单片机与proteus中虚拟51单片机串口通信仿真1899_第1页
课程设计-超声波测距+实际MSP430单片机与proteus中虚拟51单片机串口通信仿真1899_第2页
课程设计-超声波测距+实际MSP430单片机与proteus中虚拟51单片机串口通信仿真1899_第3页
课程设计-超声波测距+实际MSP430单片机与proteus中虚拟51单片机串口通信仿真1899_第4页
课程设计-超声波测距+实际MSP430单片机与proteus中虚拟51单片机串口通信仿真1899_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

超超声波测距实际单片机与中串口通信仿真要人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的从单片机技术入手,一切向着数字化控制,智能化控制方向发展。中的虚拟单片机进行串口通温度信号的采集、温度以数宇的方式显示在液晶上,最终实现温度的采集、显示。利用集成的超声波测距模块测出与障碍物之间的距离。并且利用串口通信将实时数据发送给中的虚拟单片机,虚拟单片用的是 主要内容。主要是其针对实际应用需求,把许多模拟电路,数字电路和微处理器集成在一个D型的价格昂贵,运行环境温度范围窄,主要用于样机开发。这也表明了这几个系以后只要几根线就可更改并运行内部的程序。这为系统软件的升级提供了又一方在这一新的系列中,有了两个方面的发展。一是从存储器方面来说,将RAM容MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相FLLFLLDCO振荡器时钟系统。可以只使用一个晶体式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。在实时时钟模式下,可达2.5μA,在RAM保持模式P钟(RTC)和USB控制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出A/D转换器;16位定时器(Timer_A和Timer_B)具有捕获/比较功能,大量的捕获/比口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA模块。本章主要介绍系统的结构框图以及各测量模块的测量原理,然后介绍本设计的核心部件单片机、超声波测距模块和单线数字温度传感器。本设计的控制系统主要包括五部分:温度采集模块,超声波测距模块,电源及复位模块,报警模块,显示模块,具体结构如图2-1所示。MCU报警模块MCU报警模块采集模块MSP430F149超声波测距模块Lcd1602显示模块电源及复位我们知道,当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。人类耳朵能听到的声波频率为~,。当超声波在媒质中传播的速度和媒质的特性有关。声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。超声和可闻声本质上是一致的,它们的共同长短,在一定距离内沿直线传播具有良好的在界面上产生强烈的冲击和空化现象为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率在超声波探测电路中发射端输出一系列脉冲方波其宽度为发射超声波与接收超声波的时间间隔被测物距越远脉冲宽度越大输出脉冲个数与被测距离成正比。超声波测距的方法有多种如相位检测法、声波幅值检测法和往返时障碍物与汽车的距离;声波幅值检测法易受反射波的影响。本文硬件设计采用超声波往返时间检测法其测量原理图如图所示。其原理为在超声波发射器两端输入脉冲串脉冲信号经过超声波内部振子振荡产生机械波并通过空气介质传播到被测面由被测面反射到超声波接收器接收在超声波接收器两端信号是毫伏级的正弦波信号超声波经气测距的原理一般采用渡越时间法其原理是超声传感器发射超声波超声波在空气中传播至障碍物经反射后由超声传感器接收反射脉冲测量出超声脉冲从发式()中速率再乘以超声波在空气中的速度就得到二倍的声源与障碍物之间·为超声传感器与被测障碍物之间的距离为超声波在介质空发射到接收的时间。超声波在空气中的传播速度000量精度不是很高的情况下一般可以认为为常数。由于温度影响超声波温温度℃---秒表示:=+()式中温度(℃)。因此要精确测量与某个物体之间的距波速度略声速的传播误差。测距误差△≈。在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于的误差。使用的晶体作时钟基准的单片机定时器能方便的计数到μ的精度,因此系统采用定时器能保间误差在的测量范围内。去。例如当温度℃时超声波速度是℃时是,温度变化引起的超声波速度变化为。若超声波在℃的环境下以℃的声速测量距离所引误差将达到。超声波遇到障碍物后,一部分会反来,那么,通过计算发射出超声波到接收单片机发出短暂的信号,经放大后通过超声波换能器输出;行判断然后做相应处理,比如显示或报警。温度传感器通过某种关系的换算,就可以得到温度传感器的输出电压,这样单片机通过模拟口采集得到传感器的输出A/D输入通道与传感器的模拟电压输出通道相连接另外系统通过键盘输入来完成对报警温度上下限的设置,通过显示电路将得到的数据显示出来,当温度超过上限和下限的时候,系统进行报警,报警是通过驱动一个蜂鸣器来实现的。由以上分析可知,系统总体由两部分组成,即包括硬件系统设计和软件系统口线[4]。读出及温度变换功率来源于数据总线,总线本身也可以向所挂接的无需外围元件通过编程可以实现九位数字温度读数负压特性,电源极性接反时,温度计不会因发热而烧坏,但不能正常工作M高速缓存器存储器包含一个高速暂存RAM和一个非易失性的可电擦除的EPRAM速缓存器中的第五个字节,它的内容用于确定温度值各位字节的定义制的小数位的温度值了。而对于负的温度,则需要将采集到的数值取反加,即可以得到实际温度的十六进制表示。在按照正温度的计算方法就可以得出十进制的负的温度了。如表及表所示。表温度寄存器格式部分温度值行编程。当距离小当距离小于设定值时,有单片机的I/O口输出低电平,通过三极管的驱动作用,使蜂鸣器发利用LCD1602液晶将温度传感器采集到的温度和超声波传感器测的距离,通过单片机的处理后,转化成液晶能够显示的字符在液晶上显示出来。理模块。下面具体介绍各个模块的软件设计。考虑到设计当中需要用到液晶、串口,故需要对各个模块进行初始化编程:{{for(i=0xff;i>0;i--);}_EINT();//打开总中断!} /*******************************************参数:无返回值:无********************************************/voidInitUARTvoid){//使能USART0的发送和接受UMCTLx4A;//选择8位字符//UCLK=ACLK////初始化UART状态机USART接收中断}/*******************************************参数:无********************************************/{}//控制线端口设为输出状态//数据端口设为输出状态//规定的复位操作//显示模式设置//显示关闭//显示清屏//写字符时整体不移动//显示开,不开游标,不闪烁/*******************************************数:无********************************************/{}/*******************************************功能:向上位机发送字符串返回值:无********************************************/{while(*ptr!='\0'){while(!(IFG1&UTXIFG0));TXBUF0=*ptr++;}while(!(IFG1&UTXIFG0));//发送数据}报警处埋模块相当简单,这里只是简单的在一个口上送出数据来驱动蜂鸣器,该模块包括初始化端口和数据产生两个部分,下面就各个部分给出具体的初始化部分该部分将输出端口设置为输出方向。程序代码如下数据产生部分该部分主要是在输出端口产生数据,这里不是一个高发声。至于不同的周期信号可以得到不同的频率,可以根据信号处理的知识进行码,{intI;以以虚代实、以软代硬,独立建立一个完善的虚拟实验室。代替了在实验室和教室里的以实物进行实践的方式,可以在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。因此这一系列的软件受到广大电子设计爱好者的青睐,是他们工作、学习上难得的工具软件,也因此它们在全球得到了广泛应用。其中,软件提供多达多个元件库,元件涉及到数字和模拟、件、部分器件,编译方面支持和等编译器。它的功能强大,集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。它还提供多种现实存在的虚拟仪器,这些仪表有极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响。此外,软件还有图形显示功能,可以将线路上变化的信号,以提供了两种方法:系统总体执行效果和对软件的分步调试。它还提供了比较丰富的测试信号用于电路的测试,这些测试信号包括模拟信号和数字信号。在用进行仿真和程序调试时,只要关心从工程的角度直接看程序运行和电路工作的过程和结果。它还提供、仿真与设计功能,同时可以仿真单片机和周边设备,可以仿真、离数据,通过单片机的处理后,将数据显示在1602液晶上,实现和实际单片机同步显示的功中双击中的虚拟串口,弹出如下所示对话框:参数设置:由于实际单片机的串口线接的是电脑的端口,所以虚拟串口1.双击虚拟终端,有如下对话框:根据功能要求,编写虚拟单片机的C语言程序,实现液晶的显示以及报警器的工作。具体操作对信号放大的倍数,先用信号源给发射电路输入端一个的方波驱动超声波发射头发射超声波,经反射后由超声波接收头接收该测距电路的方波由单片机编程产生,方波的周期为,即µ,方波。由于晶振的单片机的时间分辨率是µ,所以只能产生半周期为µ或µ的方波信号,频率分别为和。本系统在编程时选用了声波是媒质中传播的质点的位置、压强和密度对相应静止值的扰动。高于称为压缩波或压强波,对一般流体媒质而言,声波是一种纵波,传播速度为为复数,其虚数部分代表损耗也是复数,其实数部分代表传播速度,虚数部分则与衰减常数每单位距离强度或幅度的衰减有关,测量后者可求得媒质中从式可知,声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响,液体的深度、温度等因素会引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度的影响的影响为L()」图空气中温度声速图由式和图可见,当温度θ从~℃变化时,将会产生的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度,即9,可在同一位置处多次重复测量,然后取平均值作为测量的真值。冲发射周期。据经验,超声测距的工作频率选择较为合适;发射脉宽一般应大于填差就越小。例如:单片机内置计时器的计数频率只有晶振频率的十二分之一,当晶振频率时,计数频率为,此时在空气中的测距时间量化误差为;当晶振频率为时,计数频率为,此时测距时间量化误差为。若采用外部硬件计时电路,则计数频率可直接引用单片机的晶振频率,温度传感器的温度测试分辨率为℃,-℃至℃准确度为±℃,总线接口。用的通用端口能很容易的模拟总线的读SPF多知识,从中受益1、实际单片机(MSP430)硬件电路:/********************************************************************采集.c*描述:温度采集+超声波测距+液晶显示+蜂鸣器报警+串口通信***********************************************************************/voidInitUART();voidmain(){//关狗timeinitInitUART();IO为输出{//温度显示//距离小于下限报警//距离显示//发送给虚拟单片机的字符串}}{{for(i=0xff;i>0;i--);}_EINT();//打开总中断!}/*******************************************参数:无返回值:无********************************************/voidInitUARTvoid){UMCTLx4A;//使能USART0的发送和接受//选择8位字符//UCLK=ACLK////初始化UART状态机USART接收中断}/*******************************************返回值:无********************************************/{while(*ptr!='\0'){while(!(IFG1&UTXIFG0));TXBUF0=*ptr++;}while(!(IFG1&UTXIFG0));}{if(P1IN&BIT1){}{//TACTL&=~MC_3;//停止计数}}/*******************************************成液晶显示的温度数字返回值:无********************************************/{//发送数据for(i=0;i<6;i++)dN[i]=0;//初始化显示变量if(temper&BIT0)//数值转换{}iftemperBIT){}{if(dN[2]>=10){}}iftemperBIT){}{}{}{}{if(dN[4]>=10){}}{if(dN[4]>=10){}}{if(dN[4]>=10){}}iftemperBITA){if(dN[4]>=10){}if(dN[5]>=10){}}}/********************************************************************文件名:串口接收试验.c*描述:该程序从串口接收数据,通过LCD显示数据。在LCD的第一行显示出来,***********************************************************************///这三个引脚参考资料/命令选择引脚//SOUNDER报警/*********************************************************************名称:Delay(uintdel)*功能:延时10ms*del*输入:无*输出:无***********************************************************************/{uinti,j;fori=0;i<del;i++);}/*********************************************************************名称:delay()*功能:延时,延时时间大概为140US。*输入:无*输出:无***********************************************************************/{inti,j;forii0;i++)for(j=0;j<=2;j++);}/*********************************************************************功能:1602命令函数*输入:输入的命令值*输出:无***********************************************************************/{}/********************************************************************write(uchardel)*功能:1602写数据函数输入:需要写入1602的数据*输出:无***********************************************************************/{}/*********************************************************************名称:L1602_init()*输入:无*输出:无***********************************************************************/{}/*********************************************************************功能:改变液晶中某位的值,如果要让第一行,第五个字符开始显示"abcdef",调用该*输入:行,列,需要输入1602的数据*输出:无************************************

温馨提示

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

最新文档

评论

0/150

提交评论