基于单片机的超声波液位控制器设计

更新时间:2024-03-03 07:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

上海师范大学信机学院毕业设计

基于单片机的超声波液位控制器设计

摘要

课题针对液位检测的实际问题,开发了一种基于单片机的超声波液位检测仪.深入讨论了用超声波作为信号源进行液位检测的可行性及优越性,产生误差的各 种原因,提出了相应的解决办法。

超声波液位检测仪以单片机 AT89C51 单片机最小系统为核心,利用超声波作为检测信号的手段,对液位进行检测和数据处理,减少了测量过程中的人工干预,方便了工作人员对液位检测的实时监控。

该系统硬件电路设计包含了超声波发射电路、接收电路、温度测量电路和液 晶显示电路。软件设计中,采用模块化程序设计思想,将软件主要分为超声波驱 动与数据处理模块、功能模块两大模块。对软件的这种“自顶向下”的模块化软 件编程方法能使软件的结构清晰,有利于软件的调试和修改。

在设计中,由于需要测量的距离范围从几米到十几米,针对超声波振幅在传 播时呈指数衰减的特性,最大限度地提高驱动能力,对回波进行多级放大,达到 了设计要求。由于测量精度要求很高,系统进行了温度补偿设计。实验结果表明

该设计方法可以提高超声波液位检测仪的测量精度并且硬件开销不大。

1

上海师范大学信机学院毕业设计

目 录

第一章 绪论 .............................................1

1.1 课题背景......................................................1 1.1.1 超声波液位仪的研究背景与内容 ............................... 1 1.1.2 超声波液位仪的现状 ......................................... 1 1.2 论文研究内容 ................................................. 2 1.2.1 研究内容 ................................................... 2 1.2.2 论文的章节安排 ............................................. 3

第二章 超声波的液位测量原理 ............................. 5

2.1 超声液位仪理论基础 ........................................... 5 2.1.1 超声波介绍 ................................................. 5 2.1.2 超声波探头的结构和原理 ..................................... 5 2.1.3 T/R40-16 超声波探头 ........................................ 7 2.1.4 传感器的指向角Θ ........................................... 8 2.2 超声波液位仪工作原理 ......................................... 9 2.2.1 超声波液位仪工作原理 ....................................... 9 2.2.2 测量盲区 .................................................. 10 2.3 本章小结 ................................................... 11

第三章 硬件总体设计 .................................... 12

3.1 超声液位仪总体设计 .......................................... 12 3.2 单片机电路 .................................................. 14 3.2.1 复位电路设计 .............................................. 15 3.2.2 电源电路设计 .............................................. 16 3.2.3 时钟振荡器 ................................................ 17 3.3 发射电路 .................................................... 18 3.4 接收电路 .................................................... 19

2

上海师范大学信机学院毕业设计

3.5 液晶显示电路 ................................................ 20 3.6 温度测量电路 ................................................ 21 3.7 串行通信口电路 .............................................. 23 3.8 本章小结 ................................................... 25

第四章 系统软件设计 .................................... 26

4.1 软件总体设计 .............................................. 26 4.1.1 软件设计流程图 ........................................... 26 4.1.2 主程序结构流程图 ......................................... 27 4.1.3 回波接收流程图 ........................................... 29 4.1.4 中断程序流程图 ........................................... 29 4.1.5 串行口通信流程图 ......................................... 30 4.1.6 DS18B20 流程图 ........................................... 31 4.2 软件程序调试 .............................................. 33 4.2.1 复位电路程序调试 ......................................... 33 4.2.2 发送和接收超声波程序调试 ................................. 34 4.2.3 显示程序调试 ............................................. 35 4.2.4 温度传感器程序调试 ....................................... 36 4.2.5 通讯子程序调试 ........................................... 38 4.3 本章小结 ................................................... 39

第五章 液位测量精度的提高和误差分析 .................... 40

5.1 提高液位测量精度的主要方法 ................................. 40 5.1.1 温度测量 ................................................. 40 5.1.2 算术平均滤波 ............................................. 45 5.2 误差分析 ................................................... 47 5.3 本章小结 ................................................... 48

总结.................................................... 49

3

上海师范大学信机学院毕业设计

第一章 绪论

1.1 课题背景

1.1.1 超声波液位仪的研究背景与内容

超声波液位仪作为一种典型的非接触测量仪器,在很多场合有广泛的应用,诸如工业自动控制,建筑工程测量和水面高度测量等方面。与激光测距、微波测 距等测量方法相比,由于超声波在空气中传播速度远远小于光线和无线电波,时 间测量精度的要求也远小于激光测距、微波测距等,因而超声波液位仪电路结构 简单,造价低廉,容易设计,且超声波在传播过程中不易受烟雾、空气能见度等 因素的影响,在各个场合均得到广泛应用。然而超声波液位仪在实际应用中也有 很多局限性会对测量数据的精确度造成一定的影响。诸如,环境温度、风速等, 使其无法达到要求。如何解决这些问题,提高超声波液位仪的精度,具有较大的 现实意义。

目前,市场上的超声波液位仪多数采用单片机作为对液位仪控制和运算的核 心,系统的硬件设计决定着测量结果的精度。本文在对超声波传播特性研究的基 础上,设计了基于单片机的超声波液位仪的硬件系统和软件系统,并对硬件和部 分软件分别进行了相关的调试。硬件设计的总体目标是力求在结构简单、成本合 理的前提下,尽量完善其功能。由于超声波液位仪需要测量十几米距离,因此, 针对超声波在传播时呈指数衰减的特性,我们采用了最大限度提高驱动能力、对 回波进行多级放大等措施,扩大了测量范围。本设计运用单片机系统控制超声波 的发射、接收、温度测量以及其它的各种功能。

在软件设计中,我们采用模块化程序设计思想,将软件主要分为超声波驱动 与数据处理模块。这有利于软件的调试和修改。因为对计算的精度要求较高,所 以本设计采用温度补偿和数字平均滤波的方法提高计算精度。另外,对设计过程 中发现和存在的一些问题〔从软、硬件两方面〕,分析了原因并提出了一些解决 的措施和改进的办法,为研制更加完善的超声波液位仪打下了基础。

1.1.2 超声波液位仪的现状

经过不断的努力和探索,科技工作者己开发出了种类繁多、各具特色的液

4

上海师范大学信机学院毕业设计

位仪。尤其是近二十年来,随着微处理器的引入,测量仪表更是发生了革命性的 变化。液位仪的量程从几米到十几米,测量精度亦大大提高。根据液位测量所涉 及的液体存储容器、被测介质以及工艺过程的不同,选择不同类型的液位仪。在 进行液位测量前,必须充分了解液位测量的工艺特点,以此作为液位仪设计过程 中的参考因素[5]。

目前,进口的智能化超声波液位仪能够对接收信号做精确的处理和分析。可 以将各种干扰信号过滤出来,识别多重回波;分析信号强度和环境温度等有关信 息。这样即便在有外界干扰的情况下,也能够进行精确的测量。超声波液位仪不 仅能定点和连续测量液位,而且能方便地提供遥测所需的信号。同时,超声波液 位仪不存在可动部件,所以在安装和维护上相应比较方便。超声测位技术可适用 于气体、液体或固体等多种测量介质,因而具有较大的适应性。新型气密结构、 耐腐蚀的超声波探头可测量十几米的液位[3]。

1.2 论文研究内容 1.2.1 研究内容

进口的液位仪功能齐全,精度较高,但是价格比较昂贵且维修不是很方便。 对于小型用户来说,不是理想之选。而国内自行研制生产的液位仪价格相对便宜, 但精度不高,功能相对单一。为了设计出价格便宜,精度较高的超声波液位仪, 本设计采用 89C51 为核心的单片机电路,同时使用双探头的方式发射和接收声 波,基于超声波测距的原理,算出液位的高度。由于在户外测距,受到天气的干 扰因素比较多,因此采取温度补偿的方式,来弥补外部因素造成的误差。除此之 外,也可以使用数字平均滤波的方式来提高数据的精确度。因为超声波在空气中 的传播速度大约为 334m/s(常温下),在同一介质中其传播速度相对恒定,与激 光的速度(3×108m/s)相比,它的传播速度要慢得多,所以对超声波信号的处较 为容易。因此,这也体现了超声波测距的独到之处,加之其成本较低,所以超声 波是比较理想的信号源[2]。超声波液位测量方法与其它的液位测量方法相比不 易受光线、被测对象颜色等因素影响,利用这样的特性,一般将仪器放置于黑暗、 有灰尘、烟雾、电磁干扰、有毒等恶劣的环境之中。同时超声波探头具有结构简 单、价格便宜、体积小、信号处理可靠等特点。综合而言,超声波液位仪具有非 接触、精度较高、实时测量、可靠性强等优点,较为适合国内市场。

5

上海师范大学信机学院毕业设计

本篇论文研究的主要内容是基于超声波液位仪的设计和提高精度方面的研 究。为了提高数据的精确度,重点探讨超声波在测量水平面高度时所受到诸如温 度,气候以及超声波强度衰减等因素的影响,以及采取相应的措施来减少误差。 速度的影响:

超声波在工业应用中的频率为 5kHz-5MHz,超声波探头到介质表面距离的计 算公式如下:

D= t×2/C

D:探头到介质表面的距离 t1:声波的传播时间 C:波的传播速率

由此可知,除了声波的传播时间的测量准确性,声波的传播速度起着决定性 的作用,声速的变化取决于传播媒介的不同。在实际应用中,多种因素影响着传 播媒介及声速。为了获得更加准确的测量结果,超声波液位仪可以由所处环境的 不同来设定不同媒介的声速[6]。 温度的影响:

如下表 1.1,温度的变化影响着声速的变化,在正常环境中温度的变化带给 声速的变化为 0.17%℃。在实际应用中,由于探头周围环境,超声波传播媒介的 温度以及被测介质的温度不尽相同。因此,可以使用温度补偿这样的方式来提高 数据的精确度。

1.2.2 论文的章节安排

本文首先介绍了超声波液位仪测距的工作原理。接着基于测距原理,介绍了 硬件设计。为了提高测量精度,我们又设计了一种以 51 单片机为核心的低成本、 高精度、微型化数字的超声波液位仪系统。针对测量环境的改变,介绍温度补偿 和平均滤波这两种方法来提高超声波液位仪精度。论文研究内容和章节安排如 下:

6

上海师范大学信机学院毕业设计

第一章:介绍本课题的背景与意义,研究的历史和现状。

第二章:重点讲解往返时间检测法测距的理论,以及对超声波探头的工作原 理进行详细介绍。

第三章:超声波液位仪的主控制电路,重点介绍 51 单片机和外围电路的设 计,以及各种器件的选择。特别是对相关传感器的介绍。

第四章:超声波液位仪的软件设计,包括软件流程图,以及程序代码的关键 部分。系统软件程序使用 C 语言编写。

第五章:通过温度补偿和数字平均滤波的方式来提高超声波液位仪的精确 度。同时对产生的误差进行分析。

7

上海师范大学信机学院毕业设计

第二章 超声波的液位测量原理

2.1 超声液位仪理论基础 2.1.1 超声波介绍

超声波是一种人耳无法听到的、频率一般超过 20kHz 的声音,它具有以下特 性:

(1) 波长与辐射:

传播速度是用频率乘以波长来表示。电磁波的传播速度是 3×108m/s,而 声波在空气中的传播速度很慢,约为 344m/s。在这种比较低的传播速度下,长很短,这就意味着可以获得较高的距离和方向分辨率。正是由于这种较高的分辨率特性,才使我们有可能在进行测量时获得很高的精确度。

(2) 反射:

要探测某个物体是否存在,超声波应能够在该物体上得到反射,由于金属、木材、混凝土、橡胶和纸等可以反射近乎 100﹪的超声波,因此我们可以很容易地探测到这些物体。由于布、棉花等可以吸收超声波,探测到他们将十分困难。另外,由于不规则反射,通常可能很难探测到表面震动幅度很大的物体。

(3) 温度:

声波传播的速度“V”可以用下列公式(2.1)表示: V=331.5+0.607t(m/s) (2.1 )

式中,t=温度(C),也就是说,声音传播速度随周围温度的变化有所不同。因此,要精确的测量与某个物体之间的距离时,始终检查周围温度是十分必要的。

(4)衰减:

传播到空气中的超声波强度随距离的变化成比例地减弱,这是由于衍射现象上的扩散损失,和介质吸收能量产生的吸收损失。

2.1.2 超声波探头的结构和原理

超声波探头是利用超声波的特性研制而成的传感器。超声波是一种振动频?率高于声波的机械波,由换能芯片在电压的激励下发生振动产生的,它具有

频率高、波长短、绕射现象小,特别是方向性好、能够定向传播等特点。超声波对液体、固体的穿透能力很大,尤其是在不透明的固体中,它可穿透几十米

8

上海师范大学信机学院毕业设计

的深度。超声波碰到杂质或分界面会产生显著反射,从而形成反射回波,碰到活动物体能产生多普勒效应。因此这项技术广泛应用在工业、国防、生物医学等方面以这种检测手段,必须发射超声波和接收超声波。能同时完成这种功能的装置就是超声波探头,也称为超声换能器[10]。

对应用于工业的超声波探头而言,要求其精确度要达到 1mm,并且具有较强的超声波辐射。利用常规双压电芯片组件振动器的弯曲振动,在频率高于 70kHz 的情况下,是不可能达到此目的。所以,在高频率探测中,必须使用垂直振动模 式的压电陶瓷。压电陶瓷的声阻抗与空气的匹配就显得十分重要,它的声阻抗为 2.6×107kg/m2s,而空气的声阻抗为 4.3×102kg/m2s。5 个幂的差异会导致在压电陶瓷震动辐射表面上的大量损失。负载压电陶瓷,它可以使超声波探头在高达数百 kHz 频率的情况下,仍能够正常工作。 压电型超声波探头的工作原理:它是借助于压电晶体的谐振来工作的,即陶瓷的压电效应。超声波探头有两块压电晶片和一块共振板,给它的两级加上脉冲信号,当其频率等于晶片固有频率的时候,压电晶片就会产生共振,并带动共振板一起振动,从而产生超声波。反之,如果电极间未加电压,则当共振板接收到回波信号时。将压迫两片电晶片振动,从而将机械能转换为电能,此时的探头就成了超声波接收器。

如图 2.1 所示,一个复合式振动器被灵活地固定在底座上。该复合式振动器是由谐振器以及由一个金属片和一个压电陶瓷片组成的双压电芯片构成。谐振器呈喇叭形,目的是能有效地辐射,并且可以使超声波聚集在振动器的中央部位[12]。

9

上海师范大学信机学院毕业设计

2.1.3 T/R40-16 超声波探头

超声波探头选用 40kHz 的 T/R40-16 型压电陶瓷传感器,如图 2.3 所示。当T/R40-16 超声波探头在输入频率为 40kHz 时,各种特性呈现最佳状态。因此为了得到最佳效果必须使单片机输出方波的频率为 40kHz[7]。

超声波探头的性能指标:中心频率 40kHz,发射声压大于 115dB,电容 2400 pF,允许输入电压 12V。其发射探头频率特性曲线图在中心频率 40kHz 处,超声发射器所产生的超声机械波最强,即在 f0处所产生的超声声压能级最高。而在f0两侧,声压能级迅速衰减,因此,超声波发射时要用非常接近中心频率 f0

10

上海师范大学信机学院毕业设计

比其它频率下的振幅大得多,并且产生共振,这种现象称为压电谐振.晶振发生 振荡必须附加外部时钟电路,一般是一个放大反馈电路,只有一片晶振是不能实 现震荡的,于是就有了时钟振荡器。将外部时钟电路跟晶振放在同一个封装里面, 一般都有 4 个引脚,两条电源线为里面的时钟电路提供电源,又叫做有源晶振,时钟振荡器,或简称钟振.好多钟振一般还要做一些温度补偿电路在里面,让振荡频率能更准确。设计中使用 12MHz 的晶振,通过单片机内部 6 分频,发生 2MHz 的ALE 信号,经过超声波发射电路,获得探头所需的 40kHz 的频率。

3.3 发射电路

超声波液位仪是基于反射超声波的测距原理来确定液位,因此,它在工作时 为了能够接收到回波信号,就需要发射出具有一定强度的超声波信号,并且发射 部分为超声波探头提供一个具有一定频率的电压信号。 两片十进制计数器 74LS90 和 74LS00 触发器组成的超声波发射电路,如图 3.6。由于单片机使用 12MHz 时钟晶体,经过 89C51 单片机内部的 6 分频,发出 ALE 信号为 2MHz,要产生 40kHz 的信号,需要对 ALE 信号进行 2000/40=50 分频,74LS90 不仅是十进制计数器,也可以将两片 74LS90,实现对 ALE 信号 50 分频的效果,当单片机的 P1.5 管脚发射的时间信号脉冲处于高电平时,使 74LS90 发出的 40kHz 频率通过 74LS00,经过高低电平转换,传到发射探头,引起共振,驱动超声波探测器发出超声波,如图 3.4。

16

上海师范大学信机学院毕业设计

3.4 接收电路

超声波接收电路设计由反向比例运算电路,滤波电路和阈值电压比较三部分 组成,超声波在传播的传播中不可避免地衰减,再经过物体表面的吸收、散射后, 反射回来的回波信号已经极其微弱,要想测到回波,必须对其进行滤波放大,放 大调节后的信号作为输入信号,变成直流电平。

接收超声波的放大电路,采用的是反向比例运算电路,如图 3.8 所示,由于输入电压通过电阻 R4作用于集成运放的反向输入端,故输出电压与输入电压反向。根据运算放大器的放大倍数公式:

Avf1=-(R1/R4)=20 (3.2) Avf2=-(R2/R5)=10 (3.3) Avf=Avf1×Avf2=200 (3.4)

可知,第一级放大电路反向放大 20 倍,同理二级放大电路放大 10 倍,经过 滤波电路,恢复了正向波形,接收信号被放大 200 倍。接收探头采用与发射探

17

上海师范大学信机学院毕业设计

头相同的 T/R40 超声波探头。 超声波液位仪接收部分的任务是通过适当的滤波将超声波探头接收到的微弱信号经滤波放大和检波后送至信号处理器。它的主要组成部分是:滤波放大、放大调节、检波和信号处理。再和电压比较器设定的阈值电压进行比较,获得低电平信号,传给单片机的外中断,单片机内的计数器停止计数。从而得到超声波从发射到返回时间,最后把时间量与声速相乘,转换为距离量,显示值直接为距离值。

3.5 液晶显示电路

液晶显示电路使用的是 128×64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标 GB2312 码简体中文字库(16×16 点阵)、128 个字符(8×16点阵)可与 CPU 直接连接,并且提供两种接口来连接微处理机即 8 位并行及串行两种连接方式。具有多种功能:光标显示、画面位移、睡眠模式等。

3.6 温度测量电路

由于超声波在空气中的传播速度和温度有关,为了修正超声波的速度,就需 要测量温度,以便获得准确的超声波速度。温度测量就是为了实现这一目的。

温度测量采用 DALLAS 公司的 DS18B20 芯片,该芯片的性能指标如下: (1)独特的单线接口,只需 1 个接口引脚即可通信 (2)多点能力使分布式温度检测应用得以简化 (3)不需要外部组件 (4)可用数据线供电 (5)不需要备份电源

(6)测量范围从-55℃~+125℃,增量值为 0.5℃ (7)以 9 位数字值方式读出温度

(8)用户可定义的,非易失性温度告警设置

(9)告警搜索命令识别和寻址温度,温度在编定的极限之外的器件

3.7 串行通信口电路

由于单片机提供的是 TTL 的电平,而计算机提供的是 RS232 电平,要实现单片机与计算机的通信,必须对它们的电平进行转换,可用 MAX232 芯片来实现, 如图 3.10。

18

上海师范大学信机学院毕业设计

89C51 单片机本身的串行接口 TxD,RxD 为 TTL 电平,信号幅值较低,易受干扰只适合很近距离的通讯,因此,广泛采用 RS-232C 串行接口与 TTL 间进行电平转换。电压改变的速度必须和接收端的接收速度保持一致。 完RS-232 接口需要 22 根线,采用标准的 25 芯插头。设计中实现了超声波液位仪的远程通讯功能,将单片机获得的液位数据传送到上位机,以便于工作人员的监控和操作,并可将历史数据存储在 PC 机内,尤其适用于室外测量或恶劣环境下的测量,由此使得系统的应用范围更广。本系统采用的是 9 芯的 D 型RS-232 连接器串行通讯,通讯距离最远可达 15m。RS232 封装如图 3.11 所示。 MAX232 需要外界 4 只 0.1uF 电容,或者 1uF 的电解电容。之所以需要电容,是因为 RS232 电平是工作在大约-9V~+9V 之间,需要把将 5V 电压转换成 RS-232电平所需要的+10V 和-10V。电路上形象地称为电荷泵[31]。 设计中选用了 9 针的 D 型连接器,如图 3.11 所示,并给出了 9 个引脚的功能。 说明:

引脚 1:DCD,方向 I,载波检测 引脚 2:RXD,方向 I,数据输入

19

上海师范大学信机学院毕业设计

引脚 3:TXD,方向 O,数据输出 引脚 4:DTR,方向 O,数据终端就绪 引脚 5:GND,地

引脚 6:DSR,方向 I,数据设备就绪 引脚 7:KTS,方向 O,请求发送 引脚 8:CTS,方向 I,清除发送 引脚 9:RI,方向 I,振铃指示

第四章 系统软件设计

4.1 软件总体设计 4.1.1 软件设计流程图

单片机液位仪的软件功能是控制超声波的发射和接收,对超声波的传输时间 进行测量,结合超声波的传播速度,计算出距离,并把数字滤波后的结果显示出 来。要实现上述功能,软件包含初始化、参数读入、超声波发射、超声波传输计 时、声速计算、超声波传输距离计算、数字滤波、计算结果显示等功能模块。软 件总体流程图,如图 4.1 所示。

20

上海师范大学信机学院毕业设计

目前单片机的主流编程语言有汇编语言和 C 语言两种。汇编语言的优点是程序效率高、代码短,但存在可读性可移植性差的缺点。C 语言的优点是可读性好、可移植性好的优点,但存在代码效率较低、代码较长的缺点。考虑超声波液位测量系统测量速度要求不高,数据计算量大的特点,超声波液位测量系统采用 C 语言编写。 软件设计运用模块化程序设计思想,对不同功能的程序进行分别编程,这样不但使得整个软件的层次和结构比较清晰,而且有利于软件的调试和修改。 按照液位测量仪的需要,超声波驱动与数据处理模块主要任务是用单片机产生 40kHz 的脉冲,驱动超声波探头器发射超声波,同时采用计数器计时;当超声波接收器接收到回波信号时停止计时,由此得出超声波的传输时间 T,再

21

上海师范大学信机学院毕业设计

利用第二章所介绍的公式,可求出待测距离 h,由此算出液体的高度[33]。?

4.1.2 主程序结构流程图

主程序是单片机程序的主体,它负责调用系统的子程序,中断程序等各个功 能转换。如图所示为系统的主程序流程。程序首先完成初始化过程,然后是一个重复的控制发射信号,而且每次发射周期结束都会判断在发射信号后延时等待的过程中是否发生了中断,即回波是否到达。 由于采用了单片机 89C51 并考虑整个系统的控制流程,整个系统软件都由89C51 系列单片机 C 语言实现。由于距离值的得出及显示是在中断子程序中完成的,因此在初始化发射程序后进入中断响应的等待。在中断响应之后,原始数据经计数值与距离值换算子程序,二进制与十进制转换子程序后显示输出。如图4.2。

22

上海师范大学信机学院毕业设计

23

上海师范大学信机学院毕业设计

4.1.3 回波接收流程图

4.1.4 中断程序流程图

中断服务程序是响应单片机的外部中断。在系统硬件中,发射的 40KHz 脉

24

上海师范大学信机学院毕业设计

冲信号遇到障碍物反射后,经接收检测电路产生外中断信号至单片机。在中断服务 程序中,要从把进入中断服务程序处的计数值读出并保存在 RAM 中,再对该数据进行处理,计算得到相应的距离值,并转换为十进制,最后显示输出。如图 4.4和图 4.5。

25

上海师范大学信机学院毕业设计

4.1.5 串行口通信流程图

为了便于数据的存储和管理,需要超声波液位检测仪与 PC 机进行通讯,将 有关数据存入 PC 机中,操作人员可以通过这些数据清楚地了解当前的液位情况。

本设计将串行口的工作方式定义为方式 1,这时它是一个 8 位的异步串行通讯口,TXD 为数据输出线,RXD 为数据输入线。由于此时单片机比较空闲,所以可以采用查询方式进行通讯。在发送数据之前,先发一个字节的请求码 0FFH,接收到上位机的应答后,向上位机发送数据的个数,最后发送数据[35]。上位机接收完数据后,要向液位仪发送一个确认码,如果接收的数据个数不对,则重新发送;若正确,则终止通讯,如图 4.6。

26

上海师范大学信机学院毕业设计

4.1.6 DS18B20 流程图

该程序的主要功能是使用单片机和温度传感器完成对温度的检测和补偿。通 过 89C51 完成对 DS18B20 芯片的控制和数据传输。由于器件本身有严格的 时间配合,所以程序控制上比较复杂。DS18B20 总体流程图,如图 4.7 所示:

27

上海师范大学信机学院毕业设计

4.2 软件程序调试

28

上海师范大学信机学院毕业设计

4.2.1 复位电路程序调试

void WTD_init() {

uchar i; uchar instr;

cs_feed=0; // 用来写 WREN 写使能 instr=0x06; for(i=0;i<8;i++) { SCK=0;

SI=instr&0x80; SCK=1; instr<<=1; }

器件 X5045 有一个写使能锁存功能,再一次写操作开始以前这个锁存必须被 设置。如图 4.8。WREN 指令设置该锁存,而 WRDI 指令将复位该锁存。该锁存在上电复位或一次有效地字节、页或状态寄存器的写操作完成后自动复位,如果/WP引脚被拉低该锁存也复位。当发出一个 WREN 或者 WRDI 指令时,不需要输出一个字节的地址或数据。

cs_feed=1; _nop_();

cs_feed=0; //用来写状态寄存器指令 instr=0x01; for(i=0;i<8;i++) { SCK=0;

SI=instr&0x80; SCK=1; instr<<=1;

29

上海师范大学信机学院毕业设计

}

instr=0x10; //写状态寄存器 for(i=0;i<8;i++) { SCK=0;

SI=instr&0x80; SCK=1; instr<<=1; } }

在写数据到状态寄存器之前,“写使能”锁存必须由 WREN 指令设置,如图4.9。先将/CS 引脚拉低以选通 X5045,然后输出 WREN 指令之器件,然后再将/CS 拉为高,禁止 X5045,这部分操作在函数写使能中实现。之后再次拉低/CS 引脚 以选通 X5045,先发送 WRSR 指令至器件,然后跟随 8 位数据,这 8 位数据相应于状态锁存器的内容。该操作有/CS 变高来结束。如果在 WREN 和 WRSR 两指令之间不讲/CS 拉高,则 WRSR 指令将被忽略[31]。

4.2.2 发送和接收超声波程序调试

开始发送超声波 void send_wave( ) {

uchar w;

START=0; //开始发送脉冲 TR0=1;

for(w=0;w<15;w++)//延时大约 100 us START=1; //停止发送

for(w=0;w<5;w++);//延时等待超声波探头器 EX0=1;//外部中断 0 允许 }

89C51 单片机通过 P1.5 端口,发送一连串脉冲,用来控制时间。启动定时器

30

上海师范大学信机学院毕业设计

0,同时延时 100us 之后,当有接收到超声波回波的时候,产生外部中断信号, 由单片机的端口 P3.2 外部中断 0 启动。 超声波返回中断 读取计数器中的值

void plus_count (void ) interrupt 0 using 0 { TR=0;

plus_data=TH0; plus_data<<=8; plus_data|=TL0; }

31

上海师范大学信机学院毕业设计

0,同时延时 100us 之后,当有接收到超声波回波的时候,产生外部中断信号, 由单片机的端口 P3.2 外部中断 0 启动。 超声波返回中断 读取计数器中的值

void plus_count (void ) interrupt 0 using 0 { TR=0;

plus_data=TH0; plus_data<<=8; plus_data|=TL0; }

31

本文来源:https://www.bwwdw.com/article/4u2a.html

Top