基于AT89C51单片机与DS18B20的温度测量系统
基于AT89C51利用DS18B20做温度计的完整程序

P0=dat;
delay1ms(1);
EN=1;
delay1ms(1);
EN=0;
}
void lcd_init()//初始化设置//
{
delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x08);
sbit RW=P2^5;
sbit EN=P2^7;
uchar code str1[]={"temperature: "};
uchar data disdata[5];
uint tvalue;//温度值
uchar tflag;//温度正负标志
/*************************lcd1602程序**************************/
{
wr_dat(*p);
p++;
delay1ms(1);
}
}
void init_play()//初始化显示
{
lcd_init();
wr_com(0x80);
display(str1);
}
/******************************ds1820程序***************************************/
uchar ds1820rd()/*读数据*/
{
uchar i = 0;
uchar dat = 0;
for (i=8 ; i>0 ; i--)
{
DQ = 0; //给脉冲信号
基于AT89C51DS18B20的数字温度计设计

基于AT89C51DS18B20的数字温度计设计一、本文概述Overview of this article本文旨在探讨基于AT89C51微控制器和DS18B20数字温度传感器的数字温度计设计。
我们将详细介绍如何利用这两种核心组件,结合适当的硬件电路设计和软件编程,实现一个能够准确测量和显示温度的数字温度计。
This article aims to explore the design of a digital thermometer based on AT89C51 microcontroller and DS18B20 digital temperature sensor. We will provide a detailed introduction on how to utilize these two core components, combined with appropriate hardware circuit design and software programming, to achieve a digital thermometer that can accurately measure and display temperature.我们将对AT89C51微控制器和DS18B20数字温度传感器进行简要介绍,包括它们的工作原理、主要特性和适用场景。
然后,我们将详细阐述硬件电路的设计,包括微控制器与温度传感器的连接方式、电源电路、显示电路等。
We will provide a brief introduction to the AT89C51 microcontroller and DS18B20 digital temperature sensor, including their working principles, main characteristics, and applicable scenarios. Then, we will elaborate on the hardware circuit design, including the connection method between the microcontroller and temperature sensor, power circuit, display circuit, etc.在软件编程方面,我们将介绍如何使用C语言对AT89C51微控制器进行编程,实现温度数据的读取、处理和显示。
基于AT89C51单片机与DS18B20的温度测量系统

第24卷 第9期2008年5月甘肃科技Gansu Science and TechnologyV ol.24 N o.9M ay. 2008基于AT89C51单片机与DS18B20的温度测量系统蔺 鹏1,柴世红2(兰州工业高等专科学校;1电子信息工程系2软件工程系,甘肃兰州730050)摘 要:介绍了单总线数字温度传感器DS18B20的特性及工作原理,给出了A T89C51单片机与DS18B20构成温度测量系统并详细介绍利用汇编语言编程实现对DS18B20访问。
实际测试结果表明这种测温系统转换速度快、精度高,整个系统具有稳定性强等特点。
关键词:DS18B20;数字温度传感器;A T89C51;中图分类号:TN925 典型的温度测控系统是由模拟温度传感器、A/D 转换电路和单片机组成。
但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,成本较高。
近年来,由于以DS18B20为代表的新型单总线数字式温度传感器的突出优点使得它得到充分利。
DS18B20集温度测量和A/D 转换于一体,直接输出数字量,接口几乎不需要外围元件,硬件电路结构简单,传输距离远,可以很方便的实现多点测量;与单片机接口几乎不需要外围元件,使得硬件电路结构简单,广泛使用于距离远,节点分布多的场合。
1 DS18B20介绍DS18B20是美国DALL AS 公司推出的一种可组网的数字式温度传感器,能够直接读取被测物体的温度值[1]。
具有TO -92、TSOC 、SOIC 多种封装形式,可以适应不同的环境需求。
1.1 DS18B20具有以下主要特性(1)单总线接口方式:与微处理器连接时仅需要一条信号线即可实现双向通讯;(2)使用中无需外部器件,可以利用数据线或外部电源提供电能,供电电压范围3.3-5.5V ;(3)直接读出数字量,工作可靠,精度高,且通过编程可实现9~12位分辨率读出温度数据,转换12的温度数据最大仅需要750ms ;(4)温度测量范围-55℃~+125℃,-10℃~+85℃之间测量精度可达±0.5℃;(5)可设定非易失的报警上下限值,一旦测量温度超过此设定值,即可给出报警标志;(6)每片DS18B20上有唯一的64bit 识别码,可轻松组建分布式温度测量测量网络。
采用DS18B20和AT89C51单片机的远程温控系统设计

采用DS18B20和AT89C51单片机的远程温控系统设计1 引言粮食温度检测是储备库中防止粮食霉烂、保质存放的重要环节。
对于一个农业大国来讲,粮食生产、需求与储备量都很大。
大量粮食在储备的过程中常因粮食湿度过大而升温发热,导致粮食大量腐烂变质,给国家带来巨大损失。
所以粮仓监控系统中温度测量是整个系统的主要功能之一。
本文介绍一种以单线数字温度传感器DS18B20为温度敏感元件的粮仓温控系统,系统以微型计算机为上位机,89C51单片机为检测分机,DS18B20数字温度传感器直接与分机连接,分机与测温主机通过RS-485总线网进行通信,系统所有操作通过菜单命令完成。
本文主要围绕下位机数据采集部分进行论述,并结合粮仓监控系统,对DSl8B20的这种单总线技术及其在本系统中的具体应用进行了讨论。
2 系统硬件设计2.1 系统的总体设计整个系统从结构上可分为三层:由微型计算机构成上位机——用户监控层,51 单片机系统分别构成测温主机——控制层和分机——温度数据采集层。
上位机通过串行口与测温主机交换数据。
测温主机与多台分机采用主从分布式结构。
系统组成结构如图 1 所示,测温主机与上位机通过RS-232 总线连接,测温分机与主机通过RS-485 总线连接。
一台主机最多可管理64 台分机,一台分机可以测试大约1000 个温度点。
本设计适用于中小型粮库。
2.2 温度数据采集模块的设计DS18B20是美国DALLAS公司生产的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。
可以在三根线上同时并联多个温度传感器,每台分机上可以连接多根电缆,每根电缆上可以并联几十个点,构成串行总线工作方式。
由于18B20芯片送出的温度信号是数字信号,因此简化了A/D转换的设计,提高了测量效率和精度;并且芯片的ROM中存有其唯一标识码,即不存在相同标识码的DS18B20,特别适合与微处理芯片构成多点温度测控系统。
基于51单片机和DS18B20的数字温度计设计

题目:基于89C51和DS18B20的数字温度计设计一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C以内,LED 数码管直读显示。
二、方案论证根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。
选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。
该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。
检测范围-55摄氏度到125摄氏度。
按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图如图1所示。
图1 数字温度计总体电路结构框图三、系统硬件电路的设计温度计电路设计原理图如图2所示,控制器使用单片机AT89C51,温度传感器使用DS18B20,用4位共阳LED数码管实现温度显示。
图2 数字温度计设计电路原理图1、主控制器AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2、显示电路显示电路采用4位共阳LED数码管,从P0口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用8550三极管。
3、温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
毕业设计_基于AT89C51单片机为核心的多路温度采集系统电路设计

Abstract
This design is proposed based onAT89C51microcontroller as the core of the temperature control system and its digital single-bus technology used inthe design of the greenhouse temperature measurement system. Program uses a new type of digital temperature sensor DS18B20, use DS18B20 temperature sensor embedded inside the greenhouse temperature, transformed into the current changes, and thenaconverted to voltage input ADC, the bus passed through the singleAT89C51comicic-rocontrollerAT89C51microcontroller input and output through the serial port tounat-e with the PC machine.System for real-time multi-point inspection of temperature,w-hile providing instruction based on the temperature of PC-time acquisition.Tempsen-sor for temperature DS18B2collection, microcontroller reads the message from theD-S18B20 temperature and with the effective temperature of the upper and lowerextm-comparison, if more than the effective temperature range, start alarm system, and to the PC, send the appropriate signals, or continue to read from the DS18B20temper- rure. The system has a practical and high reliability。
(毕业设计)基于89C51和DS18B20的数字温度计设计
一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C,采用AT89C51单片机和DS18B20温度传感器,设定温度报警的最低值和最高值。
采用点阵字符型液晶模块作为数字温度计的显示器,分两行显示,第一行显示DS18B20工作状态,第二行显示实测温度值和状态符号,>H表示实测温度大于温度报警范围,<L表示实测温度小于设置温度报警范围,!表示实测温度在正常范围内,当实测温度超过设定温度限制范围是,发出声光警报信号。
二、方案论证根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机A T89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。
选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。
该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用点阵液晶模块LCD1602实现显示。
检测范围-55摄氏度到125摄氏度。
按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图如图1所示。
图1 数字温度计总体电路结构框图三、系统硬件电路的设计温度计电路设计原理图如图2所示,控制器使用单片机A T89C51,温度传感器使用DS18B20,用4位共阳LED数码管实现温度显示。
D图2 数字温度计设计电路原理图1、主控制器AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。
该器件采用A TMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
计算机毕业设计_基于AT89C51单片机的温度测控系统设计
毕业设计(论文)温度测控系统的设计与实现姓 名系别、专业导师姓名、职称完成时间基于AT89C51单片机的温度测控系统设计摘要设计一款基于AT89C51单片机的温度测控系统,介绍该系统的工作原理和设计方法。
该系统温度信号由数字温度传感器DS18B20采集,送AT89C51单片机进行处理,并通过数码管显示。
控温部分使用4×4矩阵按键进行温度上限和下限的设定,当温度超过设定值范围后,单片机将发出控制信号启动升温装置或降温装置,使温度保持在一定的范围。
实验测试证明,设计的样机系统测温控温精度均为0.1℃,测温控温的范围可达-55~+125℃,可应用于家用电器、汽车、冷库等领域。
关键词:AT89C51;DS18B20;数码管;温度测控引言温度的测量和控制在日常生活和工业领域中具有广泛的应用,随着人们生活水平的大幅提高,对温度测量控制的精度和范围也有着更高的要求。
在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控等现象。
PID控制方式控制稳定且精度高,但是控制对象的模型难以建立,并且当扰动因素不明确时,参数调整较复杂。
本文采用DS18B20数字温度传感器,该传感器具有微型化、封装简单、低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,可使系统测量更加精确,电路更加简单。
实验测试证明,设计的样机系统测温控温精度均为0.1℃,测温控温的范围可达-55~+125℃,可应用于家用电器、汽车、冷库等领域。
1 系统总体方案该系统将检测点的温度采集之后发送到单片机进行处理,并通过4×4矩阵按键进行温度上限和下限的设定。
当温度超过设定值范围后,单片机将发出控制信号启动升温装置或降温装置,使温度恒定在一定的范围。
系统主要包括温度采集模块、4×4行列式矩阵按键模块、主控模块、温度控制模块、测温控温显示模块等,其结构框图如图1所示。
基于AT89C51的多点温度检测系统设计
基于AT89C51的多点温度检测系统设计作者:王红玲, 白政民来源:《现代电子技术》2010年第09期摘要:提出了一种以AT89C51单片机和DS18B20温度传感器为主要元器件的多点温度检测系统。
首先给出系统的工作原理和软件流程图,并对系统主要电路,如温度测试电路、键盘及显示电路、电源电路等进行了设计。
与传统的模拟测温系统相比,该系统硬件组成更加简捷、高效,抗干扰能力更加突出。
关键词:AT89C51; DS18B20; 多点温度检测系统; 温度检测中图分类号:TP273 文献标识码:A文章编号:1004-373X(2010)09-0126-03Design of Multi-point Temperature Detecting System Based on AT89C51WANG Hong-ling, BAI Zheng-min(School of Electrical and Information Engineering, Xuchang University, Xuchang 461002, China)Abstract: A multi-point temperature detecting system taking AT89C51 single chip microcomputer and the digital temperature sensor DS18B20 as main components is introduced. The working principle and software flow chart of tdesigned. Comparing with the traditional analog temperature detecting system, the hardware composition of the system is more concise and efficient ,and its anti-interference capability is stronger.Keywords: AT89C51; DS18B20; multi-point temperature detecting system; temperature detection0 引言在工业生产及日常生活中,多点温度检测系统的应用十分广泛,例如消防电气的非破坏性温度检测,电力设备的过热故障预知检测,空调系统的温度检测,各类运输工具组件的过热检测,医疗与诊断设备的温度测试等[1]。
基于AT89C51和DS18B20的最简温度测量系统
基于AT89C51和DS18B20的最简温度测量系统l引言温度的测量和控制在激光器、光纤光栅的使用及其他的工农业生产和科学研究中应用广泛。
温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结之类的模拟温度传感器。
信号经取样、放大后通过模数转换,再交自单片机处理。
被测温度信号从温敏元件到单片机,经过众多器件,易受干扰、不易控制且精度不高。
因此,本文介绍一种新型的可编程温度传感器DS18B20,他能代替模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。
DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
2温度测量系统硬件系统结构图如图1所示[1]。
这里通过上拉电阻直接驱动LED显示。
以增加线路复杂度为代价,减少芯片数量。
2.1数字温度传感器DS18B20DS18B20是美国DALLAS公司推出的单总线数字测温芯片。
他具有独特的单总线接口方式,仅需使用1个端口就能实现与单片机的双向通讯。
采用数字信号输出提高了信号抗干扰能力和温度测量精度。
他的工作电压使用范围宽(3.0~5.5 V),可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电。
他还有负压特性,电源极性接反时,DS18B20不会因接错线而烧毁,但不能正常工作。
可以通过编程实现9~12位的温度转换精度设置。
由表1[2]可见,设定的分辨率越高,所需要的温度数据转换时间就越长,在实际应用中要将分辨率和转换时间权衡考虑。
DS18B20采用3脚TO-92封装,形如三极管,同时也有8脚SOIC封装,还有6脚的TSOC封装。
测温范围为-55~+125℃,在一10~85℃范围内,精度为±0.5℃。
每一个DS18B20芯片的ROM中存放了一个64位ID号:前8位是产品类型编号,随后48位是该器件的自身序号,最后8位是前面56位的循环冗余校验码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 39 -第9卷第5期收稿日期:2008-10-19基于AT89C51单片机与DS18B20的温度测量系统易丽华,黄 俊(湖南科技职业学院,长沙 410004)摘 要:DALLAS 公司的单总线数字温度传感器DSl8B20以其线路简单、硬件开销少、成本低廉等一系列优点,有着无可比拟的应用前景。
文章首先介绍了DSl8B20的特性及工作原理。
接着提出了一种基于A T89C51单片机与DS18B20的温度测量报警系统,分析了系统的硬件结构及软件设计。
其中,详细介绍了A T89C51对DS18B20的操作流程,及使用DS18B20时候的注意事项。
该温度测量系统具有结构简单、价格低廉、扩展方便和应用广泛等一系列优点。
关键词:A T89C51;DS18B20;温度测量中图分类号:TN402 文献标识码:A 文章编号:1681-1070(2009)05-0039-05A Temperature Measure System based on AT89C51 and DS18B20YI Li-hua, HUANG Jun(Hunan Vocational college of Science and Technology , Changsha 410004, China )Abstract: DALLAS Corporation’s 1-wire bus digital temperature sensor has incomparable application prospect because its circuit is simple, and with fewer hardware expenses.This paper introduces the structure and principle of the 1-wire bus digital temperature sensor ,presents the hardware and compile program design of temperatllre measure and alarm system which based on A T89C51 and DS18B20. This paper explains transaction sequence of DS18B20 and points for attention. This device has some advantages such as: simple structure,low price.It also can be easily extended and has important application perspectives.Key words: A T89C51; DS18B20; temperature measure1 引言温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。
传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成本较高。
近年来,美国DALLAS 公司生产的DSl8B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。
DSl8B20集温度测量和A/D 转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件。
文章将介绍DS18B20的结构特征及控制方法,给出以此传感器和AT89C51单片机构成的最小温度测量报警系统。
2 单总线数字温度计DSl8B20介绍2.1 DSl8B20性能特点美国DALLAS 半导体公司的DSl8B20是世界上第9卷,第5期V ol . 9,No .5电子与封装ELECTRONICS & P ACKAGING总 第73期2009年5月产品、应用与市场电子与封装第9卷第5期图1 DS18B20引脚图图2 DS18B20字节定义表1 DS18B20温度转换时间表第一片支持“单总线”接口的数字式温度传感器,能够直接读取被测物的温度值。
它具有T O-92、TSOC、SOIC多种封装形式,可以适应不同的环境需求。
其测量范围在-55~+125℃、-10℃~+85℃之内的测量精度可达±0.5℃,稳定度为1%。
通过编程可实现9、10、11、l2位的分辨率读出温度数据,以上都包括一个符号位,因此对应的温度量化值分别为0.5℃、0.25℃、0.125℃、0.062 5℃,芯片出厂时默认为12位的转换精度。
读取或写入DS18B20仅需要一根总线,要求外接一个约4.7kΩ的上拉电阻,当总线闲置时,其状态为高电平。
此外DS18B20是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。
2.2 DSl8B20引脚结构DS18B20采用3脚TO-92封装或8脚的SOIC封装,如图1所示。
各引脚的功能:GND为电压地;DQ为单数据总线;VDD为电源电压;NC为空引脚。
2.3 DSl8B20工作原理及应用DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:(1)ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。
数据在出厂时设置不由用户更改。
DS18B20共64位ROM。
(2)RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
如图2所示。
第1、2个字节是温度转换后的数据值信息,第3和第4字节是高温触发器TH和低温触发器TL的易失性拷贝,第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
以上字节内容每次上电复位时被刷新。
配置寄存器字节各位的定义如图2所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动;R1和R用来设置分辨率,决定温度转换的精度位数。
如表1所示。
3 A T89C51和DS18B20组成的温度测量系统3.1 硬件结构DSl8B20与AT89C5l的接线如图3。
VDD管脚接5V电压给传感器供电。
D Q管脚为数据线与AT89C51的P1.3连接,同时还要接一个4.7kΩ的上拉电阻,使数据线在空闲状态下能自动上拉为高电平,GND管脚接地。
温度传感器DSl8B20将被测温- 40 -- 41 -第9卷第5期图3 AT89C51和DS18B20组成的温度测量系统图4 DS18B20复位时序度转化成数字信号。
显示器模块由两位一体的共阳数码管和2个9012组成。
报警上下限值可通过按键设置,当测得的温度越限时,蜂鸣器和发光二极管同时报警。
系统程序分为传感器控制程序、报警上下限值设置程序和显示程序三部分,传感器控制程序是按照DSl8B20的通信协议编制。
系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。
3.2 控制器对DS18B20操作流程3.2.1 复位首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480μs 的低电平信号。
当DS18B20接到此复位信号后则会在15μs~60μs 后回发一个芯片的存在脉冲。
3.2.2 存在脉冲在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15μs~60μs 后接收存在脉冲,存在脉冲为一个60μs~240μs 的低电平信号。
至此,通信双方已经达成了基本的协议,接下来将会是控制器与DS18B20间的数据通信。
如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
如图4所示。
3.2.3 控制器发送ROM 指令双方打完招呼之后就要进行交流,ROM 指令共有5条,每一个工作周期只能发一条,ROM 指令分别是读ROM 数据(33H )、指定匹配芯片(55H )、跳跃ROM (CCH )、芯片搜索(F0H )、报警芯片搜索(ECH )。
ROM 指令为8位长度,功能是对片内的64位光刻ROM 进行操作。
其主要目的是为了分辨一条总线上挂接的多个器件并作处理。
诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID 号来区别,一般只挂接单个DS18B20芯片时可以跳过ROM 指令(注意:此处指的跳过ROM 指令并非不发送ROM 指令,而是用特有的一条“跳过指令”)。
3.2.4 控制器发送存储器操作指令在ROM 指令发送给DS18B20之后,紧接着(不间断)就是发送存储器操作指令了。
操作指令同样为8位,共6条,存储器操作指令分别是写RAM 数据(4EH )、读RAM 数据(BEH )、将RAM 数据复制到EEPROM (48H )、温度转换(44H )、将EEPROM 中的报警值复制到RAM (B8H )、工作方式切换(B4H )。
存储器操作指令的功能是命令DS18B20做什么样的工作,是芯片控制的关键。
易丽华,黄 俊:基于AT89C 51单片机与D S18B 20的温度测量系统- 42 -电子与封装第9卷第5期图5 DS18B20读时序图6 DS18B20写时序3.2.5 执行或数据读写一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。
如执行温度转换指令则控制器(单片机)必须等待DS18B20执行其指令,一般转换时间为500μs 。
如执行数据读写指令则需要严格遵循DS18B20的读写时序来操作。
读时间隙控制时的采样时间应该更加精确才行,读时间隙也是必须先由主机产生至少1μs 的低电平,表示读时间的起始。
随后在总线被释放后的15μs 中DS18B20会发送内部数据位,这时控制器如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。
每一位的读取之前都由控制器加一个起始信号。
注意:如图5所示,必须在读间隙开始的15μs 内读取数据位才可以保证通信的正确。
写时间隙分为写“0”和写“1”,时序如图6。
在写数据时间隙的前15μs 总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15μs~60μs ,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。