微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于单片机控制的超声波测距报警系统

基于单片机控制的超声波测距报警系统

时间:04-17 来源:3721RD 点击:

PNP 三级管驱动。接P2.1 引脚的为个位显示数码管,其小数点在P2.1 有效时显示,此功能由软件来完成。

2.7 复位功能

系统应具备测距启动功能,可以复位系统,使其开始重新测距。

综上所述,本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用STC89C52,经济易用,且片内有8K 的ROM,便于编程。电路原理如图7 所示。

3 软件方案

系统软件设计采用模块化设计,主要包括主程序设计、T0 中断服务子程序、外部中断服务子程序、距离计算子程序、LED 显示子程序设计等。

主程序首先是对系统环境初始化,设置定时器T0工作模式为16 位定时计数器模式。置位总中断允许位EA 并给显示端口P0 和P2 清0.

图7 电路原理

然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms,然后才打开外中断0 接收返回的超声波信号。

测出距离后结果将以十进制BCD 码方式送往LED 显示约0.5 s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C 语言编写。

3.1 主程序

· 系统控制初始化LED、初始化计数控制部分,清除计数值。

· 单片机超声波脉冲信号。

· 立刻置INT0 为1,打开计时器,等待回波信号。

· 回波信号到达,关闭计时器,P3.3 为0,清INT0 为0.

· 单片机读出计数值。

· 单片机将计数值进行计算后得出的距离值,显示在LED 上。

· 当测量距离< 10.0 cm 或> 50.0 cm 时,报警系统灯亮。

· 当按下复位键时,启动复位功能。

主程序流程图如图8 所示。

图8 主程序流程

3.2 定时中断服务子程序

超声波发生子程序的作用是通过P3.3 端口发送2 个左右频率约40 kHz 的方波的超声波脉冲信号,同时把计数器T0 打开进行计时。定时中断子程序如图9 所示。

图9 定时中断服务子程序

3.3 功能显示

如图10 所示,通过数码管显示测出距离为14.3 cm,属于10.0 ~ 50.0 cm 正常范围。

图10 超声波测距正常范围

如图11 所示,超声波测出的距离为9.4 cm,< 10.0 cm,报警系统启动,LED 灯亮。

图11 超声波测距< 10.0 cm

如图12 所示,超声波测出的距离为50.3 cm,> 50.0 cm,报警系统启动,LED 灯亮。

图12 超声波测距大于50.0 cm

如图13 所示,按下键盘模块中的按键,复位系统,数码管显示距离数归零。

图13 启动复位功能

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

网站地图

Top