您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > DS18B20数字温度计设计实验报告
题目:DS18B20数字温度计姓名学号:20133522080赵晓磊20130123096段石磊20133522028付成指导老师:万青设计时间:2015年12月单片机原理及应用课程设计报告书电子与信息工程学院目录1.引言.............................................................................................................................31.1.设计意义................................................................................................................31.2.系统功能要求.......................................................................................................32.方案设计.....................................................................................................................43.硬件设计.....................................................................................................................24.软件设计.....................................................................................................................55.系统调试.....................................................................................................................76.设计总结.....................................................................................................................87.附录.............................................................................................................................98.作品展示...................................................................................................................159.参考文献...................................................................................................................17DS18B20数字温度计设计1.引言1.1.设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下:●硬件电路复杂;●软件调试复杂;●制作成本高。本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。1.2.系统功能要求设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED数码管直接读显示。2.方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。数字温度计总体电路结构框图如4.1图所示:图4.13.硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED数码管以动态扫描法实现温度显示。主控制器单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需AT89C2051主控制器DS18B20显示电路扫描驱动要,很适合便携手持式产品的设计使用。系统可用两节电池供电。AT89C2051的引脚图如右图所示:1、VCC:电源电压。2、GND:地。3、P1口:P1口是一个8位双向I/O口。口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。4、P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。5、RST:复位输入。RST一旦变成高电平所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。7、XTAL2:作为振荡器反相放大器的输出。总线驱动器74LS24474LS244为3态8位缓冲器,一般用作总线驱动器。引脚图见上图。显示电路显示电路采用4位共阳极LED数码管,从P1口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用8055三极管。温度传感器DS18B20DS18B20的性能特点:1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。8、测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20与单片机的接口电路(引脚图见右图)DS18B20可以采用电源供电方式,此时DS18B20的第1脚接地,第2脚作为信号线,第3脚接电源。4.软件设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。4.1主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1s进行一次。主程序流程图如图4.1所示。4.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。在读出时必须进行CRC校验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如下图所示:读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。得出温度子程序流程图如下图所示。初始化调用显示子程序1s到?初次上电读出温度值温度计酸处理显示数据刷新发温度转换开始命令发DS18B20复位指令CRC校验正确?温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如下图所示。计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。计算温度子程序流程图如下左图所示.现实数据刷新子程序现实数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。现实数据刷新子程序流程图如下右图所示.发跳过ROM指令发读取温度指令读取操作,CRC校验9字节完?移入温度暂存器结束发DS18B20复位命令发温度转换开始命令结束发跳过ROM命令开始温度零下?计算小数位温度BCD值计算整数位温度BCD值温度数据移入显示寄存器十位数0?5.系统调试系统的调试以程序调试为主。硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编或C语言编写用Wave3.2或KeilC51编译器编程调试。软件调试到能显示温度值,并且在有温度变化时显示温度能改变,救基本完成。性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以内。另外,-55~+125℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题;1、DS18B20工作时电流高大1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。2、连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距温度值取补码置‘一’标志置+标志结束百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。3、在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。一旦某个DS18B20接触不好或断线,当程序读DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时要给予一定的重视。6.设计总结历时2个星期的单片机课程设计已经结束了,在这两个星期的时间里,我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。在进行实验的过程中,我们了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。在课程设计的过程中,也遇到了一些问题。比如
本文标题:DS18B20数字温度计设计实验报告
链接地址:https://www.777doc.com/doc-4088116 .html