当前位置:文档之家› 基于51超声波测距系统设计

基于51超声波测距系统设计

基于51超声波测距系统设计
基于51超声波测距系统设计

基于51超声波测距系统设计

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

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

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

关键词:AT89S51 超声波测距

Design for The ultrasonic ranging system Abstract:Is the frequency at 20kHz ultrasonic sound waves above , it is a mechanical wave . Also follow the general mechanical ultrasonic wave propagation in elastic media , such as reflection and refraction at the interface media into the media after the decay occurs , such as dielectric absorption . It is because of these properties , so that ultrasound can be used to measure the distance .

With increasing levels of technology , ultrasonic ranging technology is widely used among people's daily work and of the system consists of two parts , namely hardware and software programs. The hardware circuit includes a transmitter circuit, a receiver circuit, the microcontroller circuit, a power supply circuit and a display circuit , in addition to the LCD control circuit and a reset circuit. I used to AT89S51 core, low-cost, high-precision, miniaturized ultrasonic rangefinder digital display hardware circuits. The entire circuit is modular in design , the signal transmission and reception , power , temperature measurement and display module. Signal amplification and detection probe launch after launch out MCU timer is started , the original way back after the ultrasound was launched , after amplification bandpass filtering plastic and other sectors, then the microcontroller receives the counter to stop working and get the time . After the temperature measurement to the microcontroller, thespeed through the process of correcting a combination of both to achieve Ultrasonic Ranging function. Software program from the main program , launch subroutine

receives subroutine ,preset routines, subroutines and other display modules . It controls the microcontroller for datatransmission and reception , at a certain temperature correction of ultrasonic velocity , as well as data on the LCD display correctly . Another procedure controls the microcontroller to eliminate the influence of the probe for transmitting and receiving ultrasonic waves Accompanied by the releva nt part of the hardware schematics, program flow .

The actual environment of great influence on the ultrasonic wave , such as an external electromagnetic interference power interference channel interference , etc., the temperature of the air is also

a great influence on the speed of the ultrasonic wave . Besides measuring the power supply also make great error of poor students . Redesign process to consider these factors , and gives some solutions.

Keywords:AT89S51 Ultrasonic wave Ranging

目录

言 ...................................... . ........ .......................

.1

前言 (5)

1超声波测距系统介绍 (6)

超声波测距系统的研究内容 (6)

超声波测距原理与方法 (8)

超声波简介 (8)

超声波的物理性质 (8)

超声波对声场产生的作用 (8)

超声波传感器介绍 (9)

1.5超声波的测距原理及结构 (10)

超声波传感器选择 (11)

超声波测距的原理 (12)

发射脉冲波形 (13)

本章小结 (14)

2 系统硬件设计 (14)

发射电路设计 (15)

发射电路设计方案 (15)

发射电路方案 (16)

超声波发射器的注意事项 (17)

接收电路设计 (18)

单片机显示电路设计 (19)

3 软件设计与测量结果分析 (21)

系统软件设计 (21)

4 结束语 (23)

5 致谢 (23)

附录 (24)

基于51超声波测距系统设计

前言

近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。超声波指的是20kHz以上的声波。超声波同样遵循一般机械波在介质中的传播规律,比如在介质的分界面处发生折射及反射现象,进入介质后而被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。

由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,

较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)

、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。

国外超声波测距仪技术领先,产品齐全,性能比较稳定,市场需求量大,测量精度高,测量误差小。

1超声波测距系统介绍

超声波测距系统的研究内容

本系统硬件部分由AT89C51控制器、超声波发射电路及接收电路、温度测量电路DS18B2和LCD显示电路组成。并采用LCD显示环境温度,当移动被测物体时,发射和接收电路工作,经过AT89C51数据处理将距离也显示到LCD 上。超声波测距器的系统框图如图所示。

图系统设计总框图

由单片机AT89C51编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。超声波经障碍物反射回来,超声波接收头接收此信号,然后通过接收电路的处理,指定接收口就变为低电平,读取单片机中定时器的值。

由图时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,

同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。

图时序图

超声波测距原理与方法

超声波简介

超声波技术是一门以物理、电子、机械、以及材料科学为基础的、各行各业都可使用的通用技术之一。超声波技术是通过超声波的产生、传播以及接收的物理过程完成的。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。因此,我国对超声波的研究特别活跃。

超声波的三种形式

超声波在介质中可以产生三种形式的振荡波:横波,质点振动方向垂直于传播方向的波;纵波,质点振动方向、波的传播方向一致;表面波,质点振动介于纵波、横波之间。横波只能传播在固体里,纵波能在气体、液体和固体中传播,表面波随深度的增加而衰减更快。一般采用纵波形式的超声波来测量各种状态下的物理量。

超声波的物理性质

★超声波的反射和折射:当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;另一部分透射过界面,在相邻介

质内部继续传播。这样的两种情况称之为超声波的反射和折射。

★超声波的衰减:超声波在一种介质中传播,其声压和声强按指数函数规律衰减。

★超声波:如果在一种介质中传播几个声波,于是产生波的干涉现象。

由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。

超声波对声场产生的作用

★机械作用:超声波传播过程中,一般会引起介质质点交替的伸张与压缩,造成了压力的变化,引起机械效应。超声波引起质点的运动,尽

管位移和速度不大,但是与超声波振动的频率的平方成正比的质点的

加速度却很大,有时足以破坏介质。

★空化作用:流体动力学指出,在声场作用下振动的液体中的微气泡在达到一定声压值的时候,气泡会迅速膨胀,之后就突然闭合,而在气泡

闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程就叫

做为空化。

★热学作用:如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介

质相互摩擦产生热热量,这种能量使介质温度升高。

超声波传感器介绍

总体上讲,超声波发生器可以分为两大类:一类是利用机械方式产生出超声波,一类是利用电气方式产生出超声波。机械方式有液哨、气流旋笛和加尔统笛等;电气方式则包括电动型、磁致伸缩型和压电型等。他们产生出的超声波频率、功率和声波特性都各自不相同,因此用途也不尽相同,压电式超声波发生器是目前比较常用的发生器。

实际上是利用压电晶体的谐振来工作的。它有两个压电晶片、一个共振板。当压电式超声波发生器的两极外加脉冲信号,频率等于压电晶片的固有振荡频率的时候,压电晶片将会发生共振,并带动共振板振动产生超声波。相反,未在两极间加电压时,当共振板接收到超声波时,将压迫压电晶片作振动来转换为电信号,这时它就成为超声波接收器了。超声波传感器结构如图和图所示:

图传感器的外部结构图传感器的内部结构

1.5超声波的测距原理及结构

在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式对超声波传播速度加以修正,以减小误差。

=

3314+

T

.0

V607

式中,V为超声波在介质中的传播速度单位为m/s,T为实际温度单位为℃。

超声波指向性强,在介质中传播的距离较远,为直线传播方式,频率越高,绕射能力越弱,但反射能力越强,因此,利用超声波的这种性质就可制成超声波传感器。目前常用的超声传感器有两大类,即流体动力型与电声型。

流体动力型中包括有气体、液体两种类型的哨笛。电声型主要有压电传感器、静电传感器和磁致伸缩传感器。

压电传感器的探头由楔块、压电晶片和接头等组成。压电材料可分为压电陶瓷和晶体两类。属于压电陶瓷的有锆钛酸铅,钦酸钡等,属于晶体的如石英,铌酸锂等,其具有下列的特性:把这种材料置于电场之中,它就产生一定的变化;相反,如果对它施以外力,由于产生了应变就会在其内部产生一定方向的电场。

超声波传感器通常由双压电陶瓷片制成的。这种超声波传感器需要较少的压电材料,价格低廉,非常适合于气体和液体介质。当压电陶瓷改变交流电压的大小和方向,根据压电效应,压电陶瓷片将产生机械变形,机械变形

是与在一定范围内所施加的电压大小和方向成比例的。即在压电陶瓷晶片上加有频率为交流电压,它就会产生相同频率的机械振动,以促进这种介质,例如空气,可发射超声波。如果在压电陶瓷片上,这将使得机械变形时,压电陶瓷片的机械变形,产生与机械超声波相同频率的电信号。

图双压电晶片示意图

双压电晶片的等效电路如图所示, R是电损耗,C0为静电电容,R是损耗串联电阻,联电阻Cm、Lm是机械共振回路的电容和电感。压电陶瓷晶片有一个固定的谐振频率?0,发射超声波时,加在它两端的交变电压的频率必须和它的固有谐振频率保持一致。在这种情况下,超声波传感器具有很高的灵敏度。当改变压电材料常数和改变压电陶瓷片,由超声波换能器的频率特性很容易改变使用的固有谐振频率的几何形状

超声波传感器选择

在超声波测量系统中,频率取得太高,在传播的过程中衰减较大,检测距离越短,分辨力也变高;频率取得太低,外界的杂音干扰会相应的变多。文中所采用的探头是40KHz的收发分体式超声传感器,由发射传感器UCM-T40KI 和接收传感器UCM-R4OKI组成,其特性参数如表所示。

表传感器特性参数表

型号UCM-T40K1 UCM-R40KQ

结构开放式开放式

使用方式发射接收

中心频率40±1KHz 38±1KHz

频带宽2±2±

灵敏度110dBV/ubar -65dBV/ubar

声压115dBmin(0Db= -70dBmin(0Db=1V/ubar)

指向角75°80°

容量2500±25%pF 2500±25%pF

超声波测距的原理

超声波测距方法主要有三种:

1)相位检测法:精度高,但检测范围有限;

2)声波幅值检测法:易受反射波的影响;

3)渡越时间法:工作方式简单,直观,在硬件控制和软件设计上都容易实现,其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。综合以上分析,本设计将采用渡越时间法。

图测距原理

由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速就增加米/秒。表列出了几种温度下的声速:

温度(摄氏度) -30 -20 -10 0 10 20 30 100

声速(米/秒) 311 319 325 331 337 343 349 389

在使用时,假设温度变化不是大的话,则可以当做声速c 不变,计算的

时候取c 的大小为340m/s 。只是测距精度要求很高的时候,就可以在硬件电路基本上保持不变的情况下通过软件来加以校正以及改变硬件电路增加温度补偿电路的方法。

在本系统中利用AT89S52中的定时器测量超声波传播时间,利用DS18B20

测量环境温度,从而提高测距精度。空气中声速与温度的关系可表示为:

)/(604.33116

.27316.27345.331s m T T C ,+≈+≈ () 声速确定后,只要测得超声波往返的时间,即可求得距离:L=1/2+t (系

统中应用该式进行温度补偿)。

发射脉冲波形

超声测距常用的发射脉冲波形如图所示有衰减振荡脉冲、单个尖脉冲、宽等幅波列脉冲和窄等幅波列脉冲。

单个尖脉冲 衰减振荡脉冲

窄等幅波脉冲宽等幅波脉冲

图超声波测距常用发射脉冲波形

本章小结

本章介绍了超声波的形成、超声波在传播过程中的反射折射规律以及如何衰减;通过详细分析超声传感器的内部结构以及影响超声传感器的几个重要参数给出本系统设计中所用超声传感器的特性参数;析了超声波测距的基本原理,并在此基础上给出了测距的几种常用方法以及传感器指向角、环境温度、工作频率、发射脉冲波形。

2 系统硬件设计

系统硬件主要由单片机系统及显示电路、超声波发射电路、超声波检测接收电路和温度补偿电路四部分组成。随着超声波测量技术的不断提高,用超声波测量任何目标物体,都存在着超声波的发射和接收问题。不论超声波传感器的大小、形状、灵敏度有何不同,其工作原理都是一样的(都是利用压电晶体将电能转换为机械振动弹性能,即在媒质中产生超声波),要提高超声测量的精度或分辨力,必须从超声波的发射和接收两方面入手,这也是设计超声测量仪器的关键和难点所在。

发射电路采用单片机端口编程输出大概40KHz的方波脉冲信号,同时开启内部计数器T0单片机端口输出功率比较弱,所以加大加功率放大电路使测量距离能够满足要求,驱动超声传感器UCM-40T发射超声波距离足够远。

由于从接收传感器探头UCM40T传来的超声波回波很微弱,只有几十个mV 级,同时又有着较强的噪声,所以必须考虑放大信号和抑制噪声。这里使用CX20106A集成电路对接收探头接收滤波,信号经过端口送入单片机中进行处理。为节省硬件考虑,显示电路采用动态扫描显示。通过单片机编程将内部计数得到的时间数据,转换为距离信息,通过三位LED数码管显示。

发射电路设计

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

图超声波发射电路

发射电路设计方案

一、发射电路输出波形分析

1,发射波形电压及功率

传感器的发射电压大小一般是由发射信号损失及接收机的灵敏度决定;

考虑实际发射传感器最大输入电压为20V,而单片机输出的最大正常工作电压为5V,功率传感器传输的信号直接决定超声波距离传感器信号的发射,所以在相同的时间内电压应考虑如何增加他们的功率,以使发射电路是比较合理的。

2.发射波形的重复性

各个振动的发射波应是以大致相同的频率,这样,接收的带通滤波器可用于消除干扰和接收相同的振动波峰,以避免由于反射面和干涉障碍物造成的各种损失。为了获得高的分辨率,超声发射器的电路设计应确保良好的发射波形的重复性。

为了保证发射波功率和波形的重复性,发射电路的设计必须合理。一般发射电路通常按发射方式分为:单脉冲发射、多脉冲发射和连续发射。测距所用超声波一般都是间断单脉冲发射,每测距一次,发送、接收一次。间断地激发换能器晶片振动。

发射电路方案

从上面的分析可以知道,发射电路设计的主要目的是提供输入到发射探头电压和功率。本系统单片机的发出了一组方波脉冲信号,输出波形稳定可靠,但由于输出电流和输出功率非常低,所以还不足以推动发射传感器发射足够的超声波信号,所以在这里加入了一个单电源乙类互补对称功率放大电路,如图所示。

图超声波发射电路

超声波发射器的注意事项

超声波发射器向某一方向发射超声波,在发射超声波的同时开始计时,

超声波在空气中传播,途中碰到障碍物反射后立即返回来,超声波接收器收到反射波后就会立即停止计时。超声波在空气中的传播速度约为340m/s ,根据计时器记录的时间t ,就可以计算出超声波发射点距障碍物的距离(s),即为:s=340t/2,这就是所谓的时间差测距法。

存在4个因素限制了该系统的最大可测距离:超声波的幅度、反射的质

地、反射回波和入射声波之间的夹角以及接收换能器的灵敏度。

误差一般由以下几个方面引起的:

● 探测目标的入射角α会受超声波波束影响;

● 待测距离的远近关系着超声波回波声强,就会导致实际测量时不一定

是第一个回波的过零点触发;

● 传播速度的影响。超声波传播速度的稳定与准确度是保证测量精度的

必要条件,而超声波的传播速度又受传播媒质特性的影响。传播媒质

的压力、温度、密度都将对声速产生直接的影响,因此需对声速加以

修正。

● 由于超声波利用接收发射波来进行距离的计算,因而不可避免地存在

发射和反射之间的夹角,其大小为2α,当α很小的时候,可直接

按式S=2SCt/V 进行距离的计算;当夹角很大的时候,必须进行距离

的修正,修正的公式为: 2

cos t c S ??=α () 实际的调试过程中,要十分注意发射和接收探头在电路板上的安装位置,这是因为每一种超声波发射、接收头都有一个有效测量夹角,这里用到的发射、接收头有效测量夹角为45°。

接收换能器对超声波脉冲的直接接收能力将决定该系统最小的可测距

离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射接收的设计方法。

接收电路设计

接收部分主要由接收换能器和放大电路组成。里面的放大电路是一个三级运算放大器A1,功能是将从目标处反射回来的微弱信号进行放大整形后送入计数控制电路部分。由于在距离较远的情况下,回波信号很小,转换为电信号的幅度也较小,此要求将信号放大60万倍左右。采用三级放大:前两级放大100倍,用高精密放大器LM318,带宽为15MHz,充分满足要求;第三级采用LF353运算放大器,宽为4MHz。放大后的交流信号经光电隔离送入比较器,比较器的作用是将交流信号整形为一个方波信号,输出信号送入555单稳态触发器。

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

图前置放大电路图

电路如图所示,超声波换能器的输出电阻比较大,因此要有足够大的前置放大器的输入阻抗(Input Impedance);换能器的输出电压的前置放大电路是由一个高输入阻抗及高精度放大器TL082和电阻Rp,R2和R3组成的反向放

大电路,从而可降低在地上的噪声。

由电路可列出:

2

0R U U I f -=- 2R U U I i i --=

理想化放大器后;

1.可以认为集成运放的两个输入端之间净输入的电压U 为零,0≈-=+-U U U ,若把它理想化,则有U=0,但不是短路,所以叫它为虚短。

2.可以认为集成运放的两输入端没有电流通过,则净输入电流I=0,但不是断开,所以叫它为虚断。

故可知本电路中:U +=0,U -=U +=0所以有

i U R R U 2

30-= () 上式表明,输出电压与输入电压成比例运算关系,式中的负号表示

U 与

iU 反相。电路的电压放大倍数为:

230R R U U A i uf -== 根据本设计需要,接收传感器输出电压很小(数十毫伏),故分别取2R =1K ?;3R =200K ?;p R =1K ?,即放大电路将输入信号放大200倍。

单片机显示电路设计

在单片机应用系统中,发光二极管LED 显示器常用两种驱动方式:静态显示驱动和动态显示驱动。所谓静态显示驱动,就是给要点亮的LED 通以恒定

的电流即每一位LED显示器各引脚都要占用单独的具有锁存功能的I/O接口。单片机只需要把要显示的字形段码发送到接口电路并保持不变即可,如果要显示新的数据,再发送新的字形段码。因此,使用这种方法单片机中CPU开销小,但这种驱动方法需要寄存器、译码器等硬件设备。当需要显示的位数增加时,所需的器件和连线也相应增加,成本也增加。而所谓动态显示驱动就是给欲点亮的LED通以脉冲电流,即采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮,这时LED的亮度就是通断的平均亮度。考虑各种因素,本设计选用动态驱动显示,其仿真电路如图所示。

图显示部分电路图

但是声音的速度在不同的温度下可能会有所改变,所以采用了温度补偿功能了提高系统的精度。这里采用的主要元器件是Dallas半导体公司生产的单总线数字温度传感器DS18B20,其具有智能化、体积小、精度高、线路简单等特点。将DS18B20数据线与单片机的口相连,就可以实现温度测量,如图所示。

图 DS18B20温度测量电路

超声波测距系统设计

目录 一、课程设计目的 (2) 二、内容及要求 (2) 2.1、设计内容 (2) 2.2、设计要求 (2) 三、超声波传感器的工作原理 (2) 四、系统框图 (3) 五、单元电路设计原理 (3) 5.1、51系列单片机的功能特 (4) 5.2、超声波发射电路 (4) 5.3、超声波检测接收电路 (5) 六、完整的电路图………………………………………………………………… 七、程序流程图 (6) 八、参考文献 (7) 九、设计中的问题及解决方法 (7) 十、总结 (7)

一、课程设计目的 通过《传感器及检测技术》课程设计,掌握传感器及检测系统设计的方法和设计原则及相应的硬件调试的方法。进一步理解传感器及检测系统的设计和应用。 二、内容及要求 超声波测距系统设计 2.1设计内容 采用40KHz的超声波发射和接收传感器测量距离。可采用发射和接收之间的距离,也可将发射和接收平行放在一起,通过反射测量距离。 功能:1)LED数码管显示测量距离,精确到小数点后一位(单位:cm)。 2)测量范围:30cm~200cm。 3)误差<0.5cm。 4)其它。 2.2设计要求 1)掌握传感器的工作原理及相应的辅助电路设计方法。 2)独立设计原理图及相应的硬件电路。 3)设计说明书格式规范,层次合理,重点突出。并附上详细的原理图。 三、超声波传感器的工作原理 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。 目前在近距离测量方面常用的是压电式超声波换能器。根据设计要求并综合各方面因素,本文采用AT89C51单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。 超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。 理论计算 如图1所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回波时间T利用公式(T/2) C S=其中,S为被 * 测距离、V为空气中声速、T为回波时间(T2 =),这样可以求出距离: T1 T+

基于51单片机的超声波测距毕业设计(论文)

一设计题目基于51单片机的超声波测距 二设计者 姓名班级学号组号 三、设计思路及框图、原理图 任务:以单片机为核心,设计并制作一超声波测距系统基本要求: 利用时间差测距,不考虑温度变化 用数码管显示测试结果 工作频率:450kHz 测距范围:0.5~10米 测试精度: 10% 发挥部分尽量增大测控范围,提高测试精度 1.系统的硬件结构设计 1.1. 超声波发生电路 发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的450kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。 1.2超声波检测接收电路 采用集成电路CX20106A为超声波接收芯片。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电

容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。 1.3 显示电路 显示电路主要由74ls273芯片驱动,用PNPC8550三级管进行位选,七段共阳极数码管显示。 2.系统的软件结构设计 设计思路 主程序中包括温度补偿子程序,计算子程序,显示子程序。采用汇编编程。首先进行系统初始化。其次利用循环产生4个40KHZ的方波,由输出口进行输出,并开始计时。第三等待中断,若超声波被接收探头捕捉到,那么通过中断可测得

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

51单片机常用子程序汇总

目录 1、通过串口连续发送n个字节的数据 /*************************************************************** 模块功能:通过串口连续发送n个字节的数据 参数说明: s:待发送数据的首地址 n:要发送数据的字节数 ***************************************************************/ void SendD(unsigned char *s,unsigned char n) { unsigned char unX; if(n>0) { ES=0; // 关闭串口中断 for(unX=0;unX #include #define Nop() _nop_() //空指令

sbit SDA=P1^3; sbit SCL=P1^2; bit ACK; void Start_I2c() { SDA=1; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=0; Nop(); Nop(); Nop(); Nop(); Nop(); SCL=0; //钳住I2C总线,准备发送或接受数据Nop(); Nop(); } (2)结束总线函数 /*************************************************************** 模块功能:发送I2C总线结束条件 ***************************************************************/ void Stop_I2c() { SDA=0; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=1; Nop(); Nop(); Nop(); Nop();

10米超声波测距仪设计实现

10米超声波测距仪设计实现 一、功能要求 设计一个超声波测距仪,可以测量测距仪与被测物体间的距离。要求测量范围0.1~10.00米,测量精度1cm,测量时与被测物体不接触,并将测量结果显示出来。 二、系统硬件电路 1.单片机系统及显示电路 单片机采用89C51或89S51。采用12MHz高精度晶振,以获得较稳定的时钟频率,减小测量误差。单片机用p1.0端口输出超声波换能器所需的40Hz方波信号,利用外中断0口监测超声波接受电路输出的返回信号。显示电路采用简单实用的4位共阳极LED数码管,段码用74LS244驱动,位用PNP8550驱动。 2.超声波发射电路 主要由74LS04和超声波换能器T构成。这种推挽形式的方波信号可以提高发射强度。反相器并联提高驱动能力。上拉电阻R1、R2提高74LS04输出高电平的驱动能力。 3.超声波接收电路 CX20106A是接收38KHz超声波的芯片,可利用它做接收电路。 4.系统程序 超声波测距仪的软件主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。 主程序:

开始 系统初始化 发送超声波脉冲 等待反射超声波 计算距离 显示结果 丢系统初始化,设置T0为方式1,EA=1,P0,P2清0。为避免超声波发射器直接接传送到接收器,需要延时0.1ms。由于时钟的频率是12MHz,计数器每计一个数就是1us。如果按声速344m/s,则d=c*t/2=172T0 cm 超声波发生子程序:通过P1.0端口发送2个左右超声波脉冲信号,脉宽12us,同时T0计数。 超声波测距仪利用中断0检测返回的超声波,一旦接收到返回的信号,立即进入中断。中断后就立即关闭T0停止计时。如果计数器益出则测试不成功。 3方案设计和选择 根据本次设计的要求,方案的选择应力求实用性强,性价比高,使用简单。 3.1 超声波测距的基本原理 谐振频率高于20kHz的声波被称为超声波。超声波

51单片机超声波测距程序

//晶振:11.0592 //TRIG:P1.2 ECH0:P1.1 //波特率:9600 #include #include #include #define uchar unsigned char #define uint unsigned int sbit RX=P0^2; sbit TX=P0^3; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----\n"); } printf("S=%f\n",S); } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i)

{ j=10; while(--j); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超出测距范围{ flag=1; //中断溢出标志 } void StartModule() //T1中断用来扫描数码管和计800ms启动模块{ TX=1; //800MS启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0;

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

51单片机汇编程序范例

16位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。 程序可见: http: 32.html中的HEX2BCD子程序。 .说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广。做而论道曾经利用它的思路,很容易的编写出了48位二进制数变换成16位BCD码的程序。 但是这个程序有个明显的缺点,就是执行时间太长,转换16位二进制数,就必须循环16遍,转换48位二进制数,就必须循环48遍。 上述的HEX2BCD子程序,虽然长度仅仅为26字节,执行时间却要用331个机器周期。.单片机系统多半是用于各种类型的控制场合,很多时候都是需要“争分夺秒”的,在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。 为了提高整机运行的速度,在多年前,做而论道就另外编写了一个转换程序,程序的长度为81字节,执行时间是81个机器周期,(这两个数字怎么这么巧!)执行时间仅仅是经典程序的!.近来,在网上发现了一个链接: ,也对这个经典转换程序进行了改进,话是说了不少,只是没有实质性的东西。这篇文章提到的程序,一直也没有找到,也难辩真假。 这篇文章好像是选自某个著名杂志,但是在术语的使用上,有着明显的漏洞,不像是专业人员的手笔。比如说文中提到的:

“使用51条指令代码,但执行这段程序却要耗费312个指令周期”,就是败笔。51条指令代码,真不知道说的是什么,指令周期是因各种机型和指令而异的,也不能表示确切的时间。 .下面说说做而论道的编程思路。;----------------------------------------------------------------------- ;已知16位二进制整数n以b15~b0表示,取值范围为0~65535。 ;那么可以写成: ; n = [b15 ~ b0] ;把16位数分解成高8位、低8位来写,也是常见的形式: ; n = [b15~b8] * 256 + [b7~b0] ;那么,写成下列形式,也就可以理解了: ; n = [b15~b12] * 4096 + [b11~b0] ;式中高4位[b15~b12]取值范围为0~15,代表了4096的个数; ;上式可以变形为: ; n = [b15~b12] * 4000 + {[b15~b12] * (100 - 4) + [b11~b0]} ;用x代表[b15~b12],有: ; n =x * 4000 + {x * (100 - 4) + [b11~b0]} ;即: ; n =4*x (千位) + x (百位) + [b11~b0] - 4*x ;写到这里,就可以看出一点BCD码变换的意思来了。 ;;上式中后面的位:

高精度超声波测距系统设计

高精度超声波测距系统设计。 引言 利用超声波测量距离的原理可简单描述为:超声波定期发送超声波,遭遇障碍物时发生反射,发射波经由接收器接收并转化为电信号,这样测距技术只要测出发送和接收的时间差, 然后按照下式计算,即可求出距离: 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求, 因此,广泛应用于倒车提醒、建筑工地、工业现场等的距离测量。目前的测距量程上能达到百米数量级,测量的精度往往能达到厘米数量级。本文在分析现有超声波测距技术基础之上, 给出了一种改进方案,测量精度可达毫米级。 2 系统方案分析与论证 2.1 影响精度的因素分析 根据超声波测距式(1)可知测距的误差主要是由超声波的传播速度误差和测量距离传播 的时间误差引起的。 对于时间误差主要由发送计时点和接收计时点准确性确定,为了能够提高计时点选择的准确性,本文提出了对发射信号和加收信号通过校正的方式来实现准确计时。此外,当要求测距误差小于 1 mm时,假定超声波速度C=344 m/s(20℃室温),忽略声速的传播误差。则测距误差s△t<0.000 002 907 s,即2.907 ms。根据以上过计算可知,在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1 mm的误差。使用的12 MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度,因此系统采用AT89S51的定一时器能保证时间误差在 1 mm的测量范围内。

51单片机简易计算器程序

#include <reg51.h>#include <intrins.h> #include <ctype.h> #include <stdlib.h> #define uchar unsigned char #define uint unsigned int uchar operand1[9], operand2[9]; uchar operator; void delay(uint); uchar keyscan(); void disp(void); void buf(uint value); uint compute(uint va1,uint va2,uchar optor); uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xff}; uchar dbuf[8] = {10,10,10,10,10,10,10,10}; void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--); } uchar keyscan() { uchar skey; P1 = 0xfe; while((P1 & 0xf0) != 0xf0) { delay(3); while((P1 & 0xf0) != 0xf0) { switch(P1) { case 0xee: skey = '7'; break; case 0xde: skey = '8'; break; case 0xbe: skey = '9'; break; case 0x7e: skey = '/'; break; default: skey = '#'; }

51单片机实用子程序(汇编)

《MCS-51单片机实用子程序库(96年版)》 周航慈 目前已有若干版本的子程序库公开发表,它们各有特色。笔者在1988年也编制了两个子程序库(定点子程序库和浮点子程序库),并在相容性、透明性、容错性和算法优化方 面作了一些工作。本程序库中的开平方算法为笔者研究的快速逼近算法,它能达到牛顿迭代法同样的精度,而速度加快二十倍左右,超过双字节定点除法的速度。经过八年来全国广大用户的实际使用,反馈了不少信息,陆续扩充了一些新的子程序,纠正了一些隐含错误,成为现在这个最新版本。 本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了重大修订:(1)按当前流行的以 IBM PC 为主机的开发系统对汇编语言的规定,将原子程序库的标号和位地址进行了调整,读者不必再进行修改,便可直接使用。 (2)对浮点运算子程序库进行了进一步的测试和优化,对十进制浮点数和二进制浮点数的相互转换子程序进行了彻底改写,提高了运算精度和可靠性。 (3)新增添了若干个浮点子程序(传送、比较、清零、判零等),使编写数据处理 程序的工作变得更简单直观。 在使用说明中开列了最主要的几项:标号、入口条件、出口信息、影响资源、堆栈 需求,各项目的意义请参阅《单片机应用程序设计技术》第六章 6.3.7 节的内容。程序 清单中开列了四个栏目:标号、指令、操作数、注释。为方便读者理解,注释尽力详细。 子程序库的使用方法如下: 1.将子程序库全部内容链接在应用程序之后,统一编译即可。优点是简单方便,缺点是程序太长,大量无关子程序也包含在其中。 2.仅将子程序库中的有关部分内容链接在应用程序之后,统一编译即可。有些子程序需要调用一些低级子程序,这些低级子程序也应该包含在内。优点是程序紧凑,缺点是需要对子程序库进行仔细删节。 (一)MCS-51定点运算子程序库及其使用说明 定点运算子程序库文件名为DQ51.ASM,为便于使用,先将有关约定说明如下: 1.多字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数据。地址小的单元存放数据的高字节。例如:[R0]=123456H,若(R0)=30H,则(30H)=12H,(31H)=34H,(32H)=56H。 2.运算精度:单次定点运算精度为结果最低位的当量值。 3.工作区:数据工作区固定在PSW、A、B、R2~R7,用户只要不在工作区中存放无 关的或非消耗性的信息,程序就具有较好的透明性。

超声波测距系统设计

(一)题目 超声波测距系统设计 (二)内容及要求 1)设计内容 采用40KHz的超声波发射和接收传感器测量距离。可采用发射和接收之间的距离,也可将发射和接收平行放在一起,通过反射测量距离。 功能:1)LCD液晶显示测量距离,精确到小数点后一位(单位:cm)。 2)测量方式可通过硬件开关预置。 3)测量范围:30cm~200cm, 4)误差<0.5cm。 5)其它。 2)设计要求 1)掌握传感器的工作原理及相应的辅助电路设计方法。 2)独立设计原理图及相应的硬件电路。 3)设计说明书格式规范,层次合理,重点突出。并附上详细的原理图。(三)传感器工作原理 超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离S=Ct/2,式中的C为超声波波速。由于超声波也是一种声波,其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。 (四)系统框图 图1 超声波测距系统框图 (五)单元电路设计原理

1、AT89C2051的功能特点 AT89C2051是一个2k字节可编程EPROM的高性能微控制器。它与工业标准MCS-51的指令和引脚兼容,因而是一种功能强大的微控制器,它对很多嵌入式控制应用提供了一个高度灵活有效的解决方案。AT89C2051有以下特点:2k字节EPROM、128字节RAM、15根I/O线、2 个16位定时/计数器、5个向量二级中断结构、1个全双向的串行口、并且内含精密模拟比较器和片内振荡器,具有4.25V至5.5V的电压工作范围和12MHz/24MHz工作频率,同时还具有加密阵列的二级程序存储器加锁、掉电和时钟电路等。此外,AT89C2051还支持二种软件可选的电源节电方式。空闲时,CPU停止,而让RAM、定时/计数器、串行口和中断系统继续工作。可掉电保存RAM的内容,但可使振荡器停振以禁止芯片所有的其它功能直到下一次硬件复位。 AT89C2051有2个16位计时/计数器寄存器Timer0t Timer1。作为一个定时器,每个机器周期寄存器增加1,这样寄存器即可计数机器周期。因为一个机器周期有12个振荡器周期,所以计数率是振荡器频率的1/12。作为一个计数器,该寄存器在相应的外部输入脚P3.4/T0和P3.5/T1上出现从1至0的变化时增1。由于需要二个机器周期来辨认一次1到0的变化,所以最大的计数率是振荡器频率的1/24,可以对外部的输入端P3.2/INT0和P3.3/INT1编程,便于测量脉冲宽度的门。 图2 ATC2051示意图 2、LCD的工作原理 在两片玻璃基板上装有配向膜,所以液晶会沿着沟槽配向,具有偶极矩的液晶棒状分子在外加电场的作用下其排列状态发生变化,使得通过液晶显示器件的光被调制,从而呈现明与暗或透过与不透过的显示效果。液晶显示器件中的每个显示像素都可以单独被电场控制,不同的显示像素按照控制信号的“指挥”便可以在显示屏上组成不同的字符、数字及图形。因此建立显示所需的电场以及控制显示像素的组合就成为液晶显示驱动器和液晶显示控制器的功能。 LCD器件是由背光源发射的光通过偏振片和液晶盒时,控制投

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统 贾源 完成日期:2011年2月22日

目录 一、设计任务和性能指标 (3) 1.1设计任务 (3) 1.2性能指标 (3) 二、超声波测距原理概述 (4) 2.1超声波传感器 (5) 2.1.1超声波发生器 (5) 2.1.2压电式超声波发生器原理 (5) 2.1.3单片机超声波测距系统构成 (5) 三、设计方案 (6) 3.1AT89C2051单片机 (7) 3.2超声波测距系统构成 (8) 3.2.1超声波测距单片机系统 (9) 图3-1:超声波测距单片机系统 (9) 3.2.2超声波发射、接收电路 (9) 图3-1:超声波测距发送接收单元 (10) 3.2.3显示电路 (10) 四.系统软件设计 (11) 4.1主程序设计 (11) 4.2超声波测距子程序 (12) 4.3超声波测距程序流程图 (13) 4.4超声波测距程子序流程图 (14) 五.调试及性能分析 (14) 5.1调试步骤 (14) 5.2性能分析 (15) 六.心得体会 (15) 参考文献 (16) 附录一超声波测系统原理图 (18) 附录二超声波测系统原理图安装图 (19) 附录三超声波测系统原理图PCB图 (20) 附录四超声波测系统原理图C语言原程序 (21) 参考文献 (26)

一、设计任务和性能指标 1.1设计任务 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个超声波测距仪器,用LED数码管把测距仪距测出的距离显示出来。 要求用Protel 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。 1.2性能指标 距离显示:用三位LED数码管进行显示(单位是CM)。 测距范围:25CM到 250CM之间。误差:1%。

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

超声波测距系统设计

超声波测距系统设计

论文题目:超声波测距系统设计 摘要 超声波具有不受外界光及电磁场等因素的影响的优点,超声波测距作为一种有效的非接触式测距方法已被应用于多个领域。 本设计采用渡越时间法,硬件系统分为发射模块、接收模块、显示模块、中央处理模块四个部分。本设计采用STC89C52单片机作为微型中央处理器并由软件实现40kHz脉冲经放大电路从超声波发射探头T-40发射出超声波,接收探头R-40收到声波后经集成芯片CX20106A放大滤波整形后回送到单片机计算,通过发射与接收的时间差和声速计算出距离。本系统使用四位共阳极LED数码管显示距离,能实时显示即时距离。 经测试,在30cm~200cm范围内,误差能控制在2cm以内。根据实验数据进行了误差分析,并提出了解决方案,最后对超声波测距技术的发展进行了展望。通过系统的调试和测试,本设计基本完成了设计要求。 【关键词】单片机,超声波,测距,渡越时间法; 【论文类型】应用型

Title: The design of ultrasonic distance measurement system Major:Electronic and Information Engineering Name: Zhang Yankun Signature:_______ Supervisor: Zhang Xiaoli Signature:_______ ABSTRACT The advantages of ultrasound without the influence of outside light and electromagnetic fields and other factors , ultrasonic distance measurement as an effective non-contact distance measurement method has been used in many fields. This design uses the transit time method, the hardware system is divided into transmitter module, receiver module and display module, the central processing module. This design uses a microcontroller STC89C52 as micro central processing unit and 40 kHz pulse by the software, The ultrasonic emission from the ultrasonic probe the T-40 via the amplifier circuit. Acoustic

用51单片机实现HC-SR04超声波测距程序

#include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; i=0; flag=0; test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 while(1) //程序循环 { EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //

51单片机浮点运算子程序库

51单片机浮点运算子程序库 时间:2007-11-14 来源: 作者: 点击:4020 字体大小:【大中小】 1: FSDT 功能:浮点数格式化 2: FADD 功能:浮点数加法 3: FSUB 功能:浮点数减法 4: FMUL 功能:浮点数乘法 5: FDIV 功能:浮点数除法 6: FCLR 功能:浮点数清零 7: FZER 功能:浮点数判零 8: FMOV 功能:浮点数传送 9: FPUS 功能:浮点数压栈 10: FPOP 功能:浮点数出栈 11: FCMP 功能:浮点数代数值比较不影响待比较操作数 12: FABS 功能:浮点绝对值函数 13: FSGN 功能:浮点符号函数 14: FINT 功能:浮点取整函数 15: FRCP 功能:浮点倒数函数 16: FSQU 功能:浮点数平方 17: FSQR 功能:浮点数开平方快速逼近算法 18: FPLN 功能:浮点数多项式计算 19: FLOG 功能:以10为底的浮点对数函数 20: FLN 功能:以e为底的浮点对数函数 21: FE10 功能:以10为底的浮点指数函数 22: FEXP 功能:以e为底的浮点指数函数 23: FE2 功能:以2为底的浮点指数函数 24: DTOF 功能:双字节十六进制定点数转换成格式化浮点数 25: FTOD 功能:格式化浮点数转换成双字节定点数 26: BTOF 功能:浮点BCD码转换成格式化浮点数 27: FTOB 功能:格式化浮点数转换成浮点BCD码 28: FCOS 功能:浮点余弦函数 29: FSIN 功能:浮点正弦函数 30: FATN 功能:浮点反正切函数 31: RTOD 功能:浮点弧度数转换成浮点度数 32: DTOR 功能:浮点度数转换成浮点弧度数 为便于读者使用本程序库,先将有关约定说明如下: 1.双字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数据,地址小的单元存放高字节?如果[R0]=1234H,若(R0)=30H,则(30H)=12H,(31H)=34H? 2.二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节纯小数(原码)来表示?当尾数的最高位为1时,便称为规格化浮点数,简称操作数?在程序说明中,也用[R0]或[R1]来表示R0或R1指示的浮点操作数,例如:当[R0]=-6.000时,则二进制浮点数表示为83C000H?若(R0)=30H,则 (30H)=83H,(31H)=0C0H,(32H)=00H? 3.十进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为阶码(二进制补码形式),第二字节为尾数的高字节,第三字节

超声波测距系统的设计【开题报告】

开题报告 电子信息工程 超声波测距系统的设计 一、综述本课题国内外研究动态,说明选题的依据和意义 现在认为,超声波最先是从1876年F.Galton的气哨实验开始,这是人类首次产生高频声波。在以后30年内,人们对超声波仍然了解的比较少,发展较为缓慢,对超声波研究没有非常重视。接着在第一次世界大战中,超声波的研究慢慢的受到各国的重视。这时期法国人Langevin使用了一种晶体传感器,并使其在水下接收一些相对较低频率的超声波,并且提出是否可以使用超声波对水中的潜艇进行检测或者在水下利用超声波进行通信。 在1929年,前苏联科学家Sokolov最先提出了利用超声波探进行检查金属物内部是否存在缺陷的想法。在间隔两年后,德国人Mulhauser获准一项关于超声检测方法的德国专利,但是他却没有在这方面进行深入的探索研究。在1934年Sokolov发表了关于超声波在液体槽子里用穿透法作实物试验的结果,使用了多种方法用来检测穿过试验物品的超声波中含有的能量,在这些方法中最为简单的是使用光学方法观察液体表面由超声波形成的波纹的大小。 之后德国人Bergrnann发布了关于超声波的经典著作《uLTRAsoNIC》,在该著作中对超声波早期的大量资料进行了详细的论述,这本著作也一直被认为是超声波领域中的经典之一。美国的Firestone和英国的Sproulels两人对超声波脉冲回波探伤仪进行了首次介绍,并使超声波检测技术发展到了更为重要的一个阶段。在各种各样的超声波检测系统中,这是最为成功的一种检测系统,因为它具有最广泛的代表性,而且其检测结果也是最容易解释的。这种方法除了可用于手工检测外,还可以和各种先进的系统进行联用。直至当前,在超声无损检测中,脉冲回波系统仍然是应用最为广泛的一种。 在50年代由于雷达的快速发展大大的促进了超声波技术的发展;而后随着电子技术的不断快速发展,又使超声波的发展有了一次快速的飞跃。超声波被广泛的应用于医疗诊断、无损检测及工业控制中。在60年代,随着新材料新技术的应用以及对超声波的深入研究,产生了一些超过 100GHz的超高频超声波,而且这些超高频的超声波开始应用于物理学基础研究、通信和计算机技术等领域当中。 在1992年FigneroaJ.F提出一种新的超声回波计时方法,该方法利用峰值和相位相加得到回波时延冈。利用这种测量方法能够达到18一34米的测量范围,误差精度为2%。在2007年,

基于51单片机超声波测距

一设计要求 (1)设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控; (2)测量范围在0.50~4.00m,测量精度1cm; (3)测量时与被测物无直接接触,能够清晰稳定地显示测量结果。 二超声波测距系统电路总体设计方案 本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、温度测量电路、声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD 上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。超声波测距器的系统框图如下图所示: 图5 系统设计总框图 由单片机AT89S52编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的

时间间隔计算出障碍物的距离,并由单片机控制显示出来。 由时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。 图6 时序图 三超声波发射和接收电路的设计 分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成电路来设计收发电路。 3.1 超声波发射电路 超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路:

相关主题
文本预览
相关文档 最新文档