您好,欢迎来到微智科技网。
搜索
您的当前位置:首页超声波测距课程设计

超声波测距课程设计

来源:微智科技网


引言

利用超声波作为定位技术是蝙蝠等生物作为防御和捕捉猎物生存的手段,也就是由生物体发射不能被人们听到的超声波20Hz以上的机械波,借助空气或其它介质传播。通过被待捕捉的猎物或障碍物反射回来的时间间隔长短和反射回来的信号强弱来判断反射物的类型及距离的远近。人类采用仿生学,人工发射出超声波。目前,超声波已应用在民用及国防工业中。例如:用超声波探测海洋潜艇位置、鱼群以及确定海底暗礁等障碍物形状及位置。利用超声波在固体巢传播的时间确定物体的长度以及超声波在固体里遇到障碍物界面上的反射来确定物体内部损伤(如裂缝、气孔及杂质等)位置,称之为无损探伤。利用超声波测距辅助机器人确定机器人自身位置和环境识别,从而准确避开障碍物按照预先规划好的行进方向行进来完成预定任务。另外还应用于矿井探测、液面探测、建筑、汽车

相比,超声波测距有其不受光线影响,结构和操作简单,成本低等特点。采用高
报警等领域。超声波测距是一种非接触式检测方式,和红外、激光及无线电测距

有一定实际意义的。

1 课题设计的任务和要求



设计一超声波测距仪,任务:




(1)了解超声波测距原理。

(2)根据超声波测距原理,设计超声波测距器的硬件结构电路。

设计一超声波测距仪,要求:
(1)设计出超声波测距仪的硬件结构电路。

(2)对设计的电路进行分析能够产生超声波,实现超声波的发送与接收,从 而实现利用超声波方法测量物体间的距离。

(3)对设计的电路进行分析。

(4)PROTUES进行仿真,以数字的形式显示测量距离。

2超声波测距仪的设计思路

2.1两种常用的超声波测距方案

2.1.1 基于单片机的超声波测距设计
经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经
基于单片机的超声波测距设计,是利用单片机编程产生频率为40kHz的方波,


2.1基于单片机的超声波测距系统框图

2.1.2基于CPLD的超声波测距设计

这种测距设计采用CPLD(ComplexProgrammable Logic Device)复杂可编程逻辑器件,运用VHDL(VeryHigh Speed Integrated Circuit Hardware DescriptionLanguage)超高速集成电路硬件描述语言编写程序,使用

MAX+plusII 软件进行软硬件设计的仿真和调试,最终实现测距功能。
CPLD 器件内部的宏单元是其最基本的模块,能地编程为D 触发器、T


发器、RS触发器或JK触发器工作方式或组合逻辑工作方式。它的这种特性非常适用于本系统,可将本系统所需要的分频功能、计数功能、振荡器、七段码显示全部由MAX来实现,而只需在外部配上适当的超声波传感器、接收和发送电路,即可组成一个测量精度高、性能稳定、响应速度快且具有显示功能的超声波测距仪。

本系统利用CPLD器件控制超声波的发射,并对超声波发射至接收的往返时间进行计数,将计算结果在LED上显示出来。配合使用MAX+plusII开发软件,可集设计输入、设计处理、设计校验和器件编程于一体,集成度高,开发周期短。

2.2总体设计方案

由单片机ATC51编程产生40kHz的方波,由P3.6口输出,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,

计算出障碍物的距离,并由单片机控制显示出来。
送至单片机。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔

2.2 时序图
单片机在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间

差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。

2.3系统整体方案的论证

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。

超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率、和声波特性各不相同, 根因而用途也各不相同。目前在近距离测量方面常用的是压电式超声波换能器。

据设计要求并综合各方面因素,本文采用ATC51单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。

超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来

另一端接收的直接波方式,适用于身高计一种是发射波被物体反射回来后接收计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,
应的传感器,

减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。

3超声波测距仪硬件设计

3.1超声波测距的原理

单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离

S ?

ct

……………………………………… ①


2

式①中的c 为超声波在空气中传播的速度。


该设计的最大可测距离存在四个因素:超声波的幅度、反射物的质地、


反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。为了增加所测量的覆盖范围,减少测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法。由于超声波发球声波范围,其波速c与温度有关,表3.1列出了几种不同温度下的波速。

3.1声速与温度的关系

温度(℃)

30

20

10

0

10

20

30

100

声速(m/s)

313

319

325

323

338

344

349

386

3.2ATC51单片机简介

ATC51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8 位微处理器,俗称单片机。ATC2051是一种带2K字节闪烁可编程可擦除只读存储

器的单片机。单片机的可擦除只读存储器可以反复擦除100 次。该器件采用ATMEL
兼容。由于将多功能8 CPU 和闪烁存储器组合在单个芯片中, ATMEL ATC51高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相

串行通信口,ATC51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其管脚图如图3.2所示。



3.2 ATC 单片机管脚图
3.2.1 ATC51 主要特性
·寿命:100 /擦循环

·数据保留时间:10
·全静态工作:0Hz-24Hz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道

·低功耗的闲置和掉电模式·片内振荡器和时钟电路



3.2.2管脚说明

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,

为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于
输出4 TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也可作为ATC51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)

P3.4 T0(记时器0 外部输入)
P3.5 T1(记时器1 外部输入)
P3.6 /WR(外部数据存储器写选通)




P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVXMOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN

/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),号将不出现。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。

3.2.3振荡器特性

XTAL1XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.2.4 芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在

任何非空存储字节被重复编程以前,该操作必须被执行。

此外,ATC51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持

两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计

数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡

器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.3超声波测距系统电路的设计

3.3.1发射电路的设计

由单片机产生的40kHz 的方波需要进行放大,才能驱动超声波传感器发射超

声波,发射驱动电路其实就是一个信号放大电路,本课题所选用的是74HC04

成芯片,图2-4为发射电路图.

由单片机产生的40kHz 的方波需要进行放大,才能驱动超声波传感器发射超
声波,发射驱动电路其实就是一个信号放大电路,本课题所选用的是74HC04
成芯片,图3.3 为发射电路图。
U 1C
74H C04
U 1D

I/O

9

8

LS1

74HC04

U1A U1E SPEAKER

1 2 1110

74HC04 74HC04

U1B U1A

3 4 12

74HC04

3.3 发射电路 74HC04

74HC04 内部集成了六个反向器(输入与输出相位相反的电子电路),即1A



输入高电平,1Y输出高电平同时具有放大的功能。74HC04的管脚如图3.4

VccA6 Y6 A5 Y5 A4 Y4

A1 Y1 A2Y2 A3 Y3 GND



过放大。本系统采用了LM741对接收到的信号进行放大,接收电路如图3.5所示。





C2

V CC

R1

10u

R2

100K

100K

R3
100K

5

U4A

C

D1

C4

3

1

102

2

4

103

LS2

SPEAKER

D2

LM747

C5

R5

R6

102

1M

1K

C3

103
感器的中心频率,即40kHz。该信号通过C1 高通滤波后经LM741 放大,最后经
超声波探头接收到超声波后,通过声电转换,产生一正弦信号,其频率为传

LED(Light-EmittingDiode,发光二极管)有七段和八段之分,也有共阴和共阳两种。

LED数码管结构简单,价格便宜。图3.6示出了八段LED数码显示管的结构和原理图。图3.6(a)为八段共阴数码显示管结构图,图3.6(b)是它的原理图,图3.6(c)为八段共阳LED显示管原理图。八段LED显示管由八只发光二极管组成,编号是abcdefgSP,分别与同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他与八段相同。



a) (b) (c 3.6八段码LED数码显示管原理和结构

管能稳定地同时显示各自字形动态显示是指各LED 轮流地一遍一遍显示各自字
单片机对LED 管的显示可以分为静态和动态两种。静态显示的特点是各LED

需显示三位字符,所以,采用了静态的显示方式,且采用了软件译码,这样单片机引脚输出可直接接到LED显示管上。这样省去了外部复杂的译码电路。

4超声波测距仪软件设计

4.1超声波测距仪软件分析

单片机编程产生超声波,在系统发射超声波的同时利用定时器的计数功能开始计时,接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后通过软件译码,将数据输出P0P1P2 口显示。




4.1.1程序流程图和程序语句

程序流程图如图4.1(a)为主程序流程图,(b)为定时中断子程序流程图,(c)为外部中断子程序流程图。

使

定时中断入口

外部中断入口

定时中断子程序

定时初使

读取时

间值

发射超声

有回波否

计算距

发射

完否
停止发 果外部中断子程序
保存结

返回


返回

(a) (b) (c) 4.1程序流程图
用单片机编程产生40kHz方波,可用延时程序和循环语句实现。先定义一个延时函数delays(),然后可用for语句循环,并且循环一次同时改变方波输出口的电平高低,从而产生方波。部分程序如下:
voiddelays() {} //延时函数
voidmain()
{
for(a=0;a<200;a++) //产生10040KHz 的方波
{ P36=!P36; //每循环一次,输出引脚取反

delays() ;
}
}
单片机每隔一段时间产生一串40kHz方波,同时定时器开始计时,当收到回波,产生中断信号后,单片机执行中断程序。在中断程序中,先让定时器停止计数,然后读取时间,通过时间计算出所测距离,输出结果。

中断程序如下:
voidintersvro(void) interrupt 0 using 1 //INTO 中断服务程序{
uint bwei,shwei,gwei;
uchar DH,DL;
ulong COUNT;
ulong num;

DH=TH0;
TR0=0 ; //停止计数

bwei=num/100; //取百位
gwei=(num-bwei*100)/10; //取十位
shwei=num%10; //取个位
P1=tab[bwei]; //输出百位
P0=tab[shwei]; //输出十位
P2=tab[gwei]; //输出个位
TH0=0;
TL0=0;
}
本设计的LED显示采用了静态显示方式,并用单片机内部软件译码。这样简 单方便,省去了复杂的外部译码电路。


软件译码只需要定义一个数组便可,程序语句如下:
uchar datatab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
这是共阳LED显示从09的字形码。

4.2超声波传感器原理与特性

4.2.1超声波传感器的原理

人们可以听到的声音频率为20Hz20kHz,即为可听声波,超出此频率范围的声音,即20Hz以下的声音称为低频声波,20kHz以上的声音称为超声波,一般说话的频率范围为100Hz8kHz

超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强,为此

利用超声波的这种性质就可以制成超声波传感器。另外,超声波在空气中传播的
速度较慢,约为330m/s,这就使得超声波传感器使用变得非常简单。
超声波传感器有发送器和接收器,但一个超声波传感器也可以具有发送和接
是发送器和接收器为一体传感器,即可发送超声波,又可接收超声波。超声波传

感器的谐振频率(中心频率)23kHz40kHz75kHz200kHz400kHz等。谐振频率变高,则检测距离变短,分解力也变高。

超声波传感器采用双晶振子,即把双压电陶瓷片以相反极化方向粘在一起,在长度方向上,一片伸长,另一片就缩短。在双晶振子的两面涂敷薄膜电极,其上面用引线通过金属板(振动板)接到一个电极端,下面用引线直接接到另一个电极端。双晶振子为正方形,正方形的左右两边由圆弧形凸起部分支撑着。这两处的支点就成为振子振动的节点。金属板的中心有圆锥形振子。发送超声波时,圆锥形振子有较强的方向性,因而能高效率地发送超声波;
接收超声波时,超声波的振动集中于振子的中心,所以,能产生高效率的高频电压。

采用双晶振子的超声波传感器,若在发送器的双晶振子(谐振频率为40kHz)上施加40kHz的高频电压,压电陶瓷片就根据所加的高频电压极性伸长与缩短,

于是就能发送40kHz频率的超声波。超声波以疏密波形式传播,传送给超声波接收器。超声波接收器是利用压电效应的原理,即在压电元件的特定方向上施加压力,元件就发生应变,则产生一面为正极,另一面为负极的电压。若接收到发送器发送的超声波,振子就以发送超声波的频率进行振动,于是,就产生与超声波频率相同的高频电压,当然这种电压是非常小的,必须采用放大器放大。

4.2.2超声波传感器的特性

超声波传感器的带宽较窄,大部分是在标称频率附近使用,为此,要采取措施扩展频带,例如,接入电感等。另外,发送超声波时输入功率较大,温度变化使谐振频率偏移是不可避免的,为此,对于压电陶瓷元件非常重要的是要进行频率调整和阻抗匹配。

MA40S2R/S传感器的发送与接收的灵敏度都是以标称频率为中心逐渐降低,

为此,发生超声波时要充分考虑到这一点以免逸出标称频率。
围环境温度下使用时,
另外,对于这种传感器,一般来说温度越高,中心频率越低,为此,在宽范
不仅在外部进行温度补偿,在传感器内部也要进行温度补
偿。

5.1电路的调试

通过多次实验,对电路各部分进行了测量、调试和分析。

首先测试发射电路对信号放大的倍数,先用信号源给发射电路输入端一个40kHz的方波信号,峰-峰值为3.8V。经过发射电路后,其信号峰-峰值放大到10V左右。

40kHz的方波驱动超声波发射头发射超声波,经反射后由超声波接收头接收到40kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,在单片机的外部中断源输入端产生

一个中断请求信号。


该测距电路的40kHz 方波由单片机编程产生,方波的周期为1/40ms,即


25?s,半周期为12.5?s。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于12M晶振的单片机的时间分辨率是1?s,所以只能产生半周期为12?s13?s的方波信号,频率分别为41.67kHz38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。

5.2系统的误差分析

5.2.1声速引起的误差

声波是媒质中传播的质点的位置、压强和密度对相应静止值的扰动。高于20kHz时的机械波称为超声波,媒质包括气体、液体和固体。流体中的声波常称为压缩波或压强波,对一般流体媒质而言,声波是一种纵波,传播速度为

2
?E?
c?? ??? ? ………………………………………②
E 为复数,其虚数部分代表损耗; c 也是复数,其实数部分代表传播速度,虚数式②中E 为媒质的弹性模量,单位kg/mm2ρ 为媒质的密度,单位kg/mm3
射、衍射等)有关。

从式②可知,声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响,液体的深度、温度等因素会引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度的影响最大。

声速受温度的影响为

c

?

c

?

1

??

?

?

?

2

………………………………③



?



0

??


?
?

273

??

??







根据上式测量的温度-声速图如图5.1


5.1空气中温度-声速图
由式②和图③可见,当温度θ040℃变化时,将会产生7%的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度,即

c?

?

331 0.6?…………………………… ④

5.2.2 单片机时间分辨率的影响
不管是查询发射波与回波,还是由其触发单片机中断再通过软件启停定时器,

分辨率为1?s

随机误差
由于测量过程中的随机误差是按统计规律变化的,为了减少其影响,可在同一位置处多次重复测量xi,然后取平均值x作为测量的真值[10]

提高测距精度的方法
上节分析了超声波测距系统误差产生的一些原因,如何提高测量精度是超声测距的关键技术。其提高测距精度的措施如下:
①.合理选择超声波工作频率、脉宽及脉冲发射周期。

据经验,超声测距的工作频率选择40kHz较为合适;发射脉宽一般应大于填

充波周期的10 倍以上,考虑换能器通频带及抑制噪声的能力,选择发射脉宽1ms;脉冲发射周期的选择主要考虑微机处理数据的速度,速度快,脉冲发射周

期可选短些。



.在超声波接收回路中串入增益调节(AGC)及自动增益负反馈控制环节。

因超声接收波的幅值随传播距离的增大呈指数规律衰减,所以采用AGC电路使放大倍数随测距距离的增大呈指数规律增加的电路,使接收器波形的幅值不随测量距离的变化而大幅度的变化,采用电流负反馈环节能使接收波形更加稳定。 ③.提高计时精度,减少时间量化误差。

计时器的计数频率越高,则时间量化误差造成的测距误如采用芯片计时器,
差就越小。例如:单片机内置计时器的计数频率只有晶振频率的十二分之一,当晶振频率6MHz时,计数频率为0.5MHz,此时在空气中的测距时间量化误差为0.68mm;当晶振频率为12MHz时,计数频率为1MHz,此时测距时间量化误差为0.34mm。若采用外部硬件计时电路,则计数频率可直接引用单片机的晶振频率,时间量化误差更小[11]

④.补偿温度对传播声速的影响。超声波在介质中的传播速度与温度、压力等因数有关,其中温度的影响最大,因此需要对其进行补偿。

1.0℃I2C 总线接口。用ATC51 的通用I/O 端口能很容易的模拟I2C 总线的读
温度传感器LM92 的温度测试分辨率为0.0625℃,-10℃+85℃准确度为±
测距的场合,

仪等,它具有测试速度快,能达到毫米级的测量精度等优点,在工程上的开发与应用前景广阔。

6PROTUES仿真

Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
实现了单片机仿真和SPICE电路仿结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、

SPI 调试器、键盘和LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑

分析仪、信号发生器等。



支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)

8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。

提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,

同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必

须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51

uVision2MPLAB等软件。

具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于

一身的仿真软件,功能极其强大。

当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,

在本设计中,由于设计有限,在仿真时超声波发射后没遇到障碍物而不能接收所

反射的回波,从而不能测出发射和接收回波的时间差,仿真效果为显示最大值,

所以只做出仿真参考图如下(上图为没发出方波前,下图为发出方波后):

1)为准备发射方波前,处于静止状态




6.1 发射方波前



2)为发射方波以后的状态



发射和接收回波的时间差,仿真效果为显示最大值。



结束语

本课题介绍了一种基于单片机的超声波测距设计的原理和设计。给出了硬件和软件的设计方案。

超声波传感器是本设计的核心器件,本论文详细地介绍了超声波传感器的原理、结构、检测方式以及它的一些特性。只有深入地了解超声波传感器的工作原理,才能更好的设计测距电路。单片机是本系统的控制部分,采用Atmel公司生驱动超声波传感器的40kHz的方波信号,就是由单片机编程产的ATC51芯片。

产生的。本设计的发射电路采用74HC04六反向器,通过它对单片机产生的方波信号进行放大,以驱动传感器工作。接收电路采用的是LM741,通过接收电路对接收到的信号进行放大和整形,最终再输出负脉冲给单片机响应中断程序。本系 并用单片机软件译码。单片机内部采统的LED显示部分采用的是静态扫描方式,
C语言编程,方波信号的产生、时间差的读取、距离的计算以及显示输出的译

码都由单片机编程完成。
等优点。测距范围从20cm 200cm,测量精度在±10cm 内。测距设计在许多工本课题所设计的超声波测距系统具有测量精度较高、速度快、控制简单方便
总体来说,最重要的是在本课题的设计过程中我学到了很多知识,从中受益

匪浅。了解了超声波传感器的原理,学会了各种放大电路的分析、设计,也掌握了单片机的开发过程和利用单片机设计电路的方法。对一块电路板的设计、焊板、调试、改进等整个过程,有了更深入的理解和掌握。这些对我今后的学习和工作都会有很大帮助的。



参考文献

[1].刘凤然.基于单片机的超声波测距系统[J].传感器世界.2001,5
[2].葛健强.基于CPLD的超声波测距仪研制[N].无锡商业职业技术学院学
.2004,4
[3].何希才,薛永毅.传感器及其应用实例[M].机械工业出版社.2004
[4] 李光弟,朱月华,冷祖祁.单片机基础(第三版)[M].北京:北京航空航天
大学出版社.2007.6
[5].吴斌方,刘民,熊海斌.超声波测距传感器的研制[M.湖北工学院学报.2004
[6].谭洪涛,张学平.单片机设计测距仪原理及其简单应用[J].现代电子技
.2004
[7].苏炜,龚壁建,潘笑.超声波测距误差分析[J].传感器技术.2004
[8].罗忠辉,黄世庆.提高超声测距精度的方法[J].机械设计与制造.2005
[9].秦旭.LM92温度传感器补偿的高精度超声波测距仪[J].电子产品世
.2003




谢辞

首先感谢汪老师,在汪老师的耐心指导、帮助下,我才能顺利完成课程设计。

从电路的设计到调试整个过程中,我都从老师那里学会了很多专业方面的知识。

其次在整个设计过程中,虽然遇到了许多的困难,但是却让自己对单片机知

识和各元器件功能原理有了更深的了解,加深了自己对专业知识的理解。课程设

计对加强个人动手能力有很大的帮助,提升了个人思考能力。

在本次设计过程中,汪老师对该论文从选题,构思到最后定稿的各个环节给

予细心指引与教导,使我得以最终完成设计。

在学习中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益

求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,老师的高深精湛

的造诣与严谨求实的治学精神,将永远激励着我。这几年中还得到众多老师的关

感谢在课程设计中帮助过我的所有同学们,没有他们的支持和帮助,我的设
心支持和帮助。在此,谨向老师们致以衷心的感谢和崇高的敬意!



附录Ⅰ

C语言源程序
#include<reg51.h>
#defineuchar unsigned char
#defineulong unsigned long
#defineuint unsigned int
sbitP36=P3^6;
sbitP32=P3^2;
uchar
datatab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; bitagain;

void main() void delays () { } // 延时程序
{

TMOD=0x01; //T0 计数,方式1

TH0=0; //计数初值
TL0=0;
IT0=1; //INT0 负脉冲触发
EA=1; //开总中断
EX0=1; //开外部INT0中断
again=1;
while(1)
{

while (again==1)
{
P36=0;




TR0=1; //T0 开始计数
for(a=0;a<200;a++) //产生10040KHz的方波
{
P36=!P36;
delays() ;
}
again=0;
}
}
}
void intersvro(void) interrupt 0 using 1 //INTO 中断服务程序{
uint bwei,shwei,gwei;

uchar DH,DL;
ulong COUNT;



DL=TL0;
COUNT=TH0*256+TL0;
num= (344*COUNT)/20000;
bwei=num/100; //取百位
gwei=(num-bwei*100)/10; //取十位
shwei=num%10; //取个位
P1=tab[bwei]; //输出百位
P0=tab[shwei]; //输出十位
P2=tab[gwei]; //输出个位

TH0=0;
TL0=0;




}






附录Ⅱ

LS1

LS2

SPEAK ER

SPEAK ER

C6

U 4

U 1

U 5

U 2

U 6

U 3

V CC

R3

C1

R2
10K

C7

D 1

D IO DE

1nF

100U F

N OT

N OT

N OT

10K

R4

1nF

D 2

10K

D IO DE

N OT

N OT

N OT

C5

1nF

U3

V CC

C3

R1

C1

19

U 0

P0.0/AD 0

39

1

D S1

LM741

R6

R5

C8

a
b

D PY

a

22pF

X TA L1

38

2

10K

P0.1/AD 1

P0.2/AD 2

37

3

c

f

g

b

Y 1

P0.3/AD 3

36

4

d

P0.4/AD 4

35

5

e
f
g

e

d

c

10K

CRY STAL

34

6

C2

18

X TA L2

P0.5/AD 5

33

7

[LEDgn]

1nF

P0.6/AD 6

32

10K

P0.7/AD 7

D PY_7-SEG

22uF

22pF

9

RST

P2.0/A8

21

1

a
b

D PY

a

22

2

P2.1/A9

29

PSEN

P2.2/A10

23

3

c

f

g

b

P2.3/A11

24

4

d

30

A LE

P2.4/A12

25

5

e
f
g

e

d

c

31

26

6

EA

P2.5/A13

27

7

[LEDgn]

P2.6/A14

28

P2.7/A15

D PY_7-SEG

1

P1.0/T2

P3.0/RX D

10

1

a
b

D PY

a

11

2

P3.1/TX D

2

P1.1/T2EX

P3.2/IN T0

12

3

c

f

g

b

3

P1.3

P3.3/IN T1

13

4

d

4

P1.4

P3.4/T0

14

5

e
f
g

e

d

c

5

15

6

P1.5

P3.5/T1

6

16

7

[LEDgn]

P1.6

P3.6/WR

7

P1.7

P3.7/RD

17

D PY_7-SEG

C51





Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务