碧波液压网 欢迎你,游客。 登录 注册

基于数字温度计DS18B20的温度测量仪的开发

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  0 引言

  在传统的温度测量系统中,一般采用热电偶或铂电阻进行温度测量。在这些电路中,有这样一些问题必须解决[1]:为了进行准确的温度测量,必须给铂电阻提供一个良好的恒流源;由于热电偶出来的信号是模拟信号,所以此信号在送给CPU之前必须先进行A/D转换,然后再送给CPU进行处理;并且热电偶的信号很微弱,只有十几个mA,因此在A/D转换之前通常还需要进行增益放大,因此,采用热电偶和铂电阻进行温度测量,需要考虑很多问题,构成的系统也比较复杂。

  DALLAS公司推出的数字式温度传感器DS18B20[2]很好地解决了这样一些问题,DS18B20采用一线接口,只需占用单片机的一个I/O口位,其外围电路也非常简单;并且DS18B20将测得的温度信号转换为数字量输出,可以与单片机直接相连,而不需进行信号放大和A/D转换,大大简化了电路的设计,因此系统采用了DS18B20作为温度传感器进行温度采集。

  1 系统硬件设计

  为了减小系统体积、简化设计,采用了ATMEL公司的AT89C2051作为该系统的单片机。AT89C2051的指令与INTEL公司的MCS-51[3]系列单片机指令完全兼容,内部集成了2 kB的Flash,具有15根可编程的I/O线,且其I/O输出能直接驱动LED数码管。由于该系统程序量不大,不需要扩展A/D转换器,且温度计DS18B20只需占用AT89C2051的一个I/O口位,因此采用AT89C2051作为该系统的单片机完全满足设计要求。系统硬件组成原理图如图1所示。

 

  上图中的DS18B20是单总线数字温度计,其内部自带A/D转换器,通过内部的温度采集、A/D转换等一系列过程,将温度值以规定的格式转换为数据并输出,用户可以通过一些简单的算法,将数据还原为温度值。其分辨率可以达到12位,满足一般情况下对温度采集的需要。其有TO-92封装和8-pin 150-mil SOIC封装两种形式,其中的TO-92封装形如一只三极管,非常小巧,使用方便,因此选用了TO-92封装形式的DS18B20进行这款温度测量仪的开发。

  数码管显示采用四个数码管进行测量温度的显示,其中第一个数码管显示温度的正负,当采样温度为正时,第一个数码管不显示;当采样温度为负时,第一个数码管显示“-”,第二和第三个数码管显示测量温度的整数部分,第四个数码管显示测量温度的小数部分,显示温度范围为-30~+99.5℃。

  键盘包括“测温”和“清除”两个按键。当单片机检测到“测温”按键按下时,单片机就读取DS18B20检测到的温度,并在数码管上显示出来;当单片机检测到“清除”按键按下时,就将数码管上显示的温度值清除,全部显示“0”。

  电源模块的输入为9 V、1 A的直流电源,经过LM317稳压之后输出5V电压给整个系统提供电源。在系统的硬件设计中,DS18B20供电模式的选择是一个比较重要的环节,如果选择的供电模式不同,那么在对其软件操作的难易程度上也不同,且对多点测量的可扩展性也有很大影响。下面对DS18B20的供电模式进行较为详细的分析。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论