毕业论文 DS18B20数字温度计的设计.doc_第1页
毕业论文 DS18B20数字温度计的设计.doc_第2页
毕业论文 DS18B20数字温度计的设计.doc_第3页
毕业论文 DS18B20数字温度计的设计.doc_第4页
毕业论文 DS18B20数字温度计的设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

数字温度计的设计目 录第一节 引言.3 1.1 ds18b20引脚功能.4第二节 ds18b20数字温度计的硬件结构设计.52.1 总体设计框图.5 2.1.1 主控制器.52.1.2 显示电路.52.1.3 温度传感器.52.2 ds18b20温度传感器与单片机的借口电路.62.3 系统整体硬件电路.7 2.3.1 主板电路.7 2.3.2 系统板上硬件连接.7第三节 软件设计.83.1 主程序.83.2 读出温度子程序.83.3 温度转换命令子程序.9 3.4 计算温度子程序.93.5 显示数据刷新子程序.10第四节 总结与体会.10致谢.10参考文献.11附录 汇编源程序代码.12ds18b20数字温度计的设计摘 要 : 本论文介绍了一种以单片机为主要控制器件,以ds18b20为温度传感器的新型数字温度计。主要包括硬件电路的设计和系统程序的设计。硬件电路主要包括主控制器,测温电路和显示电路等,主控制器采用单片机at89c2051,温度传感器采用美国dallas半导体公司生产的ds18b20,显示电路采用4位共阳极led数码管以动态扫描法直读显示。系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。此外,还介绍了系统的调试和性能分析。由于采用了改进型智能温度传感器ds18b20作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。ds18b20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。关键词:单片机,主控制器,温度传感器,ds18b20,at89c51, 显示电路,数字温度计第一节 引言随着电子技术的迅速发展,计算机已深入的渗透到我们的生活中,就51系列而言,由于intel公司将其内核使用权以专利互换或出售的形式转给世界许多著名ic制造商,随着计算机技术的不断发展,在工业测量控制领域内单片机的应用越来越广泛。同时,随着超大规模集成电路工艺和集成制造技术的不断完善,单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单片机,这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用价值。温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。本课题研究的内容就是以单片机为主要控制元件,通过温度传感器实现对温度的测量,并通过数码管直接显示所测温度。由于本人所学知识有限,设计过程中难免出现错误,还请各位老师批评指正。1.1 ds18b20引脚功能to92封装的ds18b20的引脚排列见图1,其引脚功能描述见表1。 (底视图)图1 表1ds18b20详细引脚功能描述 序号名称引脚功能描述1gnd地信号2dq数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3vdd可选择的vdd引脚。当工作于寄生电源时,此引脚必须接地。第2节 ds18b20数字温度计的硬件结构设计2.1 总体设计框图 温度计电路设计总体设计方框图如图2所示,控制器采用单片机at89c51,温度传感器采用ds18b20,用led数码管以串口传送数据实现温度显示。 图2 总体设计方框图2.1.1 主控制器单片机at89c51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.1.2 显示电路 显示电路采用共阳led数码管,从p1.0p1.7串口输出段码。2.1.3 温度传感器 ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。ds18b20的性能特点如下:(1)、只要求一个端口即可实现通信;(2)、在ds18b20中的每个器件上都有独一无二的序列号;(3)、实际应用中不需要外部任何元器件即可实现测温;(4)、测量温度范围在55。c到125。c之间;(5)、数字温度计的分辨率用户可以从9位到12位选择;(6)、内部有温度上、下限告警设置; ds18b20采用3脚pr-35封装或8脚soic封装,其内部结构框图如图3所示。 图3 ds18b20内部结构2.2 ds18b20温度传感器与单片机的借口电路ds18b20可以采用两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚座位信号线,3脚接电源。另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效地ds18b20时钟周期内提供足够的电源,可用一个mosfet管来完成对总线的上拉。当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us.采用寄生电源供电方式时vdd端接地。由于单线制只有一根线,因此发送接口必须是三态的。 图4 ds18b20与单片机的接口电路2.3 系统整体硬件电路2.3.1 主板电路系统整体硬件电路包括:传感器数据采集电路,温度显示电路,单片机主板电路等,如图5所示。2.3.2 系统板上硬件连接(1) .把“单片机系统”区域中的p0.0-p0.7用8芯排线连接到“动态数码显示”区域中的abcdefgh端子上。(2) .把“单片机系统”区域中的p2.0-p2.7用8芯排线连接到“动态数码显示”区域中的 s1s2s3s4s5s6s7s8端子上。(3) .把ds18b20芯片插入“四路单总线”区域中的任一个插座中,注意电源与地信号不要接反。(4) .把“四路单总线”区域中的对应的dq端子连接到“单片机系统”区域中的p3.7/rd端子上。第3节 软件系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理ds18b20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图6所示。 图6 主程序流程图 图7 读温度流程图3.2 读出温度子程序读出温度子程序的主要功能是读出ram中的9字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。其程序流程图如图7所示。图8 温度转换流程图3.3 温度转换命令子程序温度转换命令子程序主要是温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图8所示。3.4 计算温度子程序计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定,其程序流程图如图9所示。图9 计算温度流程图 图10 显示数据刷新流程图3.5 显示数据刷新子程序显示数据刷新子程序主要是对现实缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图10所示。第4节 总结与体会 经过这段时间的努力,终于完成了我的ds18b20数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是非常开心的,高兴之余不得不深思呀!在本次设计的过程中,我发现很多问题,虽然以前也做过这样类似的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙地程序算法,虽然以前写过几次程序,但我觉得写好一个程序并不是一件简单的事。举个例子,以前写的那几次,数据加减时我用的都是bcd码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只要我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更说不上掌握。从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更应该这样,程序只有在经常地写与读的过程中才能提高,这就是我在这次设计中的最大收获。参考文献1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982 李广弟.单片机基础m.北京:北京航空航天大学出版社,19943 阎石.数字电子技术基础(第三版).北京:高等教育出版社,19894 廖常初.现场总线概述j.电工技术,19995 张靖武,周灵彬.单片机原理、应用与proteus仿真.北京:电子工业出版社,2007附录 汇编源程序代码org 00h tmpl equ 29h ;用于保存读出温度的低8位 tmph equ 28h ;用于保存读出温度的高8位 flag1 equ 38h ;是否检测到ds18b20标志位27h.0 datain bit p3.7main: lcall get_temper ;调用读温度子程序 lcall cvttmp lcall disp1 ajmp main ;ds18b20复位初始化子程序init_1820: setb datain nop clr datain ;主机发出延时537ms的复位低脉冲 mov r1,#3tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 setb datain ;然后拉高数据线 nop nop nop mov r0,#25htsr2: jnb datain,tsr3 ;等待ds18b20回应 djnz r0,tsr2 clr flag1 ;清标志位,表示ds18b20不存在 sjmp tsr7tsr3: setb flag1 ;置标志位,表示ds18b20存在 clr p1.7 ;检测到ds18b20就点亮p1.7led mov r0,#117tsr6: djnz r0,$ ;时序要求延时一段时间tsr7: setb datain ret ;读出转换后的温度值get_temper:setb datain lcall init_1820 ;先复位ds18b20 jb flag1,tss2 nop ret ;判断ds18b20是否存在?若ds18b20不存在,则返回tss2: mov a,#0cch ;跳过rom匹配 lcall write_1820 mov a,#44h ;发出温度转换命令 lcall write_1820 acall disp1 lcall init_1820 ;准备读温度前先复位 mov a,#0cch ;跳过rom匹配 lcall write_1820 mov a,#0beh ;发出温度转换命令 lcall write_1820 lcall read_18200 ;将读出的温度数据保存到35h/36h ret ;写ds18b20的子程序(有具体的时序要求)write_1820:mov r2,#8 ;一共8位数据 clr cwr1: clr datain mov r3,#6 djnz r3,$ rrc a mov datain,c mov r3,#23 djnz r3,$ setb datain nop djnz r2,wr1 setb datain ret ;读ds18b20的程序,从ds18b20中读出两个字节的温度数据read_18200:mov r4,#2 ;将温度高位和低位从ds18b20中读出 mov r1,#29h ;低位存入29h(temp_l)中,高位存入28h(temph)中re00: mov r2,#8 ;数据一共有8位re01: clr c setb datain nop nop clr datain nop nop nop setb datain mov r3,#9re10: djnz r3,re10 mov c,datain mov r3,#23re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 retcvttmp: mov a,tmph anl a,#80h jz tmpc1 clr c mov a,tmpl cpl a add a,#1 mov tmpl,a mov a,tmph cpl a addc a,#0 mov tmph,a mov 73h,#0bh ;显示负号”-“ sjmp tmpc11 tmpc1: mov 73h,#0ah ;正数符号不显示tmpc11: mov a,tmpl anl a,#0fh mov dptr,#tmptab movc a,a+dptr mov 70h,a ;小数部分 mov a,tmpl anl a,#0f0h swap a mov tmpl,a mov a,tmph anl a,#0fh swap a orl a,tmplh2bcd: mov b,#100 div ab jz b2bcd1 mov 73h,a ;百位不等于0时,保存b2bcd1: mov a,#10 xch a,b div ab mov 72h,a ;十位 mov 71h,b ;个位tmpc12: nopdisbcd: mov a,73h anl a,#0fh cjne a,#1

温馨提示

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

评论

0/150

提交评论