基于单片机的热电偶测温系统

2020-03-02 23:45:21 来源:范文大全收藏下载本文

基于单片机的热电偶测温系统

热电偶传感器是目前接触式测温中应用最广的热电式传感器,在工业用温度传感器中占有及其重要的地位。本文设计了基于单片机的热电偶测温系统,该测温系统由温度测量电路、运算放大电路、A/D转换电路及显示电路组成,以AT89C51单片机为主控单元。文中首先介绍了热电偶的测温原理,热电偶冷端补偿方法,结构形式,及其特点等,另外简答介绍了硬件平台中相关模块的功能及用法。另外对硬件电路包括温度转换芯片MAX667

5、K型热电偶、89C51单片机、数码管等元器件及温度采集电路、温度转换电路、数码管显示电路做了详细的介绍及说明。

关键词 温度传感器 热电偶 热时间常数 冷端补偿

The thermocouple temperature measurement system

based on single chip microcomputer

ABSTRACT Thermocouple sensor is currently the most widely used in non-contact temperature measurement of thermoelectric sensors, in the industry with a temperature sensor and its important status.This paper designed the thermocouple temperature measurement system based on single chip microcomputer, the temperature measurement system composed of temperature measuring circuit, operational amplifier circuit, A/D conversion circuit and display circuit, AT89C51 single chip proceor as the main control unit.This paper first introduces the principle of thermocouple temperature measurement, the thermocouple cold junction compensation method, structure form, and its characteristics, etc., in the hardware platform are introduced another short answer function and usage of related modules.In addition to hardware circuit including temperature conversion chip MAX6675, K type thermocouple, 89 c51, digital tube and other components and temperature acquisition circuit, temperature conversion circuit, digital tube display circuit made detailed introduction and description.

KEY WORDS Temperature sensor Thermocouple Thermal time constant Cold junction compensation1 绪论

温度是反映物体冷热状态的物理参数,对温度的测量在冶金工业、化工生产、电力工程、机械制造和食品加工、国防、科研等领域中有广泛地应用。在某些特殊的场合对温度的检测速度有很高的要求,例如:在测量汽车发动机吸入空气的温度的时候,就要求热响应时间小于1s;航天飞机的主发动机的温度测量要求0.4s 内完成等。因此针对以上问题就有人提出温度快速测量的思想。

通常用来测量温度的传感器有热电阻温度传感器、热敏电阻、热电偶、半导体温度传感器等几种。这些常用温度传感器一般的温度测量中可以满足响应速度的问题。但在特殊的场合就不能达到快速检测的要求,例如在气体温度测量时候,由于温度传感器自身的热滞特性,而气体传热过程又比较缓慢,气体温度测量就有很大滞后。工业常用的精度较高的温度传感器有铂热电阻、半导体温度传感器等。铂热电阻具有温度测量范围大、重复性好、精度高等特点,但是响应不是很快,特别是在对气体温度测量时至少要几秒钟,在某些工作环境比较特殊的场合,如高压环境下,还需使用铠装的铂热电阻,更是延缓了热响应速度。半导体温度传感器分热敏电阻和PN结型温度传感器两种。热敏电阻非常适合对微弱温度变化的测量,但是缺点是非线性严重;PN结型的特点是体积小、线性输出、精度高,但是不能使用在液体环境,对气体温度变化响应也较慢[1]。所以用温度传感器一般都存在着对气体温度变化响应较慢的问题。在对温度实时性测量要求比较高的系统,运用常用温度测量方法很难做到对温度的快速测量,对系统的精度影响就很大。

在工业过程控制与生产制造领域普遍使用具有较高测温精度及测温范围的热电偶做测温元件。在工业标准热电偶中,K型(镍铬-镍硅)热电偶由于具有价格低廉、输出热电势值较大、热电势与温度的线性关系好、化学稳定性好、复制性好、可在1000℃下长期使用等特点,因而是工业生产制造部门应用最广泛的热电偶元件。但是将热电偶应用在基于单片机的嵌入式系统领域时,却存在着以下几方面的问题[2]。①非线性:热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进行线性化处理。②冷端补偿:热电偶输出的热电势为冷端保持为0℃时与测量端的电势差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需进行冷端补偿。③数字化输出:与嵌入式系统接口必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然无法直接满足这个要求。在许多热工实验中,往往面临热电偶冷端温度问题,不管是采用恒温补偿法(冰点补偿法)还是电桥补偿法,都会带来实验费用较高、实际的检测系统较复杂.难以达到实时测量、接口转换电路复杂等问题,而随着计算机测控技术在工业生产制造领域的普遍应用,温度参数的微机化测量与控制已成为必然趋势。因此我们必须解决对热电偶测量信号的放大调理、非线性校正、冷端补偿、模数转换、数字输出接口等一系列复杂的问题,以及解决模拟与数字电路硬件设计过程和建表、查表、插值运算等复杂的软件编制过程,以达到使电路简化,成本减少,增加系统可靠性的目的。

鉴于上面的分析,本论文主要任务是设计一种基于高精度K型热电偶传感器的快速测温系统。采用带有冷端补偿的温度转换芯片MAX667

5、K型热电偶、89C51单片机、数码管等元器件设计出相应温度采集电路、温度转换电路、温度控制电路、超量程报警电路、数码管显示电路。系统用单片机对带有冷端补偿的温度转换芯片MAX6675进行控制,要达到任务书中的技术指标,并对系统进行protuse的调试和仿真试验,使其具有良好的实用性能,能够实现对固体表面、液体和气体温度的高精度快速测量。

2 系统原理概述

2.1 热电偶测温基本原理

热电偶测温的基本原理是两种不同成份的材质导体组成闭合回路[2],当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在热电动势,这就是所谓的塞贝克效应。两种不同成份的均质导体为热电极,温度较高的一端为工作端(热端),温度较低的一端为自由端(冷端),自由端通常处于某个恒定的温度下。根据热电动势与温度的函数关系制成热电偶分度表;分度表是自由端温度在0℃时的条件下得到的,不同的热电偶具有不同的分度表。在热电偶回路中接入第三种金属材料时,只要该材料两个接点的温度相同,热电偶所产生的热电势将保持不变,即不受第三种金属接入回路中的影响。因此,在热电偶测温时,可接入测量仪表,测得热电动势后即可知道被测介质的温度。热电偶的热电势,应注意如下几个问题:

1、热电偶的热电势是热电偶两端温度函数的差,而不是热电偶两端温度差的函数;

2、热电偶所产生的热电势的大小当热电偶的材料是均匀时,与热电偶的长度和直径无关,只与热电偶材料的成份和两端的温差有关;

3、当热电偶的两个热电偶丝材料成份确定后,热电偶热电势的大小,只与热电偶的温度差有关。若热电偶冷端的温度保持一定,这时热电偶的热电势仅是工作端温度的单值函数。 2.2 热电偶冷端补偿方案确定

热电偶测量温度时要求其冷端(测量端为热端,通过引线与测量电路连接的端称为冷端)的温度保持不变,其热电势大小才与测量温度呈一定的比例关系。若测量时,冷端的(环境)温度变化,将影响严重测量的准确性。在冷端采取一定措施补偿由于冷端温度变化造成的影响称为热电偶的冷端补偿。 2.2.1 分立元气件冷端补偿方案

方案一的热电偶冷端温度补偿器件是由分立元件构成的,其体积大,使用不够方便,而且在改变桥路电源或热电偶类型时需要重新调整电路的元件值。主要包括温度采集电路、信号放大电路、A/D转换电路、热电偶冷端补偿电路、数码管显示电路等。

2.2.2 集成电路温度补偿方案

方案二采用热电偶冷端补偿专用芯片max6675,max6675温度转换芯片具有冷端温度补偿及对温度进行数字化测量这两项功能[5]。一方面利用内置温度敏感二极管将环境温度转换成补偿电压,另一方面又通过模数转换器将热电势和补偿电压转换为代表温度的数字量, 将二者相加后从串行接口输出的测量结果,即为实际温度数据。主要包括温度采集电路、max6675温度转换电路、数码管显示电路等。 2.2.3 方案确定

综合对比以上两种方案,方案一电路复杂,且测量不精确照成误差较大,方案二采用集成温度转换芯片不仅能很好的解决冷端温度补偿及温度数值化问题,并消除由热电偶非线性而造成的测量误差,且精确度高,可实现电路的优化设计。故最后采用方案二。

2.3 硬件组成原理

本系统硬件主要由热电偶温度采集电路、MAX6675温度处理电路、89C51单片机控制电路、超量程报警电路和数码管显示电路组成。

热电偶采用分度号为K的热电偶,为了减少外界信号的干扰通过双绞线跟MAX6675芯片直接相连接。MAX6675芯片通过SPI串行接口传输数据,采用的89C51单片机对带有冷端补偿的温度转换芯片MAX6675进行控制。本系统设计还具有报警的特点,当所测量的温度低于零摄氏度或者高于400摄氏度时报警电路发出警报。显示电路由89C51单片机通过锁存器对四位共阳数码管控制,数码管工作需要较大的电流采用型号为8550的PNP三极管进行控制,当所测温度在规定范围内时就可以通过数码管快速显示出来。 2.4 软件系统工作流程

系统的软件工作流程为:热电偶采集的温度数据;温度数据经过MAX6675内部电路的AD转换、冷端补偿、内部校正[6];温度转换电路将处理后12位数字温度量以串行方式送给单片机;单片机将数字量进行软件算法处理;如果测量温度在测量范围内,最后通过数码管显示出测量温度;如果超出测量范围由单片机控制使报警电路报警。其软件工作流程图如图2-4。

热电偶温度数据采集MAX6675将采集的数据处理为数字量单片机通过算法编程达到快速测温效果温度高于或低于某一温度值报警温度在测量范围内显示 图2-4 系统软件工作流程图3

硬件设计

3.1 热电偶简介

热电偶是工程上应用最广泛的温度传感器。它是将温度量转换为电量变化的装置。它构造简单,使用方便,具有较高的准确度、稳定性及复现性,温度测量范围宽,在温度测量中占有重要的地位。 3.1.1 热电效应

当两种不同材料的导体或半导体连成闭合回路时,将两个接点分别置于温度为T和T0的热源中,该回路内会产生热电势[2]。热电势的大小反映两个接点温度差,保持T0不变,热电势随着温度T变化而变化。测得热电势的值,即可知道温度T的大小。

图3-1 热电偶测温原理图

产生的热电势由两部分组成:温差电势和接触电势。

接触电势产生的原因:由于两种不同导体的自由电子密度不同而在接触处形成的电动势。两种导体接触时,自由电子由密度大的导体向密度小的导体扩散,(NA>NB,A到B)在接触处失去电子的一侧带正电,得到电子的一侧带负电,形成稳定的接触电势。接触电势的数值取决于两种不同导体的性质和接触点的温度。两接点的接触电势eAB(T)和eAB(T0)可表示为:

eAB(T)KTNAT

(3-1) lneNBTKT0NAT0

(3-2) eAB(T0)lneNBT0式中:K—波尔兹曼常数;e—单位电荷电量;NAT、NBT和NAT0、NBT0 — 分别在温度为T和T0时,导体A、B的自由电子密度。

同一导体温差电势是由同一导体的两端因其温度不同而产生的一种热电势。同一导体的两端温度不同时,高温端的电子能量要比低温端的电子能量大,因而从高温端跑到低温端的电子数比从低温端跑到高温端的要多,结果高温端因失去电子而带正电,低温端因获得多余的电子而带负电,形成一个静电场,该静电场阻止电子继续向低温端迁移,最后达到动态平衡。因此,在导体两端便形成温差电势,其大小由下面公式给出:

eA(T,T0)AdT

(3-3)

T0T

A:汤姆逊系数,表示导体A两端的温度差为1℃时所产生的温差电动势。 热电偶回路中总的热电势应是接触电势与温差电势之和。

EABE(T,T0)eABeAB(T0)eB(T,T0)eA(T,T0)

TKTNATKT0NAT0lnln(BA)dT

(3-4)

T0eNBTeNBT0在总热电势中,温差电势比接触电势小很多,在精度要求不高的情况下,热电偶的热电势可近似表示为:

EAB(T,T0)eAB(T)eAB(T0)

(3-5)

对于已选定的热电偶,当参考端温度T0恒定时,eAB(T0)为常数,则总的热电动势就只与温度T成单值函数关系,即:

EAB(T,T0)EAB(T)cf(T)

(3-6)

实际应用中,热电势与温度之间关系是通过热电偶分度表来确定的。分度表是在参考端温度为0℃时,通过实验建立起来的热电势与工作端温度之间的数值对应关系。

热电偶回路的几点结论:

1、如果构成热电偶的两个热电极为材料相同的均质导体,则无论两结点温度如何,热电偶回路内的总热电势为零。必须采用两种不同的材料作为热电极。

2、如果热电偶两结点温度相等,热电偶回路内的总电势亦为零。

3、热电偶AB的热电势与A、B材料的中间温度无关,只与结点温度有关。 3.1.2 热电偶基本定律

中间导体定律:利用热电偶进行测温,必须在回路中引入连接导线和仪表,接入导线和仪表后会不会影响回路中的热电势呢?中间导体定律说明,在热电偶测温回路内,接入第三种导体,只要其两端温度相同,则对回路的总热电势没有影响。

均质导体定律:由一种均匀介质导体组成的闭合回路,不论导体的截面、长度以及各处的温度分布如何,均不产生热电势。换句话说:如果热电偶的两根热电极是由两种均质导体组成,那么热电偶的热电势仅与两接点温度有关,与沿热电极的温度分布无关。如果热电极为非均质导体,当处于具有温度阶梯的情况时,将会产生附加电势,引起测量误差。所以热电极材料的均匀性是衡量热电偶质量的主要指标之一。

参考电极的实用价值在于:它可大大简化热电偶的选配工作。实际测温中,只要获得有关热电极与参考电极配对时的热电势值,那么任何两种热电极配对时的热电势均可按公式而无需再逐个去测定。用作参考电极(标准电极)的材料,目前主要为纯铂丝材,因为铂的熔点高,易提纯,且在高温与常温时的物理、化学性能都比较稳定。 中间温度定律:EAB(T,T0)EAB(T,TC)EAB(TC,T0)热电偶AB在接点温度为T、T0中间温度为Tc.该定律是参考端温度计算修正法的理论依据。在实际热电偶测温回路中,利用热电偶这一性质[10],可对参考端温度不为0℃的热电势进行修正。

图3-2 热电偶中间导体示意图

3.1.3 热电偶温度补偿

从热电偶测温基本公式可以看到,对某一种热电偶来说热电偶产生的热电势只与工作端温度t和自由端温度t0有关即:

EAB(t,t0)eAB(t)eAB(t0)

(3-7)

热电偶的分度表是以t0=0℃作为基准进行分度的,而在实际使用过程中,参考端温度往往不为0℃,那么工作端温度为t时,分度表所对应的热电势EAB(t,0)与热电偶实际产生的热电势EAB(t,t0)之间的关系可根据中间温度定律得到下式:

EAB(t,0)EAB(t,t0)EAB(t0,0)

(3-8)

由此可见,EAB(t,0)是参考端温度t0的函数,因此需要对热电偶参考端温度进行处理。

常用的补偿方法有[7-8]:

1、冷端恒温法;

2、补偿导线法;

3、计算修正法;

4、电桥补偿(又称冷端补偿器)法;

5、显示仪表零位调整法;

6、软件处理法。 3.1.4 热电偶的结构形式

为了适应不同生产对象的测温要求和条件、热电偶的结构形式有普通型热电偶、铠装型热电偶和薄膜热电偶等。

普通型结构热电偶工业上使用最多,它一般由热电极、绝缘套管、保护管和接线盒组成。其结构图如图3-3所示。

图3-3 普通结构热电偶

铠装热电偶又称套管热电偶。它是由热电偶丝、绝缘材料和金属套管三者经拉伸加工而成的坚实组合体,它可以做得很细很长,使用中随需要能任意弯曲。铠装热电偶的主要优点是测温端热容量小,动态响应快,机械强度高,挠性好,可安装在结构复杂的装置上,因此被广泛用在许多工业部门中。其结构图如图3-4所示。

图3-4 套管热电偶结构图

薄膜热电偶是由两种薄膜热电极材料,用真空蒸镀、化学凃层等办法蒸镀到绝缘基板上面制成的一种特殊热电偶,薄膜热电偶的热接点可以做得很小(可薄到0.01~0.1μm), 具有热容量小,反应速度快等的特点,热相应时间达到微秒级,适用于微小面积上的表面温度以及快速变化的动态温度测量。其结构图如图3-5所示。

图3-5 薄膜热电偶结构图 3.1.5 K型热电偶概述

K型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用。K型热电偶可以直接测量各种生产中从0℃到1300℃范围的液体蒸汽和气体介质以及固体的表面温度。

图3-6 K型热电偶

镍铬-偶(K)型热电偶是目前用量最大的廉金属热电偶,其用量为其他热电偶的总和。K型热电偶丝直径一般为1.2~4.0mm。

正极(KP)的名义化学成分为:Ni:Cr=92:12,负极(KN)的名义化学成分为:Ni:Si=99:3,其使用温度为-200~1300℃。

K型热电偶具有线性度好,热电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格便宜等优点,能用于氧化性惰性气氛中广泛为用户所采用。

K型热电偶不能直接在高温下用于硫,还原性或还原,氧化交替的气氛中和真空中,也不推荐用于弱氧化气氛.3.1.6 K型热电偶特点

K型热电偶是工业上最常用的温度检测元件之一。必须配和二次仪表使用其优点是:

①测量精度高。因热电偶直接与被测对象接触,不受中间介质的影响。

②测量范围广。常用的热电偶从-50~+1600℃均可连续测量,某些特殊热电偶最低可测到-269℃(如金铁镍铬),最高可达+2800℃(如钨-铼)。

③构造简单,使用方便。热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。

3.2 具有冷端补偿的数字温度转换芯片MAX6675功能简介

MAX6675是美国Maxin公司生产的基于SPI总线的专用芯片[9],不仅能对K型热电偶进行冷端补偿,还能对热电势信号作数字处理,具有很高的可靠性和稳定性,可广泛应用于工业、仪器仪表、自动化领域等。其内部结构框图如图3-7所示。

图3-7 MAX6675内部结构框图

3.3 单片机选择及部分功能简介

MCU是整个系统的控制核心,由于温度测量系统的接口方便,综合考虑整个系统,选用美国ATMEL公司生产的AT89C51型单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,其外观引脚图如下:

图3-11 AT89C51外观引脚图

AT89C51提供以下标准功能[12]:4k字节的flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式、空闲方式停止CPU工作,但允许RAM,定时/技术器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作指导下一个硬件复位。

AT89C51共有4个双向的8位并行I/O端口,分别为P0~P3,共有32根口线,端口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。P0~P3的端口寄存器属于特殊功能寄存器系列。这四个端口除了可以按字节寻址外还可以位寻址。其中P0口为漏极开路作为输出使用时应外加上拉电阻,P3口既可以做为普通I/O口使用,还可以作为特定的功能引脚。虽然51单片机只有一个串口接口,但其I/O口既可以用字节寻址也可以位寻址,这样在实际应用中,我们就可以通过模拟不同总线的时序特征来实现各种数据的传输。

AT89C51单片机内部有一个功能强大的全双工的一部通信串口。其串行口有四种工作方式:分别为同步通信方式、8位异步收发、9位异步收发(特定波特率)、9位异步收发(定时器控制波特率)。它有两个物理上独立接收发送缓冲器SBUF,可同时发送、接收数据。波特率可由软件设置片内的定时器来控制,而且每当串行口接收或发送1B完毕,均可发出中断请求。

AT89C51单片机的SPI实现

串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口。SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。主SPI的时钟信号(SCK)使传输同步。其时序图如下:

图3-12 SPI总线时序图

对于不带SPI串行总线接口的AT89C51单片机来说,可以使用软件来模拟SPI的操作[13],包括串行时钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时钟输出口P1.1(模拟MCU的SCK线)的初始状态设置为1,而在允许接口后再置P1.1为0。这样,MCU在输出1位SCK时钟的同时,将使接口芯片串行左移,从而输出1位数据至MCU的P1.3口(模拟MCU的MISO线),此后再置P1.1为1,使单片机从P1.0(模拟MCU的MOSI线)输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置P1.1为0,模拟下1位数据的输入输出,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接口芯片允许时,先置P1.1为1,以便外围接口芯片输出1位数据(MCU接收1位数据),之后再置时钟为0,使外围接口芯片接收1位据(MCU发送1位数据),从而完成1位数据的传送。 3.4 路同相三态双向总线收发器74LS245

74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。其引脚图如下:

图3-13 74LS245引脚功能图

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当89C51单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端E低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当E为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。89C51的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。 3.5 硬件电路详细设计 3.5.1 温度采集电路

热电偶作为一种主要的测温元件,具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点[14]。但是,热电偶的应用却存在着非线性、冷端补偿、数字化输出等几方面的问题。设计中采用的MAX6675是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器,其电路如图3-14所示。

K型热电偶的两端分别跟MAX6675芯片的T-跟T+相连,为了允许热电偶断路检测,T-引脚必须接地。MAX6675的测量精度对电源耦合噪声较敏感。为降低电源噪声影响,在MAX6675的电源引脚附近接入1只0.1μF陶瓷旁路电容。温度由热电偶采集,然后将数据直接送给冷端补偿芯片MAX6675芯片进行处理,处理后送给单片机控制电路,完成简单的温度采集过程。

图3-14 温度采集电路原理图

3.5.2 显示电路

LED显示器是单片机应用系统中常用的输出器件,是由若干个发光二极管组成的,当发光二极管导通时,相应的一个或一个笔画发光,控制不同组合的二极管导通,这就能显示出不同字符。

七段LED共有8个发光二极管,其中7个发光二极管七端字形“8”,一个发光二极管构成小数点。发光二极管阴极连在一起的称为共阴极显示器,如图3-15a所示。共阴极LED显示器的发光二极管阴极接地,当某个发光二极管的阳极为高电平时,即逻辑电平“1”时,发光二极管点亮。发光二极管阳极接在一起的称为共阳极显示器,如图3-15b所示。共阳极LED显示器的阳极接在+5V电压源上,当某个发光二极管的阴极为低电平,即逻辑“0”时,发光二极管点亮。

a 共阴极显示器

b 共阳极显示器

图3-15 七段LED显示器内部结构图

点亮显示器有静态和动态两种方式。所谓静态显示就是显示器在显示某个字符时,相应的发光二极管恒定的导通或截止。这种显示方式每个显示器都需要一个8位输出口控制,需要硬件多,适用于显示位数较少的场合。当显示位数较多时采用动态显示。所谓动态显示就是一位一位的轮流点亮各位显示器,对于每位显示器来说,每隔一段时间点亮一次。显示器的点亮和点亮时的导通电流有关,还与点亮时间和间隔时间有关,调整电流和时间参数,可实现亮度较高较稳定的显示。

本设计使用的是一个四位共阳数码管,当89C51单片机的P0口总线负载达到或超过P0最大负载能力时,必须接74LS245等总线驱动器。本文温度显示电路设计是由一个4位共阳数码管通过三态双向总线收发器芯片74LS245跟单片机相连接,其电路如图3-16所示。其中74LS245的片选跟三态控制引脚接地,数据由单片机向数码管传输。数码管的位的选择通过8550三级管进行控制,三级管基极通过限流电阻跟单片机的I/O口相连接,当端口为高电平时,三极管截止,当给端口为低电平时三极管导通,数码管相应的位被选中。这样可方便地对数码管每一位进行单独控制。

R3-R10为限流电阻。三极管饱和开通时,集电极-发射极之间电压Vce取0.5V,数码管的压降Vf取2V,数码管的工作电流If取5mA∼15mA。则限流电阻可这样计算获得:

RfVccVfVceIf (3-9)

把数据带入式子(3-9)得Rf可取值170~500现取Rf240。为保证三极管可靠开通关断,且要求数码管的亮度适量较高,基极电阻 R11-R14 可适量取小值,本设计取基极电阻为470。

图3-16 数码管显示电路

3.5.3 单片机控制电路

本文控制电路选用AT89C51对其外围电路进行控制,其接口电路如图3-18。由于AT89C51不具备SPI总线接口,设计中采用模拟SPI总线的方法实现与MAX6675的接口。其中P1.0 模拟SPI的数据输入端与SO相连,P1.1模拟SPI的串行时钟信号与SCK相连,P1.2 模拟SPI 的从机选择端与CS相连,电路中主机为AT89C51,从机为MAX6675。单片机的P2.0用来控制系统的超量程报警。单片机的P2.4、P2.

5、P2.6、P2.7和P0口分别通过相应的电路对数码管的位码和段码惊醒控制。系统通过AT89C51的P1.1 给MAX6675 发送串行时钟,P1.0 用来接收MAX6675输出的串行温度数据,P1.2输出的低电平将MAX6675的置零,用于选通MAX6675 工作。系统配有4位数码管显示,小数点设在十位后边,可测温度为0~400℃,分辨率达到0.25℃。

图3-18 单片机与其它电路接口图

4 软件设计

系统软件设计主要包含主程序、温度采集转换子程序、延时子程序、超量程报警子程序、显示子程序等功能模块。主程序主要完成子程序的调用,并对温度数据进行快速的算法处理;温度采集转换子程序负责将MAX6675 转换来的温度数字量读入单片机并完成温度值的处理得到12位数字温度值;超量成报警子程序主要判断温度值是否超出测量范围;显示子程序主要将计算后的温度值进行显示。

4.1 温度采集转换程序设计

采集转换程序主要是MAX6675的操作[14]。MAX6675是以SPI方式输出数据的。其过程如下:单片机使CS变低并提供时钟信号给SCK,由SO读取测量结果。CS变低将停止任何转换过程;CS变高将启动一个新的转换过程。一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,第1位和第15位是一伪标志位,并总为0;第14位到第3位为以MSB到LSB顺序排列的转换温度值;第1位为低以提供MAX6675器件身份码,第0位为三态。当12位全为0时,说明被测温度为0℃;12位全为1,则被测温度为1023.75℃。由于MAX6675 内部经过了激光修正,因此转换的数字量与被测温度值之间具有较好的线性关系,可由下式给出:温度值=1023.75 ×转换后的数字量/4095。下面给出相应的程序设计。 uint Re_Convert() //采集转换程序 {

uchar i;

uint P_Temp2 =0;

SCK =0;

S0 =0;

CS =0;

for(i=0;i

{

SCK =1;

if(S0= =1) //输出位判断

{

P_Temp2 =P_Temp2 | 0x01;

}

delay(10); //延时

SCK =0;

delay(10);

P_Temp2

}

CS =1;

if(P_Temp2 & 0x0004) //断偶标志判断

{

Work_Stop =1; //工作指示灯息灭停止工作

}

P_Temp2 =(P_Temp2 & 0x7fff) >>3; //12位温度数据提取

return(P_Temp2);

P_Temp2 =0;

delay(200);//数据转换时间大约需要170ms }

4.2 显示程序设计

显示子程序主要是对经过单片机处理后的温度值进行显示处理。采用四位共阳数码管显示,首先将处理后的温度数据扩大十倍,然后分别提取百位、十位、个位、小数位的数值,并使其分别在相应的数码管位上动态显示出来。百位、十位、小数位显示采用不带点的断码;个位的显示采用带点的段码,其显示效果可以精确到十分位。

结束语

本文主要介绍了基于热电偶温度传感器的快速测温系统。该系统综合考虑到热电偶的热惰性时间常数问题,采用快速测温算法实现了温度快速测量的功能。本文对系统原理进行了简单的概述,着重分析了系统的硬件设计方案跟软件设计方案。最后对系统进行了仿真实验,很好的完成了设计要求。

本文主要采用K型热电偶、K型热电偶专用数字转换芯片MAX667

5、AT89C51单片机进行了相关设计。MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等问题集中在一个芯片上解决,简化了将热电偶测温方案应用于嵌入式系统领域时复杂的软硬件设计,因而该器件是将热电偶测温方案应用于嵌入式系统领域的理想选择。根据快速算法的原理通过AT89C51单片机软件编程实现了温度的快速测量。

毕业设计是我们在大学期间的最后一门课程,也是能将大学期间最重要的几门理论课联系实际的课程,由此可知毕业设计的重要性。在路立平路老师的精心指导和其他同学的帮助下,经历三个多月的努力和实践,我终于完成了毕业设计,并在此次毕业设计的实践中获益良多。此次毕业设计让我们有机会将大学四年所学的专业课程与实际的实践紧密联系起来,加深了我们对理论知识的理解和掌握,开阔了我们的视野,最重要的是锻炼了我们勤于思考问题的能力,熟练使用电脑办公软件的能力,独立查阅资料的能力,分析问题与解决问题的能力,以及操作专业软件的能力,让我们基本具备了一个工程技术人员应有的基本素养。

通过本学期的毕业设计巩固了我们的基础知识,培养了我们的创新意识,以及集体协作等多方面的综合素质。这些都将会在我们将来的工作和学习当中受益匪浅。 然而,由于基础知识的掌握还不够牢靠,准备的时间不够充分等原因。我在设计的实用性方面还存在不足之处,还有很多不尽人意的地方。希望在将来工作实践当中,进一步提高自己、完善自己。

参考文献

[1] 河道清.传感器与传感器技术[M].北京:科学出版社,2004.188—201.[2] 路立平,冯建勤,鹿晓力.温度传感器的热时间常数及其测试方法[J].仪器仪表传感器,2005:17-18 [3] 马天艳,马天虹.热电偶测温及其冷端温度补偿[J].工业计量,2005,15(6):31-32.[4] 王霄.实现热电偶电势非线性补偿的软件方法[J].耐火材料,1998,32(2):36-38 [5] 李华.MCS51系列单片机实用接口技术.北京:北京航空航天大学出版社1993.[6] 潘永雄.新编单片机原理与应用[M].西安:西安电子科技大学出版社,2003.[7] 李秀芬.温度传感器时间常数测试数据的处理方法[J].宇航计测技术,2001,9:60-61.

附录1 电路原理图 附录2 源程序代码 #include \"reg52.h\"//头文件 #include \"absacc.h\" #include \"math.h\" #define uchar unsigned char //宏定义 #define uint unsigned int #define dm P0 #define wm P2 sbit S0=P1^0; sbit SCK=P1^1; sbit CS=P1^2; sbit beep=P2^0; sbit Work_Stop=P1^3; uint Re_Convert (void); //温度转换 void Disp_temp(void); //温度显示 void Baojing(void); //超量程报警 void delay(uint t); //延时函数

uchar qian=0,bai=0,shi=0,ge=0,xiao=0; uint P_Temp; float t1,t2,t3,wendu; uchar code tab1[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};// tab1为数码管的段码

uchar code tab2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};// tab2为数码管的段码(含小数点)

uchar code tab3[]={0x10,0x020,0x040,0x080}; //tab3为数码管位码 void main(void) //主程序 {

delay (10);

Work_Stop =0;

S0 =0;

//工作指示灯亮开始工作

while(1)

{

P_Temp=Re_Convert();

t1=0.25*P_Temp;//P_Temp =(1024*P_Temp)/4096

delay (500);

P_Temp=0;

P_Temp=Re_Convert();

t2=0.25*P_Temp;

delay (500);

P_Temp=0;

P_Temp=Re_Convert();

t3=0.25*P_Temp;

delay (500);

P_Temp=0;

wendu=((t1*t3)-(t2*t2))/((t3+t1)-(2*t2));

Baojing();

Disp_temp();

P_Temp=0;

wendu=0;

}

} void delay(uint t)//延时程序 {

} uint Re_Convert() //热电偶转换 { uchar x; uchar y; for(x=0;x

uchar i;

uint P_Temp2 =0;

SCK =0;

S0 =0;

CS =0;

for(i=0;i

{

SCK =1;

if(S0= =1)

{

P_Temp2 =P_Temp2 | 0x01;

}

delay(10);

SCK =0;

delay(10);

P_Temp2

}

CS =1;

if(P_Temp2 & 0x0004) //断偶标志判断

{

Work_Stop =1; //工作指示等灭停止工作

}

P_Temp2 =(P_Temp2 & 0x7fff) >>3; //D14-D3数据提取

return(P_Temp2);

P_Temp2 =0;

delay(200); } void Baojing(void)

//超量程报警 {

if(wendu=400)

{

delay(20);

beep=0;

delay(20);

beep=1;

} } void Disp_temp(void)//温度显示 {

uint temp=wendu*10;

if(wendu

bai=temp%10000/1000;

shi=temp%1000/100;

ge=temp%100/10;

xiao=temp%10;

dm=0x0ff;

dm=tab1[bai];

wm=tab3[0];

delay(10);

dm=0x0ff;

dm=tab1[shi];

wm=tab3[1];

delay(10);

dm=0x0ff;

dm=tab2[ge];

wm=tab3[2];

delay(10);

dm=0x0ff;

dm=tab1[xiao];

wm=tab3[3];

delay(10);

dm=0x0ff; } }

单片机控制交通灯系统

测温工工作总结

技术协议热风炉拱顶红外测温系统0428

单片机应用系统课程学习心得

单片机课程设计秒表系统设计

冬季施工测温方案

《单片机应用系统设计技术》教学大纲

《单片机应用系统设计》课程教学大纲

单片机与嵌入式系统实验报告三

单片机最小系统实训报告

《基于单片机的热电偶测温系统.doc》
基于单片机的热电偶测温系统
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文