基于单总线器件DS18B20的温度测量仪 发布时间:2009-8-3 阅读次数:228 字体大小: 【小】 【中】【大】 1 引言 许多情况下需要测量温度参数。通常测温系统的主要器件是热敏电阻,由于它体积小、重复性好、测量方法简单,所以在测温系统中广泛应用。但采用热敏电阻的测温系统需要A/D转换,而且测量精度不高。本文采用Dallas公司生产的一种新型温度传感器DS18B20,它集温度测量、A/D转换于一体,其测量范围宽(-55℃~+125℃),精度高(0.0625℃),DS18B20是一款具有单总线结构的器件。 由DS18B20组建的温度测量单元体积小,便于携带、安装。同时,DS18B20的输出为数字量,可以直接与单片机连接,无需后级 A/D转换,控制简单。由于DS18B20具有单总线特性,便于扩展,可在一根总线上挂接多个 DS18B20来组建温度测量网络。 2 硬件电路设计 本系统设计采用 Mega8单片机控制 DS18B20,由显示电路显示当前温度。其系统硬件电路如图 1 所示。Atmel的Mega8单片机采用RTSC(精简指令集),指令执行速度快,内嵌 8 KB Flash程序存储器,支持 ISP(在系统编程),片内含有大容量的RAM区,具有 SPT总线、I2C总线、ADC功能。Mega8单片机体积小,功能强,具有 PDIP-28封装及 TQFP封装。 DS18B20采用单总线方式和 Mega8单片机相连,即 DS18B20的1 引脚和 3引脚接地,2 引脚通过一只 240 Ω的电阻接至 Mega8的PB7引脚,同时将 PB7引脚采用一只 4.7 kΩ 的电阻上拉至 VCC。 单总线即只用一根信号线,既供电,又传输数据,而且数据传输是双向的,单总线具有"线与"功能,连接方便,便于扩展。 由于DS18B20采用 CMOS技术,耗电量很小,从总线上"偷"一点电保存到 DS18B20内的电容中就可供给器件工作。串联 240 Ω 电阻的目的是防止有缺陷的程序损坏 DS18B20,如果没有正确地采用OC(集电极开路)或 OD(漏极开路)结构驱动 DS18B20,而是选择推挽方式,DS18B20可能被烧坏。 2.1 DS18B20的控制时序 由于DS18B20是采用一根 I/O总线读写数据,因此,DS18B20对读写数据位有严格的时序要求。DS18B20遵循相应的通信协议从而保证数据传输的正确性和完整性。该通信协议定义了多种信号时序:初始化时序、读时序、写时序。所有时序都是将单片机作为主机,DS18B20作为从机。每一次命令和数据传输都是从主机启动写时序开始,如果要求从机回送数据,在写命令后,主机需启动读时序接收数据。所有的读、写时序至少需要60μ s,且每两个...