基于51单片机的超声波倒车雷达系统的设计

发布者:快乐奇迹最新更新时间:2011-10-06 关键字:51单片机  超声波倒车雷达 手机看文章 扫描二维码
随时随地手机看文章

0 引言

    超声波是一种在弹性介质中的机械震荡,由于其指向性强、能量消耗缓慢、传播距离较远等到优点,经常用于测量距离。本文设计的倒车雷达系统就是利用超声波的上述特性做到对倒车距离实时和高精度的检测,同时,此系统成本低、设计简单、精度和稳定性好,有望得到广泛的应用,从而减少交通事故的发生。

1 超声波测距原理

    超声波测距原理是利用超声波从发射到接收过程中传播的时间来计算出传播距离。本文的倒车雷达系统采用反射接收回波方式。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有t=2l/c,而声波在空气中传输速率为。式中T为环境温度;cO为绝对温度时的速度,是常数。从上述两式可以推出,故利用超声波测量的距离与时间和环境温度有关,在本系统中利用AT89S52中的定时器测量超声波传播时间,利用DSl8820测量环境温度,从而提高测距精度。

2 硬件设计

2.1 系统硬件总体设计

    如图1所示,本系统硬件部分由AT89S52控制器、超声波发射电路、接收电路、温度测量电路,声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD上,如果距离小于设定时,报警电路会鸣叫,提醒司机注意车距。AT89S52是主控芯片,支持在线下载程序,方便调试,有8kB的Flash、32个I/O口、三个16位定时/计数器、八个中断源、全双工UART串行口和看门狗定时器等,资源丰富,既满足了本系统的设计要求,也满足了日后扩展的需求。


2.2 超声波发射电路

    超声波发射器包括超声波产生电路和超声波发射控制电路两部分,超声波探头选用CSB40T。可采用软件发生法和硬件方法产生超声波。本系统利用软件产生40kHz的超声波信号,经过74HC04两次和一次反向放大驱动后输出到CSB40T,如图2所示。


    74HC04是一个高速CMOS六反相器,具有对称的传输延迟和转换时间,而相对于LSTTL逻辑IC,它的功耗减少很多。对于HC类型,其工作电压为2~6V,它具有高抗扰度,可以兼容直接输入LSTTL逻辑信号和CMOS逻辑输入。

2.3 超声波接收电路

    由于超声波在空气中传播,其能量会随传输距离的增大而减小,从远距离障碍物反射的回波信号一般比较弱,所以在设计超声波接收电路时,要有较大的放大倍数;为减小环境噪声对回波信号的影响,也要考虑选用滤波特性较好的电路,使回波易于检测。超声波接收电路使用集成电路CX20106A,可用来完成信号的放大、限幅、带通滤波、峰值检波和波形整形等功能,如图3所示。



    其中的前置放大器具有自动增益控制功能,可以保证在超声传感器接收较远反射信号输出微弱电压时,放大器有较高的增益,在近距离输入信号强时放大器不会过载;其带通滤波器中心频率可由芯片5脚的外接电阻调节,不需要外接电感,可避免外磁场对电路的干扰,可靠性较高。CX20106A接收超声波有很高的灵敏度和抗干扰能力,可以满足接收电路的要求。同时,使用集成电路也可以减少电路之间的相互干扰,减小电噪声。当接收到40kHz信号后,芯片7脚会出现较短的低电平,接入单片机便可以使单片机产生中断。

2.4 温度测量电路

    由于超声波的传播速度v会受温度、湿度、压强等的影响,其中温度的影响尤为严重。因此在测量精度要求高的场合,应通过温度补偿对超声波的传播速度进行校正,以减小误差。

    本系统采用DALLAS公司的DSl8820数字式温度传感器进行温度测量,它所测量的温度值用9位二进制数直接表示,这些值通过DSl8820的数据总线直接输入CPU,无需A/D转换,而且读写指令、温度转换指令都是通过数据总线传入DSl8820,无需外部电源。DSl8820数字温度传感器与AD590、LM35等温度传感器相比,具有相当的测温范围和精度,温度测量精确、不受外界干扰等优点。硬件结构如图4所示。


2.5 显示电路

    本系统中的显示部分采用1602LCD液晶显示。具体接口如图5所示。

    如上图,有两组电源,一组是模块的电源 一组是背光板的电源 均为5V供电。R3是调节对比度的引脚,调节此脚上的电压可以改变黑白对比度。RS是很多液晶上都有的引脚,是命令/数据选择引脚,该脚电平为高时表示将进行数据操作;为低时表示进行命令操作。RW也是很多液晶上都有的引脚,是读写选择端,该脚电平为高时表示要对液晶进行读操作;为低时表示要进行写操作。同样,很多液晶模块有E引脚,通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。DO~D7 8位双向并行总线,用来传送命令和数据。BLA是背光源正极,BLK是背光源负极。

3 软件设计

    本系统的软件设计采用模块化设计,由主程序、超声波发射子程序、超声波接收子程序、温度补偿子程序、报警子程序以及显示子程序组成。主程序流程图如图6所示。


    超声波倒车雷达系统,最重要的就是对发射信号的控制及接收测量的时机控制。在设计中,AT89S52对发射的控制就是对40kHz方波产生电路的控制。由AT89S52的Pl.0口控制超声波发射电路以6个脉冲的序列发射出去,在程序中用延时实现。脉冲发射同时打开定时器T0开始计时,发射后等待1ms打开外部中断INT0,等待回波反射到接收探头。等待1ms的原因是,超声波发射探头发射的超声波一般都会存在余波干扰,有部分声波会直接传到接收探头,经接收电路放大后,系统就会把它误认为是检测的回波信号,发射后等待1ms可以避免检测到余波信号,当然这也会导致测量盲区的存在。

4 结论

    为了证明本文设计的倒车雷达系统的可靠性,在内部进行了实地测量。本系统测距范围为0.2~5m。最大误差小于3cm。因此,本系统具有工作稳定、抗干扰能力强、灵敏度高的特点。

关键字:51单片机  超声波倒车雷达 引用地址:基于51单片机的超声波倒车雷达系统的设计

上一篇:基于51单片机的调光控制器设计
下一篇:51片内定时器的应用

推荐阅读最新更新时间:2024-03-16 12:42

手把手教学51单片机 | 第三课之 定时器中断
1. 中断 (1)外部中断 打开总中断EA,选择外部中断EX0或EX1,因为ie可寻址,所以直接对EX0或者EX1操作,然后设置IT0(TCOD中)为电平触发还是跳变沿触发(上电默认寄存器0,为电平触发方式),然后写中断处理函数根据下表优先级确定 interrupt 后面的数字 (2)定时器中断 TMOD是定时器/计数器的工作方式寄存器, TCON是控制寄存器,控制T0T1的启动和停止及设置溢出标志 如果选用01工作方式,TH TL是16位 2^16=65536 (65536-N)/256相当于一个能装65536的水桶舀出N单位的水,然后每1us加入1单位的水的时间,最后用了5000us=50ms 接下来是TC
[单片机]
手把手教学<font color='red'>51单片机</font> | 第三课之 定时器中断
基于51单片机的频率测量仪设计
频率计是一种使用计数法、测宽法来等方法来测量信号频率的一种测量仪器。他主要是由四个部分构成:时基产生电路、信号处理电路、结果显示电路以及控制电路组成 制作出来的实物图如下: Altium Designer画的原理图和PCB图如下: 单片机源程序如下: #include reg52.h unsigned long int fre; unsigned char time; unsigned int count; unsigned int count1; sbit LCD_RS=P1^0; //片选信号 sbit LCD_RW=P1^1; //读写信号 sbit LCD_E=P1^2; /
[单片机]
基于<font color='red'>51单片机</font>的频率测量仪设计
基于AT89S52单片机的超声波倒车雷达系统的设计
0 引言 超声波是一种在弹性介质中的机械震荡,由于其指向性强、能量消耗缓慢、传播距离较远等到优点,经常用于测量距离。本文设计的倒车雷达系统就是利用超声波的上述特性做到对倒车距离实时和高精度的检测,同时,此系统成本低、设计简单、精度和稳定性好,有望得到广泛的应用,从而减少交通事故的发生。 1 超声波测距原理 超声波测距原理是利用超声波从发射到接收过程中传播的时间来计算出传播距离。本文的倒车雷达系统采用反射接收回波方式。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有t=2l/c,而声波在空气中传输速率为 。式中T为环境温度;cO为绝对温度时的速度,是常数。从上述两式可以推出 ,故利用超声波测量的距离与时间和环
[单片机]
51单片机驱动点阵16*16上移C程序
#include reg52.h #define uchar unsigned char #define uint unsigned int #define LINE P0//定义行线IO口,即74HC154控制端 #define shudu 20//字移动的速度 sbit DATA=P1^4;//74HC595数据端 sbit CLK=P1^5;//74HC595移位脉冲端 sbit CLKR=P1^6;//74HC595数据锁存端 uchar move;//移动几位变量 uchar line;//行变量 uchar word;//字节变量 uchar ji;//字节变量 uchar code table ={ 0x00,
[单片机]
<font color='red'>51单片机</font>驱动点阵16*16上移C程序
51单片机C51毫秒级(ms)精确延时
如下程序能实现ms毫秒级的比较精确的延时 void Delayms(unsigned int n) { unsigned int i,j; for(j=n;j 0;j--) for(i=112;i 0;i--); } 用keil可以看出这个延时的时间,我们先延时1ms(Delayms(1))。 进入Delayms前,sec=0.00042209s 延时后,sec=0.00142253s 可以知道Delayms(1)实际延时0.00142253s—0.00042209s=0.00100044s≈1ms 同样如果想延时15ms的话,用Delayms(15),实际延时0.01480903s≈15m
[单片机]
用Proteus学习51单片机之串口
串口的理论知识我就不记了,网上多的是。51单片机的串口,有4种方式,分别为方式0,方式1,方式2,方式3.由于我的目的,使用串口主要是为了和电脑进行通信,所以主要使用方式1(事实上我也只学了方式1,其他方式等用到的时候再学吧)。 串口的方式1,其波特率与定时器T1相关,公式如下: 方式1波特率 = (2SMOD×32)/(T1溢出率) SMOD是一个寄存器,一般我们就取0了 T1的溢出率,即每秒T1计数满几次(相关知识可以看看前面笔记的记录) 正是因为如上的公式,所以设置TH1和TL1的初值,就能控制方式1的波特率了。不过一般波特率是固定的那么几种,像2400,4800和9600等,要用的时候查一下初值就成了。 由于用的是Prot
[单片机]
用Proteus学习<font color='red'>51单片机</font>之串口
基于AT89C51单片机的数码管循环点亮0到9(Keil+Proteus+C语言)
要求描述: 选用AT89C51单片机,绿色7段共阴极数码管,使用C语言实现 仿真图 代码 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE = { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f }; void DelayMS(uint x) { uchar t; while(x--) for(t=120;t 0;t--); } void main() { u
[单片机]
基于AT89C<font color='red'>51单片机</font>的数码管循环点亮0到9(Keil+Proteus+C语言)
80C51单片机中断的编程使用方法介绍
1、单片机中断: 找了一张 80C51 单片机的图如下: 其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。 2、中断寄存器: (1)、IE (Interrupt Enable):中断允许控制寄存器 EA (IE.7):EA=0 时,所有中断禁止(即不允许中断) EA=1 时,各中断的产生由个别的允许位决定 ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 STC89C54RD+ 也有) ES
[单片机]
80C<font color='red'>51单片机</font>中断的编程使用方法介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved