




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着传感器和单片机控制技术的不断发展,在我们日常生活中,超声波探测已经应用在我们生活的方方面面。在本设计介绍了关于如何使用单片机AT89S52控制HC-SR04超声波模块并且在LCD1602上显示测量的数据,通过温度传感器DS18B20测温,数据处理后消除温度对测量的影响,提高探测距离的精确度。超声波模块中的压电晶片进行测距,由超声波的压电传感器进行电信号和声信号的互换,从而实现超声波测距的功能,设置报警距离,当小于30cm时,蜂鸣器开始工作,发出声音,从而实现倒车雷达的功能。关键词:单片机,HC-SR04,测距ABSTRACTWiththecontinuousdevelopmentofsensorandMCUcontroltechnologyinourdailylives,theultrasoundprobehasbeenusedineveryaspectofourlives.Inthisdesign,theaccuracyofthepresentationonhowtousethemicrocontrollerAT89S52ControlModuleHC-SR04ultrasonicmeasurementanddisplayofdataontheLCD1602,bythetemperaturesensorDS18B20temperature,afterdataprocessingtoeliminatetheeffectoftemperatureonthemeasurement,toimprovethedetectiondistance.Ultrasonicpiezoelectricwafermodulesrangingfromultrasonicpiezoelectrictransducerinterchangeableelectricalandacousticsignals,enablingultrasonicrangingfunctionality,setthealarmdistance,whenlessthan30cm,thebuzzertowork,sound,enablingreversingradarfunction.Keywords:SCM,HC-SR04,ranging目录摘要.1ABSTRACT.2前言.3第一章绪论.4第1.1节课题背景.4第1.2节国内外研究现状.4第2章系统总体方案设计.5第2.1节系统基本要求.5第2.2节硬件系统设计方案.5第2.3节软件系统设计方案.5第3章系统硬件设计.7第3.1节单片机系统的设计.7第3.2节超声波模块.8第3.3节显示模块电路.10第3.4节报警电路.10第3.5节温度传感器.11第3.6节电路总设计.12第4章系统软件设计.13第4.1节程序的总体设计.13第4.2节主程序设计.13第4.3节超声波发送接收子程序的设计.14第4.4节温度传感器采集子程序的设计.15第4.5节LCD显示子程序设计.19第5章系统调试与分析.22第5.1节硬件调试.22第5.2节软件调试.22第5.3节环境模拟及系统调试.22第5.4节调试故障及原因分析.24第5.5节测试结果及其分析.24参考文献致谢附录:部分源程序0前言超声波是一个广泛应用的技术。在经济发展中,超声波技术对提高质量,保障生产和设备安全运作,降低成本,提高效率具有很大的帮助。在测距这方面,超声波有着无法比拟的优势。相比红外线的光电测距,超声波的稳定性比红外线好很多,而且不受坏境因素影响,成本低廉。红外线测距范围窄,但准确度高。超声波测距范围宽,但准确度较高,能达到12cm的误差。电涡流测距范围更宽,但受环境影响较大。用于汽车倒车防撞,最佳选择是超声波。现在市面上绝大多数的都是采用超声波。超声波测距适合短距离精度要求一般的测距,利用了超声波的反射原理,超声波发生器不断地发射出40KHZ的超声波,遇到障碍物后反射回反射波,超声波接到反射波后转化为电信号。超声波测距可以用在倒车雷达系统中,建筑工地,以及一些工业现场的位置监控,但是要求的测量距离最好在4米以内,因为超声波测距具有距离短这个问题的存在。现在大多倒车雷达所用的原理如下:由探头发送的超声波,遇到障碍物后,产生同波信号,传感器接收到同波信号后,测出发射超声波和接收到的同波的延迟时间,计算出车体与障碍物之间的距离。衡量倒车雷达的性能指标通常有以下几个方面:一是测量精度,不仅要求倒车雷达具有较高的分辨率,而且还要有较低的测量误差;二是探测范围,好的倒车雷达探测盲区少、探测范围宽;三是响应时间,这要求倒车雷达能快速地计算出障碍物的距离,可以及时提醒驾驶员障碍物的方位和距离。本文通过5章内容详细的介绍了基于单片机的超声波测距系统,第一张讲述了超声波测距的背景和前景,第二章讲述了设计方案,第三章讲述了超声波测距的硬件电路,第四章则描述了超声波的软件程序,第五章是对实物进行测试总结。通过超声波测距能够使车辆产生的交通碰撞事故减少,能够让新手驾驶员安心上车,让倒车变得没有那么困难,而且成本低,作用广,这是超声波测距的最大优势,即使是下雨下雪天也不会受到影响,具有很强的实用性。但是即使是有超声波测距系统的辅助还是会发生倒车事故,因为超声波没办法预知突发事件,所以即使在使用超声波的情况下,还是需要广大的驾驶员具备仔细观察的能力,不可以盲目依靠超声波,而不注意后方突然出现的车辆或者行人。总之,倒车还是要小心,低速小心才是真正的避免事故发生的办法,超声波测距只是种辅助的功能,而不能因此就大意。1第一章绪论第1.1节课题背景随着传感器和单片机控制技术的不断发展,非接触式检测技术已被广泛应用于多个领域,典型的非接触式测距方法有超声波测距、CCD探测、雷达测距、激光测距等。其中CCD探测具有使用方便、无需信号发射源、同时获得大量的场景信息等特点,但视觉测距需要额外的计算开销1.雷达测距具有全天候工作,适合于恶劣的探测环境下进行短距离、高精度测距的优点2,但容易受电磁波干扰。激光测距具有高方向性、高单色性、高亮度、测量速度快等优势,尤其是对雨雾有一定的穿透能力,抗干扰能力强,但其成本高、数据处理复杂3。随着世界各国汽车持有量的不断增加,车辆碰撞也就变得越发频繁,特别是在高速公路和小道路上与日俱增。第1.2节国内外研究现状目前市场上普通的超声波测距系统,一般采用发射单超声脉冲的方法,这种方法在测距精度和可靠性等方面的研究已较成熟。但是当它采用较高频率超声波时,会因空气吸收而较快衰减,导致有效测量距离降低;在通过降低频率以增大测距范围时,测距的绝对误差又会增大。因而该方法存在测量分辨力和有效作用距离的矛盾,极大制约了超声波传感器应用领域的拓宽。近年来,如何合理选择超声发射脉冲,可以使超声波测距系统在提高有效作用距离的同时,相应提高测量精度与抗干扰能力,成为超声波测距技术的又一个重要研究方向。针对此点,程晓畅借鉴雷达信号处理中的脉冲压缩技术,率先提出通过选用伪随机二进制序列作为超声发射脉冲压缩信号,并在接收端对回波进行处理,从而获得窄脉冲的方法6。杜晓等则兼顾测距范围和精度,提出通过采用40kHz与20kHz两种超声波同时测距的双频超声测距方法7。脉冲压缩技术与双频超声测距技术在超声测距中的应用,在一定程度上使超声波测距系统同时具备了窄脉冲的高分辨力和宽脉冲的强检测力,但仍旧不能满足高精度要求的测量。自动泊车系统是超声波测距的一个应用在未来会大范围的应用在家用汽车上,它的主要原理是在汽车的周围装上超声波探测仪,通过回波的数据,运用车载电脑计算出停车的角度以及速度来控制汽车,所以超声波测距的未来主要是在家用车上的配置方面能够大展拳脚。2第2章系统总体方案设计第2.1节系统基本要求运用单片机控制超声波模块超声超声波,通过温度传感器DS18B20对超声波声速进行修正,再由单片机计算出距离。在超声波模块HC-SR04的测量下,测量范围可达2cm400cm,测量的精确度可达1cm。第2.2节硬件系统设计方案这个电路的组成由AT89S52,超声波模块HC-SR04,温度检测模块DS18B20,蜂鸣器,报警灯,晶振,LCD1602以及若干个电阻、电容和按键构成。其工作流程可参考图2.1。LCD显示模块温度传感器模块蜂鸣器报警模块AT89S52驱动电路信号放大,脉冲整形,带通滤波发射模块接收模块图2.1系统设计原理第2.3节软件系统设计方案在软件程序中首先定义各个引脚对应的位寻址空间,对系统进行初始化,利用定时器和中断控制超声波的工作,温度传感器的工作则通过读取的温度再通过单片机的转换工作使数据进行以下处理:前五位为0时,说明温度系数为正数,只需要将测得的数乘以0.0625就可以得到实际的温度值;当前五位为数值1时,说明测得的温度系数为负数,需要将测得的数值取相反数加1再乘以0.0625才可以得到实际的温度值。单片机在为超声波超声波模块进行距离测量时加入队超声波的温度补偿,这样子可以更加准确的测量出距离,减小超声波因外界干扰而造成的误差。3系统初始化程序开始超声波发射程序延时程序是否有回波温度检测程序计算距离程序显示程序是否大于设定值报警程序NYNN图2.2软件系统设计流程4第3章系统硬件设计第3.1节单片机系统的设计本设计采用51系列单片机的AT89S52,该芯片是整个设计的核心,他控制了温度的采集、处理与显示,超声波模块的启动以及数据的处理,还对超声波测距进行了温度的补偿。P0.0P0.7链接LCD的714引脚,控制LCD的显示,P1.0P1.1送命令到LCD控制LCD的显示方式。P2.7为DS18B20温度数据采集端。P1.2P1.4接测量按键。XTAL1、XTAL2:系统时钟的反相放大器输入端、输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,在本设计中接入的晶振为12MHz。在放大器的输入端和输出端串联两个30PF的小电容,用来一起构成自激振荡器并产生振荡时钟脉冲能够提供单片机的时钟信号,使系统更稳定,避免噪声干扰而死机。P0口有三个功能:1、外部扩展存储器时,当做数据总线,如图3.1中的D0D7为数据总线接口;2、外部扩展存储器时,当作地址总线,如图3.1中的A0A7为地址总线接口;3、不扩展时,由于P内部不具有上拉电阻,所以要加上上拉电阻才可以把P0当做普通的I/O口,加大了P0口的驱动能力。P0内部无上拉电阻是为了通过外接上拉电阻实现更大驱动。P1:端口1是输入输出双向I/O端口,若将端口1的输出设为高电平,就是设定端口来输入数据。在作为I/O的输入输出时,P1口在程序中提供低8位地址/数据复用。P2:端口2在应用中提供高八位地址,若将端口2的输出电平为高电平时即为输入。用于寻址是P2口为输出口。在这个设计中P2口是作为输入口,P2.7连接的温度传感器的输出端,对输出的温度传输到单片机中计算。P2.5连接的超声波回响信号的输出,可以通过回响信号的时间来计算距离。P3:端口3也是具有输入输出功能的双向端口,同时还兼具的AT89S52的特殊功能。在不使用它的特殊功能是就作为普通的双向I/O端口。在这个设计中使用了P3口的特殊功能,P3.2来连接超声波的触发信号输入端,通过中断来控制超声波模块,发一个10US以上的高电平触发使超声波工作。RST:在设计中连接了复位按钮,当按复位按钮时,界面恢复初始状态。5图3.1AT89S52引脚图第3.2节超声波模块超声波模块采用HC-SR04可以检测2厘米到400厘米,角度幅度15度,由超声波发射器、接收器与控制电路组成。如图3.2所示是超声波模块HC-SR04的实物图,有四个引脚构成,分别为VCC,GND,Trig,Echo。在这个模块中VCC为电源引脚,GND则是接地,Trig是触发信号的输入,而Echo是回响信号的输出。图3.2超声波模块HC-SR04超声波模块有三个主要芯片组成,分别为单片机芯片,发送芯片(主要作用是用来升压提高测量距离),运算放大接收芯片。超声波模块的工作过程如下所示:1、单片机发脉冲,使用运放驱动超声波换能器向外发送超声波。2、超声波遇到障碍产生漫反射。3、超声波换能器接收到声波信号转换成电信号脉冲。64、单片机检测脉冲信号,收到的第一个也就是反射距离最近的。5、根据当前的温度,利用超声波的特性计算距离。图3.3HC-SR04内部原理图如图3.4超声波模块的时序图,触发TRIG端之后,模块自动发送40khz的方波,模块自动检测是否有信号返回。如果有信号返回,模块ECHO端输出一个高电平,高电平维持的时间就是超声波从发射到返回的时间。单片机计算ECHO端高电平的时间,计算距离并显示。由于声速的传播受温度影响很大,所以在计算距离是要考虑温度的影响。10uS的TTL循环发出8个40KHz的脉冲回响电平输出与检测距离成比例触发信号模拟内部发出信号输出回响信号图3.4超声波模块的时序图7第3.3节显示模块电路LCD1602液晶显示屏由显示屏,列驱动器,控制器和偏压产生电路构成。1602显示模块用点阵图形显示字符,如图3.5LCD1602液晶显示电路图所示,它具有16个引脚,第三个引脚VEE外接了1K欧姆的电阻,因为VEE是对比度调整端,需要通过电阻来调节。图3.5LCD1602液晶显示屏电路图1602的电路图所示该模块引脚如图3.3.2的结构图所示,可根据该图来分辨引脚功能。通过结构图也可以明白该模块点阵结构的原理。LCD1602液晶显示屏引脚概念可如下表3.1所示,分别为以下功能:表3.1LCD1602引脚概念12345678910111213141516接地电源对比度调整端寄存器选择信号线读写信号线使能端D0D1D2D3D4D5D6D7背光电源正极输入端背光电源负极输入端一般在第15引脚连接线那加10欧姆电阻,主要作用是用来限流,防止直接加5V电源烧坏了背光灯。信号使能端执行工作的命令方式则是高电平转变为低电平时,执行命令。第3.4节报警电路报警电路如图3.6所示,外界1K欧姆电阻来驱动三极管,1K电阻做基极限流。蜂鸣器的工作电流比较大,单片机的I/O口是无法直接驱动的,利用三极管的饱和放大的8特性来控制通过蜂鸣器的电流,以达到作为蜂鸣器的开关的作用。三极管工作属电流放大状态,三极管的C极接蜂鸣器,e极电压跟随基级输入电压的变化而变化,Ue=Ub+0.7V。当基级输入高电平时,三极管的e极电压为高电平,由于Ie=Ib+Ic,三极管截止,喇叭里没有(或很小)电流通过;当基级输入为低电平时,三极管的e极电压为低电平,三极管处于放大状态,喇叭里有电流(Vb越低就越大)通过。图3.6报警电路电路图第3.5节温度传感器DS18B20是本设计中的核心部件,是用来检测温度的传感器,它自身可以把检测到的模拟信号转换成数字信号,然后通过一根信号线将转换好的数据直接传输给单片机,供应5V的电源就行了,只要对其进行一系列必要的编程,就可以实现将温度全部读出,使系统结构更简单。通过温度传感器可以检测温度,调用温度数据,对超声波由于温度受到的影响进行补偿。速度C与温度T之间的关系曲线,空气中音速温度式:。)27313(m/S+T/(V=声波可以在固体、液体或是气体介质中传播,介质密度愈大,则声波愈快。经实践证明温度T与声速C之间的关系式为:(3)607.531T(m/sc=1)9图3.7DS18B20的引脚图第3.6节电路总设计电路总设计如下图所示:图3.8硬件电路原理图10第4章系统软件设计第4.1节程序的总体设计在这个设计中采用的C语言编程,可以实现对硬件的直接控制,有以下四个部分组成:(1)主程序,包括按键处理以及数据转换等各个子程序的调度管理等部分;(2)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等;(3)温度补偿与距离计算模块、分为超声波发送控制程序、接收处理程序、温度补偿子程序等;(4)LCD1602的显示模块程序。如图4.1系统软件程序结构图所示描述了各个模块的关系:DS18B20初始化温度补偿蜂鸣器鸣音距离计算超声波接受按键处理超声波发射温度检测LCD显示模块图4.1系统软件程序结构图第4.2节主程序设计本设计主程序的构思如下:运用AT89S52自身的定时器T0,T1定时选择工作方式1,产生10ms定时时间,运用中断,来控制超声波模块的工作。采用voidmain(void)函数来编写主程序。voidmain(void)/主程序i=0;11flag=0;test=0;Trig=0;TMOD=0x11;TR0=1;IT0=0;ET0=1;ET1=1;EX0=0;EA=1;init_lcd();ds18b20init();disxuhaoname();while(1)if(key1=0)delay(5);if(key1=0)while(!key1);gotoa;第4.3节超声波发送接收子程序的设计用函数voidceju()来使超声波模块工作,产生20s的脉冲作为启动时间,定时器开始工作,计算的时间就是超声波发射出去接收到返回波的时间,由于计算的数据为微米,所以还要将其转换成厘米,程序如下:voidceju()12unsignedlongdistance_data,a;EA=0;Trig=1;delay_20us();Trig=0;while(Echo=0);succeed_flag=0;EX0=1;TH1=0;TL1=0;TF1=0;TR1=1;EA=1;tempchange();while(TH00)i-;ds=1;i=4;while(i0)i-;读子函数:bittempreadbit()uinti;bitdat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i0)i-;14returndat;uchartempread()uchari,j,dat;dat=0;for(i=0;i1);returndat;用函数voidtempwritebyte(uchardat)来写子函数:voidtempwritebyte(uchardat)uinti;ucharj;bittestb;for(j=0;j=1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0;i=8;while(i0)i-;15ds=1;i+;i+;运用voidtempchange()指令,采用DS18B20控制命令约定的代码44H启动温度转换:voidtempchange()ds18b20init();delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);uintget_temp()uchara,b;ds18b20init();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong/*/*sbitTrig=P25;sbitEcho=P32;sbitlcdrs=P10;sbitlcden=P11;uchartab=0123456789;uintdistance4;ucharge,shi,bai,flag,outcomeH,outcomeL,i;bitsucceed_flag;/*函数声明voidconversion(uinttemp_data);voiddelay_20us();/voidpai_xu();sbitbeel=P23;uinttemp;floatf_temp;uintwendu;ucharset=30;sbitds=P27;sbitkey1=P12;sbitkey2=P13;sbitkey3=P14;voiddelay(uintxms)uinti,j;for(i=xms;i0;i-)for(j=60;j0;j-);voidwrite_com(ucharcom)lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;voidwrite_date(uchardate)lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;voidinit_lcd()lcden=0;lcdrw=0;26write_com(0x0f);write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);/*DS18B20温度检测*/voidds18b20init()uinti;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i-;bittempreadbit()uinti;bitdat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i0)i-;returndat;uchartempread()uchari,j,dat;dat=0;for(i=0;i1);returndat;voidtempwritebyte(uchardat)uinti;ucharj;bittestb;for(j=0;j=1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0;i=8;while(i0)i-;ds=1;i+;i+;voidtempchange()ds18b20init();27delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);uintget_temp()uchara,b;ds18b20init();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;if(temp=0x07ff)temp=temp*0.0625*10+0.5;flag=0;elsetemp=temp;temp=(temp+1)*0.0625*10+0.5;flag=1;returntemp;voidkeyscan()if(key1=0)delay(5);if(key1=0)while(!key1);beel=1;while(1)if(key2=0)delay(3);if(key2=0)while(!key2);set+;if(key3=0)delay(3);if(key3=0)while(!key3);set-;if(key1=0)28delay(3);if(key1=0)while(!key1);write_com(0x0c);gotob;write_com(0x80+0x40+0x0c);write_com(0x0f);write_date(tabset/100);delay(3);write_date(tabset%100/10);delay(3);write_date(tabset%100%10);delay(30);b:;voidceju()unsignedlongdistance_data,a;EA=0;Trig=1;delay_20us();Trig=0;while(Echo=0);succeed_flag=0;EX0=1;TH1=0;TL1=0;TF1=0;TR1=1;EA=1;tempchange();while(TH0100);TR1=0;EX0=0;TR0=0;if(succeed_flag=1)distance_data=outcomeH;distance_data=8;distance_data=distance_data|outcomeL;distance_data*=12;distance_data*=(166+0.06*wendu);distance_data/=10000;if(succeed_flag=0)distance_data=0;a=distance_data;conversion(a);write_com(0x80+5);29write_date(tabbai);write_date(tabshi);write_date(tabge);write_date(c);write_date(m);if(aset)beel=0;elsebeel=1;wendu=get_temp();write_com(0x80+0x40+5);write_date(tabwendu/100);write_date(tabwendu%100/10);write_date(.);write_date(tabwendu%100%10);write_date(0xdf);delay(1);write_date(C);delay(1);TH0=0;TL0=0;TR0=1;voiddisxuhaoname()write_com(0x80);/显示学号和姓名write_date(1);delay(3);write_date(1);delay(3);write_date(1);delay(3);write_date(6);delay(3);write_date(4);delay(3);write_date(0);delay(3);write_date(5);delay(3);write_date(0);delay(3);write_date(0);delay(3);write_date(8);delay(3);write_com(0x80+0x40);write_date(j);delay(3);write_date(i);delay(3);write_date(a);delay(3);write_date(n);delay(3);write_date(g);delay(3);write_date(d);delay(3);write_da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训基地图标课件
- 应急安全业务培训总结课件
- 应急保障局安全培训证书课件
- 2025年公务员考试时事政治真题(易错题)附答案详解大全
- 2025年福建林业职业技术学院招聘9人方案笔试备考题库及答案详解1套
- 老年人传染病易感因素与针对性防护护理措施
- 2024年自考专业(计算机应用)题库检测试题打印(夺冠)附答案详解
- 2025年智慧物流园区资金申请项目投资回报与盈利模式分析报告
- 2025年线下演出市场复苏与可持续发展战略研究报告
- 2025年绿色金融投资策略与风险控制研究报告
- 消防装备技师题库
- 环境保护工程质量保证措施
- 新团员培训第一课:青年你为什么要入团
- 公司6s管理制度
- 城市轨道交通辅助系统的发展城轨车辆电气控制系统课件
- 消防系统施工方案
- 台湾问题演讲稿
- 基本建设会计制度
- 冰激凌原料采购合同范例
- 《机器视觉技术及其应用》课件-模块1项目1 机器视觉技术简介
- 《抗心律失常药》课件
评论
0/150
提交评论