欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    超声波测距仪朱淼森解析.docx

    • 资源ID:26767330       资源大小:613.78KB        全文页数:32页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    超声波测距仪朱淼森解析.docx

    1、超声波测距仪朱淼森解析滁州职业技术学院信息工程系2015届应用电子专业毕业论文姓 名: 朱淼森 班 级: 12级应用电子(1)班 设计课题: 超声波测距仪 指导教师: 姚聪 2014年 11 月 28 日目 录目 录 2摘 要 4第一章 概述 11.1 系统功能要求 11.1.1基本要求 11.1.2发挥部分 11.2 系统设计方案 11.2.1超声波测距模块 21.2.2显示模块 21.2.3主控模块 21.2.4电源模块 31.2.5充电控制模块 3第二章 硬件设计 32.1 超声波测距模块 32.1.1设计方案 32.1.2 HC-SR04芯片介绍 42.1.3超声波测距模块原理 42.

    2、2 显示模块 52.2.1设计方案 52.2.2 1602液晶显示器介绍1 62.2.3 1602液晶显示器原理 62.3 主控模块 72.3.1设计方案 72.3.2 STC12C5A60S2单片机介绍2 72.3.3STC12C5A60S2单片机原理 82.4 总体硬件设计 92.4.1总体设计方案 92.4.2完整硬件电路图 9第三章 软件设计 103.1 1602液晶屏显示驱动模块 103.1.1软件设计方案 103.1.2软件流程 103.1.3软件代码 113.2 A/D检测模块 143.2.1软件设计方案 143.2.2软件流程图 153.2.3软件代码3 153.3 超声波测距

    3、模块 173.3.1软件设计方案 173.3.2软件流程图 173.3.3软件代码 183.4 软件整体流程 253.4.1软件整体设计方案 253.4.2主函数程序结构 25第五章 系统结果 265.1超声波测距仪性能介绍 265.2超声波测距仪结果分析 26致 谢 28参考文献 29摘 要超声波测距仪要求测量范围在5cm500cm,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波常用于距离测量。超声波测距仪,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度等测

    4、量的场合。利用超声波检测往往比较迅速、方便、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因为往往在移动机器人的研制中得到了广泛的应用。本组设计的超声波测距仪采用HC-SR04模块实现了超声波的发射与接收,采用STC12C5A60S2单片机做为该测距仪的控制核心,此设计易于调试,成本低廉,具有很强的实用价值和良好的市场前景。关键词:超声波传感器,单片机,测距仪第一章 概述声波分为纵波和横波等,声波可以在任意介质当中传播称之为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会产生反射,反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量

    5、得到,那么就可以计算出从声源到目标的距离。超声波测距仪就是基于上面原理而设计的。这里声波传播的介质为空气,采用的是方向性较好的超声波。1.1 系统功能要求1.1.1基本要求(1)最大测距距离 5m,最小测距距离 5cm。(2)测量精度小于 1cm。(3)人机界面友好,操作方便,用液晶屏或数码管显示测量值。(4)自带可充电电池作为电源,充电电池用 USB 口充电。1.1.2发挥部分(1)最大测距距离提高到 10m。(2)测量精度提高到 5mm。(3)使用两套以上设备实现“一问一答”的二次雷达工作方式进行距离测量。各套设备发射不同编码波形实现自身个体身份识别,并以此同时测量自身与其它多个个体之间的

    6、距离。1.2 系统设计方案根据系统功能要求,本此设计的思路是将系统分为电源模块、主控模块、超声波测距模块、显示模块和充电控制模块五个部分(如图1-1所示)进行分步设计。图1-1系统功能框图测量距离的方法有很多种,短距离的可以用米尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,系统的测量精度理论上可以达到毫米级。超声波测距的原理一般采用渡越时间法TOF(timeofflight),也可以称为回波探测法。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在介质中传播,途中碰到障碍物就立即返回来,

    7、超声波接收器收到反射波就立即停止计时。根据传声介质的不同,可分为液介式、气介式和固介式三种。根据所用探头的工作方式,又可分为自发自收单探头方式和一发一收双探头方式。超声波在空气中(20)的传播速度为340m/s(实际速度为344m/s这里取整数),根据计时器记录的时间就可以计算出发射点距障碍物的距离,公式S=340*t/2。1.2.1超声波测距模块超声波测距模块用于实现本系统核心功能,是本次设计首先考虑的内容,超声波测距模块的好坏,直接决定了产品的性能。1.2.2显示模块显示模块是人际交换的重要平台之一,显示模块的好坏直接决定了用户的体验,所以选择什么样的显示器件也是很重要的。1.2.3主控模

    8、块主控模块是本次设计的核心器件,它起到了“大脑”的作用,在一定程度上决定了产品的性能和功能;强大的单片机可以丰富产品功能,增加用户体验和产品性能,更利于软件开发等。所以选择什么样的单片机更加实惠,性能会更好,也是硬件设计所面临的挑战。1.2.4电源模块电源模块是超声波测距仪的“心脏”,只有给超声波测距仪的各个“器官”提高足够的功率,这些“器官”才能发挥自己的作用,所以选择一个适合超声波测距仪的“心脏”也是很重要的,在整体上影响了产品的性能,毕竟超声波测距仪是手持式的,具有便携的功能,电源模块也需要短小精悍。1.2.5充电控制模块这个模块在超声波测距仪中也是不可缺少的,它性能的优良关系到产品的性

    9、能和耐用度。根据设计要求,我们知道需要用USB接口给充电电池充电,如果我们用USB接口直接连接外部的USB电源的话,那么USB接口标准电压为5V,电池电压不低于5V,这时充电就无法进行。我们为了可以用USB接口对充电电池充电,采用的是:一个USB接口母头、升压模块、JZC-32F继电器、发光二极管共同组成充电控制模块。在超声波测距仪正常工作时使用电池直接供电,当电量不足时发管二极管点亮来提示电量不足。在为电源模块充电时,外接5v充电器连接超声波测距仪的USB接口,通过升压模块来提升充电电压,用单片机来控制继电器为电池充电。第二种方案还带有电池电量检测功能,可以再电池电量不足的时给予提示,避免了

    10、由于电池电量不足而影响超声波测距精度。第二章 硬件设计2.1 超声波测距模块2.1.1设计方案超声波测距模块用于实现本系统核心功能,是本次设计首先考虑的内容,在设计时,本组确实考虑了两种方案。方案一:选取超声波收发探头作为核心器件,配合外部电路以及超声波信号处理芯片(CX20106)自主设计测距模块。这种方案可以控制超声波的发射接收频率,具有很强系统优化功能,但是外部电路复杂,参数匹配要求较高,且测距的精度和距离不够高。方案二:购买市面上已经成熟的超声波测距模块。这种超声波模块的发射接收频率固定,不具有系统优化的可能,但是信号接收精度高,控制简单。经过比较,方案二既能够满足设计要求,同时对控制

    11、程序的要求较低,因此选取方案二作为本模块的设计方案。2.1.2 HC-SR04芯片介绍HC-SR04芯片是超声波模块,它由STC11单片机、MAX232电平转换芯片、TL074四个集成的运算放大器组成。使用HC-SR04超声波模块,可以很方便的与单片机连接,并且超声波测距的精度很高,驱动程序也很好编写。HC-SR04超声波模块也是由发射部分和接收部分组成。发射部分包括,STC11系列的单片机,MAX232电平转换芯片和超声波发射头组成。接收部分包括:TL074芯片和超声波接收头。STC11系列的单片机芯片主要起到控制作用,起到和我们使用的单片机进行通讯,包括TX引脚的启动电平和RX引脚的接收电

    12、平。我们将单片机输出TX=1,启动信号后,STC11单片机打开MAX232芯片的电源开关,并且输出8个40kHz的方波信号给MAX232芯片,MAX232芯片是电平转换芯片,在这里的作用就是电平转换,将5V电平转换到12V输出。这样可以提高发射功率,我们知道功率和电压和电流有关,现在电流不变,电压升高,那么超声波发射的功率显然就上升了。功率的提升可以增加超声波检测的距离和精度。正是有了这个模块,所以HC-SR04的性能这能这样好。TL074芯片是4个集成运放电路。而且它是低噪声输入的JFET的运算放大器,可以很好的将超声波接收头接收到的信号,进行放大,整形等。通过三极管控制和STC11单片机的

    13、通讯信号,拉低或者拉高。所有的信号经过STC11单片机处理后,和我们使用的主控芯片进行通讯和数据传输。2.1.3超声波测距模块原理(1)超声波测距原理:超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。测量距离L为L=(t/2)*c 超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距离障碍物的距离(s)即:s=340t/2。这

    14、就是所谓的时间差测距法。 (2)原理图:图2-1-1是和单片机连接的原理图;图2-1-2是HC-SR04内部原理图。图2-1-1 HC-SR04原理图图2-1-2 HC-SR04内部原理图2.2 显示模块2.2.1设计方案在显示模块的设计方案中,选择什么型号的显示器件,关乎到用户体验,本组认为数码管不利于控制,且视觉效果不好,所以选取了1602液晶屏作为主要显示器件,相对于数码管,液晶屏的显示信息数量更多,而且数据更清晰,这样用户使用时能更清楚、直观的明白距离等信息,同时配合发光二极管作为报警器件,可以拥有更好的用户体验。2.2.2 1602液晶显示器介绍11602液晶也叫1602字符型液晶,

    15、它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。2.2.3 1602液晶显示器原理(1)1602液晶显示器工作原理

    16、:1602液晶显示器的数据接口连接到单片机STC12C5A60S2的P0口上,控制端口连接在P2口上面,我们通过1602的读写时序,对RS、RW、E三个端口进行操作,便可以对1602进行读操作,写操作;数据也可以和1602进行交换,我们可以先写命令,也可以写地址,然后直接发送数据,这样1602就能识别了。详细的程序会在软件中介绍。 (2)原理图:图2-2-1是1602液晶显示器与单片机连接原理图;图2-2-2是1602液晶显示器的实物图。图2-2-1 1602液晶屏接线图 图2-2-2 1602液晶屏实物图2.3 主控模块2.3.1设计方案主控模块是控制超声波发射与接收的核心器件,选取什么型号

    17、的单片机是至关重要的。STC59C52RC单片机使用起来比较简单,程序也容易编写,但是考虑到,以后超声波测距仪功能的拓展和本次设计要求,如检测距离的精度高,且要进行A/D检测等,经过挑选,最终选择了STC12C5A60S2单片机作为本次超声波测距模块的主控芯片,这款单片机具有执行速度快,且内部自带A/D转换,符合了本次设计的功能要求。2.3.2 STC12C5A60S2单片机介绍2STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX81

    18、0专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合具体功能如下:(1)增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;(2)工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);(3)工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz;(4)用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;(5)片上集成1280字节RAM;(6)通用

    19、I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;(7) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;(8)有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);(9)内置看门狗;(10)时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户

    20、程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz,3.3V单片机为:8MHz12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;(11)共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;(12)2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;(13)PWM(2路)/PCA(可编程计数器阵列,2

    21、路):可用来当2路D/A使用、也可用来再实现2个定时器、也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);(14)A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口。2.3.3STC12C5A60S2单片机原理(1)STC12C5A60S2单片机控制原理:在本次设计中采用了单片机芯片,单片机采用的是STC12C5A60S2,采用11.0592MHz高精度的晶振,方便以后单片机和上位机通讯。其次是利用单片机对超声波模块发出的40kHz

    22、的超声波进行计时和距离的计算。根据距离控制1602液晶显示屏显示相应的距离,单片机内部自带ADC,用于检测电池组的电压,单片机通过检测得到电压数据,而后控制1602液晶屏进行电压数据的显示。我们根据不同的电压,控制信号灯进行点亮或者熄灭,也控制电池组进行充电或是不充电。(2)原理图:图2-3-1是STC12C5A60S2单片机引脚图。图2-3-1 STC12C5A60S2引脚图2.4 总体硬件设计2.4.1总体设计方案在上面我们已经提到了,我们所有的硬件模块都是根据设计要求而得到的,总体设计思路如下:当接通电源后,电源给所有硬件电路供电,同时单片机对电源模块进行电压检测,因为电池电量和电池电压

    23、有直接关系,所以我们可以通过检测电池电压知晓电池的电量,这样在电池没电时,可以发出报警信号,当电池过充时,同样可以报警和利用继电器关闭充电回路。并且单片机可以实时将电池电量显示在1602液晶屏上面,增加信息量。当上电时,单片机不仅会对电池电压进行检测,而且当电池电压不高不低时,会控制HC-SR04超声波模块发出超声波,并且打开定时器,当超声波反射回来的时候,关闭定时器,然后计算出距离数据,最后驱动1602液晶屏显示出来。这就是我们超声波测距仪的整体设计思路。2.4.2完整硬件电路图通过上面的设计方案和设计要求,本组设计出了完整的电路图,如图2-4-1所示。图2-4-1超声波测距仪完整电路图第三

    24、章 软件设计3.1 1602液晶屏显示驱动模块3.1.1软件设计方案根据1602液晶屏的资料,我们可以知道1602液晶屏有16个引脚,数据脚有8个,与操作相关的引脚有3个,分别是RS数据/命令选择端、R/W读写选择端、E使能信号。知道这些引脚功能,并且知道了操作1602的时序后,就可以编写出1602液晶屏的操作读写代码。通过这些读写代码,我们单片机就可以与1602液晶屏进行通讯,也就可以让1602液晶屏显示出我们想显示的内容了。3.1.2软件流程我们查询资料可以得到1602液晶屏的基本操作时序,如:写命令:RS=0.RW=0,D0-D7=指令码,E=高脉冲。写数据:RS=1,RW=0,D0-D

    25、7=数据,E=高脉冲。具体的写时序图如下所示:图3-1-1是写指令时序图;图3-1-2是写数据时序图。 图3-1-1 1602液晶屏写指令时序图 图3-1-2 1602液晶屏写数据时序图3.1.3软件代码#include#includeSTC12C5A60S2.Hsbit RS=P25;sbit RW=P26;sbit E=P27;extern void delay_ms(unsigned int j);unsigned char P00(unsigned char i) unsigned char da=0,n; for(n=8;n0;n-) da=da1; return(da); bit

    26、lcd_bz() /查忙函数 bit busy; RS=0; /选择目标为指令寄存器 RW=1; /读操作 E=1; /拉高E端口 _nop_(); _nop_();/ busy=(P0&0x80)7; /取出D7位(忙信号) busy=P0&0X01; _nop_(); _nop_(); E=0; /E端产生下降沿 return busy; /返回忙信号void lcd_wcmd(unsigned char cmd)/写指令函数 unsigned char cmd1; while(lcd_bz(); /查忙 cmd1=P00(cmd); RS=0; /选择目标为指令寄存器 RW=0; /写操

    27、作 P0=cmd1; /发送指令数据 E=1; /拉高E端口 _nop_(); _nop_(); _nop_(); _nop_(); E=0; /E端产生下降沿,数据写入指令寄存器void lcd_wdat(unsigned char dat)/写数据函数 unsigned char dat1; while(lcd_bz(); /查忙 dat1=P00(dat); RS=1; /选择目标为数据寄存器 RW=0; /写操作 P0=dat1; /发送显示内容数据 E=1; /拉高E端口 _nop_(); _nop_(); _nop_(); _nop_(); E=0; /E端产生下降沿,数据写入指令

    28、寄存器void lcd_init() /初始化函数 lcd_wcmd(0X38); /8位总线,双行显示,字符大小5*7 delay_ms(1); lcd_wcmd(0x0c); /开显示,无光标 delay_ms(1); lcd_wcmd(0x06); /光标向右,文字不移动 delay_ms(1); lcd_wcmd(0x01); /清屏 delay_ms(1);void display_up(unsigned char *p) /第一行显示函数 unsigned char temp=0,i; lcd_wcmd(0x00|0x80); /设置显示起始位置为左边第一位 for(i=0;i16

    29、;i+) /依次显示16个字符 temp=pi; lcd_wdat(temp); delay_ms(1); void display_down(unsigned char *p) /第二行显示函数 unsigned char temp=0,i; lcd_wcmd(0x40|0x80); /设定显示起始位置为左边第一位 for(i=0;i16;i+) /依次显示16个字符 temp=pi; lcd_wdat(temp); delay_ms(1); 3.2 A/D检测模块3.2.1软件设计方案在上面的设计要求中有提到,需要用电池供电,且用USB接口对电池充电,从这个要求中我们不难看出,一个好的产品

    30、必然需要对电池的电量进行检测,只有这样才能算是完整的产品。在硬件设计的时候,本组就考虑这种情况,所以选择了STC12C5A60S2单片机,这款单片机内部自带8路10位A/D转换,精度高,数量多,我们对单片机内部的相关寄存器进行调用就可以完成A/D转换。因为电池是直接对单片机进行供电,这时,如果电池电压下降,那么单片机检测出来的电压必然是不准确的,所以为了避免这种情况,我们用了两路A/D转换接口,一路是检测电池电压,另一路是检测基准电压源的输出电压,因为基准电压源的电压值不会随着电池的电压波动而变化,所以可以通过检测这个电压,将这个电压和电池电压之间的比例关系计算出来,就可以实现我们实际测得的电池电压数据是准确的,不会因为电池电压的波动而得到错误的电池电压数据,这样就可以正确的对电池进行操作了。3.2.2软件流程图A/D转换流程如图3-2-1所示:图3-2-1 A/D转换流程图3.2.3软件代码3void AD_init() /AD初始化 P1M0=0x01; /设置P1口最低位为开漏模式,用来A/D采集 P1M1=0x01; ADC_CONTR=0xe0; /开启A/D转换器电源


    注意事项

    本文(超声波测距仪朱淼森解析.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开