找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6308|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机水温水位控制系统设计论文下载

[复制链接]
跳转到指定楼层
楼主
摘 要

本温度设计采用现常见的89C51单片机,配以DS18B20数字温度传感器,该温度传感器可自行设置温度上下限。单片机将检测到的温度信号与输入的温度上、下限进行比较,由此作出判断是否启动继电器以开启设备。系统包括单片机模块、温度检测模块、水位检测模块和驱动电路设计四个部分。文中对每个部分功能、实现过程作了详细介绍。

目录
一.概述
1.1课题研究的目的及意义
1.2技术指标
二.总体设计方案
三.详细设计方案
1.1温度检测系统
1.2水位检测系统
四.元件说明
1.1 工作原理
1.2单片机的选择
1.3温度传感器
1.4水位传感器
1.5 显示元件
五.硬件模块设计
1.1单片机模块设计
1.2温度检测模块
1.3水位检测模块
1.4 控制模块
1.5 驱动电路设计
六.软件设计
1.2 温度检测系统
1.3 水位检测系统
1.4 DS18B20主程序
七.结论
八.参考文献
附  录
单片机与显示器件连接图
系统软件源代码

一.概述
1.1课题研究的目的及意义
   目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便登问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能。即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能。鉴于此,我以89C51单片机为检测控制核心,采用数码管显示温度,设计了一种太阳能热水器微控制器,实现了温度和水位参数的实时显示,具有温度设定、水位控制功能。
1.2技术指标
设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一定范围内由人工设定,并能在炉温变化时实现自动控制。若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。
⑴温度设定范围为0~99℃,最小区分度为1℃,温度控制的误差≤1℃
⑵能够用数码管精确显示当前实际温度值
⑶按键控制:设置键、加一键、减一键
二.总体设计方案
   以89C51为主控制芯片,温度采集采用DS18B20温度传感器,通过外围电路来采集水位,用四位数码管显示当前的水温,用LED灯指示水位,并且通过键盘来输入所需控制的水温。并且当水温水位超于限制时启动报警系统。如图2.1总体设计方案图所示。


图2.1 总体设计方案图
三.详细设计方案3.1 总体结构设计
方案一:测温电路的设计,可以使用DS18B20温度传感器利用其感温效应,在将随被测温度变化的电压或电流采集后,把采样得到的模拟信号送入ADC0809进行A/D转换读入单片机进行A/D转换后,通过串行口输入,就可以用单片机进行数据的处理,同时在显示电路上,就可以将被测温度显示出来。
方案二:考虑使用温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行A/D转换,依次完成设计要求。

比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。

在本系统的电路设计方框图如图3.1.1.2所示,它由三部分组成:

⑴主控芯片89C51;

⑵数据显示部分;

⑶传感器部分。

图3.1.1 温度计电路总体设计方案

(1)控制部分

采用传统的数字模似电路,功能可以实现,但电路复杂,温度误差大,成本高,可靠性也比较差;于是我选择采用单片机89C51控制,它结构简单,可以减少外围电路的搭接,并且89C51使用方便,成本比较低,性能稳定,还可以控制各模块输入输出。但是由于其不能直接进行模数转换,因此要做外围电路设计中加AD0809芯片。

(2)显示部分

四位一体的共阳数码管,

(3)传感器部分

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度经数模转换后通过数据引脚传到单片机的P1口,单片机接受温度并存储。此部分只用到DS18B20、AD0809和单片机,硬件很简单。

3.2水位检测系统
              对于水位进行控制的方式有很多,而应用较多的主要有3种,三种方式的实现如下:
方案一:简单的机械式控制方式。其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。
方案二:利用单片机进行水位检测和控制,基于数字电路的全自动控制,其工作过程是被测水位经过模拟信号采集模块进行采样,然后把采样得到的模拟信号送入ADC0809进行A/D转换读入单片机,再由单片机进行处理,得出结果是否启动/停止控制电路执行信号以达到水位的控制,具体硬件流程框图入图3.2.1所示。

图3.2.1 方案二具体流程框图
方案三:采用89C51单片机为核心控制器的电路。因为单片机电路结构简单成本低廉、可靠性高,便于实现各个控制功能能很好的完成设计任务。水位检测由本设计使用的电极式水位传感器通过检测来实现水位的改变。获得当前水位并通过LED灯显示。
综合以上三种方案,方案一和方案二由于缺少温度检测模块,而水温也是影响太阳能热水器很重要的一方面:比如说水箱中水温度过高导致水沸腾这时候虽然水所在刻度不是满的,实际上已经溢出,这样说来方案一和方案二的设计算不上智能。方案三是在方案二的基础上完善和加强的,采用单片机键的双边通信,比起方案二更加方便,也更加合理。
四.元件说明4.1 工作原理
本文阐述了基于单片机的水温水位控制系统的设计方法,此种方法是以89C51单片机为主控制单元,对水温水位参数进行控制,从而提高了电器的工作稳定性。以DS18B20为温度传感器的对水温进行数据采集并实现温度控制。该控制系统还可以实时存储相关的温度数据以及水位高度并能记录当前的时间。为了实现功能本系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括89C51单片机最小系统,测温电路、测水位电路、LCD12864液晶显示电路以及报警电路、键盘输入参数等。系统程序主要包括主程序,读出温度子程序,计算温度子程序、水位显示子程序、按键处理程序、12864液晶显示程序以及数据存储程序以及时间显示程序等
4.2单片机的选择

单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择89C51作为主控芯片。

89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。它是美国ATMEL公司的低电压,高性能CMOS8位单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。             
1.3温度传感器
美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
1.3.1 DS18B20性能及结构

DS18B20原理与特性本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先先来介绍一下DS18B20这块传感器的特性及其功能: DSl8B20的管脚及特点 DS18B20可编程温度传感器有3个管脚。内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图4.1.3.1

图4.1.3.1 DS18B20的外形及管脚图
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.O~5.5 V。本文使用外部电源供电。
主要特点有: 1. 用户可自设定报警上下限温度值。 2. 不需要外部组件,能测量-55~+125℃ 范围内的温度。 3. -10℃ ~+85℃ 范围内的测温准确度为±0.5℃ 。 4. 通过编程可实现9~l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达0.0625℃ 。 5. 独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。6. 测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

DS18B20的内部结构 DS18B20内部功能模块如图4.1.3.2所示,
图4.1.3.2 DS18B20内部功能模块

1.3.2 DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同DS18B20 为9位~12位A/D转换精度,而DS1820为9位A/D转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。如下图的测温原理图不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图4.1.3.3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值时。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直
到计数器2计数到0时,停止温度寄存器值。
图4.1.3.3 DS18B20原理图
1.3.3  DS18B20使用中注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
  ⑴较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。
  ⑵在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
  ⑶连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
  ⑷在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。 测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
1.4水位传感器

单片机水塔水位控制原理如图l所示,图中的虚线表示允许水位变化的上、下限位置。在正常情况下.水位应控制在虚线范围之内。为此,在水塔内的不同高度处,安装固定不变的3根金属棒A、B、C。用以反映水位变化的情况。其中,A棒在下限水位.B棒在上、下限水位之间,C棒在上限水位(底端靠近水池底部.不能过低,要保证有足够大的流水量)。水塔由电机带动水泵供水。单片机控制电机转动,随着供水,水位不断上升.当水位上升到上限水位时,由于水的导电作用。使B、C棒均与+5 V连通。因此b、C两端的电压都为+5 V即为。l”状态,此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时。B棒和A棒导通.而C棒不能与A棒导通,b端为“r状态。C端为“O”状态。此时电机带动水泵给水塔注水,使水位上升,还是电机不工作,水位不断下降,都应继续维持原有工作状态;当水位处于下限位置以下时,B、C棒均不能与A棒导通,b、c均为“0”状态。此时应启动电机转动,带动水泵给水塔注水。

1.5 显示元件
五.硬件模块设计1.1单片机模块设计
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。本控制模块由单片机89C51及其外围电成,电路如图5.1.1所示。


图5.1.1  单片机控制模块电路
该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Ω的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KΩ的电阻对10KμF的电容C5重新充电,RST引脚端出现复位正脉冲.
AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振Y1选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。
单片机的31脚(EA)接+5V电源,表示允许使用片内ROM。
1.2温度检测模块
温度由DALLAS 公司生产的一线式数字温度传感器DS18B20 采集。DS18B20 测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16 位补码形式串行输出。CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
本设计采用三引脚PR-35封装的DS18B20,其引脚图见图5.1.2。Vcc接外部+5V电源,GND接地,I/O与单片机的P3.4(T0)引脚相连。


                  图5.1.2 温度传感器电路引脚图

1.3水位检测模块

1.3.1 传感器电路

    作原理图如5.1.3.1所示


图5.1.3.1压阻式压力传感器原理图

1.3.2 时钟电路与复位电路

要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。复位操作有上电自动复位和按键手动复位两种方式。我们采用上电自动复位,其是通过外部复位电路的电容充电来实现的。其电路图如图2-16(a)所示。这样,只要电源的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。关于参数的选定,在振荡稳定后应保证复位信号高电平持续时间大于2个机器周期。当采用的晶体频率为6 MHz时,可采用C=22µF,R=1kΩ;当采用的晶体频率为12 MHz时,可采用C=10µF,R=8.2kΩ。

图2-16复位电路

如果上述电路复位不仅要使单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻、电容参考值应作少许调整。

对于CMOS型的89C51,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。

1.3.3 A/D采集转换电路

本系统A/D芯片所选用的是ADC0809,该大规模集成电路芯片是一种由单一+5V电源供电,采用逐次逼近转换原理,能够对8路0—+5V输入模拟电压进行分时转换的八位并行通用型可编程模数转换器。ADC0809由单片机控制驱动,对传感器进行定式循环采集,然后单片机将各测量参数传至PC机,进行后台数据处理。电路连接如图5.1.3.3。


                  图5.1.3.3 A/D转换电路图

1.3.4 按键设计

键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。

图5.1.3.4 系统按键电路

1.4 控制模块
   控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用三极管来驱动外围电路,三极管选用NPN型的 9014,当检测温度低于设定温度时,在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热。控制电路电路图如图5.1.4所示。

图5.1.4  控制电路

1.5 驱动电路设计
    在单片机控制系统中,需要用开关量去控制和驱动一些执行元件,如发光二极管、继电器等。但89C51单片机驱动能力有限,且高电平比低电平驱动低。一般情况下,需要加驱动接口电路,且用低电平驱动。如图5.1.5所示
图5.1.5驱动电路

六.软件设计
1.1 系统软件设计整体思路
程序设计语言有三种:机器语言、汇编语言和高级语言。机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。
高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占用较多的存储空间,适合于存储容量较小的系统。同时,本系统对位处理要求很高,需要解决大量的逻辑控制问题。
1.2 温度检测系统
1.2.1 系统流程图

图6.1.2.1 系统流程图


1.2.2 程序编写

程序的功能是:启动DS18B20测量温度,将测量值与给定值进行比较,若测得温度小于设定值,则进入加热阶段,置P1.1为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置P1.1为高电平断开可控硅, 关闭加热器,等待下一次的启动命令。当测得温度大于设定值,则进入降温阶段,则置P1.2为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置P1.2为高电平断开,关闭风扇,等待下一次的启动命令。

1.3 水位检测系统

1.3.1系统主程序流程图


七.结论
本文详细介绍了基于单片机89C51的温度控制系统的设计方案与软硬件实现。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务,达到了预期的目标。系统具有如下特点:
⑴.采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;
⑵.89C51单片机的采用,有利于功能扩展;
⑶.电路设计充分考虑了系统可靠性和安全性。
本课题软件和硬件相结合,有相当的难度,同时也有很大的实用性。



完整的Word格式文档51黑下载地址(仿真+源码):
http://www.51hei.com/bbs/dpj-126041-1.html



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:435807 发表于 2018-11-29 15:43 | 只看该作者
真好
回复

使用道具 举报

板凳
ID:560788 发表于 2019-12-5 12:49 | 只看该作者
刚好需要,但好像下载不了啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表