1、基于单片机的饮水机温度控制系统的设计毕业设计 河北科技师范学院 本科毕业设计基于单片机的饮水机温度控制系统的设计院(系、部)名 称 : 机电科学与工程系 专 业 名 称: 电气工程及其自动化 摘要随着社会的发展,温度的测量及控制变得越来越普遍,也越来越重要。温度是生活与生产过程以及科学实验中常见的物理参数。本文利用单片机并结合传感器技术开发设计了一个温度监控系统。详细地讲述了基于单片机AT89C51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。该饮水机设有加热与制冷两种模式,然后根据用户对温度的需求,经温度传感器检测,由单片机发出指令使饮水机进入加热或者制冷状态。该饮水机
2、温度控制系统不仅包括温度显示,状态提示,而且当热水槽内水量不足时还能发出报警,以免发生干烧现象。本系统具有控制方便、组态简单和灵活性大等优点,本文着重介绍了该系统的方案选择和硬件设计方法。关键字:单片机,温度控制,温度传感器,饮水机AbstractWith the development of the society,the measurement and control of the temperat ure has become more and more popular and important.The temperature is the basic and common param
3、eter in the manufacture and life,experiments.This paper designs a temperature control system with the SCM and temperature sensor.It describes the temperature control system based on SCM AT89C51 and temperature sensor DS18B20 in details,including software and hardware system design program.The water
4、dispenser has two working models heating and refrigerating.Then according to the needs of the user to the temperature and after the temperature sensor detection, the SCM instruct the water dispense into the heating or refrigerating model. The temperature control system not only consists of temperatu
5、re display,state prompting,but if there is no enough water in the hot water tank ,it will give an alarm in order to aviod the danger.The temperature control system is very convenient and simple and the paper mainly describes the methods of system seletion and the hardware design.Keywords: SCM, tempe
6、rature control, temperature sensor, water dispense1 绪论 31.1课题研究的目的及意义 31.2课题研究现状分析 31.3技术指标 32总体设计 42.1系统设计方案 42.2系统结构框图 43硬件设计 53.1单片机选择 53.1.1 AT89C51单片机的主要性能 63.1.2 AT89C51引脚功能说明 63.1.3 AT89C51最小应用系统的设计 83.2温度传感器的选择 93.2.1方案一 应用DS18B20传感器 93.2.2方案二 应用AD590温度传感器 143.3电源电路的选择 153.3.1方案一 采用串联式直流稳压电路
7、 153.3.2方案二 采用三端集成稳压器 163.4加热器电路的选择 173.5制冷器电路的选择 173.6水位探测器的选择 183.7显示电路的选择 183.8报警电路的选择 194软件设计 204.1系统主程序 204.2按键处理子程序 224.3温度监测子程序 25结论 26参考文献 26致 谢 271 绪论1.1课题研究的目的及意义随着社会的发展以及节能的需求,温度的测量及控制变得越来越重要。温度是生产生活过程以及科学实验中普遍而且重要的物理参数。在工业生产过程中对温度、压力、流量、速度等进行有效的检测与控制是实现优质,高产,低耗和安全生产的重要条件,其中对温度的控制需求占有相当大的
8、比例。在工业研发和生产中,为了保证生产过程的稳定运行以及提高控制精度,通常采用微电子技术。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。1.2课题研究现状分析由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。所以温度控制系统得到
9、国内外许多有关人员的重视,同时取得了十分广泛的应用,成果显著。由于单片机微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。因此,如何将单片微处理器应用到生产生活温度自动控制领域,为越来越多的人所重视。目前先进国家各种生产生活自动化水平较高,装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智
10、能化,既提高了产品的功能和质量又降低了成本,简化了设计。1.3技术指标设计并制作一个基于单片机的温度控制系统,能够根据用户需要对水温进行控制并能在水温变化时实现自动控制。(1)温度设定范围为099,最小区分度为1,温度控制的误差1(2)能够用数码管精确显示当前实际温度值(3)按键控制:设置复位键、加热键、冷却键、温度显示键(4)水量不足时能够发出报警2总体设计2.1系统设计方案本设计以AT89C51单片机为控制芯片,采用典型的数字输出型集成温度传感器DS18B20进行温度采集,然后直接将DS18B20产生的数字信号传给单片机。该饮水机设有加热与制冷两种模式。根据用户对水温的需求,按下控制键,然
11、后由单片机发出命令使饮水机进入加热或者制冷状态。当需要温度显示时,按下温度显示键,数码管便显示热水槽内水的温度。当水温达到设定值时,有指示灯以及声音提示。当热水槽内水量不足时,饮水机发出报警,以免发生干烧。2.2系统结构框图系统主要包括电源电路模块、数据采集模块、单片机控制模块、驱动电路、显示以及报警模块五个部分。系统框图如图1所示。图1 系统结构框图3硬件设计3.1单片机选择单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量
12、不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器打印机A/DD/A转换器等,要设计合适的接口电路。单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。AT89C51是一种低功耗、高性能的 8位单片机。片内
13、带有一个 4 KB的Flash可编程、可擦除只读存储器(EPROM)。它采用了 CMOS工艺和 ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC一51兼容,其引脚如图2所示。片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此AT89C51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。图2 AT89C51引脚图3.1.1 AT89C51单片机的主要性能AT89C51单片机的主要性能有:(1)4 KB可改编程序Flash存储器(可经受1000次的写入擦除);(2)全静态工作:0 Hz24 MHz;
14、(3)3级程序存储器保密;(4)1288字节内部RAM;(5)32条可编程IO线;(6)2个16位定时器计数器;(7)6个中断源;(8)可编程串行通道;(9)片内时钟振荡器。另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0 HZ,并提供两种可用软件来选择的省电方式空闲方式和掉电方式。在空闲方式中,CPU停止工作,而 RAM、定时器计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。3.1.2 AT89C51引脚功能说明(1)主电源引脚 VCC:电源端。GND:接地端。(2)外
15、接晶体引脚 XTAL1:接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。 XTAL2:接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。(3)控制或与其他电源复用引脚RST:复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE:当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的16)周期性地出现正脉冲信
16、号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲()。如果需要的话,通过对专用寄存器(SFR)区中 SEH单元的 DO位置数,可禁止 ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。:程序存储允许()输出是外部程序存储器的读选通信号。当AT89C51由外部程序存储器取指令(或常数)时,每个机器周期两次再完完有效(即输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,
17、这两次有效的还完完信号将不出现。/VPP:外部访问允许端。要使CPU只访问外部程序存储器(地址为0000H一FFFFH),则端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存端的状态。当端保持高电平(接VCC端)时,CPU则执行内部程序存储器中的程序。在Flash存储器编程期间,该引脚也用于施加 12 V的编程允许电源 Vpp(如果选用 12 V编程)。(4)输入输出引脚P0.0P0.7,P1.0P1.7,P2.0P2.7和P3.0P3.7P0端口(P0.0 P0. 7): P0是一个8位漏极开路型双向IO端口。作为输出口用时,每位能以吸收电流的方式驱
18、动8个TTL输入。对端口写l时,又可作高阻抗输入端用。在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)数据总线,在访问期间激活了内部的上拉电阻。在Flash编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P10.一P1.7):P1是一个带有内部上拉电阻的8位双向IO端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。在对Flash编程和程序校验时,P1接收低8
19、位地址。P2端口(P2.0P2.7):P2是一个带有内部上拉电阻的8位双向IO端口。P2的输出缓冲器可驱动(吸收或输出电流方式) 4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。只作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVXDPTR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2也接
20、收高位地址和一些控制信号。P3端口(P3.0P3. 7):P3是一个带内部上拉电阻的 8位双向 IO端口。 P3的输个缓冲器可驱动(吸收或输出电流方式) 4个TTL输入。对端口写 1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。在AT89C51中,P3端口还用于一些复用功能,见表1。在对Flash编程或程序校验时,P3还接收一些控制信号。表1 P3各端口引脚与复用功能表引脚第2功能P3.0 RXD(串行口输入端)P3.1 TXD(串行口输出端)P3.2 INT0(中断0请求输入端,低电平有效
21、)P3.3 INT1(中段1请求输入端,低电平有效)P3.4 T0(定时器/计数器0计数脉冲端)P3.5 T1(定时器/计数器1计数脉冲端)P3.6 WR(数据存储器写选通信号输出端,低电平有效)P3.7 RD(数据存储器读选通信号输出端,低电平有效)3.1.3 AT89C51最小应用系统的设计 80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可, 80C51单片机的最小系统如图3所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1) 有可供用户使用的大量I
22、/O口线。(2) 内部存储器容量有限。(3) 应用系统开发具有特殊性。时钟电路:89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。80C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到40pF之间取值。本设计中,振荡晶体选择
23、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方案一
24、 应用DS18B20传感器本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据,DS18B20属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 DS18B20的管脚排列和封装如图4所示。 图4 DS18B20的管脚排列和封装3.2.1.1 DS18B20的性能特点(1)用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),(2)测温范围为-55-+125,测量分辨率为0.
25、0625(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定(4)在使用中不需要任何外围元件(5)工作电源: 35V/DC3.2.1.2 DS18B20内部结构DS18B20主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器,如图5所示。图5 DS18B20的内部结构图3.2.1.3 DS18B20的存储器DS18B20 共有三种形态的存储器资源,它们分别是:(1)ROM 只读存储器,用于存放DS18B20ID编码,其前8 位是单线系列编码(DS1
26、8B20 的编码是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,
27、TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20 出厂时该位被设置为0,用户不要去改动;R1 和R0 用来设置分辨率,决定温度转换的精度位数。如表2 所示。图6 DS18B20字节定义表 2 DS18B20温度转换时间表R1 R0 分辨率/位 温度最大转向时间/ms 0 0 9 93.750 1 10 187.5 1 0 11 375 1 1 12 7503.2.1.4 DS18B20的温度转换以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于
28、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。用二进制码分别表示为0000 0000 1000 0000,0000 0001 0000 0000,0000 0101 0000 0000,0000 0110 0000 0000。3.2.1.5 DS18B20的控制指令DS18B20有六条控
29、制命令,如表4所示。表4 DS18B20控制命令指 令约定代码操 作 说 明温度转换读暂存器写暂存器复制暂存器重新调E2RAM读电源供电方式44HBEH4EH48HB8HB4H启动DS18B20进行温度转换读暂存器9个字节内容将数据写入暂存器的TH、TL字节把暂存器的TH、TL字节写到E2RAM中把E2RAM中的TH、TL字节写到暂存器TH、TL字节启动DS18B20发送电源供电方式的信号给主CPUCPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20
30、完成温度转换这一过程,根据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,保证
31、DS18B20能够在15us至lJ45us之间能够正确地采样总线上的低电平,当要写1时序时,总线被拉低之后,在15us之内就需释放总线。在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。DS18B20与单片机相连接的电路图见图7。图7 DS18B20与单片机连接电路图3.2.2方案二 应用AD590温度传感器AD590传感器是美国AD公司研制的一种电流式集成温度传感器。其直流工作电压为+4 V到+30 V,当电源电压由+5V向+10V变化时,其电流变化仅为0.2mA/V;最佳使用温度范围(-55150),在此测温范围内,测量误差为士0.5,测量分辨率为0.1。温度采样电路采用了AD590电流型温度敏感型器件其稳定度
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1