51单片机水温水位控制系统0001.docx
《51单片机水温水位控制系统0001.docx》由会员分享,可在线阅读,更多相关《51单片机水温水位控制系统0001.docx(24页珍藏版)》请在冰点文库上搜索。
![51单片机水温水位控制系统0001.docx](https://file1.bingdoc.com/fileroot1/2023-6/30/785e5c2b-8171-427f-bdbd-eb3f2739e7e8/785e5c2b-8171-427f-bdbd-eb3f2739e7e81.gif)
51单片机水温水位控制系统0001
本温度设计采用现常见的89C51单片机,配以DS18B20数字温度传感器,该温度传感器可自行设置温度上下限。
单片机将检测到的温度信号与输入的温度上、下限进行比较,由此作出判断是否启动继电器以开启设备。
系统包括单片机模块、温度检测模块、水位检测模块和驱动电路设计四个部分。
文中对每个部分功能、实现过程作了详细介绍。
关键词:
DS18B20数字温度传感器89C51水温水位
1.概述
1.1课题研究的目的及意义3
1.2技术指标3
2.总体设计方案3
3.详细设计方案3
1.1温度检测系统3
1.2水位检测系统5
4.元件说明6
1.1工作原理6
1.2单片机的选择6
1.3温度传感器8
1.4水位传感器11
1.5显示元件11
5.硬件模块设计12
1.1单片机模块设计12
1.2温度检测模块13
1.3水位检测模块14
1.4控制模块15
1.5驱动电路设计15
6.
软件设计16
.概述
1.1课题研究的目的及意义
目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便登问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能。
即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能。
鉴于此,我以89C51单片机为检测控制核心,采用数码管显示温度,设计了一种太阳能热水器微控制器,实现了温度和水位参数的实时显示,具有温度设定、水位控制功能。
1.2技术指标
设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。
炉温可以
在一定范围内由人工设定,并能在炉温变化时实现自动控制。
若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。
当温度低于设定值时,单片机发出一个控制信号,启动加热器。
通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。
⑴温度设定范围为0〜99C,最小区分度为「C,温度控制的误差W1C
⑵能够用数码管精确显示当前实际温度值
⑶按键控制:
设置键、加一键、减一键
2.总体设计方案
以89C51为主控制芯片,温度采集采用DS18B20温度传感器,通过外围电路来采集水位,用四位数码管显示当前的水温,用LED灯指示水位,并且通过键盘来输入所需控制的水温。
并且当水温水位超于限制时启动报警系统。
如图2.1总体设计
方案图所示。
图2.1总体设计方案图
3.详细设计方案
3.1总体结构设计
方案一:
测温电路的设计,可以使用DS18B20温度传感器利用其感温效应,在将随被测温度变化的电压或电流采集后,把采样得到的模拟信号送入ADC0809
进行A/D转换读入单片机进行A/D转换后,通过串行口输入,就可以用单片机进
行数据的处理,同时在显示电路上,就可以将被测温度显示出来。
方案二:
考虑使用温度传感器,结合单片机电路设计,采用一只DS18B20温
度传感器,直接读取被测温度值,之后进行A/D转换,依次完成设计要求。
比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。
在本系统的电路设计方框图如图3.1.1.2所示,它由三部分组成:
⑴主控芯片89C51;
⑵数据显示部分;
⑶传感器部分。
图3.1.1温度计电路总体设计方案
(1)控制部分
采用传统的数字模似电路,功能可以实现,但电路复杂,温度误差大,成本高,
可靠性也比较差;于是我选择采用单片机89C51控制,它结构简单,可以减少外围电路的搭接,并且89C51使用方便,成本比较低,性能稳定,还可以控制各模块输入输出。
但是由于其不能直接进行模数转换,因此要做外围电路设计中加AD0809-H-UL
心片。
(2)显示部分
四位一体的共阳数码管,
(3)传感器部分
DS18B20温度传感器是美国DALLAS^导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。
这一部分主要完成对温度信号的采集和转换工作,由DS18B2C数字温度传感器及其与单片机的接口部分组成。
数字温度传感器DS18B20B采集到的温度经数模转换后通过数据引脚传到单片机的P1口,单片机接受温度并存储。
此部分只用到DS18B20AD0809和单片机,硬件很简单。
3.2水位检测系统
对于水位进行控制的方式有很多,而应用较多的主要有3种,三种方式的实现如下:
方案一:
简单的机械式控制方式。
其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。
方案二:
利用单片机进行水位检测和控制,基于数字电路的全自动控制,其工作过程是被测水位经过模拟信号采集模块进行采样,然后把采样得到的模拟信号送入ADC0809进行A/D转换读入单片机,再由单片机进行处理,得出结果是否启动/
停止控制电路执行信号以达到水位的控制,具体硬件流程框图入图3.2.1所示。
图3.2.1方案二具体流程框图
方案三:
采用89C51单片机为核心控制器的电路。
因为单片机电路结构简单成本低廉、可靠性高,便于实现各个控制功能能很好的完成设计任务。
水位检测由本设计使用的电极式水位传感器通过检测来实现水位的改变。
获得当前水位并通过LED灯显示。
综合以上三种方案,方案一和方案二由于缺少温度检测模块,而水温也是影响太阳能热水器很重要的一方面:
比如说水箱中水温度过高导致水沸腾这时候虽然水所在刻度不是满的,实际上已经溢出,这样说来方案一和方案二的设计算不上智能。
方案三是在方案二的基础上完善和加强的,采用单片机键的双边通信,比起方案二更加方便,也更加合理。
4.元件说明
4.1工作原理
本文阐述了基于单片机的水温水位控制系统的设计方法,此种方法是以89C51
单片机为主控制单元,对水温水位参数进行控制,从而提高了电器的工作稳定性。
以DS18B20为温度传感器的对水温进行数据采集并实现温度控制。
该控制系统还可
以实时存储相关的温度数据以及水位高度并能记录当前的时间。
为了实现功能本系
统设计了相关的硬件电路和相关应用程序。
硬件电路主要包括89C51单片机最小系统,测温电路、测水位电路、LCD12864液晶显示电路以及报警电路、键盘输入参数等。
系统程序主要包括主程序,读出温度子程序,计算温度子程序、水位显示子程序、按键处理程序、12864液晶显示程序以及数据存储程序以及时间显示程序等
4.2单片机的选择
单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择89C51作为主控芯片。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
它是美国ATME公司的低电压,高性能CMOS位单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEI高密度非易失存储器制造技术制造,与工业标准的MCS-51旨令集和输出管脚相兼容。
由于将多功能8位CPU
和闪烁存储器组合在单个芯片中,ATMEL勺89C51是一种高效微控制器,89C2051
是它的一种精简版本。
89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
实物图如图4.1.2所示。
图4.1.2所示实物图
1.2.1主要特性:
⑴与MCS-51兼容
⑵4K字节可编程闪烁存储器寿命:
1000写/擦循环数据保留时间:
10年
⑶全静态工作:
0Hz-24Hz
⑷三级程序存储器锁定
(5)128*8位内部RAM
⑹32可编程I/O线
⑺两个16位定时器/计数器
⑻5个中断源
⑼可编程串行通道
⑽低功耗的闲置和掉电模式
(11)片内振荡器和时钟电路
1.2.2管脚说明:
VCC供电电压。
GND接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASHS程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“T时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INTO(外部中断0)
P3.3/INT1(外部中断1)
P3.4TO(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平
时间。
ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的
频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出
的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8E!
地址上置0。
此时,ALE只有在执行MOV,MOV指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
弓|脚图如下图4.122所示
F1.0E
1
^40~
]Vcc
Pl.1
L
z
39
JP0.o/ado
F1.2
C
3
3&
]FO.1/AB1
P1.3
r
斗
37
JP0.2/AD2
P1.4
r
5
3B
]P0.3/AD3
FI.5
[
e
35
]PD.4/AD4
P1.6
r
7
34
1P0.5/AD5
F1.7
E
e
33
]P06/AD6
RESET
r
9
32
]P0.t/adt
EXD/F3.0
[
1C
31
1ea/vdd
TXD/F3.1
[
11
30
]ALE/PROC
IHT0/P3.2
[
12
29
JPSEK
IHT1/P3.3
c
13
28
]F2.7/AD15
T0/F3P4
E
14
27
]P2.6/AD14
T1/F3.5
r
15
2&
]F2.5/AB13
L
IE
25
]P2.4/AD12
RD/P3T
[
IT
24
1P2.3/AB1L
KULZ
c
IS
23
]P2.2/1D10
KTAL1
19
22
】P2.1/AD9
PDIPVee
c
20
21
]曲0/AD6
图4.122引
1.3温度传感器
II
美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持
一线总线"接口的温度传感器,在其内部使用了在板(ON-BOARD专利技术。
1.3.1DS18B20性能及结构
DS18B2原理与特性本系统采用了DS18B2单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。
首先先来介绍一下DS18B20这块传感器的特性及其功能:
DS18B20的管脚及特点DS18B20可编程温度传感器有3个管脚。
内部结构主要由四部分组成:
64位光刻ROM温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B2O勺外形及管脚排列如下
图4.131
引脚图说明
SfC
UNL1
DQ为樂字信号输入/■输出端
CJiD为电源地
VDD为外按供电电鯨渝入湍
图4.131DS18B20的外形及管脚图
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相
连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.S
5.5V。
本文使用外部电源供电。
主要特点有:
1.用户可自设定报警上下限温度值。
2.不需要外部组件,能测量一55〜+125C范围内的温度。
3.—10C〜+85C范围内的测温准确度为±0.5C。
4.通过编程可实现9〜12位的数字读数方式,可在至多750ms内将温度转换成12位的数字,测温分辨率可达0.0625E。
5.独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。
6.测量结果
直接输出数字温度信号,以"一线总线"串行传送给CPU同时可传送CRC校验码,具有极强的抗干扰纠错能力。
7.负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
8.DS18B20支持多点组网功能,多个DS18B2削以并联在唯一的三线上,实现组网多点测温。
图4.1.3.2DS18B20内部功能模块
1.3.2DS18B20工作原理
DS18B20勺读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同DS18B20为9位〜12位A/D转换精度,而DS1820为9位A/D转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
如下图的测温原理图不同,且温度转换时的延时时间由2s减为750msDS18B20测温原理如图4.1.3.3所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55C所对应的一个基数值时。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直
到计数器2计数到0时,停止温度寄存器值。
计数器
谆止
图4.133DS18B20原理图
1.3.3DS18B20使用中注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
⑴较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理
器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS18B2C操作部分最好采用汇编语言实现。
⑵在DS18B20勺有关资料中均未提及单总线上所挂DS18B2C数量问题,容易使人误认为可以挂任意多个DS18B20在实际应用中并非如此。
当单总线上所挂DS18B2C超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
⑶连接DS18B20勺总线电缆是有长度限制的。
试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。
当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。
这种情况主要是由总线分布电容使信号波形产生畸变造成的。
因此,在用DS18B2C进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
⑷在DS18B2C测温程序设计中,向DS18B2C发出温度转换命令后,程序要等待DS18B20勺返回信号,一旦某个DS18B2C接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
这一点在进行DS1820硬件连接和软件设
计时也要给予一定的重视。
测温电缆线建议采用屏蔽4芯双绞线,其中一对线接
地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
1.4水位传感器
单片机水塔水位控制原理如图I所示,图中的虚线表示允许水位变化的上、下限位置。
在正常情况下.水位应控制在虚线范围之内。
为此,在水塔内的不同高度处,安装固定不变的3根金属棒A、B、C。
用以反映水位变化的情况。
其中,A捧在下限水位.B棒在上、下限水位之间,C棒在上限水位(底端靠近水池底部.不能过
低,要保证有足够大的流水量)。
水塔由电机带动水泵供水。
单片机控制电机转动,随着供水,水位不断上升•当水位上升到上限水位时,由于水的导电作用。
使BC
棒均与+5V连通。
因此b、C两端的电压都为+5V即为。
I”状态,此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时。
B棒和A棒导通•而C
棒不能与A棒导通,b端为“r状态。
C端为“O'状态。
此时电机带动水泵给水塔注水,使水位上升,还是电机不工作,水位不断下降,都应继续维持原有工作状态;当水位处于下限位置以下时,B、C棒均不能与A棒导通,b、c均为“0”状态。
此时应启动电机转动,带动水泵给水塔注水。
圈1水塔水也整制原理图
1.5显示元件
5.硬件模块设计
1.1单片机模块设计
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值
的设定与温度越限时控制电路的启动。
本控制模块由单片机89C51及其外围电成,
电路如图5.1.1所示。
'll
+5V
U1
RST
38
.2K
10
11
VCC
EA
P3.0/RXD
P3.1/TXD
P0.0
P3.4/TOP0.1
P0.2
39
38
3P0.2
-^C6
■L~pP
XTAL1
GND
AT89S51
18
19
20
亠Y1
I12M
C7T
30P
XTAL2
该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Q的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KQ的电阻对10®F的电容C5重新充电,RST引脚端出现复位正脉冲.
AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振丫1选择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.131所示
图5.1.3.1压阻式压力传感器原理图
1.3.2时钟电路与复位电路
要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的
晶振提供系统时钟。
并附加复位电路,组成单片机最小系统。
复位操作有上电自动复位和按键手动复位两种方式。
我们采用上电自动复位,其是通过外部复位电路的
U2
VCC
P1.0
VCC
DQ
GND
DS18B20—
电容充电来实现的。
其电路图如图2-16(a)所示。
这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。
关
于参数的选定,在振荡稳定后应保证复位信号高电平持续时间大于2个机器周期当采用的晶体频率为6MHz时,可采用C=22^F,R=1kQ;当采用的晶体频率为12
MHz时,可采用C=10^F,R=8.2kQ0
Vcc
C
10uF
Vcc
89C51
RST
□R1
8.2K
Vss
图2-16复位电路
如果上述电路复位不仅要使单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻、电容参考值应作少许调整。
对于CMOS型的89C51,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1pFo
1.3.3A/D采集转换电路
本系统A/D芯片所选用的是ADC0809该大规模集成电路芯片是一种由单一+5V电源供电,采用逐次逼近转换原理,能够对8路0—+5V输入模拟电压进行分时转换的八位并行通用型可编程模数转换器。
ADC080抽单片机控制驱动,对传感器进行定式循环采集,然后单片机将各测量参数传至PC机,进行后台数据处理。
电路
连接如图5.1.3.3o
图5.1.3.3A/D转换电路图
1.3.4按键设计
键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。
考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。
在程序查询方式下,通过I/O端口读入按键
状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态列断是否有按键按下。
图S.WnD系统
+5V
1.4控制模块
吓39
1K
0.2口相连,由R32
三极管选用~NR
控制电路与单片机的
三极管来驱动外围电路p0.2在单片机的