DS18B20数字温度计设计实验报告_第1页
DS18B20数字温度计设计实验报告_第2页
DS18B20数字温度计设计实验报告_第3页
DS18B20数字温度计设计实验报告_第4页
DS18B20数字温度计设计实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、湖北科技学院单片机原理及应用课程设计报告标题:DS18B20数字温度计的设计名字:讲师:设计时间:2014年12月1日-12月20日电子与信息工程学院目录1.导言11.1 .设计意义11.2 .系统功能要求12.方案设计13.硬件设计24.软件设计55.系统调试76.设计总结87.附录98.作品展览159.参考文献17DS18B20数字温度计的设计1.介绍1.1 .设计意义在日常生活和工农业生产中,经常使用温度检测和控制。传统的温度测量元件包括热电偶和热电阻。然而,由热电偶和热电阻测量的电压通常被转换成相应的温度,这需要更多的外部硬件支持。它的缺点如下:复杂的硬件电路;软件调试复杂;制造成本低

2、。在这种数字温度计设计中,采用了美国达拉斯半导体公司引进的改进型智能温度传感器DS18B20作为检测元件。温度范围为-55 125,最高分辨率可达0.0625。DS18B20可以直接读取温度测量值,并通过三线制与单片机相连,减少了外部硬件电路,成本低,热点使用方便。1.2 .系统功能要求设计的DS18B20数字温度计可测量-55 125范围内的温度,误差在0.5以内。它由发光二极管数码管直接读取和显示。2.方案设计根据系统设计功能的要求,系统由三个模块组成:主控制器、测温电路和显示电路。数字温度计的整体电路结构框图如图4.1所示:AT89C2051主控制系统器官DS18B20显示电路扫描驱动器

3、图4.13.硬件设计温度计电路设计示意图如下图所示。控制器采用单片机AT89C2051,温度传感器采用DS18B20,四位共阳极LED数码管采用动态扫描方式实现温度显示。主控制器单片机AT89C2051这两个端口具有低压供电和体积小的特点,正好满足电路系统的设计需求,非常适合便携式手持产品的设计和使用。该系统可以由两节电池供电。右图为AT89C2051的引脚图。1.VCC:电源电压。2.GND:地面。3.P1端口:P1端口是一个8位双向输入输出端口。端口引脚P1.2P1.7提供内部上拉电阻,而P1.0和P1.1需要外部上拉电阻。P1.0和P1.1也分别用作片内精密模拟比较器的同相输入(ANI0

4、)和反相输入(AIN1)。P1港输出缓冲器可以吸收20mA电流,可直接驱动发光二极管显示。当P1端口引脚写“1”时,可以作为输入端;当P1.2P1.7作为输入端,被外部下拉时,内部写“1”时,可以作为输入端。当引脚P1.2P1.7用作输入并被外部下拉时,由于内部上拉电阻,它们将流出电流。4.P3端口:P3端口的P3.0P3.5和P3.7是七个带内部上拉电阻的双向输入输出端口引脚。P3.6用于固定输入片内比较器的输出信号,作为通用输入/输出引脚不可访问。P3缓冲器可以吸收20mA电流。当P3端口写“1”时,它们被内部上拉电阻上拉,可以用作输入端。当用作输入时,被外部拉低的P3引脚将使用上拉电阻流

5、出电流。5.RST:重置输入。一旦RST变高,所有的输入/输出引脚复位为“1”。振荡器运行时,可以通过连续两个机器周期给RST引脚高电平来完成复位。每个机器周期需要12个振荡器或时钟周期。XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。XTAL2:作为振荡器反相放大器的输出。总线驱动器74LS24474LS244是一个3态8位缓冲器,通常用作总线驱动器。引脚图见上图。显示电路显示电路采用4位共阳极发光二极管数码管,从P1端口输出段码。列扫描由P3.0P3.3端口实现,列驱动由8055三极管实现。温度传感器DS18B20DS18B20的性能特征:1.自适应电压范围更宽,从3.0到5.5

6、伏,可以通过寄生电源模式下的数据线供电。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.75毫秒内转换为数字

7、,在12位分辨率下,温度值最多可在750毫秒内转换为数字,速度更快。8.测量结果直接输出数字温度信号,通过“单线总线”串行传输给中央处理器,同时可以传输CRC校验码,抗干扰和纠错能力强。9.负压特性:当电源极性反转时,芯片不会因受热而烧坏,但不会正常工作。DS18B20与单片机的接口电路(引脚图见右图)DS18B20可由电源供电。此时,DS18B20的第一个引脚接地,第二个引脚用作信号线,第三个引脚连接到电源。4.软件设计系统程序主要包括主程序、读取温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序。4.1主程序主程序的主要功能是实时显示、读取和处理DS18B20的温度测量值。

8、温度测量应每1秒进行一次。主要程序流程图如图4.1所示。4.2读出温度子程序读取温度子程序的主要功能是读取内存中的9个字节。读取时必须检查循环冗余校验,当检查中出现错误时,不能重写温度数据。读出温度子程序流程如下图所示:初始化调用显示子程序1到?首次通电读出温度值温度计的酸处理显示数据刷新发送温度转换开始命令读出温度子程序读出温度子程序的主要功能是读出内存中的9个字节。读取时应检查循环冗余校验,当检查中有任何错误时,不应重写温度数据。温度子程序流程如下图所示。发送DS18B20复位指令循环冗余校验是否正确?发送跳过只读存储器指令移入温度寄存器发送温度读数指令目标读取操作,循环冗余校验9字节的结

9、尾?温度转换命令子程序温度转换命令子程序主要是发送温度转换开始命令。当使用12位分辨率时,转换时间约为750毫秒。在该程序设计中,使用1秒显示程序延迟方法来等待转换完成。温度转换命令子程序流程如下图所示。发送DS18B20复位命令发出跳过只读存储器命令发送温度转换开始命令目标计算温度子程序计算温度子程序对内存中读取的值进行BCD码转换运算,判断温度值是正还是负。计算温度子程序的流程图如下图所示。真实数据刷新子程序真实数据刷新子程序主要刷新显示缓冲区中的显示数据。当最高数据显示位为0时,符号显示移至下一位。真实数据刷新子程序的流程图如下图所示。温度数据被移入显示寄存器开始计算十进制温度的BCD值

10、十位数0?气温在零度以下?计算整数位温度的BCD值百位数0?设置标志取温度值的补码,并设置“1”符号百位数显示数据(无符号)十位数显示符号不显示百位数目标目标5.系统调试系统调试主要是程序调试。硬件调试相对简单。首先检查电感的焊接是否正确,然后用万用表测试或通电测试。在软件调试中,先编写显示程序,检查硬件的正确性,然后分别编写主程序、温度读取子程序、温度转换命令子程序、温度计算子程序和实时数据刷新子程序,并进行调试由于DS18B20和单片机采用串行数据传输,在对DS18B20编程时,必须严格保证读/写时序。否则,无法读取测量结果。该程序由单片机或C语言编译,由Wave3.2或Keil C51编

11、译器编程调试。软件经过调试显示温度值,当有温度变化时,显示温度可以变化,救援基本完成。性能测试可以测量,并与制造的温度计和现有的温度计进行比较。由于DS18B20的高精度,误差指标可控制在0.5以内。此外,温度测量范围从-55到125,使温度计完全适合一般应用,其低压供电特性可制成电池供电的手持式温度计。DS18B20温度计也可应用于高低温报警和远距离多点测温控制,但在实际设计中应注意以下问题:1.当DS18B20工作时,电流为1.5毫安,总线上的钩子数量很大。当同时转换时,有必要增加总线驱动器。在温度转换期间,微控制器端口可以导通金属氧化物半导体场效应晶体管来供电。2.连接DS18B20的总

12、线电缆长度有限,因此在设计DS18B20远程温度测量系统时,应充分考虑总线分布电容和阻抗匹配。3.在DS18B20的温度测量程序设计中,程序总是在向DS18B20发送温度转换命令后等待DS18B20的返回信号。一旦DS18B20接触不良或断开,当程序读取DS18B20时,将没有返回信号,程序将进入无限循环。DS18B20的硬件连接和软件设计应注意这一点。6.设计概要为期两周的单片机课程设计已经结束。在这两周的时间里,我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。在实验过程中,我们了解并熟悉了DS18B20、AT89C2051和74LS244的工作原理和性能。通过温度计的制

13、作,我们将在电子技能培训课上学到的知识应用到实际操作中,发现和解决实际操作中的问题,从而增加我们的知识和理解。在课程设计的过程中,也存在一些问题。例如,在开始时,根据教科书中的电路图进行合理的设计布局和布线。有些学生布局不合理,导致任务繁重,焊接过程难看。在烧录程序的后期调试中,问题出现后,布线不合理的学生在发现问题的过程中非常困难。在焊接过程中,最常见的问题是虚拟焊接。针对这个问题,在焊接过程中,我尽量按照书中的说明将焊点焊接成水滴,最后接通电源后,根据数码管的显示情况逐一检查。将程序烧录到单片机后,接上电源,发现数码管没有显示正常的“000.0”,而是显示“666.6”。经检查电路正确后,

14、与其他学生讨论后得出结论,本书中的程序是为单片机、电阻和数码管的直接连接而设计的,添加74LS244后,8个输入输出端口出现故障。因此,我切换了8个端口,然后再次打开电源。数码管显示“000.0”,调试成功。在制作完我的温度计后,我还帮助其他未完成的学生修理了它,并成功地帮助了两个学生发现问题并解决了它们,最后他们被成功地调试了。总之,在这两个星期里,通过在实验室里制作数字温度计,我们不仅把课本上的知识和实践结合起来,而且在实践中也深刻地理解了书中原有的抽象知识。这也是整个课程设计中最有收获的地方。7.附加记录S/DS18B20温度计c程序/2005年2月28日通过调试/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

温馨提示

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

评论

0/150

提交评论