温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。现在所使用的温度计通常都是精度为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的位选信号
图4 CPU控制与显示电路
由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
上一篇:基于AT89S51的液位控制系统
下一篇:基于ADμC834芯片的热泵热水机组控制器的研制
推荐阅读最新更新时间:2024-03-16 12:51
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况