分享

自制可测量液体温度的数显温度计(DS18B20)

 共同成长888 2015-04-20

自制可测量液体温度的数显温度计(DS18B20)

 

  以半导体温度传感器为核心的电子数显温度计,具有读数直观方便、测温响应速度快、测量准确、分辨率高的特点,也避免了传统温度计中水银对环境的污染;尤其是以DS18B20为代表的数字温度传感器,其直接将温度测量值转换为数字量输出,便于与单片机接口读取、显示测温数值。对于DS18B20的使用不少电子专业刊物已有介绍,但是大部分是在单片机实验板上进行的,或是作为温控系统中的一部分得到应用。这些应用都无法成为一个实用的数显温度计"产品"独立使用,并且功能单一,如只能测试正温度,没有温度报警功能,不能测试液体温度等。笔者在教学实践中设计制作了一款以DS18B20为核心的实用数显温度计,其实物照片如图1所示。

自制实用数显温度计

本温度计有如下特点:
1.体积小巧,大小为120(长)×76(宽)×25(高),便于使用与携带。
2.采用一块普通的手机锂电池供电,可以反复充电使用,降低了使用成本,并且锂电池不会污染环境,绿色环保。
3.可以测试液体的温度,扩大了应用范围。
4.温度测量范围宽,从-55℃~+125℃。
5.具有温度上限报警功能,温度上限报警范围:0℃~100℃。
6.测温准确度为±0.5℃(在-10℃~+85℃范围内),分辨率为0.0625℃。

一、硬件电路分析

数显温度计的电路原理图如图2所示。

数显温度计电路原理图

在原理图中单片机IC1PIC16F84A完成以下5个任务:

1.通过软件控制RA0端口电平按照"1-线"总线规范的时序去改变,通过"1-线"总线对数字温度传感器IC2DS18B20发出复位、启动测温等指令,从而达到与数字温度传感器IC2通信的目的。

2.将IC2送来的二进制测温值通过数制转换程序转换为十进制数,完成数制转换。

3.对液晶显示屏LCD进行控制,实现测温值的数显。IC1的RA1至RA3端口对液晶显示屏LCD的读写进行控制,RB4至RB7端口将测温显示数据送到液晶显示屏的数据端口D4至D7端,实现温度值的数字显示;在这里液晶显示屏与单片机之间采用了4位接口模式,这样可以节约单片机有限的端口资源,显示屏不用的数据端口要悬空处理,否则会引起显示不正常。

4.完成温度上限报警任务。IC1的RA4端为温度上限报警输出端,当IC1检测到测温值等于或超过温度上限报警设定值时,RA4端口以0.5s为间隔交替输出高低电平,蜂鸣器HA发出"嘀、嘀"的报警声。温度上限报警设定值存储在IC1内部的EEPROM存储器中。

5.对温度上限报警开启/关闭控制开关S1、温度上限报警值设置开关S2与S3进行检测,以便执行相应的操作功能。

由于单片机IC1与液晶显示屏LCD只有供电电压为5V时,才能确保二者稳定的工作,为此,在电路中加入了由IC3MAX757与外围元件构成的升压电路。通过升压电路,将锂电池的3.6V供电提升为IC1与液晶显示屏所需的5V供电。MAX757为美信公司出品的升压型DC-DC转换芯片,它在输入电压低至0.7V时仍然可以稳定工作,这样的特性很适合两节电池或锂电池供电的系统,因此笔者选用了此IC构成升压电路。MAX757的技术文档可从美信公司的网站(www.maxim-ic.com.cn)上下载。MAX757的输出电压由电阻R7、R8的分压比决定,计算公式为UO=1.25V×[(R7+R8)÷R8],公式中电阻的单位均为kΩ。笔者对此升压电路进行过测试,当输入电压在2~4.5V之间变化时,负载为本数显温度计时,用指针式万用表监测电容C5两端的电压,观测不到5V电压的改变,这证明MAX757的升压调整特性还是很不错的。

二、软件编程

软件在MPLABIDE集成开发环境中用汇编语言编写。包括"1-线"总线通信子程序、LCD控制与显示子程序、二-十进制转换子程序、开关检测子程序、温度上限报警子程序、单片机内部EEPROM读写子程序、延时子程序等。由于温度上限报警设定值保存在单片机IC1内部的EEPROM存储器中,所以当S2或S3接通时,要通过EEPROM读写子程序改变存储在EEPROM内的温度上限报警设定值。在对EEPROM写数据的时候,每写完一次数据,一定要对单片机IC1的EECON1寄存器的WR位进行软件查询是否为0,为0的话证明一次写操作完成,之后才能进行下一次的写操作或执行其它任务,否则数据无法写入EEPROM。在对单片机编程烧写的时候,初始化的温度上限报警值设定为25℃,初始化工作在程序中通过下面的两条伪指令完成:

ORG?2100H?;对编程器而言EEPROM的起始地址为2100H

DE?.25???;向EEPROM的00H单元写入十进制数25

三、制作与使用

为了便于读者自制本数显温度计,笔者为其设计了PCB,如图3所示。此PCB为单面布线,方便读者用热转印法制作电路板,PCB的顶层丝印层见图4,读者可参照此图片进行组装,在图片上J1、J2为跳线,焊接完毕的电路板如图5所示。

印制板图

顶层丝印层

安装好的电路板

1.元器件的选取

在原理图中,IC1、IC3均选择DIP封装的,IC3MAX757可在美信公司的网站上申请样片;IC2选择TO-92封装的;电阻选择1/8W小体积电阻;L1为色环电感,体积有1/2W电阻大小;LCD为1602型液晶显示屏,由于生产的厂家不同,对比度设置电阻R5可能要根据需要要略作调整;蜂鸣器HA选择工作电压为5V的自发声型,要选用工作电流小于25mA的产品,这样可以用单片机的端口直接驱动;S1、S4为琴键式自锁开关,S2、S3为按钮开关;电池可以选用任何型号的手机锂电池,只要可以装入机壳就可以了。

2.测温探头的制作

为了让数显温度计可以测试液体的温度,我们要给温度传感器IC2"穿上一件防水、耐高温的外衣",这个"外衣"就是测温探头,其制作过程如下:取一个比IC2直径稍大的电解电容,去掉塑料外皮,将电解电容内部类似于纸制的电解芯取出,我们要用到的就是这个被掏了"芯"的铝壳。在铝壳内注入导热硅脂,硅脂的注入量达到铝壳的1/2高度处即可。这时将焊好引线的IC2放入铝壳,用环氧树脂胶封固铝壳的开口处,如图6所示。再将探头用环氧树脂胶固定到一个空心塑料杆上(笔者选用的是圆珠笔杆),引线从塑料杆的内心穿出,如图7所示。至此,测温探头制作完毕。

3.使用简介

当接通电源开关S4后,蜂鸣器HA会响一声,这表明单片机内部程序运转正常。温度上限报警开启/关闭控制开关S1断开时,报警功能打开,液晶屏的第二行显示温度上限报警设定值(第一行显示的是实时测温值),如图8所示,当测温值等于或超过设定值时,蜂鸣器发出"嘀、嘀"的报警声,直至温度回落到上限报警值之内或接通(按下)S1才停止报警;当S1接通(按下)时,报警功能关闭,此时液晶屏的第二行显示"ALARMOFF"字样,如图9所示,表示报警功能关闭,蜂鸣器不发出报警声。S2、S3为温度上限报警值设置开关,每按动S2一次,设置值增加1℃,当设置值超过100℃时,设置值自动回到0℃;每按动S3一次,设置值降低1℃,当设置值要降到0℃以下时,设置值自动回到100℃;按住S2或S3不放时,设置值以1℃为步进值连续增加或降低;在操作S2、S3时,图8中第二行显示的温度设定值数字也随之改变。当测温值为0℃以下时,液晶屏第一行温度显示百位的地方会出现"-"号,表示负温度。数显温度计所使用的锂电池可用手机万能充电器进行充电。数显温度计的源程序cewen.asm、编译好的烧写文件cewen.HEX以及PCB文件可到《无线电》杂志网站(www.radio.com.cn)下载,读者可以根据实际需要对源程序进行修改,添加更多的实用功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多