多路温度检测系统_第1页
多路温度检测系统_第2页
多路温度检测系统_第3页
多路温度检测系统_第4页
多路温度检测系统_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 编号: 毕业论文(设计)题 目 多路温度检测系统的设计指导教师 学生姓名 学 号 专 业 机械设计制造及其自动化教学单位 德州学院机电工程系 (盖章) 二O一一年五月一日专心-专注-专业德州学院毕业论文(设计)课题说明书 2010年12月20日题 目多路温度检测系统的设计指 导 教 师邓广福职 称讲师主要研究方向机电工程选题的主要目的和意义:现在有很多场合需要对其温度进行实时检测如娱乐场合KTV、宾馆、大型超市、粮库、锅炉等,而这些场合需要进行多点全方位的温度检测,并且要求检测系统要快速、准确、可靠、经济、简单,这样就可以防止易燃场所的火灾发生、控制各个锅炉的温度,

2、多路温度检测系统的研究不仅使我们能够较安全的生活、工作、娱乐,并且具有广阔的市场前景。国内外研究现状和发展趋势:现在国内外对多路温度检测系统的研究不多,他们的研究大都应用到高端的产品或特殊的场所,因此现有的温度检测系统都比较麻烦昂贵,而对普通场合的温度检测系统研究较少,现在人们逐渐认识到对这些普通场合如娱乐场合KTV、宾馆、大型超市、粮库、锅炉等的温度检测也相当重,因此快速、准确、可靠、经济、简单的多路温度检测系统有很大的发展潜力,人们越来越需要这样的系统。教学单位领导小组审批意见: 组长签名: 年 月 日德州学院毕业论文(设计)任务书2011年12月20日院 系机电工程系专 业机械设计制造及

3、其自动化姓 名俞国印学 号3论文题目:多路温度检测系统的设计论文内容与要求:该论文主要是研究多路温度检测系统的设计,对同一场所进行全方位的温度检测,也就是说多点温度采样,实时的把特定地点的温度情况发送给我们,这样就可以根据系统所发送的温度情况采取相应的措施,因此要求所设计的系统必须要快速、准确、可靠、经济、简单。将这几方面要求统一于一整体系统,使多路温度检测的系统可行并有很大的市场潜力,这样就会有很好的发展前景。根据系统的要求核心芯片选择STC89C52单片,温度检测芯片选择美国DALLAS半导体公司的DS18B20,DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改

4、进型智能温度传感器。与传统的热敏电阻相比,其能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式,并且它是世界上第一片支持 "一线总线"接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传器网络、为测量系统的构建引入全新概念。论文开始日期2011年1月20日论文完成日期2011年5月1日指 导 教 师教研室主任德州学院毕业论文(设计)开题报告书2011年01月20日 院(系)机电工程系专 业机械设计制造及其自动化姓 名学 号3论文(设计)题目多路温度检测系统的设计一、选题目的和意义现在有很多场合需要对其温度进行实时检测如娱乐场合KT

5、V、宾馆、大型超市、粮库、锅炉等,而这些场合需要我们进行多点全方位的温度检测,并且要求检测系统要快速、准确、可靠、经济、简单,这样就可以防止易燃场所的火灾发生、控制各个锅炉的温度,多路温度检测系统的研究不仅使我们能够较安全的生活、工作、娱乐,并且具有广阔的市场前景。二、本选题在国内外的研究现状和发展趋势现在国内外对多路温度检测系统的研究不多,他们的研究大都应用到高端的产品或特殊的场所,因此现有的温度检测系统都比较麻烦昂贵,而对普通场合的温度检测系统研究较少,现在人们逐渐认识到对这些普通场合如娱乐场合KTV、宾馆、大型超市、粮库、锅炉等的温度检测也相当重,因此快速、准确、可靠、经济、简单的多路温

6、度检测系统有很大的发展潜力,人们越来越需要这样的系统。三、课题设计方案 研究设计的基本内容和观点:该设计主要是多路温度检测系统的设计,系统对同一场所进行全方位的温度检测,也就是说多点温度采样,实时的把特定地点的温度情况发送给我们,这样我们就可以根据系统所发送的温度情况采取相应的措施,因此要求所设计的系统必须要快速、准确、可靠、经济、简单。根据系统的要求我们的核心芯片选择STC89C52单片,温度检测芯片选择美国DALLAS半导体公司的DS18B20,DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,其能够直接读出被测温度并且可

7、根据实际要求通过简单的编程实现912位的数字值读数方式,并且它是世界上第一片支持 "一线总线"接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传器网络、为测量系统的构建引入全新概念。用keil软件编写C51程序,C51语言与C语言有很大相似的地方,比汇编语言易于理解和编写且易于移植减少开发周期。四、计划进度安排 毕业论文(设计)的进度计划: 2011.1.03 - 2011.1.15 收集资料和文献,在教师指导下选题和构思论文。2011.1.16 - 2011.2.20 进一步收集、分析资料,清理思路,完成开题报告。2011.2.21 - 2011.3.17

8、 整理资料,确定论文内容,完成论文初稿。2011.3.18 - 2011.4.06 根据导师提出的意见,对论文做进一步的修改和完善。2011.4.07 - 2011.4.25 完成中期检查表,根据导师提出的定稿意见,做最后完善。2011.4.26 - 2011.5.20 提交论文定稿的电子版给导师,参加论文答辩。2011.5.21 论文答辩。五、主要参考文献参考文献:1万君福等.单片机原理系统设计与开发应用M.中国科学技术出版社,1995.15.2何立民.单片机高级教程-应用与设计M.北京:北京航空航天大学出版社,2000.5659.3 Hnrain. 单线数字温度传感器DS18B20 原理及

9、其应用EB/OL,2008.4胡汉才.单片机原理及其接口技术M.北京.清华大学出版社,2000.8490.5求是科学.8051系列单片机C程序设计完全手册 M .人民邮电出版社,2006.518523. 指导教师意见及建议: 签名: 年 月 日教学单位领导小组审批意见: 组长签名: 年 月 日德州学院毕业论文(设计)中期检查表院(系):机电工程系 专业: 机械设计制造及其自动化 2011 年4月07日毕业论文题目: 多路温度系统的设计学生姓名学 号3指导教师职 称讲师计划完成时间:2011年5月20日 毕业论文(设计)的进度计划:2011.1.03 - 2011.1.15 收集资料和文献,在教

10、师指导下选题和构思论文。2011.1.16 - 2011.2.20 进一步收集、分析资料,清理思路,完成开题报告。2011.2.21 - 2011.3.17 整理资料,确定论文内容,完成论文初稿。2011.3.18 - 2011.4.06 根据导师提出的意见,对论文做进一步的修改和完善。2011.4.07 - 2011.4.25 完成中期检查表,根据导师提出的定稿意见,做最后完善。2011.4.26 - 2011.5.20 提交论文定稿的电子版给导师,参加论文答辩。2011.5.21 论文答辩。完成情况:到目前为止下文内容的详细资料已基本整理完成,现在正进一步的收集更多相关的资料,并加以分析与

11、整理,按设计要求理清设计思路,依据评阅后的开题报告和设计任务书上老师给出的指导意见,在老师的指导帮助下开始撰写论文初稿。指导教师评议(指出优点和不足,如有其它建议,可另附页) 签 名: 年 月 日备 注:目 录多路温度检测系统的设计(德州学院机电系,山东德州 )摘 要:现在有很多场合需要对其温度进行实时检测如粮库、锅炉等,本设计主要是研究多路温度检测系统的建立及应用。多路温度检测系统有快速、准确、可靠、经济、简单的要求,因此选择STC89C52为核心控制芯片;传感器选用DS18B20芯片,该芯片包含一个特定的序列号,多芯片可以通过一根总线相连;显示部分采用数码管,考虑到单片机的引脚有限,用移位

12、寄存器74HC595驱动数码管;电源部分用到LM7805稳压芯片,使系统的电压更加稳定;用串口向单片机下载程序,电平转换芯片用MAX232。最后由实验所测温度范围为-55°C125°C 在-10°C+85°C范围内,精度为±0.5°C,满足设计要求。关键词:多路温度检测;STC89C52单片机;DS18B20温度传感器1 引言1.1 研究背景目前一些需要严格控制环境温度的重要场所越来越多比如娱乐场合KTV、宾馆、大型超市、粮库、锅炉、还有计算机房等。在这些场合一般都需要设置温度监控系统,以期起到保护特定资产或者确保系统平稳运行的效果。

13、此外在隧道、铁路、地铁、机场、船舱等交通运输领域和油罐、煤仓、货仓、军工厂,弹药库等危险品区域,温度监控通常是最基本的环境监测元素。现在国内外对多路温度检测系统的研究不多,他们的研究大都应用到高端的产品或特殊的场所,因此现有的温度检测系统都比较麻烦昂贵,而对普通场合的温度检测系统研究较少,现在人们逐渐认识到对这些普通场合如娱乐场合KTV、宾馆、大型超市、粮库、锅炉等的温度检测也相当重,因此快速、准确、可靠、经济、简单的多路温度检测系统有很大的发展潜力,人们越来越需要这样的系统。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器

14、ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。凡是与控制或简单计算有关的电子设备都可以单片机来实现。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机1。DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS

15、1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20支持一线总线接口,一根线可以控制多个DS18B20,节约单片机有限的引脚2。1.2 发展现状与趋势一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温

16、度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。温度传感器的发展会越来越集成化数字化3。2 硬件电路设计2.1 总体设计要建一个稳定的系统首先要设计一个可靠的硬件系统,在构建硬件系统时,我们根据系统要求来选择合适的单片机芯片、温度传感器等。为了便于设计先设计一硬件布局方框图,在这里先设计含有两个温度传感器系统,电路原理图见附录一,硬件框图如图1所示。含有三个温度传感器或更多的传感器设计与上图类似。串口MAX2

17、32STC89C52电源DS18B20-BBDS18B20-A7HC5957HC595数码管B数码管A图1 硬件框图STC89C52是我们的核心控制芯片,负责温度数据的采集及驱动控制周围的硬件部件;图1中的DS18B20是两个温度传感器,它们组成了一个两器件的单线总线,这两个传感器有不同的ROM ID,可以使STC89C52单片机互不干扰的控制各个传感器;74HC595是8位移位寄存器,实际上也就是串行数据转并行数据,可以节约单片机的有限引脚资源;显示部分用数码管,因为数码管易于控制并且经济实用;STC系列的单片机支持串口下载程序,因此在此系统采用串口下载程序,MAX232是电平转换芯片;设计

18、了一个电源部分,因为系统要用一个稳定的电压,该部分用到了LM7805稳压芯片,使系统有可靠的电压,增加系统的可靠性。2.2 电源电路设计电子产品中,常见的三端稳压集成电路有正电压输出的78××系列和负电压输出的79××系列。故名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端电路图。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电

19、压为正6V,7909表示输出电压为负9V,我们选择7805电路原理图如图2所示。IN1GND2OUT378XX7805+C1470uF+C4470uFC20.1uFC30.1uFR31k整流桥220V交流LED1VCCGND+5V图2 电源电路原理图电源部分一路通过三端稳压芯片LM7805稳压成5伏直流电源提供给单片机系统使用,右边两个电容是5伏电源的滤波电容,电阻和绿色的LED组成5伏电源的工作指示电路,只要电源部分正常,绿色的LED1就会点亮,我们可以根据这个LED来判断整个电源部分是否工作正常。2.3 复位电路设计复位是单片机的初始化操作,只需给单片机的复位引脚RST加上大于2个机器周期

20、(即24个时钟振荡周期)的高电平就可以使单片机复位。复位电路通常采用上电复位和按钮复位两种方式。上电复位是通过外部复位电路的电容充电来实现的。电容在上接高电平,电阻在下接地,中间为RST。这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。手动复位:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正

21、常工作,电路原理图如图3所示。图3 复位电路硬件电路图2.4 时钟电路设计石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。 石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚 上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有

22、用玻璃壳、陶瓷或塑料封装的,图4是晶振的电路原理图。图4 时钟电路图2.5 串口通信设计 串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种4。STC系列单片机支持在线编程,使用串口是可以烧写芯片的,但

23、是和PC计算机的串口连接时需要硬件电路和软件的配合。硬件电路需要电平转化,可以用MAX232芯片,电路图如图5所示。图5 串口电路2.6 移位寄存器电路设计图6 74595外形图移位寄存器用的是74HC595,其数据端:Q0Q7: 八位并行输出端,可以直接控制数码管的8个段。Q7: 级联输出端。我将它接下一个595的DS端。DS: 串行数据输入端。外形如上图6。74595的控制端说明: (10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。SH_CP(11脚):上升沿时数据寄存器的数据移位。Q0->Q1->Q2->.->Q7;下降沿移位寄存器数据不变(脉冲宽

24、度:5V时,大于几十纳秒就行了。我通常都选微秒级)。ST_CP(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将ST_CP置为低点平,当移位结束后,在ST_CP端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。 (13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感5。图7 时序图根据时序图7可以编写程序

25、控制芯片。2.7 数码管显示电路设计单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等),在此用应用LED显示器。abcdegGNDfdpGNDabcefgd·dpabcdefgdpdpgfedcba5V(a)(b) 共阴极 共阳极图8 数码管电路使用LED显示器时,要注意区分这两种不同的接法如图8。为了显示数字或字符,必须对数字或字符进行编码。七

26、段数码管加上一个小数点,共计8段(共阳极不带小数点编码见表2,共阳极带小数点编码见表3)。因此为LED显示器提供的编码正好是一个字节。表1 共阳极不带小数点编码编码0xc00Xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e0x000123456789ABCDEF无显示表2 共阳极带小数点编码共阳极数码管编码表0x400x790x240x300x190x120x020x020x780x000x100x080x030x460x210x060x0e0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F.无显示LED显示器工

27、作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码

28、和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的6。 电路的开关控制选用的是三极管,三极管有NPN型和PNP型两种型号,系统选的是共阳极的数码管,51单片机的引脚复位时都处于1即高电位,因此应选PNP型的三极管有利于实现控制,在默认状态下数码管是不会亮的,在这里我们选择的三极管的型号为S8550。2.8 温度传感器电路设计(1) 内部原理结构 电源检测 64位ROM和单线接口 高速 缓存 存储器存储器和控制器 8位CRC生成器温度灵敏元件低温触发器高温触发器配置寄存器图9 内部

29、结构DSl8B20 通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。计数器予置对应于-55的基数,如果在门开通期结束前计数器达到零,那么温度寄存器也被予置到-55的数值增量,指示温度高于-55。同时,计数器用斜率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的。时钟再次使计数器计值至它达到零,如果门开通时间仍未结束,那么此过程再次重复7。DS18B20有4个主要的数据部件(图9):DS18B20 的ROM光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光

30、刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的,因此多个 DSl8B20 可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括 HVAC 环境控制,建筑物、设备或机械内的温度检测,以及 过程监视和控制中的温度检测8。 DS18B20的RAMDS18B20 中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数

31、形式提供,以0.0625/LSB形式表达,其中S为符号位如表3。表3 DS18B20温度值格式表Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0低位232221202-12-22-32-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8高位SSSSS262524这是12位转化后得到的12位数据,存储在DS18B20 的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数

32、字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H,部分温度数据如表4。表4 DS18B20温度数据表温度二进制十六进制+1250000 0111 1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-1

33、0.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FE6Fh-551111 1100 1001 0000FC90h DS18B20温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直

34、接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。表5 寄存器地址及内容寄存器内容字节地址温度值低位0温度值高位1高温度限值TH2低温度限值TL3配置寄存器4保留5保留6保留7CRC检验8 配置寄存器该字节各位的意义如表6。表6 配置寄存器结构置寄存器结构TMR1R011111低五位一直都是1,TM是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。在DS18B20 出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表7所示(DS18B20出厂时被设置为12位)。表7分辨率设置R1R0分辨率温度最大转换时间009位93

35、.75ms0110位187.5ms1011位375ms1112位750ms根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令(表8),最后发送RAM指令(表9),这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。表8 ROM指令表指令约定代码功能读ROM33H读DS1820ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出

36、64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步DS1820的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表9 RAM指令表指令约定代码功能温度变换44H启动DS1820进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、

37、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。DS18B20 的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms9。(2) 驱动电路图多个DS18B20可以建立一测温系统,为了系统可靠测温准确,我们提供一条电源线,单独给传感器提供电源,一条数据线用于控

38、制传感器,还有一条地线。有两种方法确保 DSl8B20 在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在 I0 线上提供一 强的上拉。通过使用一个 MOSFET 把 I0 线直接拉到电源可达到这一点。当使用寄生电源方式时 VDD引脚 必须连接到地。 向 DSl8B20 供电的另外一种方法是通过使用连接到 VDD引脚的外部电源,这种方法的优点是在 I0 线上不要求强的上拉如图10。总线上主机不需向上连接便在温度变换期间使线保持高电平。这就允许在变换时间内其它数据在单线上传送。此外,在单线总线上可以放置任何数目的 DSl8B20,而且如果它们都使用外部电源,那么通过发出跳过(Sk

39、ip)ROM 命令和接着发出变换(Convert)T 命令,可以同时完成温度变换。注意只要外部电源处于工作状态,GND(地)引脚不可悬空。在总线上主机不知道总线上 DSl8B20 是寄生电源供电还是外部 VDD供电的情况下,在 DSl8B20 内采取了措施来通知采用 的供电方案。总线上主机通过发出跳过(Skip)ROM 的操作约定,然后发出读电源命令,可以决定是否有需要强上拉的 DSl8B20 在总线上。在此命令发出后,主机接着发出读时间片。如果是寄生供电,DSl8B20 将在单线总线上送回“0”;如果 由 VDD 脚供电,它将送回“1”。如果主机接收到一个“0”,它知道它必须在温度变换期间在

40、 I0 线上供一个强的上拉10。 VCCVCCQ264.7KQ274.7KP3.5GND1I/O2VCC3DS18B20GND1I/O2VCC3DS18B20图10 DS18B20串联电路(3) 获得ROM ID独特的单线接口仅需一个端口引脚进行通讯,因为每个DS18B20都有一个独特的片序列号,所以多只DS18B20可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方11。在设计之前我们应该按照通讯协议获得每个传感器的ID号,程序请参考附录二。通过此程序我们可以获得任何DS18B20的ID号,我们的系统先连接两个温度传感器A和B,实验得到两个传感器A和B的ID号如下:ucha

41、r code tablematchrom_a= 40,58,218,9, 3,0,0,168;uchar code tablematchrom_b= 40,148,221,9,3,0,0,182;这里我们只用了两个传感器,如果有更多的传感器我们也可以一一获得ROM ID号,然后连成网。(4) 温度传感器电路图及DS18B20使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保

42、证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带

43、屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地11。3 软件设计稳定可靠的系统还要有稳定准确的程

44、序作为支撑,程序的设计也是相当重要的,现在设计系统总的程序框图如图11所示。 图11 程序流程图该图是含有两个传感器系统的程序框图,是实验性的温度检测系统,含有更多温度传感器及其它硬件系统的设计与此类似,如果考虑到系统的稳定性可以加上看门狗部分的设计。现在设计的是实验性的系统即有两个温度传感器组成的简单测试性的多路温度检测系统,其它的部件如看门狗没有设计,分析图11的编程算法:总系统的运行过程是一个死循环,在位声明初始化完成后就开始对STC89C52单片机的外围器件逐个控制。首先跳过ROM驱动所有的传感器转换温度,等待单片机逐个将传感器中的温度数据读出,在读温度数据之前要匹配ROM ID 确定

45、要读的传感器,之后将读出的温度数据处理并驱动对应的数码动态管显示,依次将各个传感器转换后的温度数据读出接着驱动数码管动态显示,读出及显示一次所有温度传感器的温度为一次完整的操作,再回到让STC89C52初试化DS18B20的操作进行下一次的温度转换、读取及显示,并无限循环。在此系统的循环过程中要注意数码管的动态显示,其中的延时子函数需要恰当的时间,如果延时过长,相应的数据LED会有闪烁的现象,如果延时过短,LED灯的亮度减弱;数码管的动态显示的延时还与程序的大小、驱动硬件的多少有关,如果驱动的硬件过多,动态显示的延时函数对应的数据要相应的调整即减少延时时间,增加数码管的刷新频率,硬件过少时数码

46、管的刷新频率也会增加,延时函数的数据调整,增加延时时间,减少数码管的刷新频率,使数码管显示性能达到最好状态。总程序流程图已经确定,驱动硬件的先后顺序也确定,有个别的硬件驱动程序对延时时间要求比较高,尤其是DS18B20温度传感器有严格时序要求。DS18B20有三部分主要时序:初始化时序;读时序;写时序。(1)其中初始化相对简单现在确定一下DS18B20传感器的程序框图,多个DS18B20温度传感器组成单线总线,当有DS18B20温度传感器得到主机相应发出存在信号时,温度传感器是线与的关系即总线拉低,主机会检测到低脉冲。图12是程序框图的设计。图12 初始化程序框图主机对DS18B20温度传感器

47、初始化,先是将总线拉低至少480微妙,然后等待所有的从机相应,DS18B20温度传感器会发出地存在脉冲;如不发出,有一个相应延时处理,重新对DS18B20初始化,根据初始化的次数判定是否继续进行。具体的程序编写及说明如下:uchar ds18b20init()uchar i=0,x; /初始化变量dq=1; /给总线一个脉冲dq=0;delay(85); /延时大于480微妙dq=1; /释放总线delay(50); x=dq; /主机采样 delay(10);return(x); /返回采样结果主函数根据子函数的返回值判定初始化是否成功,如成功进行对DS18B20的下步操作,如不成功,就再次

48、的初始化,对于初始化的成功与否检测可以省略,因为在使用前必先获得每一只传感器的ROM ID,每一只传感器都可以确定是否能正常工作,省略初始化成功检查可以减少单片机的执行时间。(2)读时序尤其要注意,单片机要读入一个数时先把引脚写1即拉高采样引脚,并且采样引脚必须在15微妙内完成对特定的DS18B20温度传感器的数据采样,超过这段时间才到的数据会出现错误,每一次的读时间段也有要求,至少60微妙,这里设计读传感器的程序框图如图13所示。图13 读数据程序框图具体程序如下:/*从DS18B20读出一个字节*/uchar ds18b20_read()uchar i=0,shu=0;dq=1; /准备发

49、送低脉冲for(i;i<8;i+) / 确定读的位数dq=0;dq=1;/mcu要读入一个数,先得写1shu=shu>>1; /对数据移位if(dq) shu=shu|0x80; /处理得到的数据dq=1; /释放总线delay(7);return (shu); /返回读到的8位数即一个字节DS18B20温度传感器是个典型的单线总线数据传输器件,对时间有严格的要求与限制,如上面程序的延时子函数是经过严格调试的,时间是相对比较准确的,这样才有利于驱动控制传感器。(3)初试化和读传感器的程序框图已经设计完,现在设计向传感器写数据的程序框图如下图14所示。图14 写数据程序框图具体

50、的编写程序及说明:/*向DS18B20写入一个字节*/void ds18b20_write(uchar dat) uchar i;for(i=0;i<8;i+) /写入一个字节的确定dq=1; /主机发送一个低脉冲dq=0; dq=(dat&0x01); /向总线写数据delay(2);dat=dat>>1; /移位处理待写数据delay(3);dq=1; /释放总线 准备下次发送低脉冲dq=1;然后可以组织编写总程序,这里用的是keil软件进行编写程序,用的是C51语言,C语言可移植性可读性好,它既具有高级语言的特点,又具有汇编语言的特点,C语言可以像汇编语言一样对位、字节和地址进行操作,总的程序见附录三。4 结果及结论完成了系统的设计,现在要对系统进行测试,验证是否能满足设计要求,分别把系统在不同场合下进行观察测试。下面看一下是由两个传感器组成的实验实物系统图如图15和图16。图15 两个传感器组成的单线总线图16 含有两个传感器的系统图进行实验一:将测温系统和水银温度计放在同一房间内并记录所测温度如表10。表10 不同时刻的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论