智能环境参数检测仪.docx

上传人:小飞机 文档编号:1909512 上传时间:2022-12-25 格式:DOCX 页数:92 大小:3.42MB
返回 下载 相关 举报
智能环境参数检测仪.docx_第1页
第1页 / 共92页
智能环境参数检测仪.docx_第2页
第2页 / 共92页
智能环境参数检测仪.docx_第3页
第3页 / 共92页
智能环境参数检测仪.docx_第4页
第4页 / 共92页
智能环境参数检测仪.docx_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《智能环境参数检测仪.docx》由会员分享,可在线阅读,更多相关《智能环境参数检测仪.docx(92页珍藏版)》请在三一办公上搜索。

1、 摘 要温度是一个基本的物理量,几乎所有的科研和生产过程都和温度息息相关。准确获取系统的环境参数有助于对设备仪器的工作状态进行监控,因而,准确地测量和控制温度,对于获得正确的科研数据和保证产品质量都十分重要。本论文研究设计出一套多点温度测量系统,该系统具有测量精度高,控制范围广,抗干扰能力强等特点,可适用于科学研究及工农业生产等不同领域对温度测量的需求。在本文中,先分析了现有的几种不同的温度测试方法,并在对比各种不同方法的优缺点的基础上,考虑系统本身测试要求以及精度速度等指标要求,选择数字温度计DS18B20作为本系统的传感器,采用LCD1602液晶双行显示芯片,分别显示温度传感器的测量温度值

2、、温度最高上限值和测量时间的预设值。在选型的基础上设计了硬件系统以及相应的检测系统,通过综合调试,实现系统的测试和报警功能。关键字:多点温度传感器网络,单片机,温度测量ABSTRACTTemperature is a basic physical factor, almost all of the scientific and industry work have a way with temperature. Obtaining these parameter correctly can help us to gain the instruments state .So, how to co

3、ntrol temperature accurately, is very important in scientific research and industry quality.In this situation, design and implement one applicable system which can watch measure and control the temperature and the measuring results is real time and the precision is great is more essential .It takes

4、a great of troubles for the industry-controllers to make decision .This paper first analyzed some kinds of method about testing the temperature and the humidity .Then balance the different methods disadvantages ,advantages ,and the using systems meterage requirement about the precision ,testing rate

5、 ,and so on .And then choosing the digital thermometer DS18B20.And set the TI s MCU,LCD1602,as main processor .Based on this work ,designed a hardware circuit .This circuit can achieve the testing function .We use the temperature chest to demarcate the system.Key words: Multi-Point Temperature Senso

6、r Network, single-chip microcomputer,Temperature measurement目录第1章 引言11.1概述11.2 目前国内外研究现状11.3 课题设计的目的和意义21.4 论文主要内容31.5 多点温度测量系统整体结构分析4第2章 多点环境监测系统的总体设计52.1具体方案52.2系统主要技术参数62.3本论文中元器件的选择72.3.1数字温度传感器概述72.3.1.1 DS18B20性能参数介绍82.3.1.2 DS18B20的测温原理102.3.1.3 DS18B20自动搜索算法112.3.1.4 DS18B20编程设计142.3.2 AT89S

7、52微控制器相关介绍222.3.3 DM-1602液晶显示器简介242.3.4 MAX232串口芯片简介29第3章 系统的硬件结构设计及程序编程313.1稳压电路设计313.1.1稳压电源的组成313.1.2 稳压电路设计323.2 温度数据处理算法分析及程序设计333.2.1 温度数据处理算法333.2.2 温度数据处理子程序353.3 DM-1602液晶接口电路373.4串口通信电路设计383.4.1 MCU与MAX232通信电路设计383.4.2 串口通信方式393.4.3 串口通信波特率计算413.4.4 串口通信硬件连接电路443.5外围电路设计453.5.1 时钟电路设计453.5

8、.2 复位电路设计463.5.3声光报警电路473.5.4 程序流程图48第4章 结论49参考文献50致谢52附录53外文资料原文66译文77第1章 引言1.1概述环境监控是一个重要的课题,特别是在工业应用场合中。通过对设备仪器的工作状况的监控,能够检测设备仪器的各种的工作异常情况,从而避免设备仪器由于环境的恶化而出现故障而蒙受经济损失;而设备仪器一般都有一定的温度的环境因数特性,在不同的工作环境下其性能会有稍微的变化,在精密的仪器和设备中,这种性能的变化往往是噪声系统的误差,从而降低了系统的性能,这种变化可以看成固定的变化,可以通过补偿的方法修正或者消除,从而提高系统的性能稳定性。所以有必要

9、通过某种方法检测不同的环境参数,诸如温度、湿度、电网电压、电磁干扰等。1.2 目前国内外研究现状目前温度检测仪表种类繁多,常用的温度检测仪表如图1-1所示。图1-1 常见温度检测仪表近年来,随着工业生产效率的不断提高,自动化水平与范围的不断扩大,对温度检测技术的要求也愈来愈高,各国专家都在有针对性地竞相开发各种特殊而实用的测温技术,并取得了重大进展。新一代温度检测元件如图1-2所示。图1-2 新一代温度检测元件1.3 课题设计的目的和意义各种环境参数中,其中最关键也最常见的一个参数就是温度参数。在实际应用中,由于设备的温度过高或者过低,造成的工作故障比比皆是,在普通的工作场合中,可以通过温度计

10、人为的检测环境的温度,但是这种方法不方便,并且精度不高,操作性差,无法实现全自动生产。特别在对于可靠性要求很高的生产场合中,是不允许有差错的出现,因为温度造成的故障会带来非常恶劣的效果。所以在现代的工业场所中,大体上都是采用温度湿度自动控制系统,通过总线把各个地方的温湿度信息送到集中处理计算机,进行监控。传统的方式一般采用热电偶或热电阻,其输出的模拟信号,需要经A/D转换后才能送入单片机等微处理器,这样的硬件电路结构复杂,制作成本较高。近年来,各种新型温度传感器和测量方法大量出现并成功应用。单总线数字式智能型传感器技术彻底改变了传统的温度测量方法,在粮库测温系统、冷库测温系统、智能化建筑控制系

11、统、中央空调系统等多种系统中都需要多点温度测量系统。因此,多点温度测量技术实现尤为重要。本课题基于以上的目标,制作一个综合的测试系统,可以同时检测多路系统的温度信息,并将温度信息实时的上传到上位机以供后续处理。基于AT89C52单片机、C语言和DS18B20传感器的多点温度测量系统设计,并对系统实际运行的结果数据进行分析。论文研究在理论和实践方面均具有重要意义,主要表现在:1.降低测量成本。测量现场的智能传感器测得被测对象的数据信息后,通过网络传输给精密测控仪器或高档次微机去分析处理,既节约了人力物力,又提高了贵重复杂设备的利用效率。2.提高了测量精度。论文通过温度传感器DS18B20提取12

12、Bit温度数据,进行计算处理,使温度数据可精确到小数点后4位,这在科学研究及工农业生产中都具有重要价值。3.实现了报警测控和资源共享。添加了蜂鸣器模块,设置了温度的限度并且在PC终端上进行测量和数据采集,可以远程监控过程和数据,使测量跨越了空间和时间的限制,并且能实现测量设备和测量信息等资源的共享。1.4 论文主要内容根据现有测温系统的缺点,我们提出了一种新型的测温方案,具有以下4个特性:1.采用新型的数字温度传感器,简化测温电路。2.数字信号传输,利于有干扰现场的应用。3.建立温度采集电路和PC机之间的串行通信,实现温度数据的实时传输;并设计了温度信息数据库,实现对温度信息的存查询、显示和报

13、表打印等功能,方便温度场的分析和模拟。4.最大限度地减少布线工作量,降低系统的资金投入。为了达到上述4个目标,我们提出了多点智能测温系统的方案,并为这个方案的实施找到了技术上的支持:1)选择DALLAS公司生产的DS18B20作为数字温度传感器,一条单总线上可挂接多个DS18B20,很方便地组成多点测温系统,分辨率可达0.0625;且省去了传统的A/D转换单元,简化测温电路。2)设计了实用的双层总线结构,分别是室内测温层和温度数据传输层。3)采用单总线作为室内测温层总线,简化布线工作;通过RS232总线实现温度采集电路和PC机之间的串行通信。实时温度高精度测量,本系统能够通过多个温度传感器(3

14、x7的矩阵)实时检测被测对象的温度信息,测量精度精确到小数点后4位。在测量现场通过LCD显示模块SMC1602A进行本地显示。根据实际需要,所检测的温度点数是可以扩展的。1.5 多点温度测量系统整体结构分析论文研制的基于智能传感器的多点温度测量系统的整个测量系统的结构框图如图1-3。图1-3 测量系统的结构框图其主要功能是在现场对被测温度进行采集、计算和处理,其中主要包括以下5个部件的设计:a)稳压电源;b)液晶显示模块;c)温度处理控制模块;d)串行接口;e)温度传感器网络。第2章 多点环境监测系统的总体设计2.1具体方案我们不难发现现场总线的数字化正好解决了本系统要求的第1、2特性,而现场

15、总线所具有的多点通信的功能又为第3、4项特性的实现扫清了道路。因此,能否选择一种适合于多点温度测量系统的总线结构就成为本系统成败的关键。目前国际上的现场总线种类繁多,没有统一的标准。既然系统设计是为了完成预期的功能,那么我们完全可以自主构建一个总线结构。温度传感器的选择是本系统的关键。由于智能温度传感器采用数字化技术,能以数据形式输出被测温度值,具有测温误差小、分辨力高、抗干扰能力强、用户可设定温度上下限、具有超限自动报警功能,并且带串行总线接口,适配各种微控制器,因此我们采用智能温度传感器。我们采用DALLAS半导体公司生产的新型数字温度传感器DS18B20。因为和其他数字温度传感器相比,它

16、更适合本系统,比较结果见表2-1所示。可见DS18B20具有测温准确度高、总线挂接负载能力强的优势。它集温度测量、报警监测和数据通信多种功能于一体,并且兼容于DALLAS公司提出的单总线,可以很方便的组成底层总线。由于这层总线的主要功能是完成变风量空调实验室内温度的检测,所以称之为测温层总线。表2-1 数字温度传感器的比较传感器使用总线测温准确度测量范围()总线最多挂接传感器数量LM75I2C3-25+1008LM74SPI3-55+1258MAX65751-Wire0.8-55+1258DS18201-Wire0.5-55+12580100DS18B201-Wire0.5-55+125801

17、00,分辨力可编程测温层总线由AT89C52单片机进行控制,单片机完成对总线上所有DS18B20发布命令和接收数据。另外,它还是温度传输层总线不可缺少的一部分。单片机在获取温度数据后需要进一步和PC机通信。本系统中只有一个单片机和PC进行串行数据通信,通信距离在10m以内,因此选择RS-232标准作为串行数据通信的物理层协议。这层总线结构主要实现温度数据的传输,所以称之为温度传输层总线。系统的总体结构框图如图2-1所示。AT89C52单片机P1口的8条口线作为8条单总线,每条单总线上挂接DS18B20,因此完全可以满足此系统温度场测量的需要。图2-1 测温系统总体结构框图2.2系统主要技术参数

18、系统主要技术参数:1、检测范围:0.0099.92、可扩充到:-55+1253、检测误差:0.54、采样速率:30分钟5、硬件平台:微型计算机采用普通的PC机6、软件平台(1)Windows操作系统(2)应用软件温度数据的采集与处理数据的串行通信与存储功能2.3本论文中元器件的选择2.3.1数字温度传感器概述在20世纪90年代中期最早推出的智能温度传感器,采用的是8位A/D转换器,其测温精度较低,分辨率只能达到1。目前国外己相继推出多种高精度、高分辨率的数字温度传感器,所采用的是912位A/D转换器,分辨率一般可达0.50.0625。由美国DALLAS半导体公司新研制的DS1624型高分辨率数

19、字温度传感器,能输出13位二进制数据,其分辨率高达0.03125,测温精度为0.2。为了提高多通道数字温度传感器的转换速率,也有的芯片采用调整逐次逼近式A/D转换器。以AD7817型5通道数字温度传感器为例,它对本地传感器、一路远程传感器的转换时间分别为27us、9us。新型数字温度传感器的测试功能也在不断增强。例如,DS1629型单线数字温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还增加了存储功能,利用芯片内部256Byte的E2PROM存储器,可存储用户的短信息。另外,数字温度传感器正从单通道向多通道的方向发展,这就为研究和开发多路温度测控系统创造了良好条件。数字

20、温度传感器都具有多种工作模式可供选择,主要包括单次转换模式、待机模式,有的还增加了低温极限扩大模式,操作非常简便。对某些数字温度传感器而言,主机(外部微处理器或单片机)还可通过相应的寄存器来设定其A/D转换速率(典型产品为MAS6625)。数字温度控制器适配各种微控制器,构成智能化温控系统;他们还可以脱离微控制器单独工作,自行构成一个温控仪。目前,数字温度传感器的总线技术也实现了标准化、规范化,所采用的总线主要有单线(l-wire)总线、I2C总线、SM BUS总线和SPI总线。温度传感器作为从机可通过专用总线接口与主机进行通信。数字温度传感器的特点是能输出温度数据及相关的温度控制量,适合各种

21、微控制器(MCU);并且它是在硬件的基础上通过软件来实现测量功能的,其智能化程度也取决于软件的开发水平。本论文研制的温度检测系统要检测的温度范围为0.000099.0000,可选用的常用温度传感器有集成温度传感器、热电偶、热电阻等。集成温度传感器(如AD590、DS18B20等)使用方便,信号易于调理,它们的测温范围普遍窄,一般在200以下,基本可以满足要求。热电偶是工业上最常用的温度检测元件之一,其优点是测量精度高、测量范围广,常用的热电偶从-50+1600均可连续测量。但需要采用电路或软件设计等修正方法来补偿冷端t00时对测温的影响,使用不便。热电阻也是最常用的一种温度传感器。它的主要特点

22、是测量精度高,性能稳定,使用方便,测量范围为-200600,完全满足要求,考虑到铂电阻的测量精确度是最高的,但在价格方面偏贵,所以本课题最终选择DS18B20作为实际应用的温度传感器。DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单、体积小的特点。因此用它来组成一个测温系统,具有线路简单、能耗低、可靠性高的优点。DS18B20本身包括寄生电源、温度传感器、64bit激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、存储与控制逻辑、用于存储用户数据的温度上下限值的TH和TL触发器、结构寄存器8bit循环冗余校验码(CRC)发生器等8部分

23、。它通过编程可实现9Bit至12Bit的数字值读数方式,在93.75ms和750ms内,能将温度值转化为9Bit和12Bit的数字量。而且DS18B20与单片机之间的通信是利用1-Wire方式,只要在编程方面多注意这个传感器的时序问题,就能大大简化这个系统的硬件规模,使系统结构更趋简单,同时,可靠性更高。并且能准确地读取温度信号,进而后续处理。所以选择DS18B20作为本论文的温度传感器很符合设计思路。2.3.1.1 DS18B20性能参数介绍DS18B20温度传感器特点如下:(1)独特的单线接口仅需一个端口引脚进行通讯。(2)在DS18B20中的每个器件上都有独一无二的64位的序列号存储在内

24、部存储器中。(3)实际应用中不需要外部任何元器件即可实现测温,简单地多点分布式测温应用。(4)测量温度范围在-55到+125之间。(5)可通过数据线供电。供电范围为3.0V5.5V。(6)数字温度计的分辨率用户可以从9位到12位选择。(7)用户可定义的非易失性温度报警设置,内部有温度上、下限告警设置。T0-92封装的DS18B20温度传感器的引脚排列见图2-2所示。图2-2 DS18B20引脚图DS18B20温度传感器的引脚功能描述如表2-2所示。表2-2 DS18B20引脚功能描述8引脚封装0-9封装符号说明51GND接地。42DQ数据输入/输出引脚。对于单线操作:漏极开路。当工作在寄生电源

25、模式时用来提供电源(建“寄生电源”节)33VDD可选的VDD引脚。工作与寄生电源模式时VDD必须接地。DS18B20内部结构如图2-3所示,主要由4部分组成:64bitROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。图2-3 DS18B20内部结构图 2.3.1.2 DS18B20的测温原理DS18B20的测温原理如图2-4所示,它运用了一种将温度直接转换为频率的时钟计数法。图2-4中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。计数器1和温度寄存器被

26、预置在-55所对应的基数值。计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器中的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数振荡器产生的脉冲信号进行计数,如此循环,直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度,斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器1的预置值。图2-4 DS18B20测温原理框图2.3.1.3 DS18B20自动搜索算法由于系统使用了多片DSl8B20构成温度传感器网络,因此,如何准确、有效地对每一温度传感器进行寻址成为该系统设计的一个核心问题。

27、结合DSl8B20的实际特点和系统的需求,提出如下解决方案:首先利用DSl8B20的内部报警上限寄存器(如表2-3所示,以下简称“TH寄存器”)存放温度传感器的编号,并将其编号贴在温度传感器表面。由于TH寄存器具有掉电不丢失数据功能,因此,便把每片DSl8B20的唯一64位注册码及其编号一一对应起来。这一过程需要对DS18B20进行单独编程。然后,将确定好编号的温度传感器接入单线网络,利用DS18B20特有的单线网络自动搜索功能,即可搜寻到每片DSl8B20的注册码,再利用该注册码和相应的ROM操作指令,即可从每片DSl8B20的TH寄存器中读出相应的设定编号,实现每片DSl8B20的寻址功能

28、。下面重点介绍一下该自动搜索功能。每片DSl8B20有唯一的64位注册码,存储在只读存储器(ROM)中,其结构如下:表2-3 TH寄存器MSB64位注册码LSB8位CRC校验码48位序列号8位家庭码其中低8位是产品的工厂代码(DSl8B20为28H),接着是每个器件的唯一序号,共48位,最高8位是前56位的循环冗余校验码。这就准许总线主机对总线上特定的DS18B20进行寻址。只有与64位注册码严格相符的DS18B20,才能对后续的操作作出反应。所有与64位注册码不符的DSl8B20将等待复位脉冲。搜索算法首先通过复位和在线应答脉冲时序将单线总线上的所有DS18B20复位。成功地执行该操作后发送

29、1字节的搜索命令,使所有连接到单总线的DSl8B20准备就绪,开始进行搜索操作。搜索命令发出之后,开始实际的搜索过程。首先,总线上的所有DSl8B20同时发送注册码中的第1位(最低有效位,参见上述DSl8B20内部64位注册码结构)。按照单总线的特性,当所有DS18B20同时应答主机时,结果相当于全部被发送数据位的逻辑“与”。DS18B20发送其注册码的第1位后,主机启动下一位操作,接着DS18B20发送第1位数据的补码。从两次读到的数据位可以对注册码的第1位作出几种判断,如表2-4所列。然后,主机向总线上的所有器件发回一个指定位。如果DS18B20中注册码的当前位的值与该数据位匹配,则继续参

30、与搜索过程;若DS18B20的当前位与之不匹配,则该器件转换到等待状态并保持等待状态,直到下一个复位信号到来。其余63位注册码的搜索依然按照这种读2位写l位的模式进行重复操作。按照这种搜索算法进行下去,最终除了唯一一个DS18B20外,所有DS18B20将进入等待状态,经过最后一轮检测就可得到最后保留未进入等待状态的DS18B20的注册码。在后续搜索过程中选用不同的路径或分支来查找其他器件的注册码,即可完成所有器件注册码的识别。表2-4 两次数据位与结论对照表位(实际值)位(补码)结论00当前位既有0,又有1,存在差异01当前位均为010当前位均为111总线上没有器件响应DS18B20内部存储

31、器如图2-5所示。它由便笺式RAM和非易失性可电擦写E2RAM组成。DS18B20的高速暂存寄存器的存储分配图:图2-5 DS18B20高速暂存寄存器的存储分配图高速便笺式存储器中的第4个字节为配置寄存器,它的内容用于确定温度转换的分辨率。该字节各位的定义如下:TMR1R011111MSB LSB第04位在写操作时不予考虑,读出时总是“1”;第7位是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,即工作模式,用户不要去改动,R1、R0是可编程温度分辨率位。通过对这两位进行不同的编程,可设定不同的温度分辨率和最大转换时间,详见表2-5。由表2-5

32、可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间之间权衡考虑。DS18B20出厂在R1和R0均被配置为“1”,即工作在12位模式下。表2-5 设定分辨率和最大转换时间R1R0DS18B20的工作模式温度分辨率/最大转换时间(ms)0090.593.7501100.25187.510110.12537511120.0625750当DS18B20接收到温度转换命令后,开始启动转换,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第0、1字节。在执行读便笺RAM命令后,可将这两个字节的温度值传送给总线命令者。DS18B20工作

33、在12位模式下,温度字节的位定义如下:SSSSS262524MSB 高字节 LSB 232221202-12-22-32-4MSB 低字节 LSB其中S为符号位,S为0时代表温度值为正,S为1时代表温度值为负。当DS18B20工作模式依次选择11位、10位和9位时,末尾为零的低位数就分别对应于一位、两位和三位,举例说明,当工作模式选择10位时,最低两位(即2一4位和2一3位)均为。总有效位变成10位。其中,数字位占9位,符号位占1位。对应的温度计算=当符号位S=0时,直接将二进制数转换为十进制,乘以相应的温度分辨率即可,当S=1时,先把16位二进制数求补码后转化成十进制数,然后乘以相应的温度分

34、辨率并在前面加上负号即可。DS18B20工作在12位分辨力时初始值默认为+85,部分温度与数字输出的对应关系见表2-6。表2-6 DS18B20温度与数字输出的对应关系温度()数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0+850000 0101 0101 00000550+25.06250000 0001 1001 00010191+10.1250000 0000 1010 001000A2+0.50000 0000 0000 1000000800000 0000 0000 00000000-0.51111 1111 1111 1000FFF8-

35、10.1251111 1111 0101 1110FF5E-25.06251111 1110 0110 1111FE6F-551111 1100 1001 0000FC90非易失性温度报警触发器TH和TL,可通过软件写入用户设定的报警上、下限。在完成温度转换后,DS18B20就把测得的温度值T同TH、TL作比较。若TTH或TTL,则将该器件的报警标志置位,并对总线命令者发出的报警搜索命令作出响应。2.3.1.4 DS18B20编程设计由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线上实现数据的双向传输,而对单片机嵌入式系统来说,硬件上并不支持单总线协议,因此,论文必须采用软件

36、编程的方法通过模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20通过严格的通信协议来保证各位数据传输的正确性和完整性。通信协议规定了复位脉冲、应答脉冲、写0、写1、读0和读1等几种信号的时序。除了应答脉冲,其余信号均由主CPU控制。主CPU通过时序(亦称作“时间片”)来写入或读出DS18B20中的数据。时序用于传输数据位和指定何种操作的命令字。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

37、数据和命令的传输都是低位在先。每次对DS18B20的访问,都必须按下面工作流程进行:初始化ROM操作指令一存储器操作指令一数据处理。DS18B20为用户提供了5个ROM命令和6存储器命令,而具体命令信息的传送,则主要通过初始化时序、读时序、写时序三个基本时序单元的组合来实现。DS18B20具有以下几种基本的控制命令,如表2-7。由微控制器向DS18B20发送相应命令,完成对温度传感器的操作。表2-7 DS18B20控制命令ROM类命令代码说明读ROM33H读DS18B20的序列号匹配ROM55H根据编码值查找器件,用于多个DS18B20时的定位跳过ROMCCH跳过读取编码值操作搜索ROMF0H

38、识别总线上各器件的编码,为操作各器件做好准备报警搜索ROMECH搜索报警器件存储器类读暂存器BEH从高速暂存器读取温度值和CRC值写暂存器4EH将数据写入高速暂存器中第2和第3字节复制暂存器48H将高速暂存器中第2和第3字节复制到E2RAM重调E2RAMB8H将E2RAM内容写入高速暂存器中第2和第3字节读供电方式B4H读取DS18B20的供电方式温度转换44H启动在线的DS18B20做温度转换下面对论文中所用的初始化、读写DS18B20程序分别作分析。1.初始化单线总线上的所有处理过程均从初始化开始。初始化包括首先由主CPU发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主CPU。 图2-

39、6 DS18B20初始化时序波形图初始化开始时CPU首先发出一个复位信号,将单线总线上所有DS18B20复位;然后释放单线总线,改成接收状态,单线总线被上拉电阻R拉成高电平。在检测到此上升沿后,DS18B20需要等待1560uS才向主CPU发出响应脉冲。初始化过程的时序波形如图2-6所示。此后便可对ROM、RAM进行操作。图2-7 初始化流程图DS18B20初始化子程序:;-初始化DS18B20-Init_1820:SETB TMDAI ;TMDAT为微处理器Pl.0口NOPCLR TMDAI ;初始化开始,主机发延时脉冲MOV R0,#150DJNZ R0,$SETB TMDAI ;拉高数据

40、线NOPNOPNOPMOV R0,#15DJNZ R0,$ ;等待60usMOV R0,#30TSR2:JNB TMDAT,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 ;等待最大时间为240us AJMP TSR4TSR3:SETB FLAGI ;置标志位,表示DS18B20存在 AJMP TSR5TSR4:CLR FLAGI ;清标志位,表示DS18B20不存在 AJMP TSR7TSR5:MOV R0,#120TSR6:DJNZ R0,TSR6 ;时序要求延时480usTSR7:SETB TMDAT ;拉高数据线 RET2.写时序主CPU把F0线(即单线总线,亦称数据线)

41、从高电平拉至低电平时,作为一个写周期的开始。写时序包括两种类型:写1时序,写0时序。写1或写0时序时必须保持至少60us,在两个写周期之间至少要有l us的恢复期。DS18B20在I/O线变为低电平后的1560us的时间内进行采样。若I/O线为高电平,即认为写入了一位l;若I/O线为低电平,即认为写入了一位0。主CPU在开始写1周期时,必须将I/O线拉至低电平,然后再释放,15us内将I/O线拉成高电平。主CPU在开始写0周期时,也应将I/O线拉至低电平,并保持60us的时间。3.读时序当主CPU将I/O线从高电平拉成低电平时,就作为一个读周期的开始,并且I/O线保持低电平的时间至少为l us

42、。DS18B20的输出数据在读时序下降沿过后的15us内有效。在此期间,主CPU应释放I/O线,使之处于输入状态以便读取数据。经过15us后读时序结束,I/O线经外部上拉电阻又变成高电平。读取一位数据至少需要60us时间,并且在两位数据之间至少要有l us的恢复期。读写时序的波形如图2-8。图2-8 读写时序图写DS18B20流程图:图2-9 写时序流程图写DS18B20子程序;-命令写入DS18B20-Write_1820:MOV R2,#8 ;一次写入8Bit数据 CLR C ;累加器进位清0WRI:CLR TMDATMOV R3,#4 ;按时序要求延时DJNZ R3,$RRC AMOV

43、TMDAT,C库 ;将1Bit数据由移至寄存期CY写入DS18B20MOV R3,#15DJNZ R3,$ ;按时序要求延时,保证数据写入SETB TMDATNOPDJNZ R2,WRI ;分8次写入一个字节的数据SETB TMDAT ;一个字节数据写完后拉高总线电平RET读DS18B20流程图:图2-10 读时序流程图读DSl8B20子程序::;-从DS18B20读取温度数据-;从DSl8B20中读出2Byte的温度数据,分别放入28H,29HRead_1820:MOV R4,#2 ;将温度高低位分别从DS1SB20的暂存器内读出MOV R1,#29H ;低位存29H,高位存28HRE00:

44、MOV R2,#8 ;数据共8BitRE01:CLR C ;清进位SETB TMDAINOPCLR TMDAINOPNOPSET TMDAI ;按时序准备读取温度数据MOV R3,#1DJNZ R3,$MOV C,TMDAI ;将1Bit温度数据读入CMOV R3,#15 ;延时保证读入1Bit数据DJNZ R3,$RRC A;DJNZ R2,RE01 ;将1Byte数据写入累加器AMOV R1,ADEC R1DJNZ R4,RE00 ;将DS1SB20高低位数据存入RETDS18B20两种供电方式:寄生电源和外接电源方式,连接方法如图2-11所示。图2-11 DS18B20两种供电方式寄生电源方式下,DS1SB20的VDD端和GND端都接地,只用一根单总线和主机通信及获取电源。单总线上接4.7k的上拉电阻,和DS18B20芯片的寄生电容形成充放电电路;外接电源方式下,DS18B20的VDD端外接一个+3+5V电源,GND端接地。可见寄生电源方式可以省掉一根电源线,大大较低了布线的成本,但是当总线上节点较多且同时进行温度转换时,容易造成供电不足且所需的转换时间较长。外接电源方式稳定可靠,测量速度较快

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号