《基于单片机的超声波测距系统的设计与实现毕业设计论文(27页).doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统的设计与实现毕业设计论文(27页).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的超声波测距系统的设计与实现毕业设计论文-第 19 页毕业设计(论文)题 目基于单片机的超声波测距系统的设计与实现 系 (院)专 业班 级学生姓名学 号指导教师职 称二一五年六月 日独 创 声 明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名: 二 年 月 日毕业设计(论文)使用授权声明本人完全了解滨州学院关于
2、收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定)作者签名: 二 年 月 日基于单片机的超声波测距系统的设计与实现摘 要 超声波是一种机械波,其振动频率超过20KHz。人耳无法捕捉到它,超出了人的听力极限。具有聚束、定向及反射、透射等机械特性。这些机械特性正是超声波被利用作为测量距离的重要方法的原因之一。而超声波具有简单快
3、捷,精确度高和耐用都特点是另一大原因。 本次设计对单片机、超声波和超声波测距原理进行了详细介绍。更是用STC89C51单片机、HC-SR04超声波模块、DS18B20温度传感器和LCD液晶显示屏通过软件编程的方式设计出了一个简单易操作、经济实用和精度高简易超声波测距仪。通过误差分析进行了温度补偿,并且做到了可调节测量量程,实现报警等功能。关键词:单片机;液晶显示;报警;测距Design and implementation of ultrasonic distance measurement system based on MCU Abstract Ultrasonic refers to t
4、he vibration frequency is greater than 20kHz is equal to the sum of the acoustic wave, the vibration frequency is beyond the range of the human ear hearing, so known as ultrasound. Ultrasonic is mechanical wave. Have the mechanical properties of the polymer, such as the spotlight, orientation, refle
5、ction and transmission. These mechanical properties is one of the reasons to be used as an important method of ultrasonic distance measurement. Ultrasound is simple and efficient, high precision and durable character is ticsis nother big reason.This design gives a detailed introduction to the microc
6、ontroller,ultrasonic and ultrasonic ranging principle. It is with MCU STC89C51, hc-sr04 ultrasonic module, DS18B20 temperature sensor and LCD display through software programming to design out a simple and easy operation, economy and practicality and accuracy high simple ultrasonic range finder. Thr
7、ough the error analysis of temperature compensation, and to achieve the adjustable measurement range, realize the alarm function.Key words: SCM; LCD; alarm; ranging目 录第一章 绪论1 1.1 研究的背景和意义1 1.2 国内外研究现状1 1.3 课题研究内容和意义2第二章 超声波测距的原理5 2.1 超声波介绍5 2.2 超声波传感器的介绍5 2.2.1 传感器的选择6 2.2.2 超声波测距的原理7 2.2.3 温度补偿8 2.
8、2.4 测量盲区9 2.3 本章小结9第三章 系统硬件设计10 3.1 系统硬件设计10 3.2 单片机概述11 3.2.1 STC89C51主要性能特点11 3.2.2 STC89C51结构组成12 3.2.3 STC89C51内部组成14 3.3 超声波发射电路设计15 3.3.1 发射电路设计方案15 3.3.2 超声波发射器的注意事项16 3.4 超声波接收电路设计17 3.5 LCD显示部分18 3.6 报警部分20 3.7 DS18B20部分21 3.8 本章小结21第四章 系统软件设计22 4.1 系统软件设计22 4.2 外部中断子程序24 4.3 定时器中断子程序25 4.4
9、 重要功能实现26 4.4.1 实现温度读取功能26 4.4.2 实现温度转换声速27 4.4.3 实现距离计算27 4.5 实验测量数据28 4.6 本章小结28结论29参考文献30谢辞31附录一(实物图)32附录二(Proteus仿真图)33第一章 绪论1.1 研究的背景和意义 随着科技的发展,超声波已经可以对实物做出精确测量。伴随着社会经济的蓬勃发展,电子测量技术也逐渐被应用到各个领域,而超声波测距技术因拥有测量精确度高、成本消耗低、性能稳定度高等优点则成为其中的佼佼者。频率在20KHz以上的声波是超声波。也正是因为这些特性超声波才会被应用到测量距离中。科技在不断发展,人们的需求也在不断
10、提高,因此,超声波逐渐被人们应用到生活和个行业(如医疗、工业、航天等)当中。 超声波是一种非常实用有效的测量方法,人们借用它不需要接触物体就可以进行精确测量。它还对环境因素(如光线、高温、腐蚀气体和潮湿等)的测量影响具有较高的抵抗性。而且还有测量精确度高,对环境无污染,基本上不用维护,使用寿命长等好处。所以能够广泛应用于化工、污水、环境监测等诸多具有腐蚀性的行业中。对环境适应能力强,无论在什么样的环境中,都能够进行精确测量并标定准确度。可对多种液体(如水、酒和饮料等)进行液位控制,设定差值。还有一个很大的优点,能够对盛装液体的液位罐直接显示其液位高度。因此,超声波测距在空气和特殊环境中拥有较广
11、泛的应用。超声波在机器人的研制和倒车雷达等实例中也被广泛使用。1.2 国内外研究现状 实际上,在工程应用当中超声波检测技术存在两个突出的问题,一是:由于超声波自身传播的特性和某些材料的吸收特性,使得超声波在传播距离加长的同时,回波信号也随着变的异常微弱;二是:回波信号中夹杂着许多干扰信号,而回波信号自身较为微弱,很容易被噪声所淹没。因此传统方法对提取回波信号已无效。 人们一直很重视如何降低输入信号的信噪比。从19世纪末,傅里叶变换理论和傅里叶级数问世,人们就高度重视对频率信号的检测,第一台锁相放大器在1962年问世,从而使提取淹没在噪声中的信号成为现实。在此之后不断涌现出新的检测理论和方法,成
12、功研制出许多性能优良的测量仪器,并不断成功的降低微弱信号的测量下限。自20世纪90年代开始,经过十多年的发展,混沌理论作为一种新的检测方法出现,并在在微弱信号检测中具有巨大的潜力。 自从进入21世纪开始,国内的广大学者和科研人员就对超声波测量精确度的提高方面进行了大量的尝试研究。其中有对超声波发射脉冲的选取和对新型超声波换能器的研发。主要研究方向是如何提高超声波回波信号精度的处理方法。更是针对影响超声波测距精确度的措施提出了温度补偿等方法。就目前来说,国内虽然对超声波回波信号的处理有了较为成熟的研究发展,由于它对超声波测距的探测定位具有关键性作用,因此国内学者仍然将它作为重要研究方向之一。1.
13、3 课题研究内容和意义本设计系统打算实现在实验室内进行小范围的测距。测距量程约为0.02m4m,测量精度可达到毫米级。系统整体结构如图1.1所示。图1.1系统设计方案图 由图可知本系统硬件设计是由六部分组成,分别为: (1)发射电路。 (2)接收电路。 (3)单片机控制器。 (4)LCD显示电路。 (5)温度测量电路。 (6)声音报警电路。 实际测量时,在LCD液晶显示屏上显示出所在地的实时环境温度。发射电路发射超声波经反弹后被接收电路接收。经过STC89C51单片机进行数据处理后将距离也显示到LCD上。如果距离超出设定的值,报警电路就会鸣叫,即提醒测量距离超出量程。超声波测距器的系统框图如下
14、图1.2所示。图1.2系统设计框图 从效益和成本出发,HC-SR04超声波测距模块是一个非常好的选择。由下图1.3可看出,T0时刻由超声波模块的发射端发射一束方波,并于此时定时器开始工作计时。接收端收到回波后,产生一负跳变通到单片机的中断口。之后单片机会响应中断程序,同时定时器会停止计数。两次测得的时间差,就是我们所需要的超声波在媒介中的传播时间t,通过进一步计算便可以得出距离。图1.3时序图通过本次设计,完善自我,学习了解单片机的相关知识。并且能够具体了解基于单片机的超声波测距的发展现状以及能进行简易测距仪器制作。这对我们以后的工作生活是非常有意义的。第二章 超声波测距的原理2.1 超声波介
15、绍 所谓超声波就是频率超过20KHz人耳不能辨识的音波。如今超声波被应用到诸如工业、医疗、军事等各种行业当中。 超声波的特点: (1)超声波传播过程中,方向性很强,能量集中。 (2)超声波的传播适应于各种不同媒质,传播距离够远。 (3)超声波载体性很强,可作为载体进行治疗操作。 (4)超声波能够在固、液、气、固熔等介质中传播。 (5)超声波传递的能量可以很强。 (6)超声波具有反射的现象。这是其之所以能够成为测量距离的重要方法之一的原因之一。 (7)超声波不但是一种波动形式,可作为媒介如B超等进行医疗诊断;同时也是一种能量形式,可对患者进行治疗。2.2 超声波传感器的介绍 超声波发生器可分为两
16、大类: 一是电气方式产生超声波; 二是机械方式产生超声波。而压电式超声波发生器是目前常用的。超声波传感器结构如下图2.1和图2.2。 图2.1超声波传感器外部结构 图2.2超声波传感器内部结构2.2.1 传感器的选择 本课题设计选用的是HC-SR04超声波模块。HC-RS04模块不但性能比较稳定、测度距离精确,而且该模块的测量精度高,盲区小。 可用于机器人避障,物体测距,液位检测,公共安全,停车场检测。 电气参数如下表2.1。表2.1超声波模块HC-SR04的电气参数电气参数超声波模块HC-SR04工作电压DC5V工作电流15mA工作频率40KHz最远射程4m最近射程2cm测量角度15度输入触
17、发信号10uS的TTL脉冲输出回响信号输出TTL电平信号,与射程成比例规格尺寸45*20*15mm 基本工作原理: 采用I/O口TRIG触发测距。能够给出至少10us的高电平信号。 该模块将会自动向外界发送8个40KHz的方波。并且还能够自动检测是否有信号返回。当信号返回时,I/O口对此作出响应而输出一个高电平。这个高电平所持续存在的时间就是超声波往返的时间。 本模块的使用方法非常简单。通过控制口发一个10s以上的高电平,然后在接收端等候高电平输出。当高电平输出时,定时器开始计时。这个端口的高电平经过一段时间后会变为低电平。变为低电平的一瞬间我们所读取定时器的值,就是这次测量距离的时间。这样就
18、可以算出距离。通过不断的进行周期测量,就可以得出移动测量的值。2.2.2 超声波测距的原理超声波测距方法主要有三种:(1) 声波幅值检测法: 该方法虽然最廉价最简单但容易受反射波的影响,精确度却是最低,在此就不详细介绍了。(2)相位检测法: 相位检测法是利用发射波与反射波之间的相位差来实现超声波测距。设起始时刻为,则发射波的强度为(实际测量时的发射波是方波,为了方便计算说明所以在此用正弦波举例)。接收调制波的强度为,则接收与发射时刻的相位差为,时间差为。根据时间和相位的关系,待测距离可以转换为。其中为波长,为整周期数,为非整周期的相位差值。可用计数器测出。该方法虽然测量精确度高精度高,但是检测
19、范围有限。(3) 渡越时间法: 首先通过检测计数从超声波传感器的发射端发出声波的时刻记为t1,超声波返回到传感器接收端的时刻t2,两者的时间差t=t2-t1,这个时间差就是渡越时间。设L为测量距离,t为往返时间差,超声波的传播速度为c,求距离L。则有L=ct/2。该方法简单而直接,极易实现。虽然精度相对于相位检测法差点,但好在测量距离足够远。综合以上分析,本设计将采用渡越时间法。超声波测距原理如图2.3所示。图2.3超声波测距原理图2.2.3 温度补偿超声波也是声波,所以其声速c仍然与空气温度有关。一般来说,c随着温度每升高1,就增加0.6m/s。表2.2列出了几种温度下的声速。表2.2超声波
20、声速随温度的变化温度()-30-20-100102030100声速(m/s)313319325323338334349386 测量时,若温度变化不大,则声速取值c=340m/s。若要求高精度,则可通过温度补偿或者软件改进提高精度。 在本设计中用STC89C51中的定时器来测量超声波传播时间,用DS18B20测量环境温度,达到提高测距精度的目的。空气中声速与温度的关系可表示为: 公式2-(1) 声速确定后,只要得到超声波往返的时间,就可以求得距离: 公式2-(2) 增加角度补偿可使得测量数值更加的精确。 公式2-(3) 2.2.4 测量盲区我们都知道,超声波模块发射探头和接收探头是并排放置到铜板
21、上的。而为了方便测量,再加上测量会有一个夹角,夹角越小越精确,因此他们离着很近。显而易见,发射探头所发出的超声波必然会先传播到接收探头。但该声波信号并不是反射回来的信号,只要检测到该信号,接收电路就会对其进行处理而产生中断信号,单片机也会跟着做出响应。但所测得值并不是我们要测的,是错误的操作。因此要等发送脉冲一段时间后才能让单片机接收中断信号。然而,该短时间内所走过的长度我们是不能检测到的,即为测量盲区。可用下图2.4表示。图2.4超声波回波测距原理分析图2.3 本章小结 本章主要是介绍设计相关理论,对超声波和设计所用单片机作了简要概述,并对STC89C51的性能特点、外部结构和内部组成做了相
22、关阐述。超声波传感器的选择也很重要。最重要的是超声波测距的原理方法,这是根本,因此本章对此进行了相关介绍,并为对测量时产生的误差进行减免措施。第三章 系统硬件设计3.1 系统硬件设计 系统硬件主要由以下六部分组成: (1)单片机系统。 (2)超声波发射电路。 (3)超声波检测接收电路。 (4)温度补偿电路。 (5)显示电路。 (6)报警电路。其结构框图如图3.1所示。图3.1系统硬件设计结构框图 社会在发展,科技在提高,超声波测距技术也随之更进一步。但超声波的发射和接收仍然是我们要研究的重要问题。超声波传感器的工作原理都是一样的。无论其大小、形状、灵敏度有什么不同。而要提高超声波测量的精度,则
23、必须要从设计要求的关键和难点出发,即对超声波的发射处理和超声波的接收处理这两个重要方面。3.2 单片机概述 单片机就是一块由诸多功能模块构成的集成电路芯片。所以单片机会拥有一些特殊功能。然而这些功能的实现需要人为控制,即通过编程来控制,进而实现各种不同的功能。目前单片机应用领域很广泛: 工业自动化。如数据采集、测控技术。 智能仪器仪表。如数字示波器、数字信号源、数字万用表、感应电流表等。 消费类电子产品。如洗衣机、电冰箱、空调机、电视机、微波炉、IC卡、 汽车电子设备等。 通信方面。如调制解调器、程控交换技术、手机等。 武器装备。如战斗机、坦克和智能导弹等。3.2.1 STC89C51主要性能
24、特点 STC89C51简单介绍: (1)STC 前缀,表示STC公司生产的产品。 (2)8表示该芯片为8051内核芯片。 (3)9表示内部含Flash EPROM存储器。 (4)C表示该器件为CMOS产品。 (5)5固定不变。 (6)1表示该芯片内部程序存储空间的大小为4KB 。算法其实就是5后面的这个数乘上4KB。 主要性能: (1)STC89C51系列单片机是从引脚到内核都完全兼容标准8051的单片机。 (2)STC89C51 系列单片机是新一代的8051单片机。它具有高速/低功耗的优点,工作频率最高可达到25MHz50MHz。 (3)STC89C51系列单片机有较宽的工作电压。 5V型号
25、的可工作于3.4V6.0V。 3.3V型号的可工作于2.0V4.0V。 STC89C51单片机还具有以下特点: (1)ISP与IAP编程方式。 (2)6时钟,机器周期模式。 (3)降低簟片机对外部电磁辐射。 (4)内部扩展RAM。 (5)双DPTR数据指针。 (6)扩晨P4口。 (7)内置看门狗电路。 (8)软复位功能。 (9)较高的性价比。3.2.2 STC89C51结构组成 其外形封装直插式40 脚封装(DIP)如图3.2: STC89C51的 4 个 8 位I/O口的功能说明如下: (1)P0口(3932脚):P0 口是一个 8 位漏极开路的双向 I/O 口。每个口可独立控制。51单片机
26、的P0口并不能正常地输出高电平或者低电平。这是由于在其内部没有上拉电阻的原因,会造成其其处于高阻状态而无法正常工作。实际使用时,为使其能够正常工作我们需要为其添加上上拉电阻(一般选择10K)。高阻在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 (2)P1口(18脚): 是一个准双向8位I/O口,每个口可独立控制。是一个“准”双向口。这个“准”不是即将成为而差一点的意思,而是准备的“准”。之所以称他为“准”双向I/O口,有两个原因。一是是因为其内部含上拉电阻并且不能进行输入锁存。二是首先要先向P2口写入1才能把P2口作为输入口使用,也就是在这之前会有一个“准”备程序。 (3)P2口(
27、2128脚):P2口也是一个准双向8位I/O口。每个口均可独立控制,内带上拉电阻,与P1口相似。 (4)P3(1017脚)口:是一个准双向8位I/O口。每个口可独立控制,内带上拉电阻。P3口拥有两个功能。一是作为普通I/O口使用。其第二功能如下表3.1所示。 表3.1 P3口各引脚第二功能定义标号引脚第二功能说明P3.010RXD串行输入口P3.111TXD串行输出口P3.212INT0外部中断0P3.313INT1外部中断1P3.414T0定时/计数器0外部输入端P3.515T1定时/计数器0外部输入端P3.616WR外部数据存储器写脉冲P3.717RD外部数据存储器读脉冲图3.2 STC8
28、9C51引脚排列3.2.3 STC89C51内部组成 STC89C51单片机内包含的具体部分如下: (1)一个8 位 CPU。 (2)一个片内振荡器及时钟电路。 (3)4KB Flash 程序存储器。 (4)128 B RAM 数据存储器。 (4)两个16 位定时器/计数器。 (5)看门狗。 (6)32 条可编程的 I/O线(4组8 位并行 I/O端口)。 (7)一个可编程全双工串口通信。 (8)8 个中断源、两个优先级嵌套中断结构。 如图3.3是单片机STC89C51各部件关系的的框图。图3.3 STC89C51内部组成3.3 超声波发射电路设计要完成超声波测量,首先需要超声波发射电路能够向
29、外界发射出40KHz的方波脉冲信号。本系统设计使用软件(如用单片机软件编程)的方法输出该方波脉冲信号。由电路可看出需要在单片机的P1.0端口输出该脉冲信号,但其输出功率却不不能够达到我们所需要的要求。为了满足远距离测量,则脉冲信号的发射距离就需要够远也就要增大其功率。所以该脉冲信号分成两路,用来增大传输功率,以满足设计要求。最后送给超声波发射换能器TCT4016T以声波形式发射到空气中。发射部分电路,如图3.4所示。图3.4超声波发射电路框图3.3.1 发射电路设计方案 对发射电路进行分析: (1)发射波必须具备良好的重复性。从而可以得到高分辨率。 (2)发射波尽量具备同一频率的振动。从而达到
30、可以消除干扰和接收同一振动波峰的目的。 (3) 发射波需要用间断多脉冲发射的方式进行发射。从而达到可以测量较远距离的要求。 (4)单片机正常工作输出最大电压5V。要使得发射电路更合加理就需要进行功率放大。 综上所述,发射电路设计的主要解决问题是要提高发射到发射探头的输入电压和功率。本设计系统发射的方波脉冲信号,输出波形稳定,但输出电流和功率却很低。因此添加一个单电源乙类互补对称功率放大电路,如图3.5所示。图3.5超声波发射电路3.3.2 超声波发射器的注意事项 超声波模块的工作原理:首先由超声波发射器向测量目的地发出发射波,定时器同时开始计时。到达目的地后会发生反射并立刻返回。当超声波接收器
31、接收到反射波后定时器就会马上停止计时。 限制该系统最大可测距离有四个因素: (1)超声波的幅度。 (2)反射的质地。 (3)反射回波和入射声波之间的夹角。 (4)接收换能器的灵敏度。 测距误差主要来自以下四个方面: (1)超声波波束与探测目标的入射角影响。 (2)超声波的回波强度受测量距离的直接影响。一般来说,距离越远,强度越弱。然而实际测量时,却不一定是第一个回波过零点触发。 (3)超声波的传播速度对测距有影响。然而超声波在传播媒质中传播时会受到温度(其次还受压力和密度)的直接影响。为提高测量精度需对声速进行修正。 (4)利用发射波的往返来进行距离计算是超声波测距的基本原理。实际上这种测量方
32、法存在发射和反射夹角,设这个夹角的大小为2。当很小的时候,可近似的认为该夹角不存在,因此按公式进行距离的计算;当夹角很大时,就需要对距离进行修正,修正公式为: 公式3-(1) 在实际测量过程中,超声波测距板块上的发射探头和接收探头是并排在铜板上的,因此都会存在一个有效测量夹角。本设计所使用的超声波测距模块的有效夹角为15度。3.4 超声波接收电路设计 接收换能器晶片在接收到超声波垂直作用后,会产生谐振。并因此会形成逐步加强的机械振动。因压电效应晶片只可以提供微小的交变电压信号,却不能提供电流信号。因此要用一个前置放大电路将该信号充分放大,并为了排除干扰信号,在放大有用信号的同时还应加入滤波电路
33、。 为了后续电路的设计更合理实用,需要加一个前置放大电路。该放大电路能够对我们所需要的信号进行放大,对噪声干扰信号抑制。通过这样操作来达到所需要求的最大信噪比的目的。图3.6前置放大电路 前置放大电路的电路图如图3.6所示。为满足设计要求,前置放大器的输入阻抗要足够大。同时还必须有高精度、小输入的偏置电压。为减小该系统地线噪声的影响,需要采取相应的措施,通过采用前置放大器与其他元件组成反向比例放大电路是其中一种非常有效的方法。 该放大器电路结构简单,本次设计用到的放大器是用R2和R3来调节电压的放大倍数的。图中Rp称为平衡电阻,是为了平衡两输入端的电阻而存在。为了满足系统设计需要,通过放大电路
34、将输入信号放大200倍。3.5 LCD显示部分本设计系统所测量得到的距离会用LCD1602液晶显示屏来显示。显示屏的参数如表3.2。表3.2 1602参数显示容量16X2个字符芯片工作电压4.55.5V芯片工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm液晶显示屏具有小体积、低消耗、使用方便和显示内容丰富等优点。比数码管更专业、美观。在实际使用过程中,LCD的数据线要与单片机的P0口连接,LCD的控制线要与单片机的P2口连接。如图3.7所示。图3.7 1602液晶显示电路 第1脚:vss为地电源。 第2脚:VDD接5V正电源。 第3脚:v0为液晶显
35、示器对比度调整端。接正电源时对比度最低,接地电源时对比度最高。对比度过高会产生“鬼影”,可通过一个1OK的电位器调整对比度。 第4脚:RS为寄存器选择。低电平选用指令寄存器,高电平选用数据寄存器。 第5脚:RW为读写信号线。低电平时进行写操作,高电平时进行读操作。 第6脚:E端为使能端。当E端由高电平跳变成低电平时,液晶模块执行命令。 第7-14脚:DO-D7为8位双向数据线。 第15-16脚:空脚 为了布线方便,单片机端的D0D7与LCD1602的D7D0连接,正好反着接。因此在编写软件时要记得做相应处理,才能读取正确。3.6 报警部分采用一个蜂鸣器,由P1.2输出一定频率的信号。在连接到蜂
36、鸣器之前,先由一个三极管9012的放大。报警部分的连线,如图3.8所示。图3.8 蜂鸣器报警电路3.7 DS18B20部分 DS18820内部结构主要由四部分构成。分别为: (1)64位光刻ROM。 (2)温度传感器。 (3)非挥发温度报警触发器TH和TL。 (4)配置寄存器。 因声速与空气的温度有关,所以为了提高系统精度,采用温度补偿功能。本设计将采用DS18B20温度传感器进行环境温度采集。该温度传感器具有简单体积小、精度高、连接方便和线路简单等特点。将DS18B20的数据线与单片机的P1.1口相连,这样温度传感器就能将检测到的环境温度发送到单片机达到温度测量的目的。如图3.9所示。图3.
37、9 DS18B20温度测量电路3.8 本章小结 本章着重介绍了超声测距系统的具体硬件设计电路。全面详细的对该系统硬件的各个部分(主要是发射、接收、检测以及显示这四部分)电路的电路原理进行分析阐述。了解系统设计的一般情况。第四章 系统软件设计4.1 系统软件设计 系统程序结构: (1)DS18B20温度传感器接口模块。该模块首先要初始化程序,然后再写入命令最后进行读取子程序。 (2)基于TC1602的显示模块。该模块和温度传感接口模块用法相似。 (3)温度补偿与距离计算模块。该模块需要对超声波发送控制程序、接收处理程序、温度补偿子程序等进行程序编写。 (4)本次设计使用C语言编写程序,C语言相比
38、汇编有许多的优势;编译器使用KeilVersion 4进行程序编译,Keil功能强大使用方便。 系统软件的主程序可分为以下几部分: (1)系统初始化。 (2)按键处理。 (3)各个子程序的调度管理。 本设计主程序的思想如下: (1)温度为两位显示,距离为三位显示,单位为cm。 (2)温度每隔900ms就会进行一次采样。900ms符合DS18B20在12位精度下转换周期。所以满足该速度要求。每隔60ms超声波就会发送一次。 (3)按键S为测量启动键。 (4)系统采用STC89C51的内时钟。 (5)没有使用看门狗功能。 (6)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小
39、测量约为2cm。 如图4.1所示描述了各个模块的关系。图4.1系统软件方框图/主函数 void main()Init_ultrasonic_wave();/屏幕初始化Init1602();/温度初始化tmpchange(); t_=tmp();tmpchange();t_=tmp();tmpchange();t_=tmp();4.2 外部中断子程序如图4.2所示,中断服务程序是响应单片机的外部中断。由系统主程序进行发射4OKHz的脉冲信号。该脉冲信号会在遇到障碍物后发生反射而产生反射波。反射波被接收检测电路接收后,将会产生能指挥单片机进行下一步操作的外中断信号。而在中断服务程序当中,首先需要对
40、现场进行必要保护。然后再读取进入中断服务程序的计数。对该计数数据处理后再通过计算得取距离值,同时将得出的距离数值转换为十进制。最后送到P2口显示输出。图4.2外部中断子程序流程框图4.3 定时器中断子程序 定时器中断子程序流程图如图4.3所示。由于51单片机中的定时器是16位的,因而会存在一个最大计时时间,通过计算可是是65536us。当测量的距离很远的时候,定时器的工作出错,发生溢出现象。所以必须对溢出中断进行相应的设置才能使得单片机正常工作。同时由于硬件原因,电路测量距离的最大量程为4米。当实际测量距离超出最大量程时,接收探头就检测不到回波。也就是不能产生外部中断更会因此而不能关闭定时器。
41、图4.3定时终端子程序流程4.4 重要功能实现 在软件设计方面,要达到实验目的,实现基于单片机的超声波测距系统的设计与实现。除了以上程序需要编写外,还需要对温度读取功能、温度转换声速和距离计算进行编程实现。4.4.1 实现温度读取功能/温度初始化 StartModule();/启动超声波 while(!RX); /当RX为零时等待TR0=1; /开启计数while(RX); /当RX为1计数并等待TR0=0; /关闭计数delayms(20); /20MStmpchange(); /温度转换t_=tmp(); /度温度4.4.2 实现温度转换声速/计算不同温度下的速度void JS_(ucha
42、r WD)/大于2030else if(WD20&flag=0)L_=(time*3.49)/200; /算出来是CM; 其余温度下的计算方法与上面的程序所写的一样,只需更换系数即可。4.4.3 实现距离计算/距离计算 SD为当时的超声速度void Conut(uchar WD) time=TH0*256+TL0; TH0=0; TL0=0; JS_(WD);4.5 实验测量数据表4.1实验测量数据环境温度测量值cm实测值cm误差%2114.514.30.01382125.625.30.01262025.625.40.01152225.625.20.01472195.685.10.0181 由
43、上表4.1数据可看出,测量精度受温度和测量距离的远近的影响。一般来说随温度的升高和测量距离的加长而变大。4.6 本章小结 本章节就怎样实现该设计并得出结果进行了软件设计方面的分析阐述并简要地将相关C程序加以直观罗列。结论 本设计是以单片机STC89C51为核心,加以温度、和超声波传感器、LCD液晶显示屏以及蜂鸣器并利用超声波的特性设计出的一种简单易操作的测距系统。超声波检测比较简单易操作,测量精度也足够日常声波使用。当然,通过增强扩展之后已能满足工业使用要求。随着科技的不断高速发展,超声波也将渗透应用于更加宽广的领域。就目前来说,超声波仍然存在局限性,因此需要对超声波进行更加有力的研究,使得超