单片机超声波测距系统+原理图+电路图+汇编源程序+LED模块 第9页
图4.3 超声波检测接收电路图
测距中,当有障碍物时,超声波回波返回,经过接收放大后,会产生一个低电平信号,利用这个信号触发AT89C51单片机的外部中断,从而停止计时,计算从发射到接收的时间,就是超声波的传输时间。
接收电路主要是由集成电路CX20106A和一些电阻、电感组成。结构比较简单,图中一些的电阻、电容是可调以改善电路的灵敏度和抗性能力。比如适当更改电容C11的大小,就可以改变接受电路的灵敏度和抗干扰能力。
4.3 单片机系统及显示电路
单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减少测量误差。单片机用P1.0端口输出超声波换能器所需的40KHz方波信号,利用外中断0口检测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。单片机系统及显示电路如图4.4所示:
图4.4 单片机及显示系统电路图
5 超声波测距仪的软件设计
超声波测距器的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。我们知道,汇编语言程序则具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既有较复杂的计算(计算距离时),又要求精确计算程序运行时间(超声波测距时),所以控制程序采用汇编语言编程。下面对超声波测距器的算法、主程序、超声波发生子程序和超声波接收中断程序逐一作介绍。
5.1 超声波测距器的算法设计
图示意了超声波测距的原理,即超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:
d=s/2=(c×t)/2 (4.1)
其中d为被测物与测距器的距离,s为声波的来回的路程,c为声速。
在使用时,如果温度变化不大,则可以认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。
5.2 主程序
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms (这也就是超声波测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12MH z的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式4-2计算,即可得被测物体与测距器之间的距离,设计时取20℃时的声速为344m/s则有
d=s/2=(c×t)/2=172T0/10 000 cm (4-2)
其中T0为计数器T0的计数值。
测出距离后结果将以十进制BCD码方式送往LED显示约0.5 s,然后再发超声波脉冲重复测量过程。图5.1为程序流程图毕业论文
http://www.751com.cn/图5.1 主程序流程图5.3 超声波发射中断程序
超声波发生子程序的作用是通过P1.0端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。超声波发生程序较简单,主要包括T0中断服务程序和T1中断服务程序,下面分别给出各自的流程图。
图5.2 T0中断程序流程图 图5.3 T1中断程序流程图5.4 超声波接收中断程序图5.4 超声波接收中断程序流程图
超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现底电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示本次测距不成功。
5.5 显示子程序本文来自辣*文~论-文^网
先进行动态显示初始化,将指针指向缓冲区首址,然后取显示位指针,取要显示的数,再将数变成段码,然后将段码送段控制器,位码送位控制器,再延时,然后判断是否是最后一位,是否显示完毕,没有的话修改该缓冲区指针和位码。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
单片机超声波测距系统+原理图+电路图+汇编源程序+LED模块 第9页下载如图片无法显示或论文不完整,请联系qq752018766