收藏 分销(赏)

超声波测距系统设计-学位论文.doc

上传人:可**** 文档编号:2798405 上传时间:2024-06-06 格式:DOC 页数:31 大小:607.50KB
下载 相关 举报
超声波测距系统设计-学位论文.doc_第1页
第1页 / 共31页
超声波测距系统设计-学位论文.doc_第2页
第2页 / 共31页
超声波测距系统设计-学位论文.doc_第3页
第3页 / 共31页
超声波测距系统设计-学位论文.doc_第4页
第4页 / 共31页
超声波测距系统设计-学位论文.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、论文题目:超声波测距系统设计摘 要超声波具有不受外界光及电磁场等因素的影响的优点,超声波测距作为一种有效的非接触式测距方法已被应用于多个领域。本设计采用渡越时间法,硬件系统分为发射模块、接收模块、显示模块、中央处理模块四个部分。本设计采用STC89C52单片机作为微型中央处理器并由软件实现40kHz脉冲经放大电路从超声波发射探头T-40发射出超声波,接收探头R-40收到声波后经集成芯片CX20106A放大滤波整形后回送到单片机计算,通过发射与接收的时间差和声速计算出距离。本系统使用四位共阳极LED数码管显示距离,能实时显示即时距离。经测试,在30cm200cm范围内,误差能控制在2cm以内。根

2、据实验数据进行了误差分析,并提出了解决方案,最后对超声波测距技术的发展进行了展望。通过系统的调试和测试,本设计基本完成了设计要求。【关键词】单片机,超声波,测距,渡越时间法;【论文类型】应用型Title: The design of ultrasonic distance measurement systemMajor: Electronic and Information Engineering Name: Zhang Yankun Signature:_Supervisor: Zhang Xiaoli Signature:_ABSTRACTThe advantages of ultraso

3、und without the influence of outside light and electromagnetic fields and other factors , ultrasonic distance measurement as an effective non-contact distance measurement method has been used in many fields.This design uses the transit time method, the hardware system is divided into transmitter mod

4、ule, receiver module and display module, the central processing module. This design uses a microcontroller STC89C52 as micro central processing unit and 40 kHz pulse by the software, The ultrasonic emission from the ultrasonic probe the T-40 via the amplifier circuit. Acoustic received by probe R-40

5、, via the integrated chip CX20106A amplifying , filtering and shaping and sent to the microcontroller computing, calculate the distance by the transmit and receive time and the speed of sound. The design uses four common anode LED digital display the distance value, to provide users with a very intu

6、itive interface.Been tested within the range of 30cm 200cm, the error can be controlled at less than 2cm.According to the experimental data and analyzed the error, and proposed solutions, the developmental direction in ultrasonic ranging were also presented at last.By systematic debugging and testin

7、g, the design basically completed the design requirements.【Key words】microcontroller, ultrasonic, range, transit time method【Type of Thesis】Applied前 言随着传感器和单片机控制技术的不断发展,非接触式检测技术已被广泛应用于多个领域。目前,典型的非接触式测距方法有超声波测距、CCD 探测、雷达测距、激光测距等。其中,CCD 探测具有使用方便、无需信号发射源、同时获得大量的场景信息等特点,但视觉测距需要额外的计算开销。雷达测距具有全天候工作,适合于恶劣的

8、环境中进行短距离、高精度测距的优点,但容易受电磁波干扰。激光测距具有高方向性、高单色性、高亮度、测量速度快等优势,尤其是对雨雾有一定的穿透能力,抗干扰能力强,但其成本高、数据处理复杂。与前几种测距方式相比,超声波测距可以直接测量近距离目标,纵向分辨率高,适用范围广,方向性强,能量消耗缓慢,在介质中传播的距离较远且操作简单,并具备不受光线、烟雾、电磁干扰等因素影响,对环境有一定的适应能力,且覆盖面较大等优点。这些特点可使测量仪器不受被测介质的影响,大大解决了传统测量仪器存在的问题,利用超声波检测既迅速、方便、计算简单,又易于实时控制,在测量精度方面能达到工业实用的要求。但就目前技术水平来说,人们

9、可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。然而超声波测距也有其局限性,超声波传播波速不恒定、回波信号幅值随传播距离增大呈指数规律衰减、有盲区、超声波的旁瓣影响、混响信号干扰、超声波探测器测量分辨力和探测角度范围的矛盾等局限性。所以目前研究主要是降低现有测距方法的误差和寻找新的超声波测距方法。超声波测距方法主要有可变阈值检测

10、法、相位检测法、声波幅值检测法和渡越时间法四种。通过系统论证,本设计最终确定采用渡越时间法。渡越时间法就是通过检测发射超声波与接收回波之间的时间差t,求出目标障碍物距信号发射源的距离d,计算公式为:d = vt /2,其中,v 为超声波波速( m/s)。本论文研究了超声波测距原理以及各种超声波测距系统的优缺点,确定了本设计所采用的方案。文中确定了发送模块、接收模块、显示模块、中央处理模块构成整个系统,并确定了各个模块实现所使用的芯片,软件设计部分描述了各个模块程序流程图和主要程序。制作硬件并检测调试。最终得到实验结果并对误差进行了分析,提出减小误差的方法和方案。附录部分提供了本论文所使用的硬件

11、电路和软件代码。目 录1方案选择11.1 相位法超声波测距11.1.1 测量原理11.1.2 系统硬件原理框图21.1.3 基于相位法双频超声波测距21.2 渡越时间检测法51.2.1 单频渡越时间法51.2.2 双频渡越时间法51.3 其他几种测距或测厚方法61.3.1 共振法61.3.2 往复法61.3.3 多重相位法61.3.4 频域的谱分析法61.4 方案选择72系统硬件设计82.1 主要技术指标82.2 系统设计框图82.3 超声波发射电路92.3.1 采用74LS04驱动发射电路92.3.2 采用9012三极管驱动发射电路92.4 接收电路102.5 显示电路113超声波测距系统软

12、件设计和仿真123.1 总体设计123.1.1 主程序123.1.2 超声波发射子程序133.1.3 超声波接收中断程序133.1.4 显示子程序133.2 系统仿真144系统测试164.1 软件和硬件测试164.2 系统测量165结 论185.1 数据的误差分析185.2 总结185.3 超声波测距研究趋势的展望18致 谢20附 录21CX20106A引脚和参数21超声波测距源程序清单22参考文献271方案选择1.1 相位法超声波测距相位法超声测距是利用发射波和被目标反射的接收回波之间声波的相位差包含的距离信息来实现对被测目标距离的测量,同时,可以通过变换调制信号的频率来改变相位差对距离的细

13、分尺度,来提高精度和改变量程。1.1.1 测量原理设在起始时刻发射的超声波的强度为:实际波为方波,这里为方便公式说明用正弦波举例。接收时刻调制波的强度为:,则接收与发射时刻的相位差为:,时间差为:,根据时间和相位的关系,待测距离可以转换为:其中,为待测距离;为超声波传播速度;为超声波波长;为相位传播延迟中的中周期数;为相位延迟中不足一周期的相位差值。可以利用计数器测出值,而则需应用相位比较器计算出。1.1.2 系统硬件原理框图设计出超生波测距系统硬件原理框图1-1:图 1 - 11.1.3 基于相位法双频超声波测距双频超声波测距法是发射二个频率不同的猝发声波,测定与这二个猝发声对应的回波信号的

14、相位,根据所测相位进行测距的一种高精度的超声波测距方法。本方法同时使用二个回波的相位以及包络信息,排除了以为周期的相位上的不确定性。基本原理是使用两个不同频率的波形的发射与接收波的相位差的差的变化函数来代替单个频率的波形相位差的变化,如下式式中,为两种频率波形的初始相位. 为两种频率接收波形的相位,为两种频率波形相位差的差的变化函数,这样做的好处是,既有使用高频率超声波的良好的方向性与反射性,同时由于的周期相对于单个波形的相位差变化函数的周期更大,这样能增大相位差对距离的细分尺度,从而得到更精确的测量结果。基于以上双频超声波测距原理,本系统设计的思路是采用两个相对独立的相位法测距电路,分别比较

15、出两个不同频率的波形的相位差,然后将两个相位差提供给MCU,由MCU中事先写入的程序来计算出两种波形相位差的差,为了得到所测距离L的大概值,解决相位法中的解的不确定性,会需要用到单片机中的定时器。另外,显示部分也是由MCU来完成。由于整个过程并没有过大的运算量,基于经济性和易用性考虑,单片机选用AT89C52单片机。在接收部分中,由接收探头接收的波形经过前置放大后,经由滤波器滤波,使用的滤波器选用MAX275。当为了改变量程而改变超声波的频率时,由于MAX275组成不同的滤波器需要不同的外接电阻,所以若需要实现较大的量程覆盖,可能需要一组以上的MAX275组成不同的滤波器实现滤波。在相位比较电

16、路中,把信号源输出的正弦信号和接收端得到的正弦信号分别转化为方波信号A 和B ,将A、B 输入具有很强抗噪能力的异或门,如图1-2所示:图 1 - 2当输入波形a和b之间的相位差变化的时候,输出波形的占空比随之发生变化,通过积分电路可得到输出波形的平均电平。根据输出波形的平均电平和相位差的一一对应关系,可得到相位差与输出平均电平的曲线。如图1-3所示:图 1 - 3251.2 渡越时间检测法1.2.1 单频渡越时间法本设计方案中使用的渡越时间检测法原理是,在由单片机发出驱动信号的同时,开启单片机中的计时器,开始计时。发射探头发射出超声波,在由接收探头接收到第一回波的同时停止单片机计时器的计时,

17、由于超声波在空气中的速度已知,根据公式即可求得探头与待测目标之间的距离。测量原理如图1-4所示图 1 - 4通常的计算是默认上图中,在两个探测头T和R的距离M较小时,这样默认并没有错,但当测量距离较小时,或者距离M较大时,的式子便不再适用,为了进一步降低测量误差,应该在编程时,将距离计算公式写作,而且,可以在较短时间内多次发出超声波测量,完成后计算平均值然后显示。1.2.2 双频渡越时间法由于空气对超声波的吸收与超声波频率的平方成正比,因此用来测距的超声波的频率就不能很高。另一方面频率越低,波长越长,测距的绝对误差就越大。所以,测距的范围加大与测量精度实际上是一对矛盾。为了解决这一矛盾,我们引

18、入了已被广泛用于海洋测深方法中的双频超声波探测技术,使其用于空气中的测距及定位。其原理是:同时发射两个频率分别为fL和fH的双频超声波,由于fH的波长较短,绝对测量精度高, 而空气对它的吸收大,所以用于近距离测距(比如5m 以内),而fL波长较长,绝对精度低,但是空气对它的吸收要小很多,可以达到较远的目标(比如520m),由于这个范围绝对距离较长,因此可以保证在整个测距范围内相对精度一致。1.3 其他几种测距或测厚方法1.3.1 共振法共振法是利用超声波在介质中的多次反射而形成的共振,通过测定几个共振频率的差来测量厚度。这是一种高精度的测距方法。但这种方法必须事先知道发射换能器和目标之间超声波

19、传播的介质中存在有二个以上的共振频率。1.3.2 往复法往复(singaround)法是利用由介质层返回的回波去触发下一次信号的发射,这样反复触发并记录触发的次数,在一定的时间内,目标的厚度就是触发次数的函数。显然,要想提高测量精度,必须进行较多的触发计数。然而,较多的触发计数的代价就是延长了测量时间。1.3.3 多重相位法多重相位法是将超声波利用另一个频率较低的信号进行幅度调制,而后发出调幅波,接收调幅波及其二个不同频率的信号的相位差,以这个相位差为依据,计算传声介质的厚度或距离。这种方法通过提高调制频率可以提高测量精度,当然也存在相位上以为周期的不确定性。这种方法不适用于收发合置的声学系统

20、。相位比较法同样也存在以为周期的不确定性,同时还存在由于三次回波而形成干涉的影响。1.3.4 频域的谱分析法频域的谱分析法是利用回波的频域变换技术的测距方法,可用利用回波的频谱特性,也可以利用相位特性,或者二者兼有。这种方法可用到达比较高的精度。但是,必须对回波进行AD变换并进行FFT分析等运算,因此要求系统具备实时FFT运算功能。1.4 方案选择通过分析,相位法虽然能较精确的测得距离,但其系统复杂,实现起来较为困难。渡越时间法无论是硬件还是软件实现都比较容易,如果加上温度补偿电路等改进措施后,能达到比较高的测量精度,可以满足本次设计的要求。其他几种测距方法都有各自的要求或局限性,实现并不容易

21、。所以,最终选择渡越时间法作为最终方案。2系统硬件设计2.1 主要技术指标量程:30200cm;电源:5V DC;超声波频率:40kHz;测量误差:2cm;显示方式:数码管显示。2.2 系统设计框图本系统采用STC89C52单片机作为中央处理器,超声波发射40kHz脉冲由单片机软件实现从P1.0口发出,采用单片机内部定时器进行计时和控制。超声波接收部分使用CX20106A作为接收主控制芯片,收到信号后输出端输出低电平给INTT0口,接收成功,停止计时。显示部分采用四位LED数码显示管显示距离。超声波测距器的系统框图如图2-1所示接收探头驱动电路发射探头数码管显示AT98C51单片机(计时及计算

22、)信号放大,脉冲整形,带通滤波发射接收确认收到回波单片机产生40KHz方波信号最终测量结果图 2 - 12.3 超声波发射电路单片机软件实现发送40kHz信号,从P1.0发送到驱动电路,驱动电路有两种,分别是采用反相器74LS04和三极管9012放大驱动,使超声波发射探头共振,发出40kHz的超声波信号。本次设计采用的是后者。2.3.1 采用74LS04驱动发射电路发射电路主要由反相器74LS04和超声波探头构成,单片机P1.0端口输出40kHz的方波信号,一路经一级反相器后送到超声波换能器的一个电极,另一路经两级反相器后送到超声波换能器的另一端,用这种形式可以提高超声波的发射强度。输出端采用

23、两反相器并联,用以提高驱动能力。上拉电阻一方面提高反相器74LS04输出高电平的驱动能力,另一方面可以增强超声波换能器的阻尼效果,缩短其自由振荡时间。电路原理图如图2-2所示。图 2 - 22.3.2 采用9012三极管驱动发射电路该电路超声波发送模块是使用9012三极管做为驱动放大,超声波换能器一段接P1.0口,另一端接集电极,R8提高驱动能力,通过调试电阻可以加大超声波的发射功率,从而提高测距距离。电路如图2-3所示。图 2 3超声波发射电路2.4 接收电路CX20106A是日本索尼公司生产的红外遥控系统中作接收预放用的双极型集成电路,可用来代换多种型号的遥控接收集成电路。集成电路CX20

24、106A可用来完成信号的放大、限幅、带通滤波、峰值检波和波形整形等功能。可以保证在超声波传感器接收较远反射信号输出微弱电压时,放大器有较高的增益,在近距离输入信号强时放大器不会过载;其带通滤波器中心频率可由芯片脚5的外接电阻调节,不需要外接电感,可避免外磁场对电路的干扰,可靠性较高。当超声波接收头收到发射信号时,便通过CX20106进行前置放大、限幅放大、带通滤波、峰值检波和比较、积分及施密特触发比较得到解调处理后的信号。7脚为信号输出口,没收到信号时为高电平,收到后变为低电平,之后又恢复高电平。图 2 4超声波接收电路2.5 显示电路显示电路采用4位共阳极数码管显示。用74LS07和74LS

25、245驱动数码管,并连接到单片机STC89C52的P2.0P2.3口上作位选,P0.0P1.7口做段选。电路如图2-5所示。图 2 - 53超声波测距系统软件设计和仿真3.1 总体设计超声波测距系统软件设计主要有主程序、超声波发射子程序、超声波接收中断子程序及显示子程序。3.1.1 主程序首先对系统初始化,设置定时器的初值和工作方式,使总中断允许位=1,并给显示端口清0,启动计时器,然后调用超声波发生子程序由P1.0脚发出40kHz的驱动信号,为避免超声波从发射器直接传送到接收器引起的直接波触发,需要延时一段时间后才打开INT0中断,并且开始等待接收到的回波和中断信号,若接收到回波(INT0引

26、脚出现低电平),计时器停止计时,保存时间信息,计算出当前距离后储存,并调用显示子程序, 结果将以十进制BCD码方式传送到LED显示,然后再发超声波脉冲重复测量过程。晶振为12Mhz,所以机器周期为1微秒。主程序流程图如图3-1所示:开始调用显示子程序,显示距离超声波发射,计时开始计算路程时间初始化开始等待接受回波 NY图 3 - 13.1.2 超声波发射子程序本设计由软件产生40kHz的驱动信号:void fasong(uchar gs) while(gs-) P1_0 = 1; nop();nop();nop();nop(); nop();nop();nop();nop(); P1_0 =

27、0; nop();nop();nop(); nop();nop();nop();nop(); P1_0=0;3.1.3 超声波接收中断程序超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序,然后立即关闭计时器停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器溢出中断将外中断0关闭,并将测距成功标志字赋值2,以表示此次测距不成功。然后读取计数器中的值,取20时的声速344m/s,则由D=ct/2可以计算出被测物体与测距仪之间的距离。3.1.4 显示子程序本设计采用共阳极7段LED数码管显示,

28、显示子程序如下所示:void zhuanhuan() /转换程序 qw = time/1000; bw = time%1000/100; sw = time%100/10; gw = time%10;void xianshi()/显示程序P2 = 0x01;P0 = shuqw; delay(20);P2 = 0x02; P0 = shubw; delay(20);P2 = 0x04; P0 = shusw; delay(20);P2 = 0x08; P0 = shugw; delay(20);3.2 系统仿真在Proteus中根据超声波发射硬件电路搭建系统,由于个别元件在Proteus元件库

29、中没有,用其他的方式代替。如:74LS07用74HC07代替;发射探头部分用示波器,便于查看T-40两个引脚的信号;接收部分用一个开关代替,两端分别连接INT0和地。将程序在Keil中编译,并输出.hex文件,将其放入Proteus电路中的单片机里,进行仿真,电路如图3-2,图3-3所示:图 3 2 仿真电路图图 3 3 发射探头引脚波形仿真4系统测试4.1 软件和硬件测试将元器件焊接到万用板上,焊接的时候尽量不要长时间焊接某一管脚,否则元器件会由于温度过高坏掉或工作不稳定,检查是否有短路,虚焊,元器件有没有接反。由于设计时并没有安排下载部分,所以用专用的下载器进行程序的烧录。无误后,将单片机

30、安装上,接通电源。测试LED数码管是否显示正常(通过烧录到单片机中的显示程序);测试超声波发射是否正常,方法是在发射探头前放置一根点燃的蜡烛,若蜡烛的火焰有有规律的抖动,则超声波正常发射(把耳朵贴到发射探头,可以听到“咔咔”的声音)。开始的时候P1.0发射2个约40K的脉冲,但是测距范围最远只能达到50cm,开始以为是发射功率不够,于是调整发射驱动电路中的电阻和接收电路CX20106A引脚5的外接电阻,虽然有点提高,但效果不是很大,根本达不到系统设计要求。再看软件,发现当把发送脉冲数调高的时候可以提高测距范围,显然这也会带来更多的误差,不过可以达到系统要求。4.2 系统测量测量距离选取50cm

31、、75cm、100cm、125cm,150cm、175cm六个不同距离进行测量。测量时,将测量仪放置于距离地面50cm高度的地方,正前方面对一面平整的墙。每种不同的距离测量5次。结果如表-1所示。表 - 1实际距离(cm)5次测量距离(cm)50.048.548.848.748.648.775.073.874.173.774.273.9100.098.998.898.898.898.9125.0123.5123.9123.8123.6123.9150.0148.1148.4148.0148.1148.1175.0173.4173.8173.5173.5173.45结 论5.1 数据的误差分析测

32、量结果和实际距离有误差,经分析,误差可能来源一下几个方面:(1) 超声波发射与接收探头和被测点位置存在着一个很小的角度,这个角度会影响测量距离。(2) 由于P1.0发射多个脉冲,接收端接收到的可能不是第一个回波,所以会增加误差。(3) 由于没有温度检测电路,超声波在不同的温度下传播速度不同,所以受温度影响,测量距离和实际距离会有误差。、(4) 信号在电路中传播会有延时,也会影响测量结果。(5) 系统软件算法不够精准,单片机精度不高。5.2 总结本次设计基于51单片机和超声波实现了30200cm范围内测距,采用渡越时间法,硬件系统分为发射模块、接收模块、显示模块、中央处理模块四个部分。由软件实现

33、40kHz脉冲经放大电路从超声波发射探头T-40发射出超声波,接收探头R-40收到声波后经集成芯片CX20106A放大滤波整形后回送到单片机计算,通过发射与接收的时间差和声速计算出距离。本系统使用四位共阳极LED数码管显示距离。本次设计的实验结果精度不是很高,若想得到更精确的测距方法,可以采用相位法或双频超声波测距方法,或者寻找更精确的算法。不过系统会更复杂,对各个模块要求会更高。5.3 超声波测距研究趋势的展望超声波测距作为非接触式检测技术的典型方法之一,以其独特的优势和广阔的发展前景,作以下三点展望:(1) 目前采用压电式陶瓷材料和磁致伸缩材料来制造的超声波换能器存在一定的阻抗失配问题,即

34、在驱动脉冲结束后,由于存在惯性会使换能器继续振动产生盲区,从而影响超声波测距仪的精度。所以,超声波换能器制造材料的改进是超声波测距技术发展的一个重要方向。(2) 选择更合理的发射脉冲、研发更高性能的换能器,来提高超声波测距系统的测距范围、分辨力、测量精度和抗干扰能力等性能,是超声波测距理论的又一个重要研究方向。(3) 超声波测距、CCD 探测、雷达测距、激光测距等非接触式检测技术均具有各自的优点。所以,可以复合使用多种非接触式传感器,充分发挥各检测技术的优势,可以得到更精确的检测结果。附 录CX20106A引脚和参数CX20106主要引脚说明:表 - 2 CX20106引脚说明脚号符号引脚名称

35、说明1IN信号输入端该脚输入阻抗约为40士5k92RCRC网络连接端该脚与地间接有RC串联网络,用来确定前置放大器的频率特性和增益。电阻增大,电容值小,则增益低:反则高。但电容不宜过大,否则瞬态响应速度会降低。3c检波电容连接端该脚与地间连接着检波电容。电容量大为平均值检波,瞬态响应灵敏度低;电容量小,则为峰值检波,瞬态响应灵敏度高,但检波输出的脉宽变动大,易造成遥控误动作。4GND接地端5f。带通滤波器中心频率设置端该脚与电源间所接电阻R用来设置带通滤波器的中心频率f。6330p积分电容连接端该脚所接的积分电容,标准值为330PF。当其容量值变大,则外部噪波干扰增强,而且输出脉冲的低电平持续

36、时间增加,遥控距离变短。7OUT信号输出端该端口为集电极开路输出端。该脚和电源之间连接一只R3电阻后,输出脉冲低电平的标准值约为0.2V。8Vcc 供电电源端(5士0.3)VCX20106参数表如表 - 3:表 - 3 CX20106参数表 超声波测距源程序清单#include#include#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define nop() _nop_()ulong time; /总时间uchar qw,bw,sw,gw; /千、百、十、个位uchar fla

37、g; /标志位staticunsignedcharshu= 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf; /*对应数字“0” ,“1” ,“2” ,“3” ,“4” ,“5” ,“6” ,“7” ,“8” ,“9” ,“ ” ,“-” */staticunsignedcharshu2= 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff,0xbf; /*对应数字“0.” ,“1.” ,“2.” ,“3.” ,“4.” ,“5.” ,“6.” ,“7.” ,“8.

38、” ,“9.” ,“ ” ,“-” */void delay(uchar us) uint i,j; for(i=us;i0;i-) for(j=11;j0;j-);void fasong(uchar gs) while(gs-) P1_0 = 1; nop();nop();nop();nop(); nop();nop();nop();nop(); P1_0 = 0; nop();nop();nop(); nop();nop();nop();nop(); P1_0=0;/用于距离计算void jisuan() time = TH0; time = (time8)|TL0; time = tim

39、e-300; /减去延时300 us time = time*170; time = time/1000; /单位 mm/分离千位、百位、十位、个位void zhuanhuan() qw = time/1000; bw = time%1000/100; sw = time%100/10; gw = time%10;/数码管扫描显示void xianshi() P0 = shuqw; P2 = 0x01; delay(20); /2ms P0 = shubw; P2 = 0x02; delay(20); P0 = shu2sw; P2 = 0x04; delay(20); P0 = shugw;

40、 P2 = 0x08; delay(20);void main() uchar cs; /扫描循环次数变量 TMOD = 0x11; /T0工作在16位计时状态,最高计时65ms TH0 = 0x00; TL0 = 0x00; TR0 = 0; /先关闭T0 ET0 = 1; /开T0中断 EX0 = 0; /循环程序中再打开 PX0 = 1; /INT0中断高优先级 EA = 1; while(1) while(!P3_2) /P3.2为低则等待,不发送 delay(5); while(!P3_2) /如果P3.2仍为低,等待,直到为高,再发 EX0 = 0; /开始发送前保证INT0是关闭

41、状态 ET0 = 0; /先关闭T0中断 TH0 = 0x00; TL0 = 0x00; /保证发射前初值为0 flag= 0; ET0 = 1; /重新打开 while(!P3_2) TR0 = 1; /T0 计时开始 fasong(20); /发送20个40khz脉冲delay(3); /300us延时,防止直波干扰EX0 = 1; /开始接收信号 while(!flag) /如果flag=0,等待 if(flag = 1) /INT0中断完成后进入 flag = 0; /重新清0 TR0 = 0; EX0 = 0; ET0 = 0; jisuan(); /计算总时间和来回距离 zhuan

42、huan(); /各位分离处理 else if(flag = 2) /如果超时,进入, flag = 0; qw = 11; bw = 11; sw = 11; gw = 11; /显示- for(cs=0;cs30;cs+) xianshi(); void Int0(void) interrupt 0 TR0 = 0; /停止计时 ET0 = 0; flag = 1; /标志位置1 EX0 = 0; /关闭外中端 while(!P3_2) /等待P3.2变高再退出中断void Time0(void) interrupt 1 TR0 = 0; EX0 = 0; ET0 = 0; flag = 2;参考文献1倪云峰,等.单片机原理与应用M.西安西安电子科技大学出版社,20092李戈,孟祥杰,王晓华,王重秋.国内超声波测距研究应用现状J.测绘科学,2011,Vol.36(No.4):60623张敏,等.基于超声波的自动测距

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服