您的当前位置:首页正文

超声波测距系统仿真简述

2020-10-07 来源:爱站旅游
导读超声波测距系统仿真简述


淮海工学院 课程设计报告书

课程名称: 单片机控制系统课程设计 题 目: 基于单片机的超声波测距系统 系 (院): 东港学院 学 期: 2013-2014-2 专业班级: D自动化111 姓 名: 王佳力 学 号: 2011130874

评语:

成绩: 签名: 日期:

1 引言

超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。

系统的设计主要包括两部分,即硬件电路和软件程序。硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路,另外还有复位电路和LED控制电路等。我采用以AT89C51单片机为核心的数字显示超声波测距仪的硬件电路。整个电路采用模块化设计,由信号发射和接收、供电、显示等模块组成。发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。它控制单片机进行数据发送与接收,实现数据正确显示在LED上。另外程序控制单片机消除各探头对发射和接收超声波的影响。相关部分附有硬件电路图、程序流程图。

实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。此外供电电源也会使测量差生很大的误差。再设计的过程中考虑了这些因素,并给出了一些解决方案。

1.1设计目的和要求

本次课程设计是根据“自动化专业培养计划”而制定的。单片机控制系统课程设计是自动化专业的学生在学过相关专业课以后进行综合训练的教学环节,特别是《自动控制系统》、《单片机原理及应用》、《计算机控制技术》等专业课学完之后的一次实践教学。其目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。

在设计过程中,通过课程设计,使学生了解一般电气控制系统、自动控制系统和计算机控制系统设计的过程、步骤、要求、工作内容及设计方法。训练学生综合运用专业课的能力,提高学生工程设计的能力。

1.2设计的内容

综合运用《微机原理及应用》、《单片机原理及应用》、《DSP技术原理及应用》、《计算机控制技术》和《检测技术与自动化仪表》的知识,掌握单片机控制系统的组成、原

理及工作方式,了解单片机控制系统的设计步骤与方法,特别是要了解单片机系统开发的整个过程,完成系统的软、硬件设计。

2 设计电路

2.1系统设计方案

单 发射电路 显片 示机 模处 块 理检测电路 接受电路 单 发射探头 目标接收探头 物 元

图2-1系统设计方案图

系统计划在实验室内实现小范围测距,测试距离约为0.2m—3m米,系统的整体结构如图2-1所示。发射电路采用单片机 端口编程输出40kHz左右的方波脉冲信号,同时开启内部计数器TO。由于单片机端口输出功率很弱,为使测量距离满足要求,驱动超声传感器UCM-40T发射超声波距离足够远,故在此电路上加功率放大电路。

从接收传感器探头UCM-40T传来的超声波的回波很微弱(几十个mV级),又存在着较强的噪声,所以放大信号和抑制噪声是放大电路必须考虑的。本系统设计此部分电路时采用一级放大和带通滤波电路,中心频率4OKHz左右,放大滤波电路均采用了高速精密运算放大器TL082,输出信号大约在5V左右。

由于放大电路输出的信号是连续的正弦波叠加信号,而单片机所能接受的中断响应信号常为下降沿脉冲信号,故信号在放大电路后通过LM393构成的比较电路,将正弦信号转换成方波信号,用方波的负跳变作单片机的中断输入,使得单片机知道已接收到超声信号,内部计数器停止计时。

显示电路采用动态扫描显示,主要是处于节省硬件的考虑。通过单片机编程将内部

计数得到的时间数据转换为距离信息,通过3位LED数码管显示,数据XXX,单位cm。

2.2 单片机的选择

本系统硬件部分由AT89C51控制器、超声波发射电路及接收电路和LCD显示电路组成。由单片机AT89C51编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。系统设计框图见图2-2。

AT89发

C51

接 图2-2系统设计总框图

LCD DS1由图1-3时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。

图2-3时序图

2.3超声波部分的设计

2.3.1超声波传感器的选择

在超声波测量系统中,频率取得太低,外界的杂音干扰较多;频率取得太高,在传播的过程中衰减较大,检测距离越短,分辨力也变高。本文中选用的探头是4OKHz的收发分体式超声传感器,由一支发射传感器UCM-T40KI和一支接收传感器UCM-R4OKI组成,其特性参数如表2-4所示。 型号 UCM-T40K1 结构 使用方式 中心频率 频带宽 灵敏度 声压 开放式 发射 UCM-R40KQ 开放式 接收 401KHZ 20.5KHZ 110dBVubar 115dBmin(0dB0.02mPa)381KHZ 20.5KHZ 65dBVubar 70dBmin(0dB1Vubar) 指向角 容量 75o 250025%pF 80o 250025%pF 图2-4 传感器UCM-T40KI和传感器UCM-R4OKI特性参数

2.3.2超声波发射电路设计

超声波发射部分是为了让超声波发射换能器TCT40-16T能向外界发出40 kHz左右的方波脉冲信号。40 kHz左右的方波脉冲信号的产生通常有两种方法:采用硬件如由555振荡产生或软件如单片机软件编程输出,本系统采用后者。编程由单片机P1.0端口输出40 kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40 kHz方波脉冲信号分成两路,送给一个由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器TCT40-16T以声波形式发射到空气中。发射部分的电路,如图2-5所示。图中输出端上拉电阻R31,R32,一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。

图2-5超声波发射电路框图

本系统用单片机P1.0发射一组方波脉冲信号,其输出波形稳定可靠,但输出电流和输出功率很低,不能够推动发射传感器发出足够强度的超声信号,所以在此间加入一个单电源乙类互补对称功率放大电路,如图2-6所示。

图2-6 超声波发射电路

2.3接收电路的设计

接收换能器晶片接收到超声波垂直作用后,因谐振而形成逐步加强的机械振动。因压电效应晶片两面出现交变的等量异号电荷,电荷量很少,只能提供微小交变的电压信号,而不能提供电流信号。所以需要一个前置放大电路将这一微小交变电压信号充分放大,同时考虑可能出现干扰信号,放大有用信号的同时加入滤波电路,驱动后面的比较器输出电位跳变,作为确定接收到的时刻。

前置放大电路单元的作用是对有用的信号进行放大,并抑制其它的噪声和干扰,从而达到最大信噪比,以利于后续电路的设计。

图2-7前置放大电路图

电路如图2-7所示,考虑到超声换能器的输出电阻比较大(一般数百兆欧姆以上),因此前置放大器必须有足够大的输入阻抗;同时,换能器的输出电压很小(数十毫伏),这就要求前置放大电路有很高的精度、很小的输入偏置电压 。前置放大电路是由一个高精度、高输入阻抗放大器TL082及电阻R2、R3和R构成,组成反向比例放大电路,这样可以减小地线噪声的影响。

2.4单片机LED显示电路设计

显示器是一个典型的输出设备,而且其应用是极为广泛的,几乎所有的电子产品都要使用显示器,其差别仅在于显示器的结构类型不同而己。最简单的显示器可以使LED发光二极管,给出一个简单的开关量信息,而复杂的较完整的显示器应该是CRT监视器或者屏幕较大的LCD于显示的距离范围在4米之内,选用3位LED示,表示距离的XXXcm数值。液晶屏。综合课题的实际要求由数码管,通过单片机编程实现显示,表示距离的XXXcm数值。

VCC910111213141516Res Pack487654321X1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKX1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKX1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKY1Y2Y3VCCC32VCC1918XTALP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1540393837363534333212345678X1X2X3X4X5X6X7X81C2XTAL1XTAL2Y1Y2Y312345678IN1IN2IN3IN4IN5IN6IN7GNDULN2003AOUT1OUT2OUT3OUT4OUT5OUT6OUT7COM161514131211109VCCR11KVCC931C12930RSTEA/VPPPSENALE/PROG1011121314151617P3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD1112345678910OEVCCCLKD0D1D2D3D4D5D6D7GND74ACQ574PCO0O1O2O3O4O5O6O7VCC2020VSSAT89S511918171615141312

图2-8显示部分的电路图

本单元电路设计如图2-8所示,采用3位共阴极数码显示管,显示字符由单片机P2口送至锁存器74HC574锁存,再经显示驱动芯片ULN2O03驱动数码管显示,P0.1-P0.3分别控制每一位的动态显示。

74HC574为三态输出D型上升沿触发器,图2-9为其引脚图,在输入使能端OE有效时,当时钟脉冲CK有上升沿跳变,触发器发生翻转,将锁存的8路输入数据(即单片机P2口送出的字符数据)送出显示。其功能表,如表2-1

图2-9 74HC574引脚图 图2-10ULN2003引脚图

表2-1 74HC574功能表

ULN2003为显示驱动芯片,抬升单片机的输出电流,提高负载驱动能力。其引脚如图2-10所示,其内部含七对达林顿放大管,其主要功能:当输入为高电平时,输出为低电平;输入为低电平时,输出为高电平。本课题让单片机P0.1-P0.3经此芯片提升驱动能力从而控制数码管的位选,实现数据动态扫描输出。

2.4.1 LCD显示部分

本设计显示部分采用字符型TC1602液晶显示所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有微功耗、体积小、显示内容丰富、超薄轻巧、使用方便等诸多优点,与数码管相比,显得更专业、美观。使用时,可将P0与LCD的数据线相连,P2口与LCD的控制线相连,如图2-11所示。

图2-11 TC1602液晶显示电路

其中,TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第7~14脚:D0~D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D0~D7是接到LCD/602的D1~D0,正好相反,因此在编写软件时需要做处理,使读取正确。

3 系统软件设计

3.1 系统程序结构

(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;

(2)基于YB1602的显示模块,分为初始化子程序、写入子程序以及显示子程序; (3)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil Version2进行程序编译,该软件功能强大使用方便。

主程序,分为系统初始化、按键处理以及各个子程序的调度管理等部分。 如图3-1所示描述了各个模块的关系: DS18B20初始化 超声波发射 超声波接收 LED显示模块 距离计算

按键处理 图3-1系统软件方框图

蜂鸣器鸣音

3.2系统主程序:

本设计主程序的思想如下:

(1)DS18B20在12位精度下转换周期为750ms ,故900ms满足该速度要求;超声波每隔60ms发送一次。

(2)按键S为测量启动键;

(3)系统采用AT89S52的内时钟:12MHz; (4)没有使用看门狗功能;

(5)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为112mm; 系统主程序如下: void main(void) {

uchar i,j;

for(i=0;i<255;i++)

for(j=0;j<255;j++); //延时,等待系统外围复位完成 sys_init(); //初始化 display(); //显示 sta_flag=0; //标准复位

waitforstarting: //检测按键 while(START); for(i=0;i<20;i++) delay1ms(); if(START)

goto waitforstarting;

BUZZER=0; //蜂鸣器鸣音一次提示按键按下 i=100000; while(i--); BUZZER=1; i=100000; while(i--);

TR0=1; //启动定时器0 while(1) {

if(sta_flag) //60MS到了,超声波已经发送 {

while(0==CSBIN); //等待超声波返回 TR1=0;

jsh=TH1; //停止计数 {

temp=wd(); count=0;

testtemp(); //重新启动转换 display(); //刷新显示 }

computer(); //计算距离 hextobcd(); //转化成BCD码 sta_flag=0; //标志清零 } } }

void sys_init(void) { uchar i;

for(i=0;i<29;i++) //显示清零 { num[i]=0;} TMOD=0x11; TH0=0x15; TL0=0xA0; P0=0;

CNT=0; //超声波发送关闭 CSBIN=1;

EA=1; //开放总中断 Init_LCD(); 3.2实现距离计算 float Dis_count() {

float cm; cm=TH1*256+TL1;

//距离计算函数

}

cm-=7610; cm*=speed; cm/=20000; return cm;

//减去限制10M的初值+可调误差值 //计算距离uS*34650m //转换为s 单程

3.3系统原理图

3.3.1系统PCB板图

4 心得体会

本次设计是对自动控制系统》、《单片机原理及应用》、《计算机控制技术》等专业课学完之后的一次复习和应用,在设计过程中遇到了一些难题,查阅参考资料给了我很大的帮助。这次的设计也是存在不足的,在实际生产应用方面还有很大改进的的空间,但是尽自己的努力设计出这个超声波测距系统也让自己觉得很满足和充实,在今后的学习中我会牢记专业知识,在作业或者生活中运用所学,学以致用。

5 参考文献

1 求是科技.单片机典型模块设计实例导航.第一版.北京:人民邮电出版社.2002 2 谢剑英,贾青.微型计算机控制技术.第三版. 北京:国防工业出版社,2001 3 潘新民.微型计算机与传感器技术. 北京:人民邮电出版社,1996

4 肖看、李群芳,单片机原理、接口及应用,第二版,清华大学出版社2010

因篇幅问题不能全部显示,请点此查看更多更全内容