毕业论文DS18B20数字温度计的设计.doc

上传人:仙人指路1688 文档编号:3972175 上传时间:2023-03-30 格式:DOC 页数:15 大小:173.50KB
返回 下载 相关 举报
毕业论文DS18B20数字温度计的设计.doc_第1页
第1页 / 共15页
毕业论文DS18B20数字温度计的设计.doc_第2页
第2页 / 共15页
毕业论文DS18B20数字温度计的设计.doc_第3页
第3页 / 共15页
毕业论文DS18B20数字温度计的设计.doc_第4页
第4页 / 共15页
毕业论文DS18B20数字温度计的设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《毕业论文DS18B20数字温度计的设计.doc》由会员分享,可在线阅读,更多相关《毕业论文DS18B20数字温度计的设计.doc(15页珍藏版)》请在三一办公上搜索。

1、数字温度计的设计目 录第一节 引言.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附录 汇编源程序代码.12DS1

2、8B20数字温度计的设计摘 要 : 本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的新型数字温度计。主要包括硬件电路的设计和系统程序的设计。硬件电路主要包括主控制器,测温电路和显示电路等,主控制器采用单片机AT89C2051,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用4位共阳极LED数码管以动态扫描法直读显示。系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。此外,还介绍了系统的调试和性能分析。由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相比,本数字温度计减少了外部

3、的硬件电路,具有低成本和易使用的特点。DS18B20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。关键词:单片机,主控制器,温度传感器,DS18B20,AT89C51, 显示电路,数字温度计第一节 引言随着电子技术的迅速发展,计算机已深入的渗透到我们的生活中,就51系列而言,由于Intel公司将其内核使用权以专利互换或出售的形式转给世界许多著名IC制造商,随着计算机技术的不断发展,在工业测量控制领域内单片机的应用越来越广泛。同时,随着超大规模集成电路工艺和集成制造技术的不断完善,单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单

4、片机,这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用价值。温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力

5、。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。本课题研究的内容就是以单片机为主要控制元件,通过温度传感器实现对温度的测量,并通过数码管直接显示所测温度。由于本人所学知识有限,设计过程中难免出现错误,还请各位老师批评指正。1.1 DS18B20引脚功能TO92封装的DS18B20的引脚排列见图1,其引脚

6、功能描述见表1。 (底视图)图1 表1DS18B20详细引脚功能描述 序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。第二节 DS18B20数字温度计的硬件结构设计2.1 总体设计框图 温度计电路设计总体设计方框图如图2所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用LED数码管以串口传送数据实现温度显示。 图2 总体设计方框图2.1.1 主控制器单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的

7、设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.1.2 显示电路 显示电路采用共阳LED数码管,从P1.0P1.7串口输出段码。2.1.3 温度传感器 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。DS18B20的性能特点如下:(1)、只要求一个端口即可实现通信;(2)、在DS18B20中的每个器件上都有独一无二的序列号;(3)、实际应用中不需要外部任何元器件即可实现测温;(4)、测量温度范围在55。C到125。C之间

8、;(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转换操作时,总线上必须有强的

9、上拉,上拉开启时间最大为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芯片插入

10、“四路单总线”区域中的任一个插座中,注意电源与地信号不要接反。(4) .把“四路单总线”区域中的对应的DQ端子连接到“单片机系统”区域中的P3.7/RD端子上。第三节 软件系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图6所示。 图6 主程序流程图 图7 读温度流程图3.2 读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行

11、温度数据的改写。其程序流程图如图7所示。图8 温度转换流程图3.3 温度转换命令子程序温度转换命令子程序主要是温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图8所示。3.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图9所示。图9 计算温度流程图 图10 显示数据刷新流程图3.5 显示数据刷新子程序显示数据刷新子程序主要是对现实缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图10所示。第四节 总结

12、与体会 经过这段时间的努力,终于完成了我的DS18B20数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是非常开心的,高兴之余不得不深思呀!在本次设计的过程中,我发现很多问题,虽然以前也做过这样类似的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙地程序算法,虽然以前写过几次程序,但我觉得写好一个程序并不是一件简单的事。举个例子,以前写的那几次,数据加减时我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只要我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更说

13、不上掌握。从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更应该这样,程序只有在经常地写与读的过程中才能提高,这就是我在这次设计中的最大收获。参考文献1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982 李广弟.单片机基础M.北京:北京航空航天大学出版社,19943 阎石.数字电子技术基础(第三版).北京:高等教育出版社,19894 廖常初.现场总线概述J.电工技术,19995 张靖武,周灵彬.单片机原理、应用与PROTEUS仿真.北京:电子工业出版社,2007附录 汇编源程序代码ORG 00H

14、 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 SET

15、B 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_182

16、0 ;先复位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

17、 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

18、)中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待添加的隐藏文字内容2 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

19、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 M

20、OV 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,DISBCD0 SJMP DISBCD1 ;百位为1,个位、十位不管是不是0,都要显示DISBCD0: MOV A,72H ;百位不为1,就是0A不显示,0B为负号 ANL A,#0FH ;十位是0时,正数只显示个位 JNZ DISBCD1 ;十位是0时,负数的负号移到十位的位置上 MOV A,73H ;此时百位不显示,为0BH MOV

21、72H,A MOV 73H,#0AHDISBCD1: RETTMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DISP1: MOV R1,#70H MOV R5,#0FEHPLAY: MOV P1,#0FFH MOV A,R5 MOV P2,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A MOV A,R5 JB ACC.1,LOOP1 CLR P1.7 ;显示小数点LOOP1: LCALL DL1MS INC R1 MOV A,R5 JNB ACC.3,ENDOUT RL A MOV R5,A SJMP PLAYENDOUT: MOV P1,#0FFH ;关显示,消串影 MOV P2,#0FFH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFH,0BFHDL1MS: MOV R6,#14HDL1: MOV R7,#100 DJNZ R7,$ DJNZ R6,DL1 RET END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号