电热水器智能控制系统硬件设计.docx
《电热水器智能控制系统硬件设计.docx》由会员分享,可在线阅读,更多相关《电热水器智能控制系统硬件设计.docx(25页珍藏版)》请在冰豆网上搜索。
电热水器智能控制系统硬件设计
第1章绪论
热水器就是指通过各种物理原理,在一定时间内使冷水温度升高变成热水的一种装置。
热水器按照原理不同可分为电热水器、燃气热水器、太阳能热水器三种。
而当今社会使用最广泛的就是电热水器,电热水器的特点是使用方便,能持续供应热水。
而市场上传统的机械式电热水器控制功能不完善,而且精度低、可靠性差,生活质量的提高使得消费者对电热水器要求越来越趋向于智能化和数字化,所以我设计了一种电热水器,它以单片机为控制中心集多种功能于一身,工作可靠稳定,节约能源,适合于广大消费者使用。
我设计的电热水器将实现如下功能:
(1)对温度精确控制.采用高性能的温度传感器实时采集热水器内水温,将温度信号转变为电压信号后送单片机处理,可用高清晰度的数码管进行实时显示。
(2)可靠的水位采集电路,实时采集水位供查询时进行显示,当水位过低时给出提示并停止加热,防止干烧。
(3)自动检测热水器是否处于正常工作状态,并具有调温、恒温、防干烧、防超高温、防漏电等多项自检功能,使用户在使用过程中安全更有保障。
第2章主要元器件的简介与选用
2.1P87LPC762单片机的简介
2.1.1概述
P87LPC762是20脚封装的单片机,适合于许多要求高集成度、低成本的场合。
可以满足多方面的性能要求。
作为PHILIPS小型封装系列中的一员,P87LPC762提供高速和低速的晶振和RC振荡方式,可编程选择。
具有较宽的操作电压范围。
可编程I/O口线输出模式选择,可选择施密特触发输入,LED驱动输出。
有内部看门狗定时器。
P87LPC762采用加速80C51处理器结构,指令执行速度是标准80C51CPU的两倍。
2.1.2P87LPC762单片机的特性
●操作频率为20MHz时,除乘法和除法指令外,加速80C51指令执行时间为300~600ns。
VDD=4.5~6.0V时,时钟频率可高达到20MHz,VDD=2.7~4.5V时,时钟频率最大为10MHz。
●VDD=4.5~6.0V(P87LPC765HDH)
●数字信号的操作电压为2.7~6.0V。
●P87LPC762为2K字节OTP程序存储器,P87LPC764为4K字节OTP程序存储器,128字节的RAM。
32Byte用户代码区可用来存放序列码及设置参数。
●2个16位定时/计数器,每一个均可设置为超时溢出时相应端口输出。
●内含2个精确模拟量比较器通过外接RC器件可组成二路A/D转换器。
●全双工通用异步接收/发送器及I2C通信接口。
●八个键盘中断输入,另加2路外部中断输入。
4个中断优先级。
●看门狗定时器利用片内振荡,无需外接元件,看门狗定时器溢出时间有8级选择。
●低电平复位。
使用片内上电复位时不需要外接元件。
●低电压复位。
可选择预先设定好的两种电压之一复位,当掉电时允许系统安全关闭。
也可将其设置为一个中断源。
●振荡失败检测。
看门狗定时器和片内振荡完全分开,因此它可作为振荡器失败探测器。
●可选择片内振荡及其频率范围和RC振荡(用户通过对EPROM位编程选择)。
选择RC振荡器时不需外接振荡器件。
●可编程I/O口输出模式:
准双向口,开漏输出,上拉和只有输入功能。
可选择施密特触发输入。
●所有口线均有20mA的驱动能力。
●可控制口线输出转换速度以降低EMI,输出最小上升时间大约为10ns。
●最少15个I/O口,选择片内振荡和片内复位时可有多达18个I/O口。
●如果选择片内振荡及复位时,P87LPC762仅需要连接电源线和地线。
串行EPROM编程允许对芯片进行板上编程。
2位EPROM保密位可防止程序被读出。
●空闲和掉电两种省电模式。
提供从掉电模式中唤醒功能(低电平中断输入启动运行)。
典型的掉电电流是1µA。
●20脚DIP、SO和TSSOP封装。
2.1.3P87LPC762单片机的管脚配置
见图2-1
图2-1
2.1.4P87LPC762单片机的逻辑符号
见图2-2
图2-2
2.1.5增强型MCU
P87LPC762采用增强型80C51MCU,其运行速度是标准80C51的2倍,这意味着P87LPC762在5MHZ时性能和标准80C51采用10MHZ时性能相同。
一个机器周期由6个振荡周期组成,大多数指令执行时间为6或12个振荡周期,用户亦可选择工作在标准80C51MCU时序,这时一个机器周期变为12个振荡周期。
以下章节中,“MCU时钟”指控制内部指令执行的时钟。
当系统被设置成为标准80C51时序(由CLKR位确定)或通过设定DIVM寄存器分频时,“MCU时钟”和外部所加时钟不同。
参考“振荡器”一节有关叙述。
2.1.6模拟功能
P87LPC762有2个模拟比较器。
为了获取最佳性能和降低功耗,作为模拟功能使用的管脚必关闭数字信号输入及输出功能。
将口线功能由输出转为输入功能(高阻抗),禁止数字信号输出功能,参见I/O口部分所述。
使用PT0AD寄存器,PORT0口的数字输入功能将被禁止,在PT0AD寄存器中每位均对应PORT0相应位。
置位PT0AD中相应位禁止此管脚作为信号数字输入。
当数字输入功能被禁止时,任何指令读取该位时均为“0”。
2.1.7模拟比较器
P87LPC762有2个模拟比较器,输入和输出选择允许比较器配置成为不同模式。
当正向输入(二个选择脚之一)电压大于反向输入时(可选择为由外部管脚输入或内部参考电压),输出信号为“1”(可从寄存器读或输出到管脚),反之则输出为“0”。
输出变化时每个比较器均可设置成产生中断。
2.1.8电源监控功能
P87LPC762内含电源监控功能用于防止(或减少)上电及掉电时的错误操作。
这是通过两种硬件功能完成的:
上电检测及掉电检测。
(1)掉电检测
此功能用于防止当电压降至某一特定值之下时处理器错误操作。
掉电检测的默认操作是产生一次处理器复位,同时亦可通过置位AUXR1寄存器内BOI位(AUXR1.5)配置为产生一个中断。
P87LPC762掉电电平可选2.5V或3.8V,当VDD掉至所选电压以下时,掉电检测器触发并保持到VDD返升至该电平之上。
当掉电检测产生一次处理器复位,该复位将一直保持到VDD上升到检测电平之上。
每当VDD从检测电平以上降到检测电平以下掉电检测产生一次中断,为了处理中断,中断系统及BOI必须均被使能(通过IEN0中的EA和EB0)。
当检测到掉电时,PCON寄存器内BOF标志置位以便软件判断复位原因。
该标志需要软件清除。
欲正确检测到掉电,VDD下降速度不得快于50mV/μs,为得到正确的复位,VDD恢复时上升速度不得快于2mV/μs。
掉电保护电压(2.5V或3.8V)通过EPROM配置寄存器UCFG1内BOV位来选择。
未编程时(BOV=1),该电压为2.5V,编程RG(BOV=0),该电压为3.8V。
在某些应用中不需要掉电检测功能时,可将它关闭以节约电能。
可对AUXR1寄存器中的BOD位置位(AUXR1.6)来关闭此功能。
(2)上电检测
上电检测功能类似于掉电检测,但设计成为首次上电时有效,在供电电压上升到掉电检测门槛电平时有效。
当检测到上电时,PCON寄存器内POF标志置位。
该标志需要软件清除。
2.1.9节电模式
P87LPC762支持空闲及掉电两种节电模式。
(1)空闲模式
空闲模式下外围器件继续工作可以产生中断激活处理器。
所有被允许的中断及复位均可结束空闲模式。
将PCON寄
存器内IDL位置位即可进入空闲模式(见图17)。
(2)掉电模式
掉电模式将振荡器停振以使功耗最小。
将PCON寄存器内PD位置位即可进入掉电模式。
当复位或表8所示中断源之一发生时处理器即退出掉电模式。
这时该中断应被使能且优先级高于正在处理的中断。
在此模式下,电压降至RAM保持电压VRAM。
进入掉电模式时RAM内容被保存。
SFR内容在VDD降至VRAM时不作保护,此时建议通过复位唤醒处理器。
在退出掉电模式前VDD必须上升到操作电压范围之内。
由于看门狗定时器有一独立的振荡器,所以在掉电模式下它的溢出可将处理器复位。
注意如果掉电检测复位已使能,当VDD一旦降至低于掉电门槛电压即将处理器复位。
如果掉电检测被配置成中断并使能该中断,当VDD降至掉电电压之下时该中断可将处理器从掉电方式唤醒。
当处理器从掉电模式中唤醒时,将立即启动振荡器并且当振荡器稳定下来时开始执行程序。
振荡器稳定是在起振后计数若干MCU时钟,对于晶振计1024时钟,对于内部RC或外部时钟计256个时钟。
2.2数码显示器的简介
2.2.1数码显示器的发展历程
1923年,罗塞夫(Lossen.o.w)在研究半导体SIC时有杂质的P-N结中有光发射,研究出了发光二极管(LED:
LightEmittingDiode),一直不受重视。
随着电子工业的快速发展,在60年代,显示技术得到迅速发展,人们研究出PDP激光显示等离子显示板、LCD液晶显示器、发光二极管LED、电致变色显示ECD、电泳显示EPID等多种技术。
由于半导体的制作和加工工艺逐步成熟和完善,发光二极管已日趋在固体显示器中占主导地位。
LED之所以受到广泛重视并得到迅速发展,是因为它本身有活动、很多优点。
例如:
亮度高、工作电压低、功耗小、易于集成、驱动简单、寿命长、耐冲击且性能稳定,其发展前景极为广阔。
目前正朝着更高亮度、更高耐气候性和发光密度、发光均匀性、全色化发展。
2.2.2数码显示器的种类
数码显示器是数码显示电路的末级电路,它用来将输入的数码还原成数字。
数码显示器有许多类型,适用于场所也不相同,具体如表2-3所示。
2.3数码显示器工作原理简介
2.3.1辉光数码管
图2-4
辉光数码管是利用辉光放电原理制成的,在充有氖气的玻璃管内设有0、1、2……9字样的10个阴极和一个公用阳极,如图2-1所示。
各阴极的表面积相差不多,而每个阳极与阳极之间的距离,则根据数字的笔画确定。
这样在同一阳极电压作用下,控制每个阴极的电压,便可使需要的数字发光。
图2-4辉光数码管结构示意图
辉光数码管需在强电场作用下才能启辉,因此,在译码器与辉光数码管之间必须配有电子开关,如图2-5中的VT1~VT10便是半导体三极管组成的开关电路。
图2-5辉光数码管驱动电路
2.3.2荧光数码管
荧光数码管的结构如图2-3所示。
当灯丝在电源电压作用下加热到700℃左右时,灯丝便发射电子,发射的电子在栅极的作用下将加速运动,最后在笔画电极的作用下打到笔画电极上。
由于笔画电极上涂有荧光粉,当运动速度很高的电子打到它上面时,笔画电极便发出绿色的光。
笔画电极采用8段电极,在逻辑电路输出电压的作用下,某些笔画被加上电压,电子就会轰击这些电极上的荧光粉,从而显示出某一确定的数字。
当笔画电极上的电压为零时,则发光的相应电极熄灭。
荧光数码管有单位的和多位的,单位的多为电子管型,多位的为长条形。
图2-6荧光数码管的结构示意图
2.3.3液晶显示器
液晶显示器又叫LCD显示器,她的结构如图2-4所示。
液晶显示器的主要材料是液晶晶体(简称晶体),它是一种有机材料,在特定的温度范围内,既具有液体的流动性,又具有某些光学特性,其透明度和颜色随电场、磁场、光及温度等外界条件的变化而变化。
因此,在逻辑电路的输出信号作用下,可现实出某一确定的数字。
液晶显示器是一种被动式显示器件,液晶本身不会发光,而是借助自然光和外来光显示数字。
外部光线愈强,它的显示效果愈好。
由于液晶显示器所需的功耗很小,因此它可由集成电路译码器直接驱动。
图2-7
1-玻璃;2-液晶;3-7段正面电极;
4-8字形背电极;5-插头引出脚
图2-7LCD数码显示器结构示意图
2.3.4发光二极管显示器
发光二极管显示器又叫做LED数码显示器,也称作七段译码器。
它是利用发光二极管在正向电压作用下,通过一定的电流就发光的特点,把7个发光二极管分段封装,就成了LED数码显示器。
它的外形如图2-8所示。
用于数码显示的发光二极管多为红色,它们分单位的和多位的两种。
单位LED数码显示器的内部电路如图2-6所示,它分为共阳极连接式和共阴极连接式两种,代表各笔画的a~ g发光二极管的正极或负极均由引脚引出,其中DP引脚代表小数点。
它的内部结构如图2-9
所示。
对于共阴极的数码管(如图2-10所示)只有当其输入端输入高电平时二极管才会发光;而共阳极的数码管只有当输入端输入低电平时二极管才会发光。
共阴极内部每个发光二极管的阴极被接在一起,成为该各段的公共选通线;发光二极管的阳极则成为段选线。
如果要显示某个数字只需相应选中对应的段选线。
对于共阳极数码管(如图2-11所示),则正好相反,内部发光二极管的阳极接在一起,阴极成为段选线。
这两种数码管的驱动方式是不同的。
当需要点亮共阳极数码管的一段时,公共段需接高电平、该段的段选线接低电平,从而该段被点亮。
当需要点亮共阴极数码管的一段时,公共段需接低电平,该段的段选线接高电平,该段被点亮。
图2-10共阴极数码管内部结构图2-11共阳极数码管内部结构
LED数码显示器的数字显示方式如图2-12所示。
其中7个发光二极管制成条形,分别用a、b、c、d、e、f、g表示,代表数码的笔画,有选择地使用其中若干笔画发光,这样就可以组成0~9十个数码。
比如在一个共阴极数码管上要显示“7”,则a、b、c段需被点亮。
如果对于共阴极的则a、b、c对应于高电平;如果对于共阳极的则a、b、c对应于低电平。
图2-12LED数码管显示器显示方式
2.3.5常用显示器的性能比较
如表2-13所示。
2.3.6显示器的选用
因为LED显示器能在低电压、小电流的条件上工作,具有显示亮度高、色彩艳丽,发光响应速度快、低功耗、耐振动、寿命长等优点。
所以,在本次课题中选用了LED显示器,并采用了它的共阴极形式。
2.4DS18B20型温度传感器
2.4.1DS18B20简介
(1)独特的单线接口方式:
DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:
+3.0~+5.5V。
(4)测温范围:
-55~+125℃。
固有测温分辨率为0.5℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2.4.2DS18B20的内部结构
DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图2-14所示。
图2-14
(1)64b闪速ROM的结构如下:
(如图2-15)
图2-15
开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
(2)非易市失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。
(3)高速暂存存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM。
后者用于存储TH,TL值。
数据先写入RAM,经校验后再传给E2RAM。
而配置寄存器为高速暂存器中的第5个字节,他的内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。
该字节各位的定义如图2-16:
图2-16
低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即是来设置分辨率,如表2-17所示(DS18B20出厂时被设置为12位)。
表2-17
由表2-17可见,设定的分辨率越高,所需要的温度数据转换时间就越长。
因此,在实际应用中要在分辨率和转换时间权衡考虑。
图2-18
高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如下所示。
其中温度信息(第1,2字节)、TH和TL值第3,4字节、第6~8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确(如图2-18)。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以00625℃/LSB形式表示。
温度值格式如图2-19:
图2-19
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。
表2-20是对应的一部分温度值。
表2-20
DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若T>TH或T因此,可用多只DS18B20同时测量温度并进行告警搜索。
(4)CRC的产生
在64bROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
2.4.3DS18B20的测温原理
DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2-21中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
图2-21DS18B20的内部测温电路框图
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
2.4.4DS18B20与单片机的典型接口设计
以MCS51单片机为例,图2-22中采用寄生电源供电方式,P1.1口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管和89C51的P1.0来完成对总线的上拉[2]。
当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10μs。
采用寄生电源供电方式是VDD和GND端均接地。
由于单线制只有一根线,因此发送接收口必须是三态的。
主机控制DS18B20完成温度转换必须经过3个步骤:
初始化、ROM操作指令、存储器操作指令。
假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:
INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始,实际在实验中不用这种方式,只要在数据线上加一个上拉电阻4.7kΩ,另外2个脚分别接电源和地。
图2-22DS18B20与微处理器的典型连接
5DS18B20的精确延时问题
虽然DS18B20有诸多优点,但使用起来并非易事,由于采用单总线数据传输方式,DS18B20的数据I/O均由同一条线完成。
因此,对读写的操作时序要求严格。
为保证DS18B20的严格I/O时序,需要做较精确的延时。
在DS18B20操作中,用到的延时有15μs,90μs,270μs,540μs等。
因这些延时均为15μs的整数倍,因此可编写一个DELAY15(n)函数,源码如下:
只要用该函数进行大约15μs×N的延时即可。
有了比较精确的延时保证,就可以对DS18B20进行读写操作、温度转换及显示等操作。
第3章水温检测原理
3.1水温检测原理分析
热敏电阻与温度的准确关系为:
式中:
为温度为
时的电阻值,
为基准温度(298.15K,即25℃),β为材料系数。
当温度变化范围很小时,公式可以近似表示为:
。
当温度变化范围超过10度时,近似公式的误差将超过5%,必须进行校正或使用正确公式。
正确公式也可以进一步简化为:
设热敏电阻在温度为
和
时的电阻值分别为
和
,由准确公式可得:
从中可以解出材料系数:
热敏电阻的参数可以从厂家获得,也可以通过试验方法自己来求解:
用一个已知电阻和热敏电阻串联,控制热敏电阻的环境温度,通过检测两个电阻上的电压大小即可计算出热敏电阻的电阻值(如图3-1)。
如果没有恒温设备,两个测试温度点可以选定为
=273.15K(即0℃,一个大气压下冰和水的混合物的温度),
=373.15K(即100℃,一个大气压下沸腾状态的水温)。
当材料系数β求解出来以后,即可从公式:
求解出来系数K。
为了试验数据可靠,应该进行批量试验(至少十个样本),取其平均值。
然后再在其他温度点进行公式的验证。
作为热水器,最大使用概率温度为45℃(318.15K)。
取一个电阻R,其电阻值调整为45℃时的热敏电阻值。
将热敏电阻
与R串联,工作电压为Vh,如果热敏电阻上的电压为
,则普通电阻上的电压为Vh-
,由公式可得:
从中可以解出:
如果电压的测量精度为8位,设
的A/D转换结果为N,则Vh的A/D转换结果为256,则上式变为:
用摄氏温度表示时,最终公式如下:
当水温为45℃时,两个电阻的电阻值相同,A/D转换结果为80H(N=128),公式计算的结果T=45℃。
当实际水温范围为0℃到100℃时,可以从公式中计算出对应的A/D转换结果N0和N100,然后利用计算机按最终公式计算从N0到N100之间每个转换结果对应的温度值,并组成表格(单字节表格即可),表格长度为N0——N100+1。
超出表格范围的进行封顶处理。
单片机在实际运行时,直接根据A/D转换结果查表得到温度值。
第4章漏电检测原理
4.1漏电检测原理分析
将火线和中线同时穿过一个环形磁芯,作为漏电互