徐 敏
[摘 要]设计一种基于AT89C51单片机的数字温度计,详细阐述了单片机、显示电路、DS18B20传感器芯片的功能。该数字温度计充分利用AT89C51单片机的特点,具有参数测量准确、操作方便、电路简单、安全可靠等特点,可广泛应用于自动温度测量。
[关键词]AT89C51单片机 数字温度计 DS18B20传感器芯片 自动温度测量
[中图分类号]TP368.1 [文献标识码]A[文章编号]1007-9416(2009)12-0007-03
[Abstract] Design a kind of digital thermometer based on ultralow AT89C51 single chip.Illustrate the function of the single chip,display circuit,DS18B20 sensor chip.The digital thermometer takes advantage of the characteristics of AT89C51 single chip. It has following characteristics,such as exact parameter measure,convenient operation,simple design,safe and reliable,so it can be widely used to automatic temperature measurement.
[Key words] AT89C51;single chip; digital thermometer; DS18B20; sensor chip; automatic temperature measurement
在冶金、石油、化工、机械制造和国防等行业中,往往需要测量-200℃~1000℃气体、液体等环境中的温度。以前一般采用玻璃液体温度计、双金属温度计、压力式温度计、热电偶、热电阻和非接触式温度计等进行温度测量。其中热电偶的温度测量范围较宽,它无需使用驱动电源即可直接产生电压信号,该信号既可用直流测量仪器(如电位差计、数字电压表、毫伏计等)读取,以通过热电偶温度特性分度表查出对应的温度;也可以用线性校正电路将小信号电压放大后,通过显示仪表的刻度读数。在某些输油、输气管道应用中,往往要求对温度进行长时间监测,且要求能够快速准确地读数。此时,上述各类温度计则难以胜任。而如果将热电偶产生的热电动势转换成数字信号后由单片机进行数据处理,并通过数码管来显示其温度结果,这种方法反应迅速,测量精度高,功耗小,显示直观。因此,由热电偶、A/D转换电路、单片机和数码管组成的数字式低功耗高精度温度计可以代替许多温度计来完成特殊情况下的温度测控工作,且便于实现小型化设计。
1 数字温度计的工作原理
数字温度计的工作原理如图1所示。输油、输气管道中的温度由传感器输出与温度值相对应的电流值,该电流值经过I/V转换电路得到电压值,最后经过A/D转换电路将模拟信号转换为数字信号送入单片机[1]。单片机对采样值进行数字处理后驱动显示电路显示出采集到的温度值。对于图1中的传感器、I/V转换电路、A/D转换电路这三部分的功能可以用美国达拉斯(DALLAS)公司的单线数字温度传感器芯片DS18B20来实现。
2 硬件电路设计
为了满足用户的需要,能够进行简单便捷的操作,同时还要兼顾体积小、耗电少、精度高的要求,使系统具有抗干扰能力强的特点。硬件电路设计中尽可能选用功耗小、性能稳定的集成电路。系统由3个模块组成:微处理器、显示电路及测温电路。
2.1 微处理器AT89C51
微处理器AT89C51是数字温度计的主要部件之一,它完成传感器功能设定、测量对象的选择、信号处理存储、状态信息的显示、输出等功能。相对于AT89系列单片机,选择通用性强、功耗小、性能良好的8位AT89C51微处理器芯片,它与MCS-51兼容,具有4KB的FLASH存储空间、128×8位内部RAM、32个可编程I/O线、低功耗的闲置和掉电模式、两个16位定时器/计数器、5个中断源和可编程串行通道等特点,大大简化了电路的设计[2]。
2.2 显示电路
系统硬件选择的是LED动态显示,LED显示子程序主要是完成对设定的LED段,并通过查七段码表,使它显示制定的图样。图2中描述的是通过选定一段数码管显示数据。
2.3 温度传感器
这里采用的是DS18B20数字传感器芯片,是数字温度计的核心元器件,是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
2.3.1 DS18B20内部结构
DS18B20的内部结构如图3所示,他主要包括温度传感器、64位激光ROM单线单口、存放中间数据的高速暂存器、用于存储用户设定的温度上下限值、触发器存储与控制逻辑、8位循环冗余校验码发生器等。
2.3.2 DS18B20工作原理
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。
2.3.3 DS18B20与单片机接口电路
图4是DS18B20采用寄生电源供电方式下与单片机接口电路,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。
3 软件设计
系统软件采用单片机C语言编制。为了方便程序调试和提高可靠性,软件采用模块化结构程序设计方法,主要包括初始化程序、主程序、定时中断服务程序、串行口中断服务程序、各子程序模块等。主程序完成系统初始化、查询各种状态并控制相应操作等功能,流程如图5所示。
3.1 软件功能
单片机系统上电后,进入初始化程序,完成片内各模块的设置、清除存储单元内容、端口设定等初始化工作,然后进入主程序,开中断,循环设置低功耗模式并执行延时操作。
3.2 软件特点
本软件设计的特点是利用单片机C语言的强大功能编制温度传感器的温度计算处理方法,进行非线性修正,极大地提高了程序运行速度和采集精度。且汇编语言与C语言可以在编程过程中混合使用,而汇编在查表方面具有非常明显的优势。
4 结语
本数字温度计硬件结构简单,软件设计灵活,充分发挥了单片机结构紧凑、功能强大的特点,并且具有温度显示、便捷的人机接口的功能,是一种参数测量准确、操作方便的数字温度计。
[参考文献]
[1] 李群芳.单片微型计算机与接口技术[M].北京:电子工业出版社,2001.184-185.
[2] 王幸之,钟爱琴,王雷等.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004.199-200.
[作者简介]
徐敏(1982-),女,江苏连云港人,硕士研究生,研究方向为信号与信息处理。