?t 超声波发射 障碍物
S
H θ
超声波接收
图1 超声波的测距原理
H?Scos? (3-1)
??arctg(L)H (3-2)
式中:L---两探头之间中心距离的一半.
又知道超声波传播的距离为:
2S?vt (3-3) 式中:v—超声波在介质中的传播速度;
t—超声波从发射到接收所需要的时间. 将(3—2)、(3—3)代入(3-1)中得:
1LH?vtcos[arctg]2H
(3-4)
其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,则(3—4)变为:
1H?vt2 (3-5)
所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.
二、总体设计方案及论证
本设计主要采用MCS-51系列单片机作为主控芯片,能够实现超声波测距,数据显示,参数设置等功能。本系统可以通过超声波模块测量系统到障碍物之间的距离并用数码管显示出来,用户还可以通过按键设置下限报警距离,假如测量的距离低于设置的报警值则通过蜂鸣器发声提醒用户超出允许范围。本设计包括硬件和软件设计两个部分。模块划分为主控模块、按键模块、显示模块、超声波
第 2 页 共 23 页
图3 最小系统
图2 系统方框图
的采集和处理。包括按键模块,显示模块,超声波模块,报警模块,显示模块和
模块、报警模块。软件设计包括主程序设计和子程序设计。系统总体的设计方框
主控制最小系统电路如图3所示。主控模块采用STC89C52单片机进行数据
第 3 页 共 23 页
按键 4位数码管显示模块 STC89C52
电源模块。
图如图2所示。
(一)主控模块
三、硬件设计
超声波模块 蜂鸣器报警模块 主控制器模块电源
1、时钟电路的设计
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。
因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us,故而一个机器周期为1us。如图4所示为时钟电路。
图4 时钟电路图
2、复位电路的设计
复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。本设计采用的是自动复位电路。如图5示为复位电路。
VCCS49C1R110uF10k 图5 复位电路图
(二)超声波模块
超声波模块采用现成的HC-SR04超声波模块,该模块可提供 2cm-500cm 的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号
第 4 页 共 23 页
返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。实物如下图6。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。
图6 超声波模块实物图
超声波探测模块HC-SR04的使用方法如下:IO口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测是否有信号返回;有信号返回,通过IO口Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/ 2,单位为m。程序中测试功能主要由两个函数完成。
实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):
T = (定时器0溢出次数 * (0XFF - 0XCE))/ 1000 其中定时器0初值计算依据分频不同而有差异。
超声波引脚与单片机连接如图7所示。1脚接正级,2脚发射脚,3脚接收脚,4脚接电源负极接地。
图7
第 5 页 共 23 页
(三)按键模块
按键电路中用到3个按键,S2是设定键, S3是加键,S4是减键。可以进行报警值、工作方式、时钟等各个参数的设置。如图8示为按键电路。
图8
(四)声音报警电路模块
如下图所示,用一个Speaker和三极管、电阻接到单片机的P13引脚上,构成声音报警电路,如图10示为声音报警电路。
图10 声音报警电路图
(五)显示模块
显示模块采用数码管显示接口电路如图11,主要起到显示距离的功能。
第 6 页 共 23 页