DS18B20数字温度传感器应用教学提纲.doc
《DS18B20数字温度传感器应用教学提纲.doc》由会员分享,可在线阅读,更多相关《DS18B20数字温度传感器应用教学提纲.doc(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。DS18B20数字温度传感器应用-传感器课程设计报告温度传感器专业班级应用电子2班姓名方畅、曹文荣、梁锐权时间15周至18周指导老师冯伟2007年6月23日1. 设计要求n 基本范围-55120n 精度误差小于1n LED数码直读显示2. 扩展功能n 可以任意设定温度的上限报警功能n 有鸣蜂器报警n 温度状态设置指示灯,温度报警指示灯,传感器检测指示灯n 有温度自保功能(在一分钟内降不了温,自动关闭系统)传感器检测功能(如果系统检测没有传感器存在,四次提示内没有插入传感器则关闭系统)温度控制器摘要:随着
2、时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,一种数字式温度计以数字温度传感器作感温元件,它以单总线的连接方式,使电路大大的简化;传统的温度检测大多以热敏电阻为传感器,这类传感器可靠性差,测量温度准确率低且电路复杂。因此,本温度计摆脱了传统的温度测量方法,利用单片机对传感器进行控制。这样易于智能化控制。总体设计方案2.1.0数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/
3、D转换电路,感温电路比较麻烦。2.1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。方案二的总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用4位LED数码管以P0和P2控制LED实现温度显示。2.1.3主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口就足够能满足
4、电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.1.4显示电路显示电路采用4位共阳LED数码管,从P0口输出显示数据,用P2口来控制位选。2.1.5温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;
5、用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用脚PR35封装或脚SOIC封装,其内部结构框图如图2所示。64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3所示。头个字节包含测得
6、的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分率。由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码
7、,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机
8、发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温
9、度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在-55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍关闭就重复上述过程,直到温度寄存器值大致被测温度值。2.3DS18B20温度传感器与单片机的接口电路1.DS18B20可以采用
10、两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。2.4系统整体硬件电路2.4.1主板电路系统整体硬件电路包括,电源电路,传感器电路,温度显示电路,上限报警调整按键电路,单片机主板电路等,如图5所示。图5中有三个独
11、立式按键可以分别调整温度计的上限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值,有三个LED二极管它们分别是:黄色的是传感器存在指示灯;红色的是设置状态指示灯;绿色的是报警指示灯。图5中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。2.4.2电源电路图2.2.4.3上限报警调整按键电路2.4.4显示电路显示电路是使用的P0口和P2做LED数据显示,这种动态显示最大的优点就是显示内容丰富,但占用口资源比较多,2.4.5
12、单片机主板电路3系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图7所示。3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进温度数据的改写。其程序流程图如图8示3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等
13、待转换的完成。温度转换命令子程序流程图如上图,图9所示3.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图10所示。3.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图11。3.6温度传感器的使用本传感器有三个按键(RST,SET,UP,DOWN),三个LED二极管(黄色,红色,绿色),一个鸣蜂器。RST(单片机复位)但单片机里面的程序出现死循环时,按这个按键使单片机重新工作。SET(温度传感器开关机和温度状态设置)但第一次短下键时温度传感器开
14、始开机工作,其次短按下键时进行温度状态设置,但进入状态设置时,红色LED二极管和数码关会闪烁,表示已经进入温度上限值设置。但长按键维持3秒是系统就会关闭。UP(温度上限值加)在进入温度设置状态时,对温度上限值加一。如果长按时,会快速加。DOWN(温度上限值减)在进入温度设置状态时,对温度上限值减一。如果长按时,会快速减。黄色LED(传感器检测指示灯)如果这灯亮,表示但前系统检测到没有传感器。在开机时也会提示NO-SENSOR(没有传感器),在开机后系统还检测不到传感器就会每15秒提示一次NO-SENSOR(没有传感器),提示四次时系统将自动关闭。这样就防止传感器损坏或松动甚至没有接上使系统误测
15、而导致的一些不好后果。绿色LED(温度报警指示灯)但实际温度超过设置温度值时这灯和鸣蜂器就会发出报警信号,如果这信号维持超过1分钟,则认为外部降温设备有故障,系统将自动关闭。这样的好处就是但降温外设备出现故障或发热设备功耗过大发热严重时对这些故障进行有效的控制。红色LED(温度设置状态指示灯)但温度传感器在温度设置状态时该灯会闪烁。8段数码管电源接口(912V)电源指示灯RST键UP键温度报警指示灯传感器检测指示灯设置状态指示灯DOWN键温度传感器SET键鸣蜂器传感器实物图4总结与体会经过将近三周的传感器课程设计,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴
16、的,毕竟这是第一次搞这样的设计还把实物都做了出来,高兴之余不得不总结经验此次呀!在本次设计的过程中,我发现了自己的很多的问题,以前还没有做过这样的设计。在这次设计真的让我们长进了很多,明白了传感器课程设计重点就在于对传感器元件的应用和对传感器用途的理解,可以说这次设计是为我们的毕业设计提前的一次练习。以前我们做的很多,都不象这次做的那样系统化的设计,都是一些硬件的搭建就行。而这次并不单单是搭建硬件,还要有软件的支持才能使设计的东西工作。这就体现本次课程设计的难度和对各门知识的应用程度。真的有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课
17、程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习传感器这门课更是如此,所以理论的稳固在实际过程中才能提高,这就是我在这次课程设计中的最大收获。本课程设计资料由以下提供:书籍:8051系列单片机C语言设计完全手册单片机原理及应用第2版网页:5程序代码本程序采用C语言用KeilC51软件进行编译。用一个接口函数LED_Display.h将主函数Trime+key.c与LED显示函数LED_Display.c和ASCII转成LED显示的数据函数BCD_ASCII.C同延时程序Delay.c所构成。这样使的程序模块化使每段都体现自己的功能,直观易懂再
18、加上注释更便于阅读和理解程序。本程序利用定时中断对按键进行查询,然后再跳到相应的处理程序去执行。在按键功能中用了寻址的状态寄存器做为按键功能的分配,这样就使的按键功能多样化,使用灵活。/*=温度控制器广州工程职业技术学院传感器课程设计指导老师:冯伟作者:GIT-3408-YOUJJYY(方畅,曹文荣,梁锐权)时间:2007-4-25温度传感器使用单总线DS18B20接口模式CPU为AT89S52,三个按键(RST,UP,DOWN,SET),晶振为11.0592MHz直流912V供电,四个LED数码管显示温度调节上限为125度,下限为-55度(本程序只能用于单只18B20)=*/#include
19、#include#include/*-用于按键可位寻址的状态寄存器-*/staticunsignedcharbdataStateREG;sbitDS1820ON=StateREG0;/DS18B20是否存在sbitSetTF=StateREG1;/是否是在温度设置状态sbitKeySETDown=StateREG2;/1为已按过SET键,0为没按过SET按sbitPowTF=StateREG3;/电源标识(0为开电源,1为关电源)sbitKeyTF=StateREG4;/0为按键允许,1为不允许sbitKeySETDowning=StateREG5;/SET是否正在按下sbitLEDTF=St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS18B20 数字 温度传感器 应用 教学 提纲
限制150内