DS18B20工作时被测温度值直接以“单总线”的数字方式传输,大大提高了系统的抗干扰能力。其内部采用在板温度测量专用技术,测量范围为-55℃~+125℃,在-10℃~+85℃时,精度为?0.5℃。每个DS18B20在出厂时已具有唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20,而不会出现混乱现象。另外用户还可自设定非易失性温度报警上下限值TH和TL(掉电后依然保存)。DS18B20在完成温度变换后,所测温度值将自动与存储在TH和TL内的触发值相比较,如果测温结果高与TH或低于TL,DS18B20内部的告警标志就会被置位,表示温值超出了测量范围,同时还有报警搜索命令识别出温度超限DS18B20。
图3.6为DS18B20的内部存储结构图,它包括一个暂存RAM和一个非易失性可擦除
E2RAM。
其中暂存存储的完整性,它包括8度读数,数据格式
图3.6 DS18B20内部存储结构
器作用是在单线通信时确保数据个字节,头两个字节表示测得的温如下:
S=1时表示温度为负,S=0时表示温度为正,其余低于以二进制补码形式表示,最低位为1时表示0.0625℃。温度/数字对应关系如上表所示。
DS18B20内部暂存存储器的第5个字节是结构寄存器,它主要用于确定温度值的数字转换分辨率。字节结构如下:
其中R1、R0用于设置分辨率。 3.2.2 DS18B20的硬件连接
DS18B20与单片机的接口极其简单,只需将DS18B20的信号线与单片机的一位双向端
口相连即可。如图3.7(a)所示。此时应注意将VDD、DQ、GND三线焊接牢固。另外也可用两个端口,即接收口与发送口分开,这样读写操作就分开了,不会出现信号竞争的问题。如图3.7(b)所示。此图是采用寄生电源方式,将DS18B20的VDD和GND接在一起。如若VDD脱开未接好,传感器将只送+85.0℃的温度值。一般测温电缆线采用屏蔽4芯双绞线,其中一对接地线与信号线,另一对接VDD和地线,屏蔽层在源端单点接地。
图3.7 DS18B20与单片机的接口
4 热水控制器的系统设计
4.1硬件设计
基于单片机的热水控制器主要有以下几部分:温度检测数据采集部分,LED数码管显示电路、报警及控制输出部分、单片机及按键电路设计等几个部分,下面分别加以介绍 4.1.1 温度检测部分
温度传感器有很多种,如热敏电阻,热电偶,PN结,半导体温度传感器等。这里选用单总线数字输出的集成半导体温度传感器DS18B20,其特点:独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;测温范围-55℃~+125℃,固有测温分辨率0.5℃;支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现多点测温;工作电源:3~5V/DC。
温度检测数据采集电路如图4.1所示,由温度传感器DS18B20采集被控对象的实时温度,提供给AT89C51的I/O口作为数据输入。在本次设计中我们所控的对象为热水的温度。
图4.1 温度传感器电路
4.1.2 LED数码管显示电路
显示器分为数码管和液晶显示,我所采用是的数码管显示,其外形和引脚如下图所示:
图4.2 数码管外形和引脚图 LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳机极数码管;相反的,就叫共阴的(如下图所示)那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。
图4.3 共阴极和共阳极数码管内部电路
基于单片机的热水控制器采用7段数LED码管显示,这里采用6个数码管显示温度,两位显示设定的最高温度、两位显示设定的最低温度、两位显示热水的当前温度。
6位共阳极数码管采用扫描形式工作,其8个数据为接在单片机灌电流驱动能力最大的PO口,AT89C51单片机的P0口的每一个I/O都能能吸收8个TTL逻辑器件的输入漏电流,算下来能驱动约10mA。能驱动数码管的8个数据阴极。
6位共阳极数码的6个阳极采用6个PNP三极管9012驱动。用单片机P2.0-P2.5 6个I/O口控制。
LED数码管显示电路如图4.4所示。
图4.4 数码管显示电路
4.1.3 报警及控制输出部分
当水温超过最高温度+3度时,热水控制器需停止加热并报警;当水位低于最低温度-3度时,需开始加热,这就需要报警电路及输出模块。
声音报警电路通过驱动蜂鸣器发声实现,当其接通5V的电压会发出蜂鸣叫声。原理图如图4.5,NPN型三极管8050驱动蜂鸣器,当单片机I/O口输出高电平时蜂鸣器发声
此外,控制加热棒的控制信号同样由单片机输出,经过三极管Q3驱动继电器J1, J1 具有两对常开和常闭接点,利用其常开接点串到加热棒的控制回路中,可以实现加热棒的控制。电路中二极管D1为续流二极管, 继电器线圈在通过电流时,会在其两端产生感应电动势。当电流消失时,其感应电动势会对电路中的三极管Q3产生反向电压。当反向电压高于Q3 的反向击穿电压时,会把三极管成损坏。续流二极管并联在线圈两端,当流过线圈中的电流消失时,线圈产生的感应电动势通过二极管和线圈构成的回路做功而消耗掉。从而保护了电路中的三极管的安全。
图4.5 声音报警电路
4.1.4 单片机及按键电路设计
图4.6为单片机及键盘电路的电路图,单片机AT89S52的时钟引脚外接12M晶振,作为单片机工作的时钟,EA端接高电平,表示使用片内程序存储器。RST引脚接了上电复位
电路,当系统上电时,上电复位电路会产生一个高电平脉冲信号,使系统复位。
图4.6 单片机及键盘电路电路图
键盘是标准的输入设备,实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描,如8279, CH451, LMC9768等,还有就是用软件实现键盘扫描。使用现成的芯片可以节省CPU的开销,但增加了成本,而用软件实现具有较强的灵活性,也只需要很少的CPU开销,可以节省开发成本。本文便使用软件实现键盘的扫描。
常见的键盘可分为独立按键式键盘和行列扫描式键盘。独立按键式键盘应用在需要少量按键的情况,按键和单片机的I/O口线直接连接。而行列扫描式键盘用在按键需求较多的情形下。考虑到热水控制器只需要高限加、高限减、低限加、低限减四个按键 ,所以采用独立按键式键盘。
理论上当按键按下或弹起时,可以相应的产生低电平或高电平,但实际并非如此。键盘按键一般都采用触点式按键开关。当按键被按下或释放时,按键触点的弹性会产生抖动现象。即当按键按下时,触点不会迅速可靠地接通,当按键释放时,触点也不会立即断开,而是要经过一段时间的抖动才能稳定下来,按键材料不同,抖动时间也各不相同。
图4-7 按键抖动示意图