基于STC89C52的数字温度计
DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:
? 独特的单线接口仅需一个端口引脚进行通讯 ? 简单的多点分布应用 ? 无需外部器件 ? 可通过数据线供电 ? 零待机功耗
? 测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F 递增 ? 温度以9 位数字量读出
? 温度数字量转换时间200ms(典型值) ? 用户可定义的非易失性温度报警设置
? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。
6
基于STC89C52的数字温度计
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 3.3.1所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工
作于寄生电源时,此引脚必须接地。其电路图如图5.3.1所示.。
图5.3.1 外部封装形式
在仿真软件中如图5.3.2所示
图5.3.2
DS18B20的测温原理如图5.3.3所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循
7
基于STC89C52的数字温度计
环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图5.3.3中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
斜率增加器预置τ1比较低温度系数振荡器计数器 1加 1预置Txτ2= 0高温度系数振荡器计数器 2温度寄存器= 0图5.3.3
停止 在正常测温情况下,DS1820的测温分辨力为0.5℃。
4、 系统软件设计
4.1:实验主程序流程图
8
基于STC89C52的数字温度计
4.2:温度传感器数据读取流程图
9
基于STC89C52的数字温度计
5、编程和仿真
5.1 编程软件Keil4
Keil C51是美国Keil software 公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil需要win98、NT、win2000、winXP、win7等操作系统。2009年2月发布的Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方,新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁、高效的环境来开发应用程序。
5.2 仿真软件proteus7.7
Proteus软件是Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、
PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
5.3仿真界面
10