《基于单片机的液位传感器设计与实现(附图)》10000字(论文)_第1页
《基于单片机的液位传感器设计与实现(附图)》10000字(论文)_第2页
《基于单片机的液位传感器设计与实现(附图)》10000字(论文)_第3页
《基于单片机的液位传感器设计与实现(附图)》10000字(论文)_第4页
《基于单片机的液位传感器设计与实现(附图)》10000字(论文)_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

STYLEREF"标题1"绪论系统方案设计2.1系统功能介绍系统通过水位传感器测量水位的具体高度。液晶屏显示水位的高度和设定的上下限水位值。可通过按键对水位的上、下限值进行设定,并且有一个掉电的保存,它就是把水放置到STC单片机内部,上电不必再进行重新配置。当液位高度不到设定下限值时,就会自动打开水泵对其进行加热。当液位高度超过设定上限值时,就会自动停机或者关闭水泵。该系统有两种模式,一种是自动和手工两种,在自动模式下依靠液位标准进行自动控制,在手动模式下,水泵开关通过一个按键来手动操作。2.2硬件结构组成本设计由单片机模块、液位传感器模块、AD转换模块、电源输入模块、液晶显示模块、按键输入模块、蜂鸣器报警模块、LED报警模块、水泵驱动模块组成。这些电路模块在原理图中的独立设计,最终通过单片机将这些模块联合在一起,这些模块中有的是输入模块,比如说按键模块和液位传感器模块,这些输入模块提供输入信号给单片机处理,让检测系统获得当前检测信息,然后单片机通过输出模块输出系统响应。比如液晶显示模块和水泵驱动模块就是输出模块,这些输出模块起到系统响应的作用。图2-1系统结构框图以下对系统中各个电路模块的功能进行简要说明:电源输入模块:通过输入5V直流电源来给系统供电,可以通过USB直接将电源连接到电脑USB口上,更加节能环保。按键输入模块:通过按键输入可以设定液位上下限值。液晶显示模块:本设计的液位高度检测信息和设定的上下限值通过液晶显示模块LCD1602来显示,用户可以通过液晶显示模块来观察当前检测到的信息。单片机模块:采用STC89C51单片机模块可以用来作为系统的控制核心,接收来自传感器、按键的输入信息,这些信息通过程序处理分析之后驱动单片机输出信号开启/关闭水泵及报警信号,同时驱动LCD液晶屏显示。液位传感器模块:采用液位传感器来采集液位高度。AD转换模块:采用AD转换实现液位数据的模数转换,从而完成液位检测功能。LED指示灯模块:通过LED指示灯显示当前液位是否处于正常范围内。水泵驱动模块:通过水泵驱动模块实现液位控制功能。2.3控制器选型当前比较主流的单片机有STC系列的51单片机、STM32单片机、AVR单片机、MSP单片机等等。这些单片机从内部数据存储器的位数来看,它们可以划分成8位的单片机和32位的单片机,通过而言位数值越高的单片机性能就越强,但是同时由于单片机所产生的价格相对较低,不过32位的单片机在运算上是否具备一定的速度和效率,其内部的空间是否比较大,单片机的外设资源是否比较丰富。8位的单片机尽管没有32位的单片机拥有突出的性能,但8位单片机在价格上具有更多优势,使用8位单片机不仅可以降低方案的设计成本,而且8位单片机也具有一定资源的外设,比如在本设计采用的STC89C51单片机中,片上资源包括定时器、中断系统、串口通信等等,可以支持多种频率的晶振输入,最新的STC51单片机已经支持1T模式运行,该单片机运作速度是传统51单片机的12倍,因设计方案对于单片机的性能要求并不算很高,因此从价格方面、应用电路方面和程序开发难度方面综合考虑后,本设计选用STC89C51单片机作为系统的主控芯片。图2-2单片机实物图2.4显示方案选型方案一:采用LED数码管进行显示,数码管只能显示数字信息,而且可供显示的内容也比较少。本设计需要显示液位高度、上下限值这些信息,如果采用数码管显示则无法分清楚两个数字代表的含义,因为数码管只能显示数字,不能显示英文。因此数码管的显示效果不佳,而且数码管的驱动电路也比较麻烦,需要采用多个三极管驱动,或是采用74LS164移位寄存器进行移位驱动,不管是哪种驱动方式都比较麻烦。程序方面也需要通过动态扫描方式,同样会给编程带来难度。方案二:采用LCD1602液晶显示屏,该液晶屏不仅可以显示数字,还可以显示英文、图形等信息。该液晶屏可以显示2行数据,采用该屏幕可以将液位高度度和上下限值分别显示在不同行,液位数据前面加上英文标注,这样就可以起到直观的显示效果。同时LCD1602液晶屏的驱动电路也非常简单,只需要通过5V电源供电,设置好对比度就可以进行显示。 3电路设计 3.1单片机电路设计下图3-1是STC89C52单片机的引脚分布图,本设计选择采用STC89C51微控制器作为系统的主控制芯片。从下图中可以看出STC89C51单片机共有40个引脚,除电源引脚和一些特殊引脚外,还有32个可用的IO端口。这32个IO端口被平均分为4个端口,即P0、P1、P2、P3端口,P3端口中还有2个外部中断引脚。同时,该微控制器还支持UART串行通信。片内还有其他实用性资源,例如定时器、中断和片上eeprom等,对于一般产品设计而言,该单片机的计算能力和存储空间是完全足够的。该单片机在通电后无法直接运行,还需要在最小系统条件下才能正常运行,51单片机的最小控制电路即单片机、晶振器和复位电路,三个控制模块均需要满足之后51单片机的正常工作。图3-1单片机最小系统电路图3.2液晶显示电路设计本设计需要在屏幕上显示检测到的液位高度、系统设定的上下限值,经过综合考虑之后选择LCD1602液晶屏作为显示模块。LCD1602液晶屏是一款可以显示英文、数字的屏幕,且液晶屏的价格适中,外部驱动电路简单。下图3-2是LCD1602液晶屏驱动电路,液晶屏采用5V直流供电,VL引脚为液晶屏对比度调节引脚,给该引脚输入不同电压就能够实现对比度调节,在电路设计中通过电阻分压方式来设置合适的屏幕对比度。RS、RW、E引脚为液晶屏控制引脚,将这些引脚与51单片机进行连接,通过单片机输出控制信号实现数据、指令的写入和读出。D0-D7引脚为数据传输引脚,在控制信号写入之后通过这些数据引脚接收显示信息,然后在液晶屏上的指定位置进行内容显示。图3-2液晶显示电路图3.3液位检测电路设计本设计采用液位传感器进行液位高度检测。液位传感器的本质其实就是一个压力传感器,通过对水位压力的检测来反应出水位高度。液位传感器一共有3个引脚,其中2个引脚为电压引脚,模块供电电压为5V,剩下的一个引脚为信号输出引脚。该模块通过输出模拟电压信号来表示压力数据,当模块检测到压力浓度越大时模块输出的电压信号幅值就会越高。因此只需要通过单片机去识别模块输出的电压信号高低,这样就可以判断出当前检测压力数据的大小情况。但是在本设计中所采用的51单片机仅仅能够对数字信号进行处理,而且这些电压信号属于模拟化的信号,不能被单片机直接采集和处理。所以,我们就需要采用外部AD转换芯片把模拟信号转化为数字信号,然后再把它交给单片机,以便对这些数据进行处理。下图3-3是液位检测电路图,图中RX1器件为液位传感器。其本质就是一个可变电阻,传感器自身阻值随着压力的升高而降低,因此我们只需要检测出液位传感器的阻值大小就可以推算出当前压力大小。从下图中可以看到,将液位传感器输出的电压信号发送至AD0832芯片。压力数据通过AD0832转换成数字信号,然后将数字信号给单片机进行处理,从而计算出电压值,再推算出当前压力值,再转换成液位高度数据。图3-3液位检测电路图3.4按键设置电路设计本设计设有4个独立按键,通过按键可以自行设置报警液位上下限值。为了设计能够适用于更多应用场合,液位上下限值可调是一个必要的功能,因此设计中采用独立按键调节功能。下图3-4是按键输入电路,本系统因为按键数量较少,因此选择独立按键进行设计。独立按键的电路连接比较简答,将按键的一端直接接入GND,按键的另外一端为单片机IO口。通过这样的单片机编程中是否能够识别IO口的电平便可以从中分析得出是否有按键被按下,若IO口检测为低电平,则代表被按键被按下,若IO口被按键达到高电平,则代表被按键松开。图3-4按键设置电路图3.5水泵驱动电路设计在液位高度低于下限值后,系统会自动开启水泵模块进行加水。因为水泵模块的正常工作电流比较大,不能够直接用51单片机来控制。因此在设计中选用继电器模块来驱动,下图3-5是水泵驱动电路图,采用5V电压给水泵模块供电,然后将供电线路串联在继电器中,通过继电器来控制水泵模块通电和断电,再通过51单片机引脚去控制继电器,从而实现单片机控制水泵模块开启和关闭功能。继电器也需要通过三极管进行驱动,因为51单片机的驱动电流比较小,无法直接推进继电器。所以再采取一个三极管作为控制继电器,从而可以实现单片机控制的继电器(中途直流控制水泵)的功能。图3-5水泵驱动电路图3.6蜂鸣器报警电路设计当液位高度超出上下限值后,系统会自动开启蜂鸣器模块进行报警提示。下图3-6为蜂鸣器的报警电路示意图,在该系统的设计中,我们采用5V有源蜂鸣器作为报警器件,电路中则选择SS8550三极管作为驱动器件。根据这种电路框图我们可以了解到,单片机的引脚是一个输出电平,蜂鸣器的启/关都是可以用控制三极管基极的电压进行控制。当单片机输出低电平时蜂鸣器开启报警,当输出高电平时蜂鸣器关闭报警。图3-6蜂鸣器报警电路图3.7LED指示灯电路设计本系统通过LED指示灯来显示当前液位状态,下图3-7是LED指示灯电路,LED驱动电流采用1K电阻进行限流,LED的控制通过单片机引脚来实现。根据电路图可知单片机引脚输出低电平时LED点亮,单片机引脚输出高电平时LED熄灭。图3-7LED指示灯电路图3.8电源供电电路设计下图3-8是电源供电电路,图中J1器件为5V直流电源输入接口,SW1为系统的电源开关。当SW1开关闭合系统通电开始工作,当SW1开关断开后系统断电停止工作。图3-8电源供电电路图

4系统软件设计4.1KEIL软件介绍程序编写是设计中较为重要的步骤,程序决定了系统的功能,系统所有的执行功能都是在程序执行下进行的,因此程序可以看作为系统的“大脑”。本设计采用C语言进行开发,因为作者对C语言的熟悉程度较高,同时C语言较其他编程语言更具有优势。C语言具有不错的可读性、移植性,在后期程序修改、维护上也更省力。编程软件首先选择了KEIL4,它是一个功能强大的编程软件,特别是它适合用于51单片机的软件开发。KEIL软件集编译、报错、调试为一体,经由KEIL软件进行编写程序,然后经过编译制作生成HEX文件,将HEX文件经下载器引出并导入到单片机中,就可以实现系统的控制功能。4.2系统主程序通过分析本设计的功能设计要求,为了实现液位检测、液位显示、声光报警、水泵驱动、按键设置的功能,本程序按照不同功能进行功能子函数设计,将各个功能模块的程序封装成不同的子函数,然后在主程序中进行函数调用。本文主程序执行流程图如图4-1所示。图4-1主程序流程图4.3液晶显示子程序下图4-2是液晶显示执行流程图,本设计通过程序向液晶屏发送显示数据,通过此方式在液晶屏上显示液位高度、上下限值。首先进行液晶初始化,在屏幕初始化完成之后检测液晶屏是否处于“忙”状态,若液晶屏处于“空闲”状态则控制LCD指令,选择LCD中的显示地址后发送显示内容,就可以在LCD上显示所发送的内容。LCD液晶显示子函数只需要在主程序中被调用,然后在调用显示函数时代入地址和内容这两个参数就可以实现在液晶屏上的指定位置显示内容。图4-2液晶显示子程序流程图4-3液晶显示屏的程序展示图4-4系统处理程序部分4.4按键检测程序下图4-3为按键检测程序执行流程,本系统采用独立按键进行设计,因此按键识别程序也采用独立按键识别方式。首先通过单片机IO口判断按键是否下,然后再调用消抖处理,延时一小段时间后再次判断按键是否按下。若第二次判断按键依然按下,则代表按键检测成功,故开启相应的按键处理操作。若第二次判断按键松开,则代表本次按键为异常抖动,故不对本次按键做响应处理。图4-5按键检测子程序流程图图4-6按键程序展示图5实物制作与调试5.1实物调试说明对照设计版本中的加工过程中做了仔细的检测,以及洞洞式电路板,电线尺寸,电源的输入,并且根据所需要的电路单元来准备一个元器件。按照电路原理示意图来进行焊接,首先将供电电路的部分焊接,通电时要检查是否有电压合适后再将其它无源器件焊接。在检验焊接准确性无误后,将电路板安装至测试支架上,接通直流电源测量放大器中的直流工作点,并做出调整,使之能够适应设计需要。检查完硬件设备后,继续检查软件是否存在问题,对系统进行调试和仿真。发现问题及时解决,反复调试。搭建调试平台后,需要对应用程序进行调试。若软件调试没有问题,下一步就是验证系统功能是否符合条件。若函数中有问题,则需要反复调试软件和更改程序,直到满足所有程序和调试功能为止。5.2实物的连接制作在本次设计中选用的是洞洞板来完成电路的连接,面包板的尺寸需要根据所上器件的个数和形态进行选择,本次涉及的有单片机主模块、外围功能模块及触摸屏模块。在焊接时首先要将单片机选取合适位置,便于供电线的接入。主板背面各管脚之间的焊接首要保证牢靠性,避免在运行过程焊点断开,管脚连接的飞线需要做好整理线材的准备,不可出现多组线相互堆叠多重交叉的风险隐患,飞线长度也需要控制合理长度,过长和过短都会带来不好的体验效果,可能影响信号质量。接线方式:每个接线柱下皆有标示,G-接地,I-接+5V另与O-之间加载2.2K上拉电阻即可通过0-输出。压电式压力传感器:压电式效应是压电式传感器的一个重要工作原则,压电传感器还没有被广泛地应用在各种电子元件上,因为它们都是经受外力影响而产生的电荷,只有在回路中的电荷已经具备了无限多个的输入或者阻抗,它们的稳定性才会被保留。其实情况不然,所以也就决定了一个压电传感器只是能够在动态下检测到应力。液位传感器的本质其实就是一个压力传感器,通过对水位压力的检测来反应出水位高度。液位传感器一共有3个引脚,其中2个引脚为电压引脚,模块供电电压为5V,剩下的一个引脚为信号输出引脚。该模块通过输出模拟电压信号来表示压力数据,当模块检测到压力浓度越大时模块输出的电压信号幅值就会越高。所以只需要借助单片机对该模块的输入电压信号高低,那么它就已经可以判定得到当前所检测的压力值数据有多少了。但在本次设计中采用51单片机仅仅能够对数字信号进行处理,并且该电压信号也属于模拟型信号,无法被单片机直接采用。因此,我们在使用外部ad转换芯片时,首先要将模拟信号转化为数码信号,然后再给单片机提供数据中心。最后得到模块输出的信息。图5-1压力传感器实物图采用LCD1602液晶显示屏,该液晶屏不仅可以显示数字,还可以显示英文、图形等信息。该液晶屏可以显示2行数据,采用该屏幕可以将液位高度和上下限值分别显示在不同行,液位数据前面加上英文标注(上限H,下限L),这样就可以起到直观的显示效果。液晶屏采用5V直流供电图5-2液晶显示屏实物图本次实验用到了连个立式水泵,在液位高度低于下限值后,系统会自动开启水泵模块进行加水。因为水泵模块的正常工作电流比较大,采用5V电压给水泵模块供电,然后将供电线路串联在继电器中,通过继电器来控制水泵模块通电和断电,再通过51单片机引脚去控制继电器,从而实现单片机控制水泵模块开启和关闭功能。图5-3水泵的图图5-4最终的实物连接图5.3实物制作解决方案本液位控制器系统调试工作主要包括硬件调试和软件调试两个组成部分,硬件电路中的调试工作可根据软件仿真结果对其进行诊断和处理,而且软件调试工作是其中最重要的一个组成部分,系统的逻辑性功能的实施完全依赖于软件组成部分的正确运行。可以考虑在程序设计完整无误的条件下,结合对单片机的硬件进行仿真,检测其中的一些数据是否正常,若不是异常则必须修改其中一些数据,并对其中一些数据进行调试和对其中一些数据进行检查。在单片机液位控制系统的设计过程中所遇见到的一些问题和解决办法有了详细的介绍。(1)A/D转换不正常本设计要求对来源于A/D的数据进行实时的显示和处理,在该设计阶段,A/D转化的结果每次为0;它是不正常的结果,在有无显示区域内设计错误的情况下,判断A/D转换异常,然后又通过对A/D转换电路和其它软件设计单元可靠性进行了检查和调试,最终结果表明,这是由软件设计错误引起的,该软件不能正确地开启AD转换,在对流程进行了调整之后,使得A/D转换电路可以在系统运行中启动,并把它们实时转换为来自于水压传感器的信号,最后采用一个数字式的水压表显示器把实时水压测量值转换成了水压测量值。(2)键盘操作功能不能完全按照要求实现为了设计能够适用于更多应用场合,液位上下限值可调是一个必要的功能,因而在设计时,采取了独立的按键和调整功能。本系统由于按键的数量相对较少,经过检查,这一组软硬件在设计方面不是很好地出现问题,使用了4个独立的功能按键,其中第三个“模式”按键未能和自己编写的逻辑源代码相符,无法实现。在对“模式”按钮的数据进行切换后,就应该把它们都转移至水压值的上限位置和下界位置,以便于对信号进行相应的处理和显示,,然而它所呈现的依次为水压值的上限,证明了这“模式”键的切换是错误的,在经过几次调试之后,发现已经对于按键做出了判断性处理的程序未能够做出延时性处理,从而导致了程序的执行异常。(3)软件代码问题,逻辑与,或非弄错,更改后正常。6结论与展望基于液位传感器的液位测控系统设计顺利完成,经过系统功能测试后,本系统的功能都达到了预期要求。通过本次设计我掌握了电路设计和程序编写,在此期间我将大学各门课程所学的知识综合利用起来,经过不断调试最终完成本次设计。在设计和调试过程中也遇到很多问题,在设计初期本系统所选用的蜂鸣器在三极管驱动下不能发声。经过询问蜂鸣器供应商后得知,所选择的蜂鸣器种类就是无源蜂鸣器,这些蜂鸣器内部会存在一个晶振,它们全部由电机来驱动,是由电子来控制,驱动蜂鸣器的声音。故将无源蜂鸣器改为有源蜂鸣器,再通过三极管进行驱动,此时只需要通过单片机输出高低电平就可以实现蜂鸣器报警控制。经过多次RFID检测后均实现了逃单检测以及蜂鸣器报警功能。在设计中主要有液位检测问题较难解决,因为液位检测是整个系统设计的核心,液位浓度检测不仅需要精确检测数据还要保持检测数据的稳定性。在液位浓度检测中采用的电路方案是液位传感器+AD转换芯片,电路设计中采用ADC0832芯片,AD芯片的分辨率是影响液位检测精度的重要因素。方案中所采用的ADC0832是一款8位精度的AD芯片,应用在液位测控系统设计中其转换分辨率是足够的。在实物测试初期,液晶屏上的液位高度检测结果并不灵敏,经过硬件电路检查后发现是软件问题,针对检测结果不灵敏的现象进行分析,得出结论应该是液位检测函数调用间隔太久,或是液晶显示函数调用间隔太久导致。结合这两个可能导致问题的原因去修改程序,经过程序调整后液位高度检测结果趋于正常,同时液晶屏上的液位高度也能够实时变化,系统响应变得更加灵敏。本文设计虽然完成了最终成果,但由于笔者缺乏足够的专业知识,对于一些研究上还存在一些不足点,还需要进一步去完善。首先在单片机电路设计上,由于自己能力有限,电路设计中选用了比较简单的系统。其次在芯片系统的灵敏度上还需要进一步的改善,增强芯片系统的灵敏性。此外在设计液位测控方面的传感器和芯片,还需要进一步的探索与研究。

参考文献刘继勇;刘星.液位测控系统的可靠性设计.西安工业学院学报.2003年(03):37-41李敏哲;赵继印;李建坡.基于超声波传感器的无线液位测量系统.仪表技术与传感器.2005年(11):38-3

温馨提示

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

评论

0/150

提交评论