水温水位控制系统2.docx
《水温水位控制系统2.docx》由会员分享,可在线阅读,更多相关《水温水位控制系统2.docx(33页珍藏版)》请在冰豆网上搜索。
水温水位控制系统2
机械电子工程学院
毕业论文(设计)
论文题目水温水位检测系统的设计
专业机电一体化技术
班级机电0905班
学生姓名郭金枝
学号51020109145
指导教师付晓军
2012年05月13日
摘要
温度的精度控制一直是个难题,因此为了实现高精度的水温水位控制,我的论文介绍了一种以AT89C51单片机为控制核心,采用一种数字温度传感器(DS18B20)为温度采集器来实现水温的控制。
论文着重介绍核心器件的选择、各部分电路设计及软件的实现。
AT89C51单片机完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统具有电路结构简单、程序简短、系统可靠性高的特点。
水位以AT89C51单片机检测缺水、溢流,实现自动控制;温度采集采用数字温度传感器(DS18B20),不需要复杂的信号调理电路和A/D转换电路,简单的数字处理电路大大降低了硬件和软件的设计复杂度,直接与单片机完成数据的采集和处理;采用LCD1602液晶实时显示温度值,实现方便、简单。
本系统根据不同需要可用于各种场合。
【关键词】AT89C51单片机,DS18B20,LCD1602
Abstract
Thetemperaturehasbeenadifficultproblemaccuracycontrolof,soinordertorealizehighprecisiontemperaturelevelcontrol,mypaperintroducesanAT89C51ascontrolcore,usingadigitaltemperaturesensor(DS18B20)fortemperaturewatertemperaturecontrolunittorealize.Thispapermainlyintroducesthecoredeviceofchoice,eachpartcircuitdesignandsoftwarerealization.AT89C51perfectinternalstructure,excellentperformanceandpowerfulinterrupthandlingability,decidedthecontrolsystemhasthecircuitissimpleinstructure,proceduresbrief,systemreliabilityhighcharacteristic.WaterleveldetectionbyAT89C51,watershortage,therealizationofautomaticcontroloverflow;Temperaturegatheringadoptingdigitaltemperaturesensor(DS18B20),notinneedofsophisticatedsignalregulatecircuitandA/Dcircuit,simpledigitalprocessingcircuitgreatlyreducesthehardwareandsoftwaredesigncomplexity,directandsingle-chipcommputercompletesdataacquisitionandprocessing;LCD1602LCDdisplaybytemperature,realizeconvenient,simple.Thissystemcanbeusedaccordingtodifferentrequirementsonvariousoccasions.
【Keywords】AT89C51microcontroller,DS18B20,LCD1602
目录
引言5
第一章系统方案设计6
(一)水温水位控制系统的设计任务和要求6
(二)系统总体方案的选择6
(三)温度传感器的选择7
第二章元器件介绍及硬件电路设计8
(一)元器件介绍8
(二)硬件电路设计15
第三章系统软件设计19
(一)程序结构说明19
(二)程序流程图19
(三)操作指引24
第四章实验测试25
(一)LCD1602显示“ABCD1234”25
(二)键盘及数字显示结合25
(三)整机调试25
第五章设计总结27
致谢28
参考文献29
引言
上个世纪,由于工业过程控制的需要,特别是电子技术的迅猛发展,以及在自动控制理论和设计方法的推动下,温度控制系统发展迅速,并在智能化、自适应参数、自整定等方面取得了优异成果。
现在的温度控制系统及仪器仪表正朝着高精度、智能化、小型化等方面快速发展。
温度控制系统在各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等技术先进的国家相比,仍然有着较大的差距。
成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且应用于较高控制场合的智能化、自适应控制仪表国内的技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。
温度、压力、流量和液位是四种最常见的过程变量,其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。
温度控制在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。
温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。
尽管温度控制很重要,但是要控制好温度常常会遇到意想不到的困难。
随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大、本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。
本文主要介绍以单片机控制温度的系统设计过程,其中涉及系统结构设计、元器件的选取、程序的调试和系统参数的整定。
在系统构建时选取了AT89C51芯片作为该控制系统的核心,温度信号由新型的可编程温度传感器(DS18B20)提供。
通过软件实现对水温的控制,使用继电器作执行部件对水位的自动控制。
系统控制对象为水箱。
水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性与较小的超调。
该系统为一实验系统,要求系统有控制能力,实现对主要可变参数的实时监控。
使用软件编程既减少了系统设计的工作量,又提高了系统开发的速度,使用软件还可以提高所设计系统的稳定性。
第一章系统方案设计
(一)水温水位控制系统的设计任务和要求
该系统为一实验系统,系统设计任务:
设计一个水温水位自动控制系统,控制对象为水箱。
水位实现自动加水和自动溢出控制,水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。
利用AT89C51单片机实现对水温的智能控制,使水温在设定温度下控制温度恒定。
利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在LCD1602液晶上。
系统设计具体要求:
(1)由键盘设定温度,设定范围为40一90℃,最小区分度为l℃,标定温差<1。
(2)温度低于设定温度值时加热,温度高于设定值时降温
(3)用LCD1602液晶实时显示水的实际温度。
(4)实现容器中无水时自动加水,溢出自动控制,防止烧干,故障报警。
(5)环境温度降低时(例如用电风扇降温)温度控制约静态误差<1
(二)系统总体方案的选择
1方案一(如图1-1)此方案是传统的二位式模拟控制方案,其基本思想与方案采用上下限比较电路,控制精度比较高。
这种方法还是模拟控制方法,因此也不能实现复杂的控制算法使控制温度做的更精确。
而且不能用数码管显示和键盘设定。
图1-1模拟电路
2方案二(如图1-2)此方案采用AT89C51单片机系统来实现。
单片机软件编程灵活,自由度大,可用软件编程实现各种控制算法和逻辑控制【1】。
单片机系统可用数码管显示水温的实际值,能用键盘输入设定值等功能。
本方案选用了AT89C51芯片,不需要外扩展存储器,可使系统整体结构更为简单。
3方案论证方案一是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。
而方案二是采用以AT89C51为控制核心的单片机控制系统,尤其对温度控制,可以达到模拟控制所达不到的控制效果,并且可以实现显示、键盘设定,报警等功能。
大大提高系统的智能化,也使得系统所测结果的精度大大提高了。
所以本次设计采用方案二。
图1-2温度控制系统框图
(三)温度传感器的选择
本设计方案的选择主要是感温元件的选择,经查阅资料,IC式感温器在市场上应用比较广泛的有以下几种:
1AD590:
电流输出型的测温组件,温度每升高1摄氏度K(凯式温度),电流增加1μA,温度测量范围在一55℃~150℃之间。
其所采集到的数据需经A/D转换,才能得到实际的温度值。
2DS18B20:
除了测量温度外,它还可以把温度值以数字的方式(9Bit)送出,温度送出的精度为0.5℃,温度测量范围在-55℃—125℃之间,可以做恒温控制。
3SMARTEC感温组件:
这是一只3个管脚感温IC,温度测量范围在-45℃~13℃,误差可以保持在0.7℃以内。
本设计选用DS18B20感温IC,这是因其性能参数符合设计要求,接口简单,内部集成了A/D转换,测温更简便,精度较高,反应速度快,且经过市场考察,该芯片易购买,使用方便。
第二章元器件介绍及硬件电路设计
(一)元器件介绍
1温度传感器
温度传感器选用可编程温度传感器(DS18B20)芯片。
DS18B20是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户使用带来了更多方便。
(1)DS18B20产品的特点
(a)单线接口:
仅需一根线与单片机相连;
(b)由用总线提供电源,也可用数据线供电,电压范围:
3.0~5.5V;
(c)测温范围为-55℃~+125℃,在-10~85℃时,精度为0.5℃;
(d)可编程的分辨率为9~12位,对应的分辨率为0.5~0.0625℃;
(e)用户可编程的温度报警设置;
(f)12位分辨率时最多在750ms内把温度值转换为数字量。
(2)DS18B20的引脚介绍
DS18B20可编程温度传感器有3个管脚。
(如图2-1)GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.O~5.5V【7】。
本文使用外部电源供电。
图2-1DS18B20管脚
(3)DS18B20的内部结构
DS18B20内部功能模块主要由4部分组成:
64位光刻R0M、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。
R0M中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。
高低温报警触发器TH和TL,配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对TH,TL或配置寄存器写入。
配置寄存器中R1,R0决定温度转换的精度位数:
R1R0=’00’,9位精度,最大转换时间为93.75ms;R1R0=‘01’,10位精度,最大转换时间为187.5ms;R1R0=‘10’,11位精度,最大转换时间为375ms;R1R0=’11’,12位精度,最大转换时间为750ms;未编程时默认为12位精度。
(4)DS18B20的使用方法
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输【8】,而对AT89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序
图2-2DS18B20的复位时序图
DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时序是从主机把单总线拉低之后,在15us之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20要完成一个读时序过程,至少需要60us才能完成。
图2-3DS18B20的读时序图
DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程【10】。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图2-4DS18B20的写时序图
2AT89C51的特性
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器和128byt的随机存取数据存储器(RAM),兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51主要的功能特点如下:
(1)兼容MCS-51指令系统
(2)32个双向I/O口
(3)两个16位可编程定时/计数器
(4)一个串行中断
(5)两个外部中断源
(6)可直接驱动LED
(7)低功耗空闲和掉电模式
(8)4K可反复查写ROM
(9)3级加密位
(10)全静态操作0MHz-24MHz
(11)软件设置睡眠和唤醒功能
3LCD1602液晶
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,市面上字符液晶绝大多数是基于HD44780液晶芯片,HD44780是带西文字库的液晶显示控制器,用户只需要向HD44780送ASCII的字符码,HD44780就按照内置的ROM点阵发生器自动在LCD液晶显示器上显示出来。
所以,HD44780主要适用于显示西文ASCII字符内容的液晶显示。
1602字符型LCD能够同时显示16*2即32个字符(16列2行)。
其内置192种字符(160个5*7点阵字符和32个5*10点阵字符),具有64个字节的自定义字符RAM,可自定义8个5*8点阵字符或4个5*11点阵字符。
1602通常有14条引脚线或16条引脚线两种,多出来的2条线是背光电源线和地线,带背光的比不带背光的略厚,控制原理与14脚的LCD完全一样,是否带背光在应用中并无差别。
本设计中采用带背光16引脚线的。
其主要技术参数为:
显示容量:
16×2个字符。
芯片工作电压:
4.5-5.5V。
工作电流:
2.0mA(5.0V)。
模块最佳工作电压:
5.0V。
字符尺寸:
2.95×4.35(W×H)mm。
LCD1602的16个引脚可参照图2-5,其引脚功能分别为:
VSS:
电源地(GND)。
VCC:
电源电压(5V)。
V0:
LCD驱动电压,液晶显示器对比度调整端。
使用时可以通过一个10K的电位器调整对比度,接正电源时对比度最弱,接地电源时对比度最高。
RS:
寄存器选择输入端,选择模块内部寄存器类型信号。
RS=0,进行写模块操作时指向指令寄存器,进行读模块操作时指向地址计数器。
RS=1,无论进行读操作还是写操作均指向数据寄存器。
R/W:
读写控制输入端,选择读/写模块操作信号。
R/W=0,读操作;R/W=1,写操作。
本设计中只需往LCD里写数据即可,写时序见图3-4。
E:
使能信号输入端。
读操作时,高电平有效;写操作时,下降沿有效
DB0~DB7:
数据输入/输出口,单片机与模块之间的数据传送通道。
选择4
位方式通讯时,不使用DB0~DB3。
BLA:
背光的正端+5V。
BLK:
背光的负端0V。
1602模块内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。
控制器接受来自MPU的指令和数据,控制着整个模块的工作。
主要由显示数据缓冲区DDRAM,字符发生器CGROM,字符发生器CGRAM,指令寄存器IR,地址寄存器DR,忙标志BF,地址计数器AC以及时序发生电路组成。
模块通过数据总线DB0~DB7和E、R/W、RS三个输入控制端与MPU接口。
这三根控制线按照规定的时序相互协调作用,使控制器通过数据总线接受MPU发来的数据和指令,从CGROM中找到欲显示字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符。
控制器还可以根据MPU的指令,实现字符的显示,闪烁和移位等显示效果。
CGROM内提供的是内置字符码,CGRAM则是供用户存储自定义的点阵图形字符。
模块字符在LCD显示屏上的显示位置与该字符的字符代码在显示缓冲区DDRAM内的存储地址一一对应。
LCD1602模块内部具有两个8位寄存器:
指令寄存器IR和地址寄存器DR,用户可以通过RS和R/W输入信号的组合选择指定的寄存器,进行相应的操作。
表2-1中列出了组合选择方式:
表2-1寄存器选择组合
RS
R/W
操作
0
0
将DB0~DB7的指令代码写入指令寄存器IR中
0
1
分别将状态标志BF和地址计数器AC内容读到DB7和DB6~DB0
1
0
将DB0~DB7的数据写入数据寄存器中,模块的内部操作将数据写到DDRAM或者CGRAM中的数据送入数据寄存器中
1
1
将数据寄存器内的数据读到DB0~DB7,模块的内部操作自动将DDRAM或者CGRAM中的数据送入数据寄存器中
1602提供了较为丰富的指令设置,通过选择相应的指令设置,用户可以实现多种字符显示样式。
下面仅简要介绍本次设计中需要用到的一些指令设置。
●清屏指令Cleardisplay
清显示指令将空位字符码20H送入全部DDRAM地址中,时DDRAM中的内容全部清除,显示消失,地址计数器AC=0,自动增一模式。
显示归位,光标闪烁回到原点(显示屏左上角),但不改变移位设置模式。
清屏指令码见表2-2。
表2-2清屏指令码
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
0
1
●进入模式设置指令Entrymodeset
见表2-3,进入模式设置指令用于设定光标移动方向和整体显示是否移动。
表2-3模式设置指令码
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
1
I/D
S
I/D:
字符码写入或者读出DDRAM后DDRAM地址指针AC变化方向标志。
I/D=1,完成一个字符码传送后,AC自动加1。
I/D=0,完成一个字符码传送后,AC自动减1。
S:
显示移位标志。
S=1,完成一个字符码传送后显示屏整体向右(I/D=0)或向左(I/D=1)移位。
S=0,完成一个字符码传送后显示屏不移动。
●显示开关控制指令Displayon/offcontrol
指令码见表2-4,该指令功能为控制整体显示开关,光标显示开关和光标闪烁开关。
表2-4显示开关控制指令码
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
1
D
C
B
D:
显示开/关标志。
D=1,开显示;D=0,关显示。
关显示后,显示数据仍保持在DDRAM中,开显示即可再现。
C:
光标显示控制标志。
C=1,光标显示;C=0,光标不显示。
不显示光标并不影响模块其他显示功能。
显示5*8点阵字体时,光标在第八行显示;显示5*10点阵字符时,光标在第11行显示。
B:
闪烁显示控制标志。
B=1,光标所在位置会交替显示全黑点阵和显示字符,产生闪烁效果;B=0,光标不闪烁。
●功能设置指令Functionset
功能设置指令用于设置接口数据位数,显示行数以及字形。
指令码见表2-5。
表2-5功能设置指令码
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
1
DL
N
F
*
*
DL:
数据接口宽度标志。
DL=1,8位数据总线DB7~DB0;DL=0,4位数据总线DB7~DB4,DB3~DB0不使用,此方式传送数据需分两次进行。
N:
显示行数标志。
N=0,显示一行;N=1,显示两行。
F:
显示字符点阵字体标志。
F=0,显示5*7点阵字符;F=1,显示5*10点阵字符。
1602模块内部设有上电自动复位电路,当外加电源电压超过+4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。
初始化大约持续10ms左右。
初始化进行的指令操作为:
●清显示
●功能显示
DL=1:
8位数据接口。
N=0:
显示一行。
F=0:
显示5*8点阵字符字体。
●显示开/关控制
D=0:
关显示。
C=0:
不显示光标。
B=0:
光标不闪烁。
●输入模式设置
I/D=1:
AC自动增一。
S=0:
显示不移位。
但是需要特别注意的是,倘若供电电源达不到要求,模块内部复位电路无法正常工作,上电复位初始化就会失败。
因此,最好在系统初始化时通过指令设置对模块进行手动初始化。
4继电器
本系统利用继电器的吸合与否来控制加热装置和降温装置,实现水温的自动化控制。
本次设计采用型号为JRC-21F的继电器。
其特点有:
(1)超小型,低功耗;
(2)触点型式:
1H,1Z(1A.AC);
(3)触点负载:
2A,120VAC;
(4)外型尺寸:
15.7X10.4X11.4;
5键盘
键盘选用轻触开关,只用三个键来输入,它们的功能分别为“加一”,“减一”和“确认”三个功能按键,详细电路和程序见后面章节。
(二)硬件电路设计
总电路图见附页1,下面重点介绍各个模块的电路图。
1温度采集电路
DS18B20为单总线器件,接口电路简单,如下图2-6所示
图2-6温度采集电