51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 课题设计文章 > 详细内容
用AT89C51控制ICL7135的0.01℃数显温度计
发布时间:2009/6/2  阅读次数:704  字体大小: 【】 【】【

作者:未知     来源:www.51kaifa.com

摘    要:本文用晶体管PN结作温度传感器,用集成电路ICL7135等作A/D转换器,以AT89C51为控制器,制作了测量精度可达0.01℃的数字温度计。主要介绍了本数显温度计的硬件结构和软件编程实现的方法,通过实验测试说明,所设计的温度计能达到要求。      
        关键词:单片机AT89C51    数显温度计  温度传感器    A/D转换器

       温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。现在所使用的温度计通常都是精度为1℃和0.1℃的水银、煤油或酒精温度计。这些温度计的刻度间隔通常都很密,不容易准确分辨,读数因难,而且它们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。而利用晶体三极管3DG6C的基极与集电极之间正向电压降Ubc随温度T呈线性变化的关系作为温度传感器,以OP07构成放大器,以 位A/D转换器ICL7135作A/D转换器设计的数显温度计可以解决这些问题[1]。笔者根据实际使用的需要,设计了以AT89C51为控制核心,具有测量间隔可设定、测量结果可自动记录、可查询,并经简单扩展就具有报警能力和同PC机进行数据交换的0.01℃数显温度计,并用于热学实验取得成功。

1 硬件电路和工作原理

1.1 电路框图

整机电路由温度信号采集放大电路、A/D转换电路、CPU控制与显示电路三部分组成,其框图如图1所示。温度信号由数据采集电路中的温度传感器转换为电信号,经放大电路后,送入A/D转换器,转换后,以BCD码形式送入CPU,再由程序控制其输出显示,键盘完成各项设置。

1.2 数据采集、放大电路

如图2所示,晶体三极管Q1(3DG6C)的BE极相连,利用基极与集电极之间正向电压降Ubc随温度呈线性变化的关系作为温度传感器[1]。MC1403(IC1)的输出(2.5V)作为供电电源,以满足电压稳定性及测量精度较高的要求。由具有低失调、低噪声、低漂移的高精度集成运算放大器OP07 (IC2) [2]及R2、R3组成差动放大器,将温度传感器检测到的与温度有关的电信号进行适当放大后再输出到由R6送入IC5(ICL7315)的10脚,以进行A/D转换。                                                                    

运算放大器OP07反相输入端接入的信号是随温度变化的PN结压降U1,同相输入端加一固定不变的电压U2。U2表示0℃时PN结上的压降,它可以通过精密可调电阻RP2进行调节。在该放大器中,取R2=R4和R3=R5,则输出电压Uo表示为:

                                                                               Uo = (R3/R2)*(U2 – U1)

放大器的放大倍数设计成5倍,将Q1的BE极之间电压变化2mv/℃放大到10mv/℃。MC1403同时为ICL7135提供基准电压源。

图2 数据采集、放大电路

图3   A/D转换电路

1.3   A/D转换电路

A/D转换电路的核心是ICL7135(IC4)。ICL7135是具有高准确度、通用型的CMOS单片 位双积分式A/D转换器,量程为2.0000V,BCD码输出,输出信号与TTL电平兼容。其工作的基准电压为1V,由MC1403经过分压后提供。如图3所示,C2是自调零电容,C4基准电容,R9和C3是自积分输入电阻和电容。ICL7135工作的时钟频率是125KHZ,由74HC00(IC2)构成的多谐振荡器提供。10脚输入进来的是OP07的输出信号,其电压大小表示了温度的大小,经A/D转换后输出BCD码,接入AT89C51。D1~D5是LED的位选信号,不直接接LED,而是同AT89C51相接,统一由AT89C51提供LED的位选信号。

1.4   CPU控制与显示电路

如图4所示,CPU控制与显示电路核心是AT89C51(IC5)。为保证其可靠复位,采用MAX814 (IC6)硬件复位。P0.0~P0.3接从ICL7135送来的BCD码,P0.4~P0.7和P3.4接ICL7135的D1~D5。P1口接LED显示码位,提供相应的显示信息。LED的位选信号

由P3.5~P3.7经74H138(IC7)译码后提供。显示温度时,只需5位,但考虑到某些情况下可能要显示其它信息(如时钟),LED采用6位。P2口接16个按键,以完成对此温度计的设置和控制功能。当显示所测试的温度时,整个系统为量程为2V的直流电压表,将温度传感器检测到的温度信号变为相应的电压信号,放大后,输入到此电压表,即可由电压大小表示出温度的大小,因为电压表的最小读数是0.1mV,所以,用电压表示温度时可以读出的最小温度是0.01℃。

2 软件设计[3]

软件设计是本设计的关键之一。和直接利用ICL7315来制作的温度计相比,正是由于AT89C51可灵活编程实现各种控制功能,可满足不同的实际需要。本设计编写的程序可实现具有测量间隔可设定、测量结果可自动记录、可查询的功能。

程序主要由五大部分组成:主函数、定时器中断函数(调度器内核)部分、扫描键盘与处理键盘函数、显示刷新函数、从ICL7135读取数据函数、时间刷新函数。主函数初始化系统,然后添加四个任务:扫描与处理键盘、刷新显示、读取数据、刷新时间;最后把控制权交给调度器内核,在不需要运行任务的时候,微控器进入休眠模式以降低功耗,如图5所示。                                                                                

因为温度计对精度要求高,对速度要求低,故用定时器中断来作调度器内核,主要任务是计算什么时刻要运行什么任务,然后调用相应的任务函数,如图6所示。

扫描键盘函数在调度器的调度下每20ms执行一次,利用此20ms的时间间隔正好用延时消除抖动来消除键盘抖动。键盘设计成行列矩阵式,功能有:设定时间、设定测量时间间隔、切换时钟状态和温度计状态、开始和结束温度测量、查询以前测量的温度数据。其流程如图7所示。显示刷新函数在调度器的调度下每4ms执行一次,显示刷新函数用于动态显示七段LED显示管。读取数据函数在调度器的调度下每1S执行一次,运行此函数时,单片机从ICL7135中读取一次数据。程序流程如图8所示。

时间刷新函数在调度器的调度下每1s执行一次,进行计时。

3 温度计定标与数据测试

温度计定标时用数字电压表测量ICL7135第2、3两脚之间的电压值(基准电压),调节R5,使其在2V左右;将传感器Q1放入冰水混合物中,经过充分搅拌达到热平衡后调节R6,使显示读数为0.00(标定0℃);利用气压计读出当时当地的大气压强,并根据大气压强,当地重力加速度计算出当时的实际压强;根据沸点与压强的关系查出沸点温度.把传感器放入沸水中,待显示读数稳定后仔细调节R5,使显示器显示读数等于当地当时的沸点温度后定标工作结束[1]。本温度计的量程为-50~150℃,读数精度为0.01℃,考虑到实际使用一般在0℃~100℃。我们用0℃~50℃和50℃~100℃的精密水银温度计作捡验标准,测量结果见表1。其中T水银为水银温度计的测量值,最后一位是估计值,T数字为数字温度计测量值,最后一位是显示值。由测试结果可知,所设计的温度计能达到要求

4 结束语

本数显温度计具有读数方便,精度高的特点。引入单片机AT89C51控制后,可以通过不同的软件设计以完成不同的使用要求。系统设计时保留引脚P3.2,如在该引脚外接一扬声器,可通过软件编程实现温度超限报警,作为温度报警器用。通过保留的串口,可以实现与PC机的通讯,增加串口通讯程序模块就可用作多点温度检测系统的下位机。

   参   考   文   献

[1] 潘学军.0.01℃的数显温度计[J].物理实验.2003(5):22~25

[2] 谈文心,钱聪,宋云购.模拟集成电路原理及应用[M].西安:西安交通大学出版社,1995.16~39.

[3] 何立民. MCS-51单片机应用系统设计[M]. 北京:北京航空航天大学出版社 1995.9

  

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号