基于at89s51单片机的数字温度计的设计(编辑修改稿)内容摘要:

推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 DS18B20 的性能特点如下: • 独特的单线接口仅需一个端口引 脚进行通讯 • 简单的多点分布应用 • 无需外部器件 • 可通过数据线供电 • 零待机功耗 • 测温范围 55~+125℃,以 ℃递增。 华氏器件 67~+2570F,以 递增 • 温度以 9 位数字量读出 • 温度数字量转换时间 200ms(典型值) • 用户可定义的非易失性温度报警设置 • 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。 DS18B20内部结构主要由四部分组成: 64位光刻 ROM、 温度传感器、非挥发的温度报警触发器 TH和 TL、配置寄存器。 DS18B20的管脚排 列、各种封装形式如图 35所示, DQ 为 数据输入 /输出引脚。 VDD为 开漏单总线接口引脚 , 当被用着在寄生电源下,也可以向器件提供电源 ; GND为 地信号 , 当工作于寄生电源时,此引脚必须接地。 其电路图如图 35所示 .。 第 10 页 (共 24 页) 图 35 外部封装形式 DS18B20 的测温原理如图 36所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B20 就 对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量 .计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 55 ℃ 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1和温度寄存器被预置在 55 ℃ 所对应的一个基数值。 减法计数器 1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1的预置值减到 0时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入 ,减法计数器 1重新开始对低温度系数晶振产生的脉冲信号进行计数 ,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时 温度寄存器中的数值即为所测温图 37 中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就 是 DS18B20 的测温原理。 第 11 页 (共 24 页) 另外,由于 DS18B20 单线通信功能是分时完成的,有严格的时隙概念,因此读写时序很重要。 系统对 DS18B20 的各种操作必须按协议进行。 操作协议为:初始化 DS18B20(发复位脉冲) → 发 ROM功能命令 → 发存储器操作命令 → 处理数据。 在正常测温情况下, DS1820 的测温分辨力为 ℃。 预 置低 温 度 系 数 振 荡 器高 温 度 系 数 振 荡 器斜 率 增 加 器计 数 器 1比 较预 置= 0温 度 寄 存 器计 数 器 2= 0Tx加 1停 止τ 1τ 2 图 36 DS18B20的测温原理 晶振控制电路 单片机 XIAL1 和 XIAL2 分别接 30PF 的电容,中间在并个 6MHZ 的晶振,形成单片机的晶振电路。 第 12 页 (共 24 页) 图 37 晶振控制电路 复位电路 图 38 复位电路 4 系统软件设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度 第 13 页 (共 24 页) 子程序,显示数据刷新子程序等。 实验主程序流程图 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值,温度测量每 1s 进行一次。 这样可以在一秒之内测量一次被测温度,其程序流程见图 41所示。 图 41 主程序流程图 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写。 其程序流程图如图 42所示。 第 14 页 (共 24 页) 图 42 读温度流程图 温度转换命令子程序 温度转换 命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。 温度转换命令子程序流程图如图 43 所示。 第 15 页 (共 24 页) 图 43 温度转换流程图 计算温度子程序 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 44 所示。 图 44 计算温度流程图 第 16 页 (共 24 页) 显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为 0 时将符号显示位移入 下一位。 程序流程图如图 55所示。 图 45 显示数据刷新流程图 5 调试 系统的调试以程序为主。 硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。 软件调试先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度子程序、显示数据刷新子程序的编程及调试,由于 DB18B20 与单片机采用串行数据传送,因此,我对 DB18B20进行读写。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。