2 系统硬件设计2.1 系统总体设计结构太阳能热水器控制器主要由温度水位数据采集模块、单片机控系统。
本次设计选用的是AT89C52单片机作为核心控制器,组成热水器微控制系统。
传感器采用的是单片集成两端感温电流源DS18B20温度传感器,用于检测水温,并负责将检测到的水压转换成0~5V的模拟信号,然后通过ADC0832模数转换器把检测到的温度电压信号转换成数字信号,一方面由单片机AT89C52完成最终完成太阳能热水器控制器的控制功能,另一方面通过LED显示当前温度和水位值,另外一方面与温度和水位设定值进行比较、运算,根据结果发出相应的上水、加热指令,对热水器的温度和水位进行控。
2.2 温度检测电路温度检测部分是实现温度智能控制的重要环节,只有准确地检测出温度,才能通过软件实现辅助加热。
其性能的好坏直接影响系统的性能,对于温度检测,目前比较理想的是集成温度传感器DS18B20,因此温度传感器采用是美国模拟器件公司生产的单片集成两端感温电流源DS18B20。
DS18B20温度传感器是一种已经IC化的温度感测器,它会将温度转换为电流,在单片机的各种课本中经常看到。
其规格如下:(1)温度每增加1℃,它会增加1μA输出电流;(2)可测量范围-55℃至125℃;(3)供电电压范围+3V至+5V。
AD590的管脚图及元件符号如2.2所示:图2.2 DS18B20的管脚图及元件符号DS18B20的输出电流值说明如下:其输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout=(273+25)=298μA。
2.2.1 DS18B20的主要特性(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2.2.2 DS18B20工作原理图2.3 DS18B20测温原理图DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。
DS18B20测温原理如图2.3所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
2.2.3 DS18B20引脚定义(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
2.3 水位检测电路A/D转换ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
ADC0832 特点:逐次逼近式A/D转换器;双通道A/D转换;输入输出电平与TTL/CMOS相兼容5V电源供电时输入电压在0~5V之间;工作频率为250KHZ,转换时间为32μS;一般功耗仅为15mW;8P、14P—DIP(双列直插)、PICC 多种封装。
芯片接口说明:CS_片选使能,低电平芯片使能;CH0 模拟输入通道0,或作为IN+/-使用;CH1 模拟输入通道1,或作为IN+/-使用;GND 芯片参考0 电位(地);DI 数据信号输入,选择通道控制;DO 数据信号输出,转换数据输出;CLK 芯片时钟输入;Vcc/REF 电源输入及参考电压输入(复用)。
2.3.1 ADC0832工作原理ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。
图2.4为ADC0832管脚图图2.4 ADC0832管脚图2.4 单片机控制系统单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。
第一阶段:SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
第二阶段:MCU即微型控制器(Micro Controller Unit)阶段,不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
第三阶段:单片机是嵌入式系统的独立发展之路,寻求应用系统在芯片上的最大化是MCU阶段发展的重要因素。
随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
它不仅具有8031单片机的一切功能,还有许多功能是8031所没有的。
其内部带有8KB可多次擦写的FLASH内部程序存储器,可用电擦除,十分方便。
2.4.1 AT89C52的主要特性AT89C52单片机主要有以下一些特点:(1)与MCS-51产品兼容;(2)具有8KB可改写的FLASH内部程序存储器,可进行1000次擦/写操作;(3)全静态操作:0Hz到24MHz;(4)三级程序存储器加密;(5)256字节内部RAM;(6)、32条可编程I/O线;(7)3个16位定时/计数器;(8)8个中断源;(9)可编程串行口;(10)低功耗空闲和掉电方式。
2.4.2 AT89C52的引脚说明AT89C52包括40个引脚,其引脚结构如图2.5所示。
图2.5 AT89C52外部管脚排列图P0口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
P1口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),表2.1为P1.0和P1.1的第二功能引脚号功能特性P1.0 T2,时钟输出P1.1 T2EX(定时/计数器2)P2口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P3口:P3口是一组带有内部上拉电阻的8 位双向I/O 口。
P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O 口线外,更重要的用途是第二功能。
表2.2为P3口引脚第二功能。
引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 0INT(外部中断0)P3.3 1INT(外部中断1)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器写选通)RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:外部访问允许。
欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。
2.4.3 振荡特性XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:振荡器反相放大器的输出端。