基于STC51单片机超声波测距系统-程序设计-proteus仿真设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机控制的超声波液位测量系统
摘要:随着社会的发展,超声波的应用越来越广泛,如:倒车测距、机器人判向、气象水位的测量、大型油罐液位的测量等。

而随着智能仪器概念的提出,在电子和微控制芯片发展的基础上,超声波测液位也发生了日新月异的变化。

本文是在熟悉了单片机、超声波、12864液晶屏和DS18B20等性能后,以AT89S52单片机为核心,利用T/R40-16超声波对液位进行自动检测;温度传感器DS18B20对环境温度实时监测;LCD12864液晶屏实时显示测量数据;方便了操作人员对系统检测结果的监控。

系统硬件电路设计主要包含:超声波发射电路、接收电路、显示报警电路、温度补偿电路和相应的按键控制电路。

超声波发射电路由单片机发出的脉冲信号,经过信号整形后,传到超声波换能器(中心频率为40kHz)。

将电能转换为机械能,以满足超声波传感器的驱动要求。

超声波接收电路采用红外接收电路常用的CX20106芯片,简化了电路,并具有较强的抗干扰性。

接收电路将回波信号转换成单片机的中断信号。

AT89S52单片机是其核心部分,主要任务是,发出脉冲串用来驱动超声波发射换能器发出超声波,通过定时器T0对超声波传输时间进行计时,利用DS18B20进行温度的测量,根据测出的时间、温度和有关参数计算出距离。

系统软件设计主要利用KeiluVision3进行编程,为了使整个程序的层次和结构比较清晰,采用了单片机C语言模块化的设计思想。

这样的方法有利于程序的调试和修改。

软件模块主要分为LCD12864显示模块、按键设置模块、温度传感器DS18B20的温度补偿模块、报警与数据处理模块等。

对系统进行测试和记录结果表明,该系统能较为准确测量液位。

关键词:超声波液位测量自动控制AT89S52单片机DS18B20
(三)超声波测距理论分析
超声波测距主要是利用超声波的方向性好,能够定向传播,遇到障碍物时能够反射的特性。

并且超声波在同一介质中传播的速度是一样的(温度不变的情况下)。

利用超声波的反射、折射和衰减等特性,超声波测量方法有很多,如:脉冲回波法、共振法、对射法、频差法以及声衰减法等,其中应用最广泛的是超声波脉冲回波法。

它的基本工作原理是:发射头由脉冲信号激励发出超声波,通过传声媒介传到被测液面,形成反射波,反射波再通过传声介质返回到接收头,传感器把声信号转换成电信号,由单片机程序计算出超声波从发射到接收所传播的时间,再根据超声波在介质中传播的速度,就可以用公式(1-1)算出距离。

图2.3.1和图2.3.2分别是测物距和测液位图。

图2.3.1 超声波测物距图
由如图2.3.2可知道,实际过程中超声波直线发射出去,但并不是直线接收到的。

发射与接收过程中存在一个角度。

所以利用公式(1-1)算出来的值与实际值是存在一定的误差的。

如果想让公式(1-1)更接近实际值,可以采用自发自收式超声波传感器,但是本文采用的是压电陶瓷传感器,而压电陶瓷传感器的余震较为严重,单发单收的探头检测死区较大。

为避免这一点,本系统采用双探头的设计,即利用两个超声波传感器:一个用来接收,一个用来发射。

传播介质为气体。

图2.3.2 超声波测液位图
本文虽然利用发射与接收传感器进行设计,但是从发射出超声波到接收到超声波的时间计算也是一个问题。

如果利用外部计时器计时,那么计时时间不够准确,为了提高计时时间的准确度,所以本系统利用单片机内部定时器与外部中断的综合运用,在开始发送超声波的同时开启定时器计时,先连续发送一串超声波,然后等待接收到超声波的中断信号,接收到就停止计时,再根据公式(1-1)进行计算。

三、系统硬件设计
(一)系统硬件设计思路
按设计要求,根据超声波测距原理,以单片机AT89S52为核心的测液位系统。

系统各部分电路功能设计如下:
1.按键设置超限报警值;
2.单片机发出40KHz方波驱动超声波发射头发射超声波;
3.定时器T0进行计时发射——接收的时间;
4.外部INT1作为接收到中断信号输入端;
5.DS18B20测出环境温度进行温度补偿;
6.LCD12864液晶屏显示数据;
7.蜂鸣器进行超限报警;
8.红、黄和绿灯作为工作情况的指示灯。

(二)AT89S52单片机最小系统
图3.2.1是单片机的最小系统图,它分别由复位电路、时钟电路和按键电路组成。

每部分电路功能如下:
1.复位电路
本系统复位电路利用手动复位和上电复位组合构成,上电时加电瞬间,电容C6通过电阻R6充电,RST端得到正脉冲,用以复位。

同时当单片机进入运行状态,如果出现错误,此时就可以通过按键进行复位。

2.时钟电路
本系统采用12M晶振加于单片机AT89S52的XTAL1(19脚)和XTAL2(18脚)并通过30pF的电容接地为单片机提供工作时钟。

3.按键电路
本系统利用了P1口低4位作为按键接口,以低电平有效。

通过这四个按键进行对报警上限值设置。

P1.0(s2)功能设置键,P1.1(s3)数值加键,P1.2(s4)数值减键,P1.3(s5)确定键。

图3.2.1 AT89S52单片机最小系统
(三)超声波发射电路
单片机发出的脉冲信号,经过信号整形后,传到超声波换能器(中心频率为40KHz),将电能转换为机械能。

图3.3.1为超声波发射电路,由图可知信号由单片机的P3.6口发出,为方波信号,先由74HC04(六反向器)进行波形的整形,再经过两个1K的上拉电阻传到超声波换能器(中心频率为40KHz),经上拉电阻之后就加强了驱动
能力,最后通过超声波发射头将电能转换为机械能发射出去。

图3.3.1 超声波发射电路
(四)超声波接收电路
图3.4.1是超声波接收电路,由于超声波发射后,在传播过程中存在衰减,且超声波频率越高,衰减的越快,但频率高有利于提高超声波的指向性。

超声波在传播过程幅值衰减很大,收到的回波频率可能十分微弱,要准确判断接收到第一个回波的时间,必须对收到的信号进行足够的放大,否则不能准确的判断回波时间,会对超声波测量精度产生影响。

为了克服以上问题,本系统利用红外转换接收的电路集成芯片CX20106。

这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。

由于这款芯片的载波频率为38KHz与超声波频率40KHz较为接近,所以利用CX20106作为超声波接收的检波电路。

这样设计即简化了电路又使系统具有很高的灵敏度和较强的抗干扰能力。

接收端接收到超声波时将在CX20106芯片的7脚产生一个低电平,而7脚又接到单片机的P3.3口(INT1中断口),这样就可以准确的判断接收到超声波了。

图3.4.1 超声波接收电路
(五)温度检测电路
设计中温度检测采用DS18B20传感器。

DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,可直接将温度转化成串行数字信号供处理器处理。

图3.5.1是温度传感器DS18B20外观和引脚图,可以看出它的外形与三极管一样。

只有三根引脚,分别是1脚(GND)、2脚(数据线)和3脚(VCC)。

图3.5.1 DS18B20外观和引脚图
图3.5.2是DS18B20与AT89S52单片机的接线图,从图中可以看出,DS18B20和单片机的连接非常简单,单片机只须一个I/O口就可以控制DS18B20。

信号线与单片机的P2.6口连接在一起,DS18B20就是实时检测环境温度并且通过单片机的P2.6口把温度值送到单片机中,再进行温度对超声波影响(公式(1-2))计算,达到温度补偿的功能。

这样能使程序计算出的距离值与实际值更加的相近。

图3.5.2 DS18B20与单片机接线图
(六)显示电路
为了显示液位的实际高度、显示报警值和显示环境温度值,所以本系统采用LCD12864作为显示器。

图3.6.1是LCD12864显示电路,本系统是采用LCD12864的串行控制方式,LCD 的第1脚(GND)接电源地;第2脚(VCC)接电源正;第3脚(VO)是液晶显示对比度调
节端;第4脚(CS)串行控制方式片选接于单片机的P2.0口;第5脚(SID)串行控制方式的数据口接于单片的P2.1口;第6脚(SCLK)串行控制方式的同步时钟信号与单片机的P2.2口相连;D0~D7是数据口;第15脚(PSB)并/串选择:H并行L串行;第17脚(RST)复位,低电平有效;第19(BLA)和第20脚(BLK)是背光电源正极与负极。

图3.6.1 LCD12864显示电路
1.LCD12864外形尺寸
外观尺寸:93×70×12.5mm 视域尺寸:73×39mm
图3.6.2 LCD外形尺寸图
2.LCD12864指令说明
下表是12864液晶指令说明。

表3.6.1 12864液晶指令表
3.LCD12864串行读/写操作时序
图3.6.3是本系统控制12864液晶屏显示的串行读/写操作时序图,CS 与单片机的P2.0口相连;SCLK 与单片机的P2.2口相连;SID 与单片机的P2.1口相连。

时序图表明要进行串行读/写操作就必须使CS 为高电平,当CS 为高电平同时SCLK 要提供时钟,此时SID 先用命令控制字进行控制是(11111000)写指令、(11111010)写数据、(11111100)读状态还是(11111110)读数据,当第一字节命令控制发送完,接着第二字节发送数据或指令高4位,低位置0,最后发送数据或指令低4位,低位置0。

11111R/W D/I 0123456789101112131415161718192021222324
D7D6D5D40000D3D2D1D00000
命令控制字:
11111000-写指令
11111100-读状态数据或指令高4位低位置0数据或指令低4位低位置0第二字节第一字节第三字节CS
SCLK
SID
图3.6.3 12864液晶串行读/写操作时序图
(七)在线下载程序电路
图3.7.1是ISP 在线下载程序电路,图中的电路接法对照表3.7.1,MOSI
与单片机P1.5连接,MISO 与单片机P1.6连接,SCK 与单片机P1.7连接,RST 与单片机的第9脚(RST)连接,第2,第4脚分别连+5V 与地。

由于下载电路中的第2,第4脚已经提供了+5V 电源,为此电路板可以不用电源。

图3.7.1 ISP 在线下载程序电路
表3.7.1 AT89S52单片机P1口的第二功
(八)声光报警电路
图3.8.1是声光报警电路图,本系统采用电磁式蜂鸣器和LED作为超限报警提示。

通过单片机AT89S52的P2.7口连接一个1K电阻再接至PNP型三极管的基极来驱动蜂鸣器。

当P2.7口输出一定频率的脉冲信号时,三极管在导通与截止两种状态之间转换,这样就会产生一定频率的变化电平使蜂鸣器发出报警声。

LED接法是:电源+5V 经一个1K的限流电阻接上灯的正极,负极接在单片机的P2.3口、P2.4口和P2.5口。

当蜂鸣器发出报警的同时,P2.3口、P2.4口或P2.5口根据超限情况,让某一颜色的灯按一定的频率闪烁(红灯:超过上限值;黄灯:超过下限值;绿灯:正常)。

图3.8.1 声光报警电路图
四、系统硬件制作
(一)硬件原理图绘制
图4.1.1是超声波液位测量系统图,此图是根据系统硬件设计思路,把AT89S52单片机最小系统电路、超声波发射电路、超声波接收电路、显示电路、在线下载程序电路和声光报警电路进行整合。

图中大部分线是直接连接的,但部分线采用了标号法连接。

图4.1.1 超声波液位测量系统图。

相关文档
最新文档