基于单片机的饮水机温度控制系统的设计毕业设计.docx
《基于单片机的饮水机温度控制系统的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的饮水机温度控制系统的设计毕业设计.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的饮水机温度控制系统的设计毕业设计
河北科技师范学院
本科毕业设计
基于单片机的饮水机温度控制系统的设计
院(系、部)名称:
机电科学与工程系
专业名称:
电气工程及其自动化
摘要
随着社会的发展,温度的测量及控制变得越来越普遍,也越来越重要。
温度是生活与生产过程以及科学实验中常见的物理参数。
本文利用单片机并结合传感器技术开发设计了一个温度监控系统。
详细地讲述了基于单片机AT89C51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。
该饮水机设有加热与制冷两种模式,然后根据用户对温度的需求,经温度传感器检测,由单片机发出指令使饮水机进入加热或者制冷状态。
该饮水机温度控制系统不仅包括温度显示,状态提示,而且当热水槽内水量不足时还能发出报警,以免发生干烧现象。
本系统具有控制方便、组态简单和灵活性大等优点,本文着重介绍了该系统的方案选择和硬件设计方法。
关键字:
单片机,温度控制,温度传感器,饮水机
Abstract
Withthedevelopmentofthesociety,themeasurementandcontrolofthetemperaturehasbecomemoreandmorepopularandimportant.Thetemperatureisthebasicandcommonparameterinthemanufactureandlife,experiments.ThispaperdesignsatemperaturecontrolsystemwiththeSCMandtemperaturesensor.ItdescribesthetemperaturecontrolsystembasedonSCMAT89C51andtemperaturesensorDS18B20indetails,includingsoftwareandhardwaresystemdesignprogram.Thewaterdispenserhastwoworkingmodelsheatingandrefrigerating.Thenaccordingtotheneedsoftheusertothetemperatureandafterthetemperaturesensordetection,theSCMinstructthewaterdispenseintotheheatingorrefrigeratingmodel.Thetemperaturecontrolsystemnotonlyconsistsoftemperaturedisplay,stateprompting,butifthereisnoenoughwaterinthehotwatertank,itwillgiveanalarminordertoaviodthedanger.Thetemperaturecontrolsystemisveryconvenientandsimpleandthepapermainlydescribesthemethodsofsystemseletionandthehardwaredesign.
Keywords:
SCM,temperaturecontrol,temperaturesensor,waterdispense
1绪论3
1.1课题研究的目的及意义3
1.2课题研究现状分析3
1.3技术指标3
2总体设计4
2.1系统设计方案4
2.2系统结构框图4
3硬件设计5
3.1单片机选择5
3.1.1AT89C51单片机的主要性能6
3.1.2AT89C51引脚功能说明6
3.1.3AT89C51最小应用系统的设计8
3.2温度传感器的选择9
3.2.1方案一应用DS18B20传感器9
3.2.2方案二应用AD590温度传感器14
3.3电源电路的选择15
3.3.1方案一采用串联式直流稳压电路15
3.3.2方案二采用三端集成稳压器16
3.4加热器电路的选择17
3.5制冷器电路的选择17
3.6水位探测器的选择18
3.7显示电路的选择18
3.8报警电路的选择19
4软件设计20
4.1系统主程序20
4.2按键处理子程序22
4.3温度监测子程序25
结论26
参考文献26
致谢27
1绪论
1.1课题研究的目的及意义
随着社会的发展以及节能的需求,温度的测量及控制变得越来越重要。
温度是生产生活过程以及科学实验中普遍而且重要的物理参数。
在工业生产过程中对温度、压力、流量、速度等进行有效的检测与控制是实现优质,高产,低耗和安全生产的重要条件,其中对温度的控制需求占有相当大的比例。
在工业研发和生产中,为了保证生产过程的稳定运行以及提高控制精度,通常采用微电子技术。
它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。
本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。
作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。
1.2课题研究现状分析
由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。
所以温度控制系统得到国内外许多有关人员的重视,同时取得了十分广泛的应用,成果显著。
由于单片机微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。
因此,如何将单片微处理器应用到生产生活温度自动控制领域,为越来越多的人所重视。
目前先进国家各种生产生活自动化水平较高,装备有完善的检测仪表和计算机控制系统。
其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。
单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。
由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智能化,既提高了产品的功能和质量又降低了成本,简化了设计。
1.3技术指标
设计并制作一个基于单片机的温度控制系统,能够根据用户需要对水温进行控制并能在水温变化时实现自动控制。
(1)温度设定范围为0~99℃,最小区分度为1℃,温度控制的误差≤1℃
(2)能够用数码管精确显示当前实际温度值
(3)按键控制:
设置复位键、加热键、冷却键、温度显示键
(4)水量不足时能够发出报警
2总体设计
2.1系统设计方案
本设计以AT89C51单片机为控制芯片,采用典型的数字输出型集成温度传感器DS18B20进行温度采集,然后直接将DS18B20产生的数字信号传给单片机。
该饮水机设有加热与制冷两种模式。
根据用户对水温的需求,按下控制键,然后由单片机发出命令使饮水机进入加热或者制冷状态。
当需要温度显示时,按下温度显示键,数码管便显示热水槽内水的温度。
当水温达到设定值时,有指示灯以及声音提示。
当热水槽内水量不足时,饮水机发出报警,以免发生干烧。
2.2系统结构框图
系统主要包括电源电路模块、数据采集模块、单片机控制模块、驱动电路、显示以及报警模块五个部分。
系统框图如图1所示。
图1系统结构框图
3硬件设计
3.1单片机选择
单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,一个单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,要设计合适的接口电路。
单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。
如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。
它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
AT89C51是一种低功耗、高性能的8位单片机。
片内带有一个4KB的Flash可编程、可擦除只读存储器(EPROM)。
它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC一51兼容,其引脚如图2所示。
片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。
因此AT89C51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。
图2AT89C51引脚图
3.1.1AT89C51单片机的主要性能
AT89C51单片机的主要性能有:
(1)4KB可改编程序Flash存储器(可经受1000次的写入/擦除);
(2)全静态工作:
0Hz~24MHz;
(3)3级程序存储器保密;
(4)128﹡8字节内部RAM;
(5)32条可编程I/O线;
(6)2个16位定时器/计数器;
(7)6个中断源;
(8)可编程串行通道;
(9)片内时钟振荡器。
另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0HZ,并提供两种可用软件来选择的省电方式—空闲方式和掉电方式。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”.使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。
3.1.2AT89C51引脚功能说明
(1)主电源引脚
①VCC:
电源端。
②GND:
接地端。
(2)外接晶体引脚
①XTAL1:
接外部晶体的一个引脚。
在单片机内部,它是构成片内振荡器的反相放大器的输入端。
当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。
②XTAL2:
接外部晶体的另一个引脚。
在单片机内部,它是上述振荡器的反相放大器的输出端。
采用外部振荡器时,此引脚应悬浮不连接。
(3)控制或与其他电源复用引脚
①RST:
复位输入端。
当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。
②ALE/
:
当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是:
每当访问外部数据存储器时,将跳过一个ALE脉冲。
在对Flash存储器编程期间,该引脚还用于输入编程脉冲(
)。
如果需要的话,通过对专用寄存器(SFR)区中SEH单元的DO位置数,可禁止ALE操作。
该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。
另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。
③
:
程序存储允许(
)输出是外部程序存储器的读选通信号。
当AT89C51由外部程序存储器取指令(或常数)时,每个机器周期两次再完完有效(即输出2个脉冲)。
但在此期间内,每当访问外部数据存储器时,这两次有效的还完完信号将不出现。
④
/VPP:
外部访问允许端。
要使CPU只访问外部程序存储器(地址为0000H一FFFFH),则
端必须保持低电平(接到GND端)。
然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存
端的状态。
当
端保持高电平(接VCC端)时,CPU则执行内部程序存储器中的程序。
在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。
(4)输入/输出引脚P0.0~P0.7,P1.0~P1.7,P2.0~P2.7和P3.0~P3.7
①P0端口(P0.0~P0.7):
P0是一个8位漏极开路型双向I/O端口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入。
对端口写l时,又可作高阻抗输入端用。
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
在Flash编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
②P1端口(P10.一P1.7):
P1是一个带有内部上拉电阻的8位双向I/O端口。
P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P1作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在对Flash编程和程序校验时,P1接收低8位地址。
③P2端口(P2.0~P2.7):
P2是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
只作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX@DPTR指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。
在对Flash编程和程序校验期间,P2也接收高位地址和一些控制信号。
④P3端口(P3.0~P3.7):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输个缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在AT89C51中,P3端口还用于一些复用功能,见表1。
在对Flash编程或程序校验时,P3还接收一些控制信号。
表1P3各端口引脚与复用功能表
引脚
第2功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
INT0(中断0请求输入端,低电平有效)
P3.3
INT1(中段1请求输入端,低电平有效)
P3.4
T0(定时器/计数器0计数脉冲端)
P3.5
T1(定时器/计数器1计数脉冲端)
P3.6
WR(数据存储器写选通信号输出端,低电平有效)
P3.7
RD(数据存储器读选通信号输出端,低电平有效)
3.1.3AT89C51最小应用系统的设计
80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,80C51单片机的最小系统如图3所示。
由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
其应用特点:
(1)有可供用户使用的大量I/O口线。
(2)内部存储器容量有限。
(3)应用系统开发具有特殊性。
时钟电路:
89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
80C51单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到40pF之间取值。
本设计中,振荡晶体选择12MHz,电容选择30pF。
复位电路:
89C51的复位是由外部的复位电路来实现的。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
时钟频率用12MHZ时C取22uF,R取1KΩ。
除了上电复位外,有时还需要按键手动复位。
本设计就是用的按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。
时钟频率选用12MHZ时,C取22uF,R2取4.7KΩ,R1取1KΩ。
图3最小工作系统
3.2温度传感器的选择
3.2.1方案一应用DS18B20传感器
本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据,DS18B20属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
DS18B20的管脚排列和封装如图4所示。
图4DS18B20的管脚排列和封装
3.2.1.1DS18B20的性能特点
(1)用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),
(2)测温范围为-55℃-+125℃,测量分辨率为0.0625℃
(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定
(4)在使用中不需要任何外围元件
(5)工作电源:
3~5V/DC
3.2.1.2DS18B20内部结构
DS18B20主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器,如图5所示。
图5DS18B20的内部结构图
3.2.1.3DS18B20的存储器
DS18B20共有三种形态的存储器资源,它们分别是:
(1)ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。
数据在出厂时设置不由用户更改。
DS18B20共64位ROM。
(2)RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
如图6所示。
第1、2个字节是温度转换后的数据值信息,第3和第4字节是高温触发器TH和低温触发器TL的易失性拷贝,第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
以上字节内容每次上电复位时被刷新。
。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率,决定温度转换的精度位数。
如表2所示。
图6DS18B20字节定义
表2DS18B20温度转换时间表
R1R0分辨率/位温度最大转向时间/ms
00993.75
0110187.5
1011375
1112750
3.2.1.4DS18B20的温度转换
以12位转化为例说明温度高低字节存放形式及计算:
12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
表3为温度高低字节的存放形式。
表3温度高低字节存放形式
高8位
S
S
S
S
S
26
25
24
低8位
23
22
21
20
2-1
2-2
2-3
2-4
本设计用到的温度有8℃,16℃,80℃,96℃。
用二进制码分别表示为0000000010000000,0000000100000000,0000010100000000,0000011000000000。
3.2.1.5DS18B20的控制指令
DS18B20有六条控制命令,如表4所示。
表4DS18B20控制命令
指 令
约定代码
操 作 说 明
温度转换
读暂存器
写暂存器
复制暂存器
重新调E2RAM
读电源供电方式
44H
BEH
4EH
48H
B8H
B4H
启动DS18B20进行温度转换
读暂存器9个字节内容
将数据写入暂存器的TH、TL字节
把暂存器的TH、TL字节写到E2RAM中
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
启动DS18B20发送电源供电方式的信号给主CPU
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
(1)DS18B20的读时序
DS18B20的读时序分为读O时序和读1时序。
DS18B20读时序是从主机把单总线拉低之后,在15秒之内释放总线后让DS18B20把数据传输到总线上。
DS18B20完成一个读时序过程,至少需要60us。
(2)DS18B20的写时序
DS18B20的写时序仍然分为写0时序和写1时序。
DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us至lJ45us之间能够正确地采样总线上的低电平,当要写1时序时,总线被拉低之后,在15us之内就需释放总线。
在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
DS18B20与单片机相连接的电路图见图7。
图7DS18B20与单片机连接电路图
3.2.2方案二应用AD590温度传感器
AD590传感器是美国AD公司研制的一种电流式集成温度传感器。
其直流工作电压为+4V到+30V,当电源电压由+5V向+10V变化时,其电流变化仅为0.2mA/V;最佳使用温度范围(-55~150)℃,在此测温范围内,测量误差为士0.5℃,测量分辨率为0.1℃。
温度采样电路采用了AD590电流型温度敏感型器件其稳定度