- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机控制的超声波雷达系统
摘要 ?超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到实用的要求,因此在得到了广泛的应用。?关键词 单片机?超声波?? 传感器?? 测量距离?设计思路超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。L=C×T。式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。
本设计通过从单片机TX脚(P3.3)输出40KH的方波信号,即从该引脚连续发出高低电平,产生方波,方波的个数一般为10个左右,发出后启动定时器,开始计时,此时,超声波发射头(T端)开始发出超声波,当发出的超声波被前方的障碍物返射回来,返射回来的超声波被接收探头(R)接收到,此时,单片机的RX引脚(P3.2)会产生一个从高电平到低电平的跳变,从而引起中断。此时,停止计时,保存计时的时间。在本设计中我们根据以下公式:
??????测量距离= (时间*声速( 340M/S ) ) / 2 ?
可以算出测量距离。然后我们再通过一定的函数算法和C语言子程序的调用与整合,使测量距离显示在事先设计好的数码管显示电路上。本设计的精度为0.1cm。
本设计用Stc8989c52单片机作为主控制器,用动态扫描法实现数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图
二、系统组成 硬件部分主要由单片机系统及显示电路、超声波发射电路和超波检测接收电路三部分组成。采用来实现对CX20106A红外接收芯片和系列超声波转换模块的控制。单片机通过P引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。压电超声波转换器:利用压电晶体谐振工作。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。?
a.超声波发射电路
b.单片机控制电路
c.超声波接收电路图
2.软件部分介绍
软件部分主要由主程序、超声波发生子程序、超声波接收断程序及显示子程序等部分。超声波发生子程序的作用是通过P端口发送2个左右的超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值以表示此次测距不成功。
以下是本设计的程序部分:
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit Tx = P3^3; //产生脉冲引脚
sbit Rx = P3^2; //回波引脚
sbit fmq=P1^7;
uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uint distance[4]; //测距接收缓冲区
uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器
bit succeed_flag; //测量成功标志
void conversion(uint temp_data) //显示数据转换程序
{
文档评论(0)