毕业设计(论文)-基于超声波模块的液位自动控制系统.doc_第1页
毕业设计(论文)-基于超声波模块的液位自动控制系统.doc_第2页
毕业设计(论文)-基于超声波模块的液位自动控制系统.doc_第3页
毕业设计(论文)-基于超声波模块的液位自动控制系统.doc_第4页
毕业设计(论文)-基于超声波模块的液位自动控制系统.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计基于超声波模块的液位自动控制系统 姓 名: 指导教师: xxxx 院 系: 信息工程学院 专 业: 电子信息工程 提交日期: 2011年4月26日 目 录中文摘要4外文摘要5引言61 绪论61.1 研究背景61.2 研究目的61.3 研究意义62 系统分析72.1 总体设计要求72.1.1 红外遥控模块设计要求72.1.2 液位控制模块(红外接收模块)设计要求72.2 总体设计方案72.2.1 方案论证82.2.2 最终确定设计方案92.2.3 方案的可行性论证102.4 小结103 硬件设计103.1 me007 超声波测距模块103.1.1 超声波测距模块的介绍103.1.2 超声波测距模块的引脚功能113.2 红外控制模块的设计113.2.1 单片机及其硬件电路设计113.2.2 键盘路133.2.3 蜂鸣器控制电路143.2.4 红外发射电路143.3 液位控制模块(红外接收控制模块)的设计153.3.1 红外接收路153.3.2 数码管显示电路163.3.3 me007 超声波测距模块控制电路173.3.4 dn15型号微型电动铜球阀控制电路184 程序204.1 程序流程图204.2 红外遥控模块程序214.3 液位控制模块程序23结束语30参考文献31致谢31附录32 1. 遥控模块电路图32 2. 液位控制模块电路图33基于超声波模块的液位自动控制系统xxx指导老师:xx (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)中文摘要: 在工业生产中,经常需要对封闭容器内各种液体的液位进行精确检测。在分析比较目前广泛采用的超声波液位测量方法的基础上,结合现有方法的优点采用一种计算更简单、操作更方便的超声波测液位检测法,设计一个基与me007 超声波测距模块,以stc89c52单片机为核心的液位自动控制系统,通过红外遥控器实现按键无线遥控。系统通过控制电路发射相关的液位调整指令,由超声波液位控制系统自动调整液位高度,显示器能实时显示液位高度。关键词:液位自动控制,超声波,stc89c52,红外research on control system for liquid level based on ultrasonic modulehu mindirector: sun jian( xxxxxxxxxxxxxxxxxxxxxxxxxx)abstract: in industrial production, often need a variety of closed containers for precise liquid level detection. widely used in the analysis and comparison of ultrasonic level measurement method based on the combination of the advantages of existing methods use a computing easier, more convenient operation of the ultrasonic measuring liquid level detection method, design a base and me007 ultrasonic distance measuring module, to stc89c52 microcontroller as the core liquid level control system, through the infrared remote controller button wireless remote control. system by controlling the level adjustment circuit transmission-related instruction, the ultrasonic liquid level control system automatically adjusts the height of liquid level monitor real-time display.朗读显示对应的拉丁字符的拼音字典朗读显示对应的拉丁字符的拼音字典keywords: liquid level control, ultrasonic, stc89c52, ir引言我国目前国内在液位自动控制方面缺少长期可靠的使用范例,还没有适用于液位测量和自动控制的定型产品。因此,开展液位自动控制的研究工作十分必要。系统为一个水位监测与控制装置,通过红外控制模块的键盘可以设定瓶内液位(0100cm内的任意值),并通过控制电动阀门(或类似于电磁阀的装置)使瓶内的液位达到设定值,显示器能实时显示当前液位状态。1. 绪论1.1 研究背景一般认为,关于超声的研究最初起始于1876 年f1galton 的气哨实验。当时galton 在空气中产生的频率达300khz, 这是人类首次有效产生的高频声。而科学技术的发展往往与一些偶然的历史事件相联系。对超声的研究起到极大推动作用的是,1912 年豪华客轮titanic号在首航中碰撞冰山后的沉没,这个当时震惊世界的悲剧促使科学家们提出用声学方法来预测冰山,在随后的第一次世界大战中,对超声的研究得以进一步的促进。近些年来,随着超声技术研究的不断深入,再加上其具有的高精度、无损、非接触等优点,超声的应用变得越来越普及。目前已经广泛的应用在机械制造、电子冶金、航海、航空、宇航、石油化工、交通等工业领域。此外在材料科学、医学、生物科学等领域中也占据重要地位。而我国,关于超声的大规模研究始于1956年。迄今,在超声的各个领域都开展了研究和应用,其中有少数项目已接近或达到了国际水平。由于空气对超声波的吸收与超声波的平方成正比,因此,用来测距的超声波的频率不能很高,但另一方面频率越低,波长越长,测长的绝对误差就越大,测距的范围加大与测量精度实际上是一对矛盾。随着计算机技术、自动化技术和工业机器人的不断发展和广泛应用,测距问题显得越来越重要。1.2 研究目的本设计主要研究并设计一个基于me007 超声波测距模块的液位自动控制系统,通过单片机和其外围电路实现容器内的液体高度自动调整到设定的值,并把数据实时显示在数码管上。其中电路的遥控采用红外遥控器控制。1.3 研究意义超声波:目前常用的测距方式主要有雷达测距、红外测距、激光测距和超声测距4种。与其他测距方法相比较,超声测距具有下面的优点:(1) 超声波对色彩和光照度不敏感,可用于识别透明及漫反射性差的物体(如玻璃、抛光体)。(2) 超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中。(3) 超声波传感器结构简单、体积小、费用低、技术难度小、信息处理简单可靠、易于小型化和集成化。因此,超声波作为一种测距识别手段,已越来越引起人们的重视。红外:红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。2. 系统分析2.1 总体设计要求1、可以设定瓶内液位(0100cm内的任意值);2、显示器能实时显示当前液位状态;3、被控设备的控制实时反映,从接收信号到信号处理及对设备控制反映时间应小于1s; 4、液位控制模块误差小,误差应小于1cm;5、整个系统的抗干扰能力强,防止误动作; 6、整个系统的安装、操作简单,维护方便; 7、总体成本低。2.1.1红外遥控模块设计要求1、单片机定时器精确产生38khz红外载波; 2、根据控制系统要求能对红外控制指令信号精确编码并迅速发送。2.1.2液位控制模块(红外接收模块)设计要求1、精确接收红外信号,并对所接收信号进行解码、放大、整形、解调等处理,最后输出ttl电平信号; 2、对非红外光及边缘红外光具有抗干扰能力强。2.2 总体设计方案2.2.1 方案论证(一)单片机控制器模块 方案一:采用目前比较通用的51系列单片机。 此单片机的运算能力强,软件编程灵活,自由度大,市场上比较多见价格便宜且技术比较成熟容易实现。 方案二:采用凌阳16 位单片机spce061a 作为控制核心。 与51单片机相比,spce061a具有更加丰富的资源,有32个可编程的i/o口,14个中断源。但考虑到本设计没有用到如此多资源且价格贵,市场比较少见,技术不稳定。 综合分析考虑,选择方案一。(二)38khz载波实现 利用载波对信号进行调制从而减少信号传输过程中的光波干扰,提高数据传输效率。以下是对产生38khz载波的单片机软件与硬件电路进行比较。 方案一:单片机t0定时产生38khz载波 电路原理:stc89c52rc定时器t0产生周期性的26us的矩形脉冲,即每隔13us,定时器t0产生中断输出一个相反的信号使输出端产生周期的38khz脉冲信号。计算公式如2-1所示,脉冲图如图2-1所示。图2-1 38khz脉冲波形方案二:硬件晶振电路产生38khz载波 电路分析: 晶振y1,电容c1、c2、u1a、r2 、r3组成38khz载波振荡电路,mc14011是逻辑与非门。u1b对38khz的振荡信号取反,同时隔离前后级的信号干扰。如图2-2所示。p11属于单片机p1口用于单片机对受控对象控制信号处理后的数据输出口,数据与38khz信号与p11端数据逻辑或非门输出,完成信号的调制,如图2-2所示电路图。 图2-2 38khz载波振荡电路对于产生38khz脉冲信号的软、硬件电路的实现进行比较选择,软件实现经济有利于产品开发使用,加密性强,电路板元件少,经济实用,便于产品的推广。因而采用方案一,即用软件定时产生38khz的载波信号。2.2.2 最终确定设计方案经分析本设计的硬件系统有以下几个部分组成:按键键盘、红外发射电路,红外接收电路、超声波模块、数码管显示电路、电动阀门控制电路组成。整体设计思路为:根据扫描到的不同的按键值,通过比对程序设定好数据发射相对应的信号,接收模块接收到相应的信号并译码后转入执行对应的程序。控制模块设有5个按键,分别为“+”、“-”、“ok”、“a”、“b”键。其中“+”和“-”键用于控制显示设定液位的数码管液位增减的,设定好后按“ok”键,系统比对设定的液位值和当前的值,如果实际液位不等于设定液位则系统会自动控制进水、出水阀门调节液位,直至相差不大于1cm时关闭阀门。“a”和“b”键用于直接控制进水阀门和出水阀门的开关。整体方案示意图如图2-3和图2-4所示。在本设计当中,超声波模块距离容器底部距离为120cm,液位最大高度设置为100cm,故液位达到最高时,液位距离超声波模块有20cm距离。系统在0100cm范围可自由调整液位高度,并实时在数码管上显示当前液位高度。图2-3 系统整体设计示意图图2-4 电路控制示意图2.2.3 方案的可行性论证实用性:本系统具有实时性、灵活性、稳定性、以及多功能同时控制等优点。技术可行性:单片机对数据进行处理,定时器产生38khz的载波对红外信号调制,采用一体红外接收头对红外信号放大、解码、电平转换。单片机译码后执行相应的程序。超声波模块每隔一段时间发射一次超声波,接收到反弹回来的信号后输出一段与距离成正比的脉冲信号,通过计算该信号算出液位高度。钢球阀门驱动电压3-6v,采用h桥电路实现电流的正向反向放大,实现钢球阀门的关闭和打开。2.4 小结整个系统的设计要求抗干扰能力强,防止误动作,误差小;安装、操作简单,维护方便;总体成本低。3. 硬件设计3.1 me007 超声波测距模块3.1.1 超声波模块功能介绍dyp-me007超声波测距模块可提供3cm-3.5m的非接触式距离感测功能,图1为dyp-me007外观,包括超声波发射器、接收器与控制电路。其基本工作原理为给予此超声波测距模块一触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出一回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。3.1.2 超声波测距模块的引脚功能图3-1为超声波测距模块的接脚图,使用上只需要5v 电源供应、0v 地线连接、触发信号输入、与回响信号输出等四支接脚(开关信号输出端是按客户要求设定)。你只需要提供一个短期的10us 脉冲触发信号。该模块内部将发出8 个40khz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号是一个脉冲的宽度成正比的距离对象。可通过发射信号到收到的回响信号时间间隔可以计算得到距离。图3-1 超声波波模块引脚示意图图3-2 超声波模块的时序图3.2 红外控制模块的设计3.2.1 单片机及其硬件电路设计单片机的介绍:stc89c52rc系列单片机是有超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可任意选择,最新的d版本内部集成max810专用复位电路。 特点: 1、增强型6时钟机器周期,12时钟机器周期8051 cpu; 2、工作电压:5.5v-3.4v(5v单片机)/3.8v - 2.0v(3v单片机); 3、工作频率范围:0-40mhz,相当于普通8051的080mhz,实际工作频率可达48mhz; 4、用户应用程序空间4k/8k/16k/20k/32k/64k字节;5、片上集成1280字节/512字节 ram; 6、通用i/o口(32个),复位后为:p1/p2/p3/p4是准双向口/弱上拉(普通8051传统i/o口)p0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为i/o口用时,需加上拉电阻;7、isp(在系统可编程)/iap(在应用可编程),无需专用编程器、仿真器,可通过串口(p3.0/p3.1)直接下载用户程序,8k程序3秒即可完成;8、eeprom 功能;9、看门狗; 10、内部集成max810专用复位电路(d版本),外部晶体20m以下时,可省外部复位电路。11、共3个16位定时器/计数器,其中定时器0还可当成2个8位定时器使用;12、外部中断4路,下降沿中断或低电平触发中断,power down模式可由外部中断低电平触发中断方式唤醒;13、通用异步串行口(uart),还可用定时器软件实现多个uart;14、工作温度范围:0 - 75/-40 - +85;15封装: pdip-40,plcc-44,pqfp-44。时钟电路及rc复位电路: stc89c52rc芯片内部有一高增益反相放大器,用于构成振荡器.反相放大器的输入端为xtal1,输出端为xtal2。在xtal1、xtal2(第19、18引脚)两端跨接一个石英晶体振荡器,和两个电容就构成了稳定自激谐振电路。晶振频率为12mhz。c1,c2是两个瓷片电容,与晶振y2构成了自激谐振电路。其电容的作用主要是对频率进行微调,一般取30-45pf左右。使用该电路可产生稳定的12mhz频率,受外界环境的干扰影响非常小。其连接法如图3-3所示: 图3-3 单片机12mhz震荡电路复位是单片机初始化操作,其主要功能是把pc初始化为0000h,使单片机从0000h单元执行程序。除了进入系统的正常初始化之外,当程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。 复位操作有上电自动复位和按键手动复位两种方式。本设计采用了按键手动复位方式。该复位电路如图3-4所示。上电瞬间rst引脚获得高电平,单片机复位电路随着电容的c11的充电,rst引脚的高电平逐渐下降。rst引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位是直接将高电平通过电阻r11、r10分压到达reset引脚,实现复位操作。 图片3-4 单片机复位电路3.2.2 键盘电路 本实验只用到5个键盘,故不采用相对复杂的矩阵式键盘,键盘电路如图3-5。按键工作原理:单片机先向p2端口输出锁存0xff;单片机不断扫描p2口的值,当p2!=0xff时,说明有按键按下,然后通过扫描p20-p24每个i/o口的高低电位判断是哪位按键按下。图3-5 键盘电路图按键功能说明:p20和p21键分别是第6页示意图中的“+”和“-”键。用来调节设定液位的增加和减小。p22是“ok”键,按下时,液位控制系统会自动调节阀门使实际液位达到设定的液位值。p23和p24按键分别控制进水阀门(a)阀门和出水阀门的(b)的打开和闭合。按下一次,阀门打开,再按,阀门会关闭,如此反复,这样可以达到直接控制液位的目的。3.2.3 蜂鸣器控制电路 有源蜂鸣器直接接上额定电源就可连续发声。在本设计中,当有按键按下时蜂鸣器就会响起,指示有按键按下,电路图如图3-6所示。图3-6 蜂鸣器3.2.4 红外发射电路红外发射二极管的主要技术参数: sir333是gaalas红外发射二极管,其特点是体积小、功耗低、高发射强度、高可靠性、发射角度45、sir333管子直径5mm。广泛应用于仪器、仪表、电气设备近距离红外数据传输、电视机、空调机等家用电器红外遥控信号发射其红外发射距离为8-10米。红外数据发射电路的设计: 在红外数据发射过程中,由于发送信号时的最大平均电流需几十ma(对应mw级发射功率),所以需要三极管放大后去驱动红外光发射二极管(又称电光二极管)。软件编程将数据从p3口第5脚(p34)将数据输出。t0定时产生38khz载波信号。图3-7 红外发射电路3.3 液位控制模块(红外接收控制模块)的设计3.3.1 红外接收电路 lf0038是用于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与ttl电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0khz。接收器对外只有3个引脚:out、gnd、vcc与单片机接口非常方便。如图3-8所示,最上边的脚接电源vcc(+5v),中间引脚接gnd,最下边引脚为脉冲信号输出引脚。图3-8 lf0038红外接收头lf0038接收原理: 红外线接收是把遥制发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式的脉冲信号。这些工作通常由一体化的接收头来完成,输出ttl兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。图3-9 lf0038原理图由lf0038的特性曲线图3-10可以看出,当接收到38khz的高频脉冲信号后,输出端输出低电平,其他情况均输出高电平,本设计的发射信号根据此原理编码。图3-10 lf0038信号接收时序图图片3-11 红外接收头实际应用电路3.3.2 数码管显示电路在本设计中采用74h573锁存器驱动数码管,采用的数码管外形如图3-12所示。由如下的表3-1可以看出,当输出使能端oe接地,锁存使能端le接vcc时,74hc573相当如透明,输出电平于输入电平相同。在这里用74hc573驱动数码管。图3-12 lg5631bh 0.56 三联共阳数码管表3-1 74hc573锁存器功能表如图3-13所示本设计采用两个图3-12所示的lg5631bh 0.56 三联共阳数码管。led31(左)是用来显示当前实际液位的数码管,led32(右)是用来显示设定液位的数码管。该设计中,用p07p02端口选择数码管,用p20p26控制数码管的数字显示。6位led数码管均由p2口控制,要使在同一瞬间看到的数字不相同,必须采用扫描轮流点亮各位led,即在同一瞬间只使某一位显示字符。在此瞬间,p2口输出相应的字符段选码,p0口在该显示送入选通电平,以保证该显示位显示相应的字符。如此轮流,使每位显示相应的字符。段选码、位选码每送入一次后延时1ms,因为人的视觉暂留时间为0.1s(100ms),所以每位显示时间间隔不要超过20ms,并保证延时一段时间,以造成视觉暂留,该人感觉每个数码管总在亮,这种方式称为软件扫描显示。图3-13 数码管显示电路图3.3.3 me007 超声波测距模块控制电路如图3-14和图3-15所示,本设计通过p31口输出10usttl高电平后,不断扫描p33引脚是否变成高电平。超声波模块会发射8个连续的40khz的超声波信号,当接收到回波后,模块会echo引脚向p33输出与距离成正比的高电平信号。当检测到p33引脚变为高电平以后,开定时器0计数,当电平再次变为低电平时停止计数。然后读出计时时长,按公式:液位高度h2=h-h1=h-tv/2计算出液位的高度。图3-14 超声波模块引脚 图3-15 测量原理示意图3.3.4 dn15型号微型电动铜球阀(天津市珠峰公司生产)控制电路本设计的阀门采用的是天津市珠峰公司生产的dn15型号微型电动铜球阀,驱动电压是dc36v。在这里利用价格低廉的8550和8050构成h桥电路,实现电流的正向和反向放大作用,电路图如图3-16所示。图3-16 电动阀门驱动电路h桥电路原理:图中所示为一个典型的直流电机控制电路。电路得名于“h桥驱动电路”是因为它的形状酷似字母h。4个三极管组成h的4条垂直腿,而电机就是h中的横杠(注意:下图及随后的一个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。如图所示,h桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。要使电机运转,必须使对角线上的一对三极管导通。例如,如下图所示,当q1管和q4管导通时,电流就从电源正极经q1从左至右穿过电机,然后再经q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管q1和q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。图3-17 h桥电路简易原理电路图h桥电路设计:驱动电机时,保证h桥上两个同侧的三极管不会同时导通非常重要。如果三极管q1和q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。经过以上分析,设计采用的h桥电路原理图如图3-18所示。图3-18 h桥电路完整电路图4 流程图及程序4.1 程序流程图开始初始化程序是否有信号执行相应液位调整指令执行结束开始初始化程序扫描键盘有键盘按下?包含单片机已设定好的发射信息?主函数主函数等待信号且实时监测液位并显示否否是否是否包含单片机已设定好的接收信息?是是发射相应信号4.2 c51程序4.2.1 遥控模块程序#include#include#define uint unsigned int#define uchar unsigned charsbit buzzer=p00; /蜂呤器sbit singal=p34; /38khz高频信号输出端sbit add=p20; / +键sbit reduce=p21; / -键sbit ok=p22; /ok键sbit valve_a=p23; /进水阀门控制键sbit valve_b=p24; /出水阀门控制键sbit p1_5=p15; uchar a,b,z;/*/void delayms(uchar tt) /延时程序,延时时间为tt(ms)uchar i,j;for(i=0;itt;i+)for(j=0;j120;j+);return;/*/uchar key() /键盘扫描程序,判断是哪位按键按下 uchar c;delayms(20); /去抖动if(p2!=0xff) buzzer=1; /有键盘按下,蜂呤器响if(add=0)c=1;if(reduce=0)c=2;if(ok=0)c=3;if(valve_a=0)c=4;if(valve_b=0)c=5; return(c);/*/void shoot() /信号发射程序,发射相应编码信号et0=1; /开定时器0中断,输出4ms的38khz高频脉冲信号delayms(4);et0=0; /关中断if(b=1)delayms(1);if(b=2)delayms(3);if(b=3)delayms(5);if(b=4)delayms(7);if(b=5)delayms(9);et0=1;delayms(4);et0=0;singal=0;b=0;delayms(200); /延时buzzer=0;return;/*/void main()p2=0xff; /向按键端口锁存1singal=0;buzzer=1; /蜂呤器响p1_5=0;tmod=0x02; /开定时器0,工作在方式2自动重装方式tl0=0xf4;th0=0xf4; tr0=1;ea=1;for(z=0;z100;z+)delayms(10);/单片机通电后蜂呤器响1s钟,指示电源接通buzzer=0; /关蜂呤器p1_5=1;while(1)if(p2!=0xff)b=key(); /判断是否有键盘按下if(b!=0)shoot(); /判断按键功能 /*/void khz_38() interrupt 1 /定时器中断,软件方式产生38khz脉冲信号singal=singal; 4.2.2 液位控制模块程序#include#include#includesbit power=p31; /超声波模块触发信号端 sbit int0k=p32; /红外信号接收端sbit int1k=p33;sbit receive=p33; /超声波测距信号接收端sbit red=p06; /红色指示灯sbit green=p07; /绿色指示灯sbit p3_4=p34;sbit p3_5=p35;sbit p3_6=p36;sbit p3_7=p37;unsigned char a,b,c;unsigned char water1=0;unsigned char water2=50; /water1代表实际液位,water2代表设定液位,单位为cm;unsigned char code led=0x81,0xed,0xa2,0xa8,0xcc,0x98,0x90,0xad,0x80,0x88,0x84,0xd0,0x93,0xe0,0x92,0x96;/*/void delayms(unsigned char tt) /延时程序,延时时间为tt(ms);unsigned char t1,t2;for(t2=0;t2tt;t2+)for(t1=0;t1120;t1+);return;/*/void delay05ms() /延时程序,延时时间为0.5ms;unsigned char t3;for(t3=0;t30) i-;if(i0) /小于1.2米,说明有信号返回tr0=1;/开始计时while(receive); /持续高电平则计时,转为低电平则退出tr0=0;/停止计时water1=(unsigned char)(120-(th0*256+tl0)*0.0170); /单位:cm/34000/1000000/2=0.017cm/us液位等于超声波模块与页面之间的液位差/*/void delay6ms()/延时程序,延时时间约6ms, 该延时用来取代某些延时缓解数码管闪烁现象 c=water2%10; p2=ledc;p1=0x01;delayms(1);c=water2/10;c=a%10;p2=ledc;p1=0x02;delayms(1);c=water2/100;p2=ledc;p1=0x04;c=water1%10; p2=ledc;p1=0x08;delayms(1);c=water1/10;c=a%10;p2=ledc;p1=0x10;delayms(1);c=water1/100;p2=ledc;p1=0x20;delayms(1);water(); /实时扫描液位return;/*/void adjuest() /液位调整子程序,比对液位设定值和实际值后,通过打开或关闭阀门使实际液位=设定液位unsigned int k=834; if(!(water1=water2)if(water1water2)if(water1-water21)p3_6=0;p3_7=1;p3_4=1;p3_5=0;while(water1-water21)delay6ms();if(k!=0)if(-k=0)p3_4=0; /为克服关闭时间过长和水流过大造成页面波纹的缺点,使阀门只部分打开,打开最长时间约为6sp3_4=0;p3_5=1;elseif(water2-water11)p3_4=0;p3_5=1;p3_6=1;p3_7=0;while(water2-water11)delay6ms();if(k!=0)if(-k=0)p3_6=0;p3_6=0;p3_7=1; /*/void main()water(); /实时扫描液位高度power=0;receive=1;p3_4=0;p3_5=1;p3_6=0;p3_7=1;p1=0x01;ex0=1; /开外中断0,触发方式为脉冲触发方式;it0=1;ea=1;green=1; /绿色指示灯灭; red=0; /红色指示灯亮; while(1) /无限循环程序用于数码管显示; a=water2%10; /显示设定液位;p2=leda;p1=0x01;delayms(1);a=water2/10;a=a%10;p2=leda;p1=0x02;delayms(1);a=water2/100;p2=leda;p1=0x04;a=water1%10; /显示实际液位;p2=leda;p1=0x08;delayms(1);a=water1/10;a=a%10;p2=leda;p1=0x10;delayms(1);a=water1/100;p2=leda;p1=0x20;delayms(1);/*/void change_int() interrupt 0 /接收到红外信号后中断响应;if(int0k=0) /判断是否是接收的是干扰信号delayms(3);if(int0k=0) /确认红外信号出现b=0;while(int0k=0);while(int0k=1)/测量脉冲信号长度delay05ms(); /每0.5ms计数一次if(int0k=1)b=b+1;if(b0&b100)water2=0; /液位最高设为1mdelay6ms();if(b4&b8&b12&b16&b20) /增加水,再按关闭p3_6=0;p3_7=1;p3_4=p3_4;p3_5=p3_5;delay6ms();结束语本设计在硬件上,使用me007、超声波传感器、stc89c52、lf0038等高精度芯片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论