您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机AT89C51控制的热水器设计
摘要热水器控制系统以AT89C52单片机为检测控制中心单元,采用DSl2887实时时钟,不仅实现了时间、温度和水位三种参数实时显示功能,而且具有时间设定、温度设定与控制功能。控制系统可以根据天气情况利用辅助加热装置(电加热器)使蓄水箱内的水温达到预先设定的温度,从而达到24小时供应热水的目的。本设计主要采用了水位传感器、温度传感器和单片机AT89C52来实现控制。可以在不同时间进行不同的温度调节,从而实现24小时热水的控制。摘要...................................................................................................................11总体方案设计....................................................................................................31.1方案比较.....................................................................................................31.2方案选择.....................................................................................................42.单元模块设计.................................................................................................42.1各单元模块功能介绍及电路设计............................................................42.1.1单片机系统设计..................................................................................42.1.2控制器实时时钟接口电路.................................................................52.1.3水位检测和温度检测接口电路.........................................................62.1.4DS18B20与单片机接口电路设计.....................................................72.1.4键盘和显示接口电路的设计............................................................92.1.5光电隔离与辅助加热电路..............................................................103软件设计..........................................................................................................113.1软件设计原理及设计所用工具..............................................................113.2显示子程序...............................................................................................133.3主程序:...................................................................................................14附录1:..............................................................................................................191总体方案设计1.1方案比较方案一设计的太阳能热水器控制系统以89C52单片机为检测控制中心单元,采用DSl2887实时时钟,不仅实现了时间、温度和水位三种参数实时显示功能,而且具有时间设定、温度设定与控制功能。控制系统可以根据天气情况利用辅助加热装置(电加热器)使蓄水箱内的水温达到预先设定的温度,从而达到24小时供应热水的目的。实际应用结果表明,该控制器和以往显示仪相比具有性价比高、温度控制与显示精度高、使用方便和性能稳定等优点。AT89C52图1-1系统硬件结构图方案二采用系统的温度采集选用PTl000铂电阻温度传感器,采集到的电压信号经集成运放LM324放大到2.O一5.0伏之间,送入串行加转换器11LCl543N,转换结果由单片机处理,其电路原理如图3所示.设计时将加转换器的参考电压设置为vREF+=5.0V,VREF=1.5V.LM324按照同相比例放大电路连接,则Vo=vi*(Rt/R+1)=0.5*(Rt/300+1).Rt值的变化表示了PtlooO温度传感器温度的变化,每个温度值对应一定的转换结果。可以在程序中建立一个查找表,表中每个元素的地址即为转换结果,元素值即为所对应的温度值。图1-2系统硬件结构图11.2方案选择方案一硬件电路简单,程序设计复杂一些,但是我已经使用开发工具KEIL用汇编语言对系统进行了程序设计,用仿真软件PROTEUS对系统进行了仿真,达到了预期的结果。由此可见,该方案完成具有可行性,体现了技术的先进性,经济上也没有问题。2.单元模块设计2.1各单元模块功能介绍及电路设计物2.1.1单片机系统设计单片机系统由AT89C52和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路,提供系统频率的晶振。这部分电路主要负责程序的存储和运行。上图中MCS-51内部时钟方式电路外接晶体以及电容C5和C6构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。晶体可在1.2MHz~12MHz之间任选,电容C5和C6的典型值在20pF~100pF之间选择,但在60pF~70pF时振荡器具有较高的频率稳定性。典型值通常选择为30pF左右,但本电路采用33pF。在设计印刷电路板时,晶体或陶瓷振荡器和电容应尽可能安装的与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定和可靠的工作。为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。AT89C52的复位是由外部的复位电路来实现的。复位电路通常采用上电自动复位和按钮复位两种方式。本设计中所用到的是上电按钮复位。图2-2单片机系统2.1.2控制器实时时钟接口电路为实现热水器24小时供应热水的目的,控制器必须有一个实时时钟来为系统提供准确的基准时间;在软件设计上则要实时地读出当前时间,同设定时间比较,以决定系统工作状态。本系统采用美国DALLAS半导体公司最新推出的时钟芯片DS12887,该芯片采用CMOS技术,把时钟芯片所需的晶振和电池以及相关的电路集成到芯片内部,并与MC146818管脚完全兼容。DS12887芯片具有微功耗、外围接口简单、精度高,工作稳定可靠等优点。它与89C52单片机的接口电路见下图2-2。图2-2DS12887与单片机接口电路2.1.3水位检测和温度检测接口电路蓄水箱水位和温度检测部分是实现温度智能控制的重要环节,只有准确地检测出水位和温度,才能通过软件计算提前开始辅助加热的预加热时间。要实现辅助加热提前时间的精确计算,最好是采用连续液位传感器,但考虑系统成本,本设计仍采用分段式液位传感器(通过软件来提高精度),在水位显示上也仍采用分段显示。水位检测部分的硬件连接如图2-3所示。图2-3水位监测及显示接口电路检测原理如下:当水箱中无水时,8个非门均由1M欧姆电阻上拉成高电平,所以图中各“非”门(CD4069)输出均为低电平,LED1~LED8均不亮。当水位高于“非”门1的输入探针时,由于水的导电作用,使“非”门1的输入变为低电平,所以其输出变为高电平,LED点亮,依此类推。随着水位的上升,各“非”门输出相继为高电平,LED依次点亮。这里要注意的是上拉电阻不能选择太小,因为水的电阻在100k8左右,所以上拉电阻选择太小的话,将在水位升高时,无法把“非”门输入端拉成低电平。实验表明,上拉电阻选择在500k~1M欧姆左右能很好地满足电路的工作要求。为了使89C52随时能够读出当前的水位情况,这里选用74LS244作为状态输入缓冲器。蓄水箱温度检测电路采用DS18B20芯片使其换成脉冲信号,送到89C52的I/O口(编程为计数器工作模式),通过测量输出脉冲频率的大小来换算成水温高低信号。2.1.4DS18B20与单片机接口电路设计基于DS18B20多点温度测量系统以AT89C51为中心器件,以KEIL为系统开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。DS18B20是智能温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。如图2-4图2-4DS18B20与单片机接口电路2.1.4键盘和显示接口电路的设计下图为89C52单片机P1口构成的中断方式4*4键盘电路。P1.0-P1.3为行线,P1.4-P1.7为列线,行线与4输入与门74HC21的一组输入端相连,输出端与外部中断INT1相连。16个键号Ki(I=0-15)次序如图中标注。图2-589C52P1口构成的4*4中断方式键盘行列式键盘处理程序较为复杂,当有键按下时74HC21输出端出现低电平请求中断;在中断服务程序中要再次确认是否真有键按下,真有键按下时,再查出是哪个键按下,把该键的键号送入堆栈保护,等待键释放后再将键号弹出A中。该键盘输入处理程序的出口状态是键号在A中。设计中断程序时,先在主程序中将中断系统初始化,并开中断。在试验演示中通常开中断都设置循环等待。键盘和显示电路是人机交互的重要手段。控制键是用户干预系统运行的唯一接口,也是用户比较关心的问题。为了实现控制器对时间与温度的设定及显示功能,串行显示电路采用串入并出芯片74LS164驱动4位数码管实现时间与温度的静态显示。该电路只使用89C52的3个端口,配接4片串入并出移位寄存器74LS164与1片三端可调稳压器LM317T。其中74LS164的引脚Q0~Q7为8位并行输出端;引脚A、B为串行输入端;引脚CLK为时钟脉冲输入端,在CLK脉冲的上升沿作用下实现移位,在CLK=0、清除端MR=1时,74LS164保持原来数据状态;MR=0时,74LS164输出清零,其显示电路如图3-5。其工作过程如下:89C52的串行口设定在方式0移位寄存器状态下,串行数据由P3.0发送,移位时钟由P3
本文标题:基于单片机AT89C51控制的热水器设计
链接地址:https://www.777doc.com/doc-2573725 .html