毕业设计(论文)测温及超声波测距.doc

上传人:laozhun 文档编号:3983616 上传时间:2023-03-30 格式:DOC 页数:22 大小:310.50KB
返回 下载 相关 举报
毕业设计(论文)测温及超声波测距.doc_第1页
第1页 / 共22页
毕业设计(论文)测温及超声波测距.doc_第2页
第2页 / 共22页
毕业设计(论文)测温及超声波测距.doc_第3页
第3页 / 共22页
毕业设计(论文)测温及超声波测距.doc_第4页
第4页 / 共22页
毕业设计(论文)测温及超声波测距.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《毕业设计(论文)测温及超声波测距.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)测温及超声波测距.doc(22页珍藏版)》请在三一办公上搜索。

1、毕业设计说明书课题名称: 测温及超声波测距 学生姓名 专 业 电子信息工程 班 级 电信0902 时 间 2011.9 2011.4 指导教师 电子信息与自动化工程系摘 要随着现代科学技术的发展,人们逐渐了解到,超声波的穿透力很强不易损坏物体,而且它在两万赫兹以上,不会影响到人们的正常工作,并且他的传播速度快。由于超声波具有这样大的优点,所以人们对超声波的利用率越来也高。从大到工业体系的探伤,小到测距和金属表面清尘,超声波几乎无处不在的伴随我们的生活。本设计是以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪。整个电路采用模块化设计,由单片机控制模块,超声波发射模块,超声

2、波接收模块和数据显示模块组成。软件部分由主程序、预置子程序、发射子程序、接收子程序、显示子程序组成。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图。关键词:AT89C51;超声波;测距;测温 AbstractWith the development of modern science and technology, people gradually understanding that the ultrasonic wave penetrating power is very

3、 strong .The ultrasonic wave is not easy to damage the object,morover it above 20KHZ and affect peoples nomal work. So the using of Ultrasonic wave is more and more frequent. From the large scale flaw detection of the industrial system to the measuring distance and clearing of the metal surface , th

4、e ultrasonic wave is useful in our every daily life . The ultrasonic distance measurer design with digital display functional module used AT89C52 MCU as the core component,of which carries the characteristics with low-cost,high-precision and microminiaturization.The whole circuit used modular design

5、,it includes the MCU control module,ultrasonic transmit module,ultrasonic receive module and the Data display module.In the software design part,it contains the main program,the presets subroutine,the launch subroutine,the receiving subroutine and the display subroutine.Through the comprehensive ana

6、lysis processing of the AT89C51 MCU, The signal of each detector can realizing the functions of ultrasonic measure.Based on these,designed the overall scheme of the system.On the finally,through the hardware and software realize the whole modules.And the relevant parts have the hardware circuit diag

7、rams and program flow charts on the appendix.Key words:AT89S51;Silent Wave;Measure Distance;Measure Temperature 目 录摘 要IIABSTRACTIII1 前言22 设计思路和设计原理22.1超声波发生器.22.2压电式超声波发生器原理.22.3超声波测距原理.23硬件设计.33.1发射回路33.2接收回路.33.3 LED43.4 总电路图54.1 各芯片功能特点简介54.1 51系列单片机的功能特点54.2 CX20106简介及其调试64.3 LED HD4478064.4DS18

8、B2075 系统的软件编程设计85.1超声波测距仪的算法设计85.2主程序流程图95.3超声波发生子程序和超声波接收中断程序95.4系统的软硬件调试106程序18参考文献19附录一:程序清单211 前言超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。目前一般都采用波在介质传播速度和时间关系进行测量。常用的技术主要有激光测距、微波雷达测距超声波测距三种。激光测距。这是利用激光的单色性和相传播速度V易受空气中温度、湿度、压强等因素的影响

9、,其中干性好、方向性强等特点,以实现高精度的计量和检测,如量长度、距离、速度 、角度等等。手持式和便携式测距仪,作用距离为数百米至数十千米。一般应用到远距离测量。微波雷达测距是利用目标对电磁波反射来发现目标并测定其位置。根据微波雷达的用途不同,所测定的目标可能是飞机、导弹、车辆、建筑物、云雨等。微波测距一般应用于雷达系统,GPS定位系统。超声波测距就是利用其反射特性,超声波发生器不断地发射出40kHz超声波遇到障碍物后反射回反射波,超声波接收器接收到发射波信号,并将其转换为电信号。相比于其它定位技术超声波定位技术成本低,制作容易,非常适合于短距离测量定位。本课程设计利用超声波发射与接收装置,实

10、现超声波的测距功能,从而实现物体定位。利用该设计,可以实现盲人导航系统的研究与应用,实现障碍物的定位测量等。2 设计思想和测距原理2.1、 超声波发生器为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。2.2、压电式超声波发生器原理压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共

11、振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。2.3、超声波测距原理超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=v*t/2 。这就是所谓的时间差测距法。如图2-3所示。 图2-3本测距仪便是利用了

12、超声波传感器的这种特性,利用其发生超声波。如上图,当遇到障碍物,超声波被反射进入超声波传感器,并产生电信号。经过单片机处理,得出传播时间t ,利用公式s=v*t/2便得出测距仪与障碍物之间的距离s 。其中,v的取值在温度变化时变化 v=331+0.6*T 。331m/s是声速在0度情况下的传播速度,利用DS18B20测得温度利用单片机算出v。3 硬件设计硬件设计分为三个部分: 发射回路、接收回路、LED显示系统。主要硬件单元的功能:3.1发射回路:发射回路的主要设计思想是将单片机端口输出的40KHz的方波经过反相器(所用芯片为六缓冲反相器CD4049)波形整理后,加在超声波转换器两端使其发射4

13、0KHz超声波。同时这里的反相器还可以提高电路的驱动能力,保证超声波发射探头的输出功率,并且Vcc=5V。 图3-1单片机 OC1端输出的 40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极。另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端。可以提高超声波的发射强度。输出端采用两个反向器并联。用以提高驱动能力。上拉电阻R1、R2一方面可以提高反向器输出高电平的驱动能力。另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。3.2接收回路:接收回路的主题设计思想是将超声波探头接收到的信号进行滤波放大后输入单片机,超声波检测接收电路

14、主要是由集成电路CX20106A组成,它是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。实验电路图如图3-2所示。图3-23.3 LED管显示电路:LED显示电路模块如下图3-3所示。 图3-33.4 整合后的总电路图如图3-4所示:图3-44 各芯片功能特点简介4.1 AT89C51AT89C51是一个低电压,高性能CMOS 8位单片机带有4K字节的可反复擦写的程序存储器(

15、PENROM)。和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及

16、中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电

17、平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3

18、口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信

19、号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间4.2 CX20106简介及其调试 CX20106是广泛用于彩色电视机红外线遥控接收的前置放大器。由于功能强,性能优越,成本低,故已在各种红外线遥控系统中得到广泛的应用。CX20106由前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成。其中的电平自动控制电路可以保证在输入弱信号时前置放大器有较高增益,在输入强信号时前置放大器不会过载,可以保证在一定遥控距离(约10m)内工作可靠。其内部设置的滤波器中心频率f0由其5脚外接电阻调节,范围可从30KHz60KHz。CX20106的工作过程大致如下:其中的

20、前置放大器将外接红外光敏二极管或三极管产生的脉冲电压进行放大,电压增益约77-79d。然后将信号送限幅放大器,使其变为矩形脉冲,再由滤波器进行频率选择,滤除干扰信号,由检波器滤掉载频检出指令信号,再经整形后,由脚输出指令信号。实际上,CX20106的功能用一句话概括,就是当接收到与CX20106滤波器中心频率相符的红外光信号时,其输出端脚就输出低电平。CX20106的主要参数如下:电源电压典型值为5,最大17。电源电流1.1-2.5mA(典型值为1.8mA)。输出低电平0.2。电压增益77-79d。输入阻抗27。滤波器中心频率30KHz60 KHz。允许功耗0.8 4.3 LEDHD44780

21、管脚及功能特液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。目前市面上的字符型液晶绝大多数是基于HD44780液晶芯片的,所以控制原理是完全相同的,为HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线(市面上也有很多16条引脚线的LCD,多出来的2条线是电源线VCC(15脚)和地线GND(16脚),其控制原理与1

22、4脚的LCD完全一样),定义如下表所示:4.4 DS18B20测温DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。DS18B20产品的特点。(1)、只要求一个I/O口即可实现通信。(2)、在DS18B20中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在55。C到125。C之间。(5)、数字温度计的分辨率用户可以从9位到12位选择。(6)、内部有温度上、下限告警设置。DS18B20详细引脚功能描述1

23、 GND地信号;2 DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;3 VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20的使用方法。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。

24、所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。5 系统的软件编程设计5.1 超声波测距仪的算法设计超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为: (1) 其中,d为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。

25、在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。5.2主程序流程图软件分为两部分,主程序和中断服务程序,主程序完成初始化工作、各路超声波发射和接收顺序的控制。 定时中断服务子程序完成超声波的发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。然后调用超声波发生子程序送出一个超声

26、波脉冲,打开外中断0接收返回的超声波信号。由于采用的是12 MHz的晶振,每计一个数就是1s,定时器T1定时1ms。设计时间精确到1ms。当主程序检测到接收成功的标志位后,将计数暂存,用DS12B20测得温度,算出声速则距离为: S=V*t/2 (2)测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。主程序流程图如下(图5-1)开始单片机初始化外部中断子程序33序超声波发射子程序33序返回LED显示是否有回波?图5-1 主程序流程图5.3 超声波发生子程序和超声波接收中断程序超声波发生子程序的作用是通过P1.0端口发送4个左右超声波脉冲信号(频率约4

27、0kHz的方波),脉冲宽度为12s左右,同时把计数器T1打开进行计时。超声波发生子程序较简单,但要求程序运行准确,所以采用汇编语言编程。超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT1引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T1停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T1溢出中断将外中断1关闭,并将测距成功标志字赋值2以表示此次测距不成功7。程序流程图如下(图5-2):定时中断入口定时器初始化发射超声波停止发射返回外部中断入口关外部中断读取时间值计算距离结果输出开外部中断返回发射完否?图

28、5-2 超声波发射接受子程序5.4 系统的软硬件调试硬件调试具体过程如下:(1).检查电路是否存在虚短的情况;(2).将电路联通后,用示波器观察发射端是否产生40K超声波;(3).在发射电路正常的情况下,用示波器观察接收端波形,并与发射端波形进行比较观察;(4).调试显示部分。硬件电路制作完成并调试好后,便可将测试程序下载到单片机试运行,检查电路是否能够正常运行,在电路正常的情况下将超声波测距程序下载到单片机中运行。根据实际情况可以修改超声波发射子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为20m0.3m,测距仪最大误差不

29、超过0.4m。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。程序清单 TEMPER_L EQU29H ;用于保存读出温度的低字节TEMPER_H EQU 28H ;用于保存读出温度的高字节 DQ BIT P3.3 ;定义一线端口控制线FLAG1 BIT 50H ;位地址50H是字节2AH的最低位,用作是否检测到DS18B20的标志位 VOUT EQU P1.1 ;超声波脉冲输出口 TEMPER_NUM EQU 51H ;定义存放转化后的温度值地址 EN EQU P2.0 ;LCD EN引脚RS EQU P2.1 ;LCD RS引脚ORG 0000

30、HLJMP MAINORG 0020H ;测温程序 MAIN: MOV SP,#70H LCALL GET_TEMPER ;从DS18B20中读书温度数据 LCALL TEMPER_COV ;转换读出温度并保存 LCALL DISTANCE_COV ;测距 LCALL DISPLAY0 ;LCD显示 LCALL D1MS JNB P2.5,START SJMP MAINSTART: MOV SP,#4FH MOV 20H,#00H MOV TMOD,#21H ;t1为八位自动装载模式,t0为16位定时器 MOV TH0,#0FCH ;1ms定时 MOV TL0,#17H MOV TH1,#0F

31、3H ;38khz初值 MOV TL1,#0F3H MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV R4,#04H ;超声波脉冲个数控制 SETB ET1 ;开启t1发送超声波 SETB EA SETB TR1LOOP: JBC TF1 , LOOP1 AJMP LOOPLOOP1: CPL P1.1 DEC R4 DJNZ R4 ,LOOP MOV 21H,#00H CLR TR1 LOOP3: SETB ET0 ;开启t0接收超声波 SETB EA SETB TR0 LOOP5: JBC TF0,LOOP4 JNB P3.3,

32、LOOP2 AJMP LOOP5LOOP4: INC 21H ;计时 MOV TH0,#0F3H MOV TL0,#17H JNB P3.3,LOOP2 AJMP LOOP3LOOP2: CLR TR0 CLR TR1 RET;-DS18B20的温度转换子程序,具体时序请参考资料-GET_TEMPER: SETB DQ BCD: LCALL INIT_18200 ;先复位DS18B20 JB FLAG1,T_C0 ; 判断DS1820是否存在?若DS18B20不存在则返回 LJMP BCDT_C0: MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_18200 MOV A,#

33、44H ; 发出温度转换命令 LCALLWRITE_18200 LCALL D1MS ;这里等待AD转换结束,12位的话要延时750m秒 BCA: LCALL INIT_18200 ;先复位DS18B20 JB FLAG1,ABC ; 判断DS1820是否存在?若DS18B20不存在则返回 LJMP BCA ABC: LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_18200 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_18200 LCALL READ_18200 ; 将读出的温度数据保存到28H(TEMPER_H)和29H

34、(TEMPER_L)处 RET ;-DS18B20初始化- INIT_18200:SETB DQ NOP CLR DQ MOV R0,#80H ;主机发出延时96微秒的复位低脉冲 TSR1: DJNZ R0,$ SETB DQ ;然后拉高数据线 NOP NOP NOP MOV R0,#25HTSR2: DJNZ R0,TSR2 ;延时 JNB DQ,TSR3 ;等待DS18B20回应 LJMP TSR4TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R

35、0,#06BHTSR6: DJNZ R0,TSR6 ;时序要求延时一段时间 TSR7: SETB DQ RET;-写DS18B20的子程序(有具体的时序要求)-WRITE_18200:MOV R2,#8 ;一共8位数据 CLR CWR0: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C ;写入一位 MOV R3,#23 DJNZ R3,$ SETB DQ NOP NOP DJNZ R2,WR0 SETB DQ RET;-读DS18B20的程序,从DS18B20中读出两个字节的温度数据-READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B

36、20中读出 MOV R1,#TEMPER_L ; 低位存入29H(TEMPER_L)RE0: MOV R2,#8RE1: CLR C SETB DQ NOP NOP CLR DQ NOP NOP SETB DQ MOV R3,#7 DJNZ R3, $ MOV C,DQ MOV R3,#23 DJNZ R3, $ RRC A DJNZ R2,RE1 MOV R1,A DEC R1 ; 高位存入28H(TEMPER_H) DJNZ R4,RE0 RET;-整合读出的两字节温度并转为十进制储存-TEMPER_COV: MOV A,29H ANL A,#0F0H ;低字节低四位丢掉 SWAP A MOV 29H,A MOV A,28H ANL A,#07H ;高字节高五位丢掉 SWAP A ORL A,29H ;合并 MOV TEMPER_NUM,A MOV A,TEMPER_NUM MOV B,#10 DIV AB MOV 23H,B ;个位

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号