1、基于单片机的智能热水器的设计与实现摘要 本文阐述了基于单片机(80C52)的智能热水器控制系统的设计过程,硬件部分主要由单片机,电源部分电路,加热及温度调节电路,数码显示器,AD采集电路,pt1000温度传感器,AD7705参考电压,数据存储器电路,等部分组成。软件部分使用C语言编写,主要完成温度的采集,预定温度的设定,当前温度的显示,加热器的控制等功能,软件调试无误。电路使用protues画出,并使用ISIS加载软件程序进行仿真运行。关键词: 80C52;模块;自能热水器控制系统Abstract In this paper based on SCM (80C52) of the intell
2、igent water heater control system design process, the hardware part is composed of a single-chip microcomputer, power circuit, a heating and temperature regulating circuit, a digital display circuit, AD collection, PT1000AD7705 reference voltage, temperature sensor, data memory circuit, and other co
3、mponents. Software written using the C language, mainly to complete the collection of temperature, the predetermined temperature, the temperature display, heater control functions, software debugging accurate. The circuit uses an Protues draw, and use the ISIS loading software program for simulation
4、 operation.Key words:80C52; module; since the water heater control system目录摘要I引言1一、概述11、智能热水器的历史与发展12、本设计主要的研究内容23、系统总体方案设计2 4、AT89C52简介.3二、硬件设计31、单片机的选择32、电源部分电路43、加热及温度调节电路43、数码显示器54、AD采集电路55、pt1000温度传感器66、AD7705参考电压67、数据存储器电路6三、软件设计101、主程序设计102、温度设定113、设定温度的存储流程图124、采集温度流程图135、温度显示设计146、温度控制流程图15
5、四、系统抗干扰及可靠性分析151、硬件抗干扰技术15(1)抑制干扰源常用措施16(2)切断干扰传播途径措施16(3)提高敏感器件的抗干扰性能172、软件抗干扰技术18致谢19参考文献:20第III页引言热水器一直是人类不可或缺的家用电器,随着科技的发展,热水器也经理了更新换代,现在智能热水器已经可以进入了家家户户,他的高性能,方便,可靠被人们深受好评,这里给大家介绍一下我自己设计的智能热水器。一、概述1、智能热水器的历史与发展随着世界能源日益紧缺,开发一种更加节能,舒适性更强的热水器一直是欧洲工程师的愿景,经过潜心研究,欧洲工程师利用逆卡诺循环的原理开发的热泵热水器,这种热水器的能量消耗只有电
6、热水器的1/3,并且比电热水器更加安全,并且比燃气热水器有更好的稳定性;为了提高热泵热水器的舒适性,欧洲工程师创造性的将一个保温水罐与热泵做为一个整体,由于热水与冷水因为重力原因会相对的移动,这样热水逐渐集中水罐的顶部,冷水储存在底部,随着热泵的不断加热,最后达到整灌水都达到设定的恒温状态,由于热水在加温的过程中体积会膨胀,随着保温水罐中的水温越来越高,水罐中的压力也逐渐增大,用这样有一定压力的热水冲洗时对身体有一定的按摩效果,并且这种热水器会根据设定温度自动调节机组开启的时间;由于该热水器有储热的作用,对有波谷低电价政策的地区,可以通过设定自动控制热水器在波谷时间开启,达到进一步的节能;因此
7、这种热水器又叫智能热水器。2、本设计主要的研究内容本设计是以温室为研究对象,以单片机为主要元件,结合温度传感器器、AD、DA等器件,进行电热水器系统的设计。通过温度调节器,能够方便大家调节理想温度,并通过温度显示器显示当前温度,方便调节,并且设置报警电路,实现智能热水器的可靠性。3、系统总体方案设计通过对系统需求的分析,该系统主要由CPU控制模块、键盘模块、显示模块、加热棒功率控制模块、AD采样模块、数据存储模块电路组成。系统框图如下:系统总框图该系统采用一片51系列单片机AT89C52实现整体控制。整个系统通过PWM调节控制加热棒的加热功率进而调节水温,同时通过一片自大放大电路的16位高性能
8、AD采集水温,形成一个温度调节回路。当温度低是调大PWM占空比进而增大加热器功率,使水温升高,反之则调小PWM的占空比使温度降低。另外系统提供3个按键,用于设置目标温度。还有采用了3为共阴极数码管用于显示当前水温。二、硬件设计根据系统设计提出来的要求,结合系统总体设计方案框图可以设计出单片机控制电梯系统的各部分硬件电路图。1、单片机的选择该系统中,由于需要采用一路PWM输出用于控制加热,资源需求及性价比方面的因素,考虑选用AT89C52 作为该系统的主控芯片。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes
9、的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。本设计中的资源分配:P10作
10、为PWM输出,用于控制加热功率;P12作为AD7705软件复位控制线;P13作为AD7705的SPI总线时钟线;P14作为AD7705的SPI总线数据输入线;P15作为AD7705的SPI总线数据输出线;P32作为AD7705的数据采集完成中断线;P34-P36作为存储器24C02的IIC总线;P0口用于驱动3为共阴极数码管的段位;P2.0-P2.2用于数码管显示位的为选择;P2.5-P2.7接设置键盘,通过增加和减少按键可以调节水温,调节后若按下保存则将当前水温保存为默认水温,若不按保存则当前温度仅为本次使用的水温,关机后再开机则恢复为之前设置的目标温度。2、电源部分电路 该部分主要实现整机
11、电源控制,系统输入AC220V通过一个变压器转化为AC9V再通过整流和降压获得系统控制所需的DC5V。3、加热及温度调节电路 该部分电路主要实现加热器的功率控制功能是水温控制的核心,他通过AD采集的水温数据反馈调剂PWM的占空比来调剂加热棒的有效功率,进而使水温不断逼近设置的目标温度,该系统温度控制精度可达0.5度。3、数码显示器本系统采用一个3位共阴极数码管来实现温度的现实,显示精度为1度,单片机通过P0口控制数码管显示,采用动态扫描方式实现数据现实。4、AD采集电路AD7705 采用SP I Q SP I兼容的三线串行接口,能够方便地与各种微控制器和DSP 连接, 也比并行接口方式大大节省
12、了CPU的 I O口。下应用电路中,采用 80C51 控制AD7705,对桥式传感信号进行模数转换。此方案采用二线连接收发数据。 AD7705 的CS 接到低电平。DRDY的状态通过监视与DRDY线相编程数字滤波器等部件。能直接将传感器测量到的多路微小信号进行AD转换。这种器件还具有高分辨 率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点, 非常适合仪表测量、工业控制等领域的应用。 该系统采用一片自带放大电路且增益可编程的AD芯片实现温度采集,由于该芯片自带放大电路且增益可编程,使该设计可靠型更高且更简洁。5、pt1000温度传感器 PT1000通过一个电桥形成一组差分电压接入A
13、D7705,当温度升高或降低时使的PT1000的电阻值发生变化,使的AIN0+与AIN0-间的电压差发生变化就反应出温度的变化。6、AD7705参考电压该部分电路主要是为AD7705提供一个精确的基准电源,该电压的精准度直接影响AD采集的精度。7、数据存储器电路该系统选用一片EEPROM作为数据存储器,主要用于存储预设的目标温度,每次开机系统将按照预设的目标温度加热。4、 AT89C51简介 AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 byte
14、s的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。兼容MCS51指令系统
15、8k可反复擦写(1000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 AT89C52P为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主
16、板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主
17、板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0 口P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电
18、路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表1。Flash 编程和程序校验期间,P1 接收低8 位地址。表.P1.0和P1.1的第二功能引脚号功能特性P1.0T2,时钟输出P1.1T2EX(定时/计数器2)P2 口P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对
19、端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内
20、部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器
21、编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000HFFFFH),EA
22、 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。三、软件设计1、主程序设计2、温度设定 3、设定温度的存储流程图4、采集温度流程图5、温度显示设计6、温度控制流程图四、系统抗干扰及可靠性分析干扰就是由外部噪声在系统中所造成的骚扰 ,以电路的传导和以场的耦合形式侵入单片机控制系统
23、 ,干扰有多种来源 ,主要有 : 电磁辐射,高频噪声,放点噪声等一系列的干扰 可以采取有效的软硬件措施加以解决 。1、硬件抗干扰技术一个好的电路设计,应在设计过程中充分考虑抗干扰性的要求。分析系统中可能引起干扰的部件,采取必要的硬件抗干扰措施,抑制干扰源、切断干扰传播途径。 交流电源尽量采用电压稳定的电网 交流端用电感电容滤波,去掉高频低频干扰脉冲 变压器双隔离措施,变压器初级输入端串接电容,初、次级线圈间屏蔽层与初级间电容中心接点接大地,次级外屏蔽层接印板地,这是硬件抗干扰的关键手段 次级加低通滤波器,吸收变压器产生的浪涌电压 采用集成式直流稳压电源,有过流过压过热等保护 IO口光电磁电继电
24、器隔离,避免公共地 通讯线用双绞线,排除平行互感 防雷电,用光纤隔离最为有效 A/D转换用隔离放大器或采用现场转换,减少误差 外壳接大地,解决人身安全及防外界电磁场干扰 加复位电压检测电路,仿止复位不充份CPU就工作,尤其有EEPROM的器件,复位不充份会改变EEPROM的内容(1)抑制干扰源常用措施 抑制干扰源就是尽可能的减小干扰源的du/dt, di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。 减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。u 给继电器线圈增加续流二极
25、管,消除断电时产生的反电动势。u 在继电器接点两端并接火花抑制电路,(一般为RC串联电路,电阻一般为几几十k,电容为001F)减小电火花影响。u 给电机加滤波电路,注意电容、电感连线要尽量靠近电机。u 电路板上每个IC要并接一个00101F高频电容,减小IC对电源的影响。注意高频电容的布线应靠近电源端,并尽量短,否则等于增大了电容的等效串联电阻,会影响滤波效果。u 避免90折线,减小高频噪声发射。u 在可控硅两端并接RC抑制电路,减小可控硅噪声(这个噪声严重时可能 会把可控硅击穿的)。(2)切断干扰传播途径措施 充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机
26、对电源噪声很敏感, 要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成形滤波电路,当然条件要求不高时也可用100电阻代替磁珠。 如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加形滤波电路)。 控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加形滤波电路)。 注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。此措施可解决许多疑难问题。 电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源 (如电机,继电器)与敏感元件(如单片机)远离。 用地线把数字区与模拟区隔离,数字地与模拟
27、地要分离,最后在一点接于电源地。A/D、 D/A芯片布线也以此为原则,厂家分配A/D、D/A芯片 引脚排列时已考虑此要求。 单片机和大功率器件的地线要单独接地,以减小相互干扰。 大功率器件尽可能放在电路板边缘。 在单片机I/O口,电源线,电路板连接线等关键地方使用抗干扰元件 如磁珠、磁环、电源滤波器,屏蔽罩,可显著提高电路的抗干扰性能。(3)提高敏感器件的抗干扰性能提高敏感器件的抗干扰性能是指从敏感器件考虑尽量减小对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。常用措施: 布线时尽量减少回路环的面积,以降低感应噪声。 布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦 合噪声。 对
28、于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置 端在不改变系统逻辑的情况下接地或接电源。 对单片机使用电源监控及看门狗电路,如:IMP809,IMP706,IMP813,X25043,X25045等,可大幅度提高整个电路的抗干扰性能。 在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字 电路。 IC器件尽量直接焊在电路板上,少用IC座。2、软件抗干扰技术叠加在系统模拟输入信号上的噪声干扰,会导致较大的测量误差。但由于这些噪声的随机性,可以通过数字滤波技术剔除虚假信号,求去真值。常用方法如下:(1)算术平均滤波法算术平均滤波法就是连续取N个值进行采样,然后求其平均值。
29、该方法适应于对一般具有随机性干扰的信号进行滤波。这种滤波法的特点是:N值较大时,信号的平滑度好,但灵敏度低;当N值较小时,平滑度低,但灵敏度高。(2)递推平均滤波法 该方法是把N个测量数据看成一个队列,队列的长度为N,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首的一次数据。计算N个数据的平均值。对周期性的干扰,此方法有良好的抑制作用,平滑度高,灵敏度低。但对偶发脉冲的干扰抑制作用差。(3)防脉冲干扰平均值滤波法 在脉冲干扰比较严重的场合,如果采用一般的平均滤波法,则干扰将会“平均”到结果中去,故平均值法不易消除由于脉冲干扰而引起的误差。为此,在N个采样数据中,取掉最大值和最小值,然
30、后计算N2个数据的算术平均值。为了加快测量速度,N一般取值为4。当干扰通过总线或其他口线作用到CPU时,就会造成程序计数器PC值的改变,引起程序混乱,使系统失控。因此,在设计单片机系统时,如何发现CPU受到干扰,并尽可能无扰地使系统恢复到正常工作状态是软件设计应考虑的主要问题。 无论何种控制系统,一般讲,死机现象都是不允许的。克服死机现象最有效的办法就是采用单片机工加了硬件看门狗电路后仍然有死机现象,分析原因,可能有以下方面:(1)因为某种原因,程序混乱后,看门狗电路虽然发出了复位脉冲,但在程序刚刚正常还来不及发出一个脉冲信号,此时程序再次被干扰,而这时看门狗电路已处于稳态,不能再发出复位脉冲
31、。(2)程序进入死循环,在该死循环中,恰好又有看门狗监视IO口上操作的指令。而该IO口仍有脉冲信号输出,看门狗检测不到这种异常情况。(3)在有严重干扰时,中断方式控制字有时会受到破坏,导致中断关闭。可见,只用硬件看门狗电路是无法确保单片机正常工作的。因此,可采用以下方法作为补充。(1)软件“看门狗”的应用 选用定时器T0作为看门狗,将T0的中断定义为最高级中断。看门狗启动后,系统必须及时刷新T0的时间常数。(2)指令冗余技术NOP的使用在8051单片机指令系统中所有指令都不超过3个字节。因此,在程序中连续插入3条NOP指令,有助于降低程序计数器发生错误的概率。 重要指令冗余对于程序流向起决定作
32、用的指令(如RET,RETI,ACALL,LJMP,JZ等)和某些对系统工作状态有重要作用的指令(如SETBEA等)的后面,可重复写下这些指令,以确保这些指令的正确执行。致谢毕业设计是对我们知识运用能力的一次全面的考核,也是对我们进行科学研究基本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写专业学术论文(设计)和工作打下良好的基础。本次设计能够顺利完成,首先我要感谢我的母校重庆工商大学,是她为我们提供了学习知识的土壤,使我们在这里茁壮成长;其次我要感谢老师的细心指导与帮助。最后衷心感谢此次设计中给予我帮助和支持的所有人。参考文献:1 全国大学生电子设计竞赛组委会.
33、 全国大学生电子设计大赛获奖作品精选(2001)北京理工大学出版社2003 2 华成英、童诗白,模拟电子技术,高等教育出版社,2006.5 3 阎石,数字电子技术基础,高等教育出版社,2006.5 4 李建忠,单片机原理及应用,西安电子科技大学出版社,2008.2 5 胡寿松,自动控制原理,科学出版社,2007.6 6 何希才,传感器技术及应用,北京航空航天大学出版社,2005.4 7 朱昌明,电梯技术的发展趋势,中国电梯,2000 8 邵群涛,电子线路CAD,机械工业出版社,2005.8 9 王廷才,电子线路CAD Protel 99使用指南,机械工业出版社,2006.1 10 肖洪兵,跟我学用单片机,北京航空航天大学出版社,2002.8 11 沙占友等,单片机外围电路设计,电子工业出版社,200312 周润景 蔡雨恬 PROTUES入门实用教程(第2版)2011-1213 胡寿松,自动控制原理,科学出版社,2007.614 刘娟 单片机C语言与PROTUES仿真技能实训,中国电力出版社2010.8第19页(共22页)