(中国船舶重工集团公司第七一○研究所,湖北 宜昌 443003) 梁中明,徐 阳
梁中明(1978—)
男,南京航空航天大学硕士毕业,现从事系统仿真研究工作,助理工程师。
温度是一个很重要的环境参数,人们的生活与环境的温度息息相关,工业生产过程中需要实时测量温度,在农业生产中也离不开温度测量。因此,研究温度测量装置很有实际意义与实用价值。本文介绍了数字温度传感器DS18B20的内部结构与工作时序,虚拟 总线的温度显示方式,以及它们与单片机P89C51RD2的应用接口。该温度测量装置适用于人们的日常生活和工业、农业生产用于温度测量。
DS18B20是一种单线式数字温度传感器,具有3引脚TO-92小体积封装形式;测温范围为-55℃~+125℃,可编程为9~12位A/D转换精度,被测温度用符号扩展的16位数字量方式串行输出,工作电源为+3V~+5.5V,可在远端引入,也可采用寄生电源方式产生。
1.1 DS18B20的内部结构
DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其中DQ为数字信号输入/输出端;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
图1 DS18B20内部结构
DS18B20用12位存贮温度值,最高位为符号位,图2为DS18B20的温度存储方式,负温度S=1,正温度S=0,如0550H为+85℃,FC90H为-55℃。
图2 DS18B20温度寄存器存储方式
DS18B20的单线式工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3所示。
(a) 初始化时序
(b)写时序
(c)写时序
图3 DS18B20工作时序图
2 虚拟总线显示方式
温度显示采用LED数码管,其驱动芯片是ZLG7290。ZLG7290是接口的键盘及LED驱动器,可驱动8位共阴数码管,无需外接元件即直接驱动LED,可扩展驱动电流及驱动电压。在每个显示刷新周期,ZLG7290按照扫描位数寄存器指定的显示位数N,把显示缓存DpRam0~DpRamN的内容先后顺序送入LED驱动器实现动态显示,减少N值可提高每位显示扫描时间的占空比,以提高LED亮度,显示缓存中的内容不受影响。修改闪烁控制寄存器(FlashOnOff)可改变闪烁频率和占空比(亮与灭的时间)。
总线是PHILIPS公司推出的芯片间串行数据传输总线,2根线(SCL、SDA)即可实现完善的全双工同步数据传送,能够十分方便地构成多机系统和外围器件扩展系统。
ZLG7290的接口传输速率可达32Kbit/s,容易与处理器接口,本文采用单主
总线形式,硬件接口是SCL、SDA。本文设计的硬件电路图如图4所示,采用P89C51RD2的P1.6与P1.7模拟
的SCL与SDA,构成虚拟的
总线显示方式。
温度测量装置的主程序流程,如图5所示。P89C51RD2控制DS18B20完成温度读取必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。程序必须先启动DS18B20开始转换,再读出温度值,其中包括读DS18B20,写DS18B20以及延时子函数。

/*DS18B20初始化程序*/
INIT_1820:
SETB DQ
NOP
CLR DQ
MOV R0,#80H
TSR1: DJNZ R0,TSR1 ; /*延时*/
SETB DQ
MOV R0,#25H
TSR2: DJNZ R0,TSR2
JNB DQ,TSR3
LJMP TSR4 ;/*延时*/
TSR3: SETB FLAG1 ; /*置标志位*/
LJMP TSR5
TSR4: CLR FLAG1 ;/*清标志位*/
LJMP TSR7
TSR5: MOV R0,#06BH ;/*200μs*/
TSR6: DJNZ R0,TSR6 ; /*延时*/
TSR7: SETB DQ
RET
void Start_I2c() /*启动总线*/
{
SDA=1; /*发送起始条件的数据信号*/
_Nop();
SCL=1;
_Nop(); /*起始建立时间大于4.7μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*发送起始信号*/
_Nop(); /*起始锁定时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*钳住总线*/
_Nop();
_Nop();
}
图5 主程序流程图
void Stop_I2c() /*结束总线*/
{
SDA=0; /*发送结束条件的数据信号*/
_Nop(); /*发送结束条件的时钟信号*/
SCL=1; /*结束时建立时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
SDA=1; /*发送总线结束信号*/
_Nop();
_Nop();
_Nop();
_Nop();
}
图4 硬件电路原理图
数字式温度传感器DS18B20集温度测量、A/D转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点;虚拟

参考文献:
[1] DallasCorp.DS18B20[EB/OL].http://www.dalsem.com,2003.
[2] 马云峰等.数字温度传感器DS18B20原理与应[EB/OL].http://www.chinacd.com/dzkw//2002-1/9.htm,2002-01-12/2003-09-26.
[3] 吕元颖等.总线概述及有关例程.科技情报开发与经济,2005,No15.P177~180.
[4] P89c51RA2xx/RB2xx/RC2xx/RD2xx.datasheet. Philips Semiconductors .2002.