基于AT89C51控制的0.01℃数显温度计的设计

发布者:csydtc最新更新时间:2012-01-31 来源: 微计算机信息 关键字:AT89C51  数显温度计  温度传感器  AD转换器 手机看文章 扫描二维码
随时随地手机看文章

温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。现在所使用的温度计通常都是精度为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

关键字:AT89C51  数显温度计  温度传感器  AD转换器 引用地址:基于AT89C51控制的0.01℃数显温度计的设计

上一篇:基于AT89S51的液位控制系统
下一篇:基于ADμC834芯片的热泵热水机组控制器的研制

推荐阅读最新更新时间:2024-03-16 12:51

AT89C51/55构成的温湿度自动监测系统
1系统硬件设计   系统结构如图1所示,采用ATMEL公司生产的51系列单片机AT89C55和AT89C51为核心,其中主机采用AT89C55、从机采用AT89C51。从机负责64点的数据检测,各检测点的温度和湿度经过温、湿度传感器及其转换电路转变为电压信号;经过矩阵网络进行信号选择,所得信号送到相应的信号放大整理电路放大,再进入A/D转换器,进行模数转换,将数字量送入从机,再经从机的数据处理,送给LED进行显示,同时定时传送给主机AT89C55;主机负责收集各粮仓内的数据(可监测50"100个粮仓),实现数据的保存、打印以及调用历史数据,并可巡回显示各粮仓的及时温湿度及报警状态。   AT89C55/51芯片是由ATMEL
[应用]
一种基于AT89C51控制的高精度倒计时系统
1 引 言 倒计时系统的任务, 就是对某一设定日期进行倒数, 并在显示屏显示当前至设定日期的时间, 以增强人们的关注度和紧迫感。开发实践表明: 以时钟芯片DS12C887为时钟模块、单片机AT89C51为控制模块的高精度倒计时系统具有精度高、能够长时间连续稳定地工作、使用方便的特点, 可较好满足实际需要。系统的硬件设计和软件设计如下。 2 系统的硬件设计 系统的控制模块由AT89C51单片机构成, 用于完成对串行口控制器的初始化和数据读写, 并对接收的各种数据进行识别、转储及显示。时钟芯片DS12C887提供高精度的年、月、日、时、分、秒时间,校准后直接与单片机相连。倒计时显示模块由LED数码管, 74HC595芯片和74LS245
[工业控制]
一种基于<font color='red'>AT89C51</font>控制的高精度倒计时系统
精确的温度至比特转换器解决了温度传感器测量难题
尽管温度是我们生活的基本方面,但是温度难以准确测量。在现代电子产品时代到来之前,伽利略 (Galileo) 发明了能够检测温度变化的基本温度计。两百年后,席贝克 (Seebeck) 发现了热电偶,这种器件能够产生以不同金属的温度变化率为函数的电压。如今,常常利用热电偶以及受温度影响的电阻元件 (RTD 和热敏电阻器) 和半导体元件 (二极管) 以电子方式测量温度。尽管从这些组件获取温度的方法已为大家熟知,但是以好于 0.5oC 或 0.1oC 的准确度测量温度依然富有挑战性 (参见图 1)。 图 1:LTC2983 的温度准确度 要数字化这些基本传感器元件,就需要专门的模拟电路设计、数字电路设计和固件开发技术。LTC2983
[测试测量]
精确的温度至比特转换器解决了<font color='red'>温度传感器</font>测量难题
基于AT89C51单片机和DTMF通信实现电话远程控制家用电器的设计
引言 随着计算机技术和电信业的发展,通过电话线进行的远程通信越来越常见。人们通常采用MODEM进行通信,但是在通信数据量不大,对通信速率要求不高的应用场合,我们可以考虑一种DTMF通信方式,它具有接口简单,成本低廉且可靠性高的特点。本文介绍了一种电话远程控制家用电器的实现方法。用户可通过任意一部双音频电话(包括手机、电话分机)对自己家庭安装的家用电器进行开机、停机、设定等操作。 1、系统结构 本系统主要包括电话振铃检测电路、电话自动摘挂机电路、DTMF信号解码电路、语音提示电路以及整个系统的控制心脏CPU电路。当有电话打入时,电话振铃检测电路检测到有振铃并等待至系统默认的振铃次数后,控制器自动摘机,并在语音电路的提示下依次输入
[单片机]
基于<font color='red'>AT89C51</font>单片机和DTMF通信实现电话远程控制家用电器的设计
各种温度传感器分类及其原理
温度传感器是检测温度的器件,其种类最多,应用最广,发展最快。众所周知,日常使用的材料及电子元件大部分特性都随温度而变化,在此我们暂时介绍最常用的热电阻和热电偶两类产品。 1.热电偶的工作原理 当有两种不同的导体和半导体A和B组成一个回路,其两端相互连接时,只要两结点处的温度不同,一端温度为T,称为工作端或热端,另一端温度为TO,称为自由端(也称参考端)或冷端,则回路中就有电流产生,如图2-1(a)所示,即回路中存在的电动势称为热电动势。这种由于温度不同而产生电动势的现象称为塞贝克效应。与塞贝克有关的效应有两个:其一,当有电流流过两个不同导体的连接处时,此处便吸收或放出热量(取决于电流的方向),称为珀尔帖效应;其二
[工业控制]
基于三线制的高精度热电阻测量电路设计
热电阻传感器是一种电阻值随环境温度变化而改变的温度传感器,其中用金属铂做成的热电阻因具有稳定性好、精度高、测温范围大等优点,而被广泛应用。测量温度的热电阻测温仪主要由热电阻传感器、测量显示仪表及连接导线组成。由于热电阻传感器自身的温度灵敏度较低,连接导线所具有的线路电阻对测量结果影响不容忽视,为了消除导线电阻的影响,热电阻测温仪广泛采用平衡电桥式三线制接法,这种方法使温度误差得到一定的补偿,但线路电阻的影响依然存在。提出基于恒压分压式三线制导线电阻补偿方法,电路简单,实现方便,可完全消除导线电阻的影响。相比于文献所提出的使用较多的硬件电路进行导线电阻补偿方法,该方法具有更加简洁的导线电阻补偿电路。   1 常用热电阻测量方法分析
[测试测量]
基于三线制的高精度热电阻测量电路设计
51单片机-温度传感器与串口
1.题目要求 有时候我们需要知道在一段时间里温度传感器测量的温度的历史数据,之前的温度传感器例程只是在液晶屏上实时显示出数据而已,并不能查看它的历史数据,所以我们运用之前所有学过的知识来完成这个任务。 首先我们先从简单的理念入手,利用串口每隔一秒打印出来当前的温度值,这样的话,所有历史数据在电脑端的窗口都可以看到了,只不过我们的开发板的USB线不能离开电脑,测温度只能连着电脑测,然后观察电脑端窗口数据的变化。 这一次我们实时显示的温度用数码管显示,串口打印的数据格式大体如下所示 第1秒:10.2度 第2秒:15.7度 第3秒:7.6度 第4秒:0.5度 2.main.c测试代码 #include
[单片机]
51单片机-<font color='red'>温度传感器</font>与串口
STM32操作24位AD转换器AD7799芯片
  AD7799是早些前ADI公司推出的一款高精度低速24位ADC器件,主要应用于低功耗精密测量场合。最近开发与气压检测相关的产品,选择了这个芯片,经过PCB的合理布线,感觉这颗芯片的效果还不错。   AD7799内部数字部分和模拟部分的供电是分开的,数字部分由DVCC供电,模拟部分由AVCC供电,经过实验,在只有DVCC而不加AVCC的时候芯片的数字接口部分是可以工作的,这样就可以把AIN3+和AIN3-作为数字信号来启动模拟电源输出AVCC,不知道这样描述是否清楚,主要是为低功耗和省电考虑。   AD7799内部有三个差分通道,可以分别配置成为差分模式和单端模式,在单端模式下需要保证AINx(+)电压高于AIN(-)电压,否则
[单片机]
STM32操作24位<font color='red'>AD转换器</font>AD7799芯片
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved