微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STC89C52单片机的超声波测距系统

基于STC89C52单片机的超声波测距系统

时间:10-15 来源:互联网 点击:

MAX864内部晶振频率选择位,当FC1和FC0均为高电平时,晶振频率为最大值,高频率可以保证MAX864不会对其它电路造成干扰,此时所需的外围电容值(C9,C11.C12,C13)为1μF。LM8261是一个具有高输出电流的运算放大器,较高的输出电流可以使产生的超声波有足够的能量传播较远的距离。LM8261的同相输入端与单片机的INT1/P3.3端口相连,在这个端口连续发出高低电平时,LM8261的输出端就会产生方波。当方波的频率为40 kHz时,就会激励超声波发射器发出超声波。

1.2.2 超声波接收电路

接收电路主要负责将超声波信号转变为电信号。换能器在接收到超声波信号时,由于压电效应会在两个接头上产生微弱的电压信号,一般为毫伏级。微弱的电压信号需通过放大电路进行放大、整形,进一步设计比较器电路将模拟信号转变成为数字信号。

因此,接收电路包括接收换能器,放大电路以及比较整形电路3部分。电路如图4所示。回波放大电路使用的是具有两级放大功能的LMV82 2MM,R15和R16组成分压电路,为同相输入端提供基准电压。其中可以通过调节第二级中的电位器R22来改变放大器的增益,从而调节放大电路的电压放大倍数,以适应接收信号变化范围大的需要。

回波放大电路和稳压电路输出的是模拟信号,电路中利用运算放大器LMC7215组成的比较器将模拟信号转变为数宇信号,以便单片机进行处理。R20和R21为比较器提供基准电压。当反向输入端电压超过基准电压时,输出低电平,否则输出为高电平。这样,若有超声波信号被接收,比较器电路输出端会有由高到低的电平跳变。单片机的INT0/P3.2端口连接到比较器的输出,以捕捉电平的跳变,从而判断超声波是否被接收。同时,比较器还解决了发射换能器发出的超声波脉冲没有经过反射物直接被接收器所接收的问题。

2 系统软件设计

程序设计部分的总体思路是:

Step1:系统的初始化工作。主要包括在液晶显示屏LCD1602上显示两行预设字符,“Temp:”和“Dist:”,分别为环境温度和测量距离的提示字符;设置定时器、外部中断的触发方式;打开发送使能端P1.3和接收使能端P1.2;清零测量成功标志succeedFlag。

Step2:利用温度传感器DS18B20测量环境温度,并将温度值显示在液晶显示屏第一行“Temp:”的后面;根据公式(2)

计算出超声波的传播速度。

Step3:启动定时器T1开始计时,同时连续发送8个频率为40 kHz的超声波信号(对P3.3口的高、低电平分别进行12μs、13μs的延时,实现从P3.3口输出频率为40 kHz的方波信号);延时10μs后,打开外部中断EX0和总中断EA,等待IT0/P3.2处电平的跳变。10μs的延时也可以有效地避免发射换能器发出的超声波脉冲没有经过反射物直接被接收器所接收的问题。

Step4:超声波在传播过程中,遇障碍物后反射回波。当接收探头接收到回波时,外部中断0被触发,此时执行中断服务程序。即取出定时器的高低位TH1和TL1,置位测量成功标志succeedFlag,并关闭中断。定时器所计的数据即为超声波所经历的时间t。

Step5:由以上步骤中所得定时器的值和超声波速度,根据式(1)计算测量距离。

Step6:重复步骤2~5五次后,获得5次测距值。去除其中的最大值和最小值,取中间3值的平均值为当前的测距结果,并将测距结果显示在液晶显示屏第二行“Dist:”之后。

Step7:重复步骤2~6,当有连续三次的预备显示测距结果与当前的显示结果不同时,将预备显示测距结果显示在液晶显示屏上。这样设计是为了避免显示频繁导致的液晶显示抖动。

Step8:重复步骤2~7进行连续地测量。

程序中显示一次测距结果的流程图如图5所示。

3 实验

3.1 调试过程中出现的问题及解决方法

1)回波信号的误接收

由于超声波发射探头和接收探头距离较近,当发射探头发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收探头上,这部分信号影响了系统的测量结果。设计中采用了两个方法来解决这个问题,一是略微增大发射探头和接收探头之间的距离,使影响降低;二是在发射完超声波之后,开外部中断之前增加10μs的延时,接收电路对此期间接收到的任何信号不予理睬,延时之后接收到的信号才是有效的回波信号。

2)外部中断0的触发方式

没有接收到超声波信号时,INT0/P3.2引脚为高电平;接收到超声波信号之后,该引脚变为低电平。因此理论上外部中断0的触发方式采用下降沿触发和低电平触发均可。而在实际电路中,当采用下降沿触发方式时,由于噪声的影响,在没有回波被接收的情况下,P3.2引脚的高电平经常会出现向下的毛刺信号,该信号引起外部中断,造成

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top