基于atmega128单片机和K型热电偶的水温测量系统设计与实现

摘 要

随着技术的发展,生活和生产种对水温测量的要求也随之提高,为了解决对水温的精确测量问题和提高水温的
读取方便性,越来越多的电子水温计应运而生,市面上有很多基于单片机的水温计但很少看见有基于Atmega128单片
机的水温计设计。
  本文通过软硬件相结合的方法基于Atmega128单片机,编写了程序,采用K型热电偶将温度信号被测水温转换成
电压信号,经过放大和冷端温度补偿后通过AD转换成数字信号,最后通过单片机处理,将采集到的数字信号转换成
测得温度值显示在LCD1602液晶显示屏上。并且探讨了其电源模块、单片机主控模块、电压信号处理模块和显示模块
的功能和原理;此外还对K型热电偶的冷端补偿进行了浅层的研究,尝试了一种基于晶体管PN结温度特性的冷端补偿
电路,并对其冷端补偿的数据结果进行了记录分析。通过测温精确度的对比,最终提出了并设计和实现了一种基于
Atmega128单片机和K型热电偶的水温测量系统。
  本次设计旨在为了方便人们对水温进行测量,并得到相对高精确度的水温数据。以此为人们的便利生活生产出
一份力。
关键词 :水温测量;单片机;atmega128;k型热电偶;LCD1602;冷端补偿;晶体管PN结

1 绪 论

1.1 课题背景
  温度作为一种基本的环境参数,人民的生活和生产都与其密不可分。而水温是该因素的典型之一。在一些应用
上(比如化学实验、化工生产)人类对水温的要求则是十分苛刻,所以需要对其加以控制,而对其控制的前提就是
要测得他现在实际温度到底是多少。只有这样有反馈的控制系统才会有良好的控制效果。特别是在大规模生产等的
现场,工作人员难以长时间停留在现场观测和采集温度,或对多个测温对象同时进行测温操作,就需要将数据进行
采集并传输到一个地方集中处理,以节约人力资源,提高生产效率,但是这样一来也会产生数据传输的问题,因为厂房
面积大、要传输数据量多,再采用传统方式很容易导致资料的浪费而且可操作性也较差,以及准确度不高,这些问题都
在不同程度上影响了生产工作的完成与开展。因此我们就急需研究一些精度高、实时性好并且成本低的温度控制系
统。
  在这样的市场需求下,相应技术孕育而生,而技术则使与温度检测相关的电子产品的开发成为当今研究热潮。
随着单片机技术和热电偶测温技术的日益成熟,应用范围的逐渐扩大,以单片机与热电偶为核心的测温系统,逐渐
在生活的方方面面都有所运用,这不仅克服了温度测量系统中存在的严重时延问题,在提高了采样的频率的同时,
又节省了人力资源,而且在很大程度上提高了测温效果和测温精度。

在这里插入图片描述

图 1-1-1 基于单片机的水温测量产品图 图 1-1-2 工业生产测温图
1.2 国内外研究现状
  工业和科学技术的发展在对测温技术提供了要求的同时也为测温提供了技术前提和途径,测温技术所应用的基
础理论已从过去的机械学热力学等发展到今天的自动控制技术、计算机技术、信息处理技术,而所使用的一般的传
感器放大器也被半导体元件构成的新型传感器所替代。由反馈闭路系统构成的新型检测系统也应运而生。
  现在新式的测温技术手段越来越多:1.光纤测温技术,这种测温技术具由抗电磁干扰、低能耗、无源的特点;
2.红外光谱辐射测温技术;3.CCD多光谱辐射测温技术,这种测温技术弥补了传统测量方法在测量高温温度场时的缺
陷。除上述之外还有很多,国外有一篇文章介绍了其纳米粒子的测温技术,使用纳米SrTiO_3进行高分辨率纳米测
温。
  但目前最多的还是基于传感器的测温系统,而国内温度传感器虽然已经有了明显的发展,已有一些企业发展起
来可以提供一些高质量的产品,但这仍是小数,难以规模化和民用化,与国外水平相比还有较大差距。
1.材料方面
  国内冶金化工现有条件往往难以提供用量小、质量高、规格特殊的各类基础材料,即使能提供与国外相近牌
号,但质量只能保证一般工业用途。国外对材料要求高的时候可以采用双真空冶炼和定向处理;杂质的去除由专门
的机构来做,保证了产品的长期稳定,如果有问题也很容易。区分材料问题和过程问题。[1]我国对材料的研究还很
匮乏,同样的问题在中国普遍无法得到较好的解决,材料只能有什么用什么,还是勉强替代。
2.工艺方面
  我国工业还不能完全解决诸如等离子、激光、电子束之类加工工艺,在特殊工艺上又常常被人忽视,不注意积
累开发。国外往往开展长期工作积累经验,他们对传感器的结构、材料、工艺等都十分重视,与国内重理论、轻实
践,重设计、轻工艺的习俗正好相反。[1]
  进入21世纪以来,温度传感器的发展方向也变得多样化,正在从类比化、集成化向数字化、智能化、网络化发
展。虽然国外对智能传感器的研究比中国领先一步,但随着中国的不断发展,智能传感器的研究也达到了先进水
平。在未来的发展中,智能加工控制与工业、农业和生活的结合是必然的,人工操作将被智能操作取代。
1.3 课题基本内容
1、本文通过软硬件相结合的方法基于Atmega128单片机,编写了程序,采用K型热电偶将温度信号被测水温转换成电
压信号,经过放大和冷端温度补偿后通过AD转换成数字信号,最后通过单片机处理,将采集到的数字信号转换成测
得温度值显示在LCD1602液晶显示屏上。
2、探讨了其电源模块、单片机主控模块、电压信号处理模块和显示模块的功能和原理;
3、对K型热电偶的冷端补偿进行了浅层的研究,尝试了一种基于晶体管PN结温度特性的冷端补偿电路,并对其冷端
补偿的数据结果进行了记录分析。
  最后通过测温精确度的对比,最终提出了并设计和实现了一种基于Atmega128单片机和K型热电偶的水温测量系
统。

2 系统结构设计和模块分析

2.1 系统总结构图
  本系统主要有电源模块、Atmega128单片机主控模块、显示模块、热电偶、放大电路部分及AD转换模块构成,总
结构图如图2-1所示:
在这里插入图片描述
图2-1 系统总结构图
  系统各模块各司其职,相互联系,组成一个有机的成体最终达到测温的目的。其大概的过程为热电偶输出电压
信号,经过放大模块放大到0~5V,再经过AD转换模块转换成单片机能够识别的数字信号,经过编写在单片机里的程
序处理,将测得的温度显示在LCD1602液晶管上。其中电源模块则负责为整个测温系统提供稳定的电源。
2.2 模块介绍及基本功能分析
2.2.1 Atmega128单片机主控模块
  ATmega128是ATMEL公司的8位系列单片机的最高配置的一款单片机[5],其性能和稳定性都很高。ATmega128单片
机具有超低功耗和丰富的片上外围模块。本文使用的ATmega128选用了片外12MHz的晶振,其工作频率既快又稳定,
电源的+5 V 端与芯片的VCC和AVCC引脚相连、而0V端则连接到GND 和PEN引脚,VCC与GND之间还连接有去耦电容,以
滤除电源中的纹波,屏蔽外部干扰[5]。
在这里插入图片描述

图2-2-1 Atmega128图
(1) Atmega128I/O口
  Atemga128单片机有A到G七个端口,每个端口可以通过编程就实现I/O口的上拉电阻配置,其中A到F端口都可以
作为8位的双向I/O口使用 。当其作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流[21]
。G端口为5位的双向I/O口,他和F端口在当Atmega128单片机工作在Atmega103兼容模式下时,会有其他的功能(本
文中没有使用到,所以不做赘述)。
  Atmega128的I/O口使用前应该通过3个8位寄存器设置I/O口,三个寄存器分别为端口方向控制寄存器DDRX(X代
表I/O口,如DDRA代表PA口,下同)、数据寄存器PORTX和输入引脚寄存器PING。
(2) Atmega128的熔丝位配置
Atemga128单片机使用时必须要先配置其熔丝位和锁定位。
  熔丝位是AVR单片机不同于51单片机和STM单片机所特有的,他影响到单片机工作模式,只有正确配置熔丝位,
单片机才有可能正常工作。而锁定位是起对单片机的程序和数据进行加密和保护作用[18]。
Atmega128单片机的熔丝位分扩展字节、高字节和低字节三个字节。
其具体功能描述见表2-2-1,2-2-2,2-3-3。
表2-2-1 熔丝位高字节
  
熔丝位高字节 位号 描述 默认值
OCDEN 7 使能OCD 1(OCD禁用)
JTGEN 6 使能JTAG 0(JTAG使能)
SPIEN 5 使能串行程序和数据下载 0(SPI编程使能)
CKOPT 4 振荡器选项 1
EESAVE 3 执行芯片擦除时EEPROM内容保留 1
BOOTSZ1 2 选择Boot区大小 0
BOOTSZ0 1 选择Boot区大小 0
BOOTSZT 0 选择复位向量 1
表2-2-2 扩展熔丝位字节
  
扩展熔丝位字节 位号 描述 默认值
一 7~2 一 1
M103C 1 Atmega103兼容模式 0
WDTON 0 看门狗定定时器始终开启 1
表2-2-3 熔丝位低字节
  
熔丝位低字节 位号 描述 默认值
BODLEVEL 7 BOD触发电平 1
BODEN 6 BOD使能 1(BOD禁用)
SUT1 5 选择启动时间 1
SUT0 4 选择启动时间 0
CKSEL3 3 选择时钟源 0
CKSEL2 2 选择时钟源 0
CKSEL1 1 选择时钟源 0
CKSEL0 0 选择时钟源 1
2.2.2 热电偶模块
  本温度测量系统使K型热电偶产生电信号。K型热电偶由热电偶、连接导线以及电测仪表三部分组成。其基本工
作原理图如图2-2-2所示
  热电偶温度计利用“热电效应”(又称塞贝克效应)原理工作,即将两种不同的金属导体AD首尾相连构成闭合
温度 不同,则在构成的闭合回路中产生热电动势 , 回路,如果两点的连接 形成热电流。热电偶温度计
就是利用上述原理,把两种不同的金属材料一端焊接而成的,焊接的一端称为热端(也叫测量端或工作端),另未
焊接的一端称为冷端(也叫参考端或自由端),若冷端温度恒定,则热电势的大小和方向也就至于这两种材料的特
性和测量端的温度有关,并且热电势与测量端温度之间有一个基于材料而固定的函数关系,所以我们可以利用这个
关系,测出热电势的大小从而推算出测量端温度的大小[12]。在这里插入图片描述

图2-2-2热电偶工作原理图 图2-2-3 塞贝克效应图
其计算过程大致如下:
(1)两种导体的接触电动势
  两种导体因为其材料的不同,其内部的自由电子密度大小不同,当这两种导体接触时,期内不得电子会发生扩
和 散效应,这种扩散速率不仅于导体的电子密度有关而且和接触面的温度成正比。设导体A和B的自由电子密度为
,且有 ,则导体A的电子向B扩散,即A导体失电子带正电,导体B得电子带负电,在接触面形成一个阻碍
电子的扩散的电场最后达到动态的平衡,从而在接触区形成一个稳定的接触电动势,可表示为:
(2-1)
式中: — AB两种材料在温度为 时的接触电动势;
— 玻尔兹曼常数 ;
— 电子荷数 ;
— AB两种材料在温度 时的自由电子密度;
(2-2)
回路中的总接触电动势为:
(2-3)
(2)单一导体中的温差电动势
  在单一导体中,其两端的自由电子会因为导体两端的温度不同而动能不同,温度高的一端其自由电子的动能
大,会往温度低(自由电子动能低)的一端扩散。温度高的一端就会因失电子而带正电位,低温端也因而得电子带
负电位,因此导体的两端的电位有差值,该差值被称为温差电动势。
(2-4)
而对于AB两种导体构成的闭合回路,当AB导体存在温差时,温差电动势之和为:
(2-5)
综上所述,在整个闭合回路中产生的总电动势 可表示为:
(2-6)
  由式(2-6)可知,热电偶的总电动势与电子密度以及两端温度有关。当热电偶材料一定时,热电偶的总电动势为
温度 的函数差。
K型热电偶理想工作状态下的输出电压(mV)图如表2-2-4:
表2-2-4 K型热电偶分度毫伏对照表
  
温度/℃ 0 1 2 3 4 5 6 7 8 9
0 0.000 0.039 0.079 0.119 0.158 0.198 0.238 0.277 0.317 0.357
10 0.397 0.437 0.477 0.517 0.557 0.597 0.637 0.677 0.718 0.758
20 0.798 0.838 0.879 0.919 0.960 1.000 1.041 1.081 1.122 1.163
30 1.203 1.244 1.285 1.326 1.366 1.407 1.448 1.489 1.530 1.571
40 1.612 1.653 1.694 1.735 1.776 1.817 1.858 1.899 1.941 1.982
50 2.023 2.064 2.106 2.147 2.188 2.230 2.271 2.312 2.315 2.395
60 2.436 2.478 2.519 2.561 2.602 2.644 2.685 2.727 2.768 2.810
70 2.851 2.893 2.934 2.976 3.017 3.059 3.100 3.142 3.184 3.225
80 3.267 3.308 3.350 3.391 3.433 3.474 3.516 3.557 3.599 3.640
90 3.682 3.723 3.765 3.806 3.848 3.889 3.931 3.972 4.013 4.055
2.2.3 热电偶的几个重要定律
本文将热电偶的几个重要定律汇总成表2-2-5以方便阅读:
表2-2-5 热电偶重要定律表
(1)均质材料定律
  
由一种均质材料组成的闭合回路,不论材料长度、方向、各处温度
如何分布,回路中均不产生热电势。根据这条规律,热电偶的组成
材料长度、方向、各处温度如何分布,回路中均不产生热电势。根
据这条规律,热电偶的组成材料必须为均质,否则会在热电偶中产
生附加电动势,从而引入误差[20]。
(2)中间导体定律  
组成热电偶的两种材料之间加入第三种(或多种)均质材料,只要
插入其中的材料的两端与热电偶的连接温度相同,则所插入的材料
不会在热电偶回路中附加电动势。这条定律说明在热电偶回路中可
接入测量电动势的仪器仪表,只要所接入的仪表所在的温度环境稳
定即可。如左图2-5:
(3)中间温度定律
由两种不同均质材料构成的热电偶回路,其连接点温度分别为
时的热电动势 等于此热电偶在连接点温度 和
时热电动势的代数和
  所以如左图2-6所示的由两种导体A、B和分别与第三种导体C构
成的热电偶回路。如果 和 已知,那么这两种导体A和导体B构
成的热电偶回路中的热电动势就可以用如下公式计算:
(2-9)
(4)连接导体定律
  
在由均质材料A、B构成的热电偶回路中,如果材料A和B分别与导线
和 连接,各接点温度为 和 ,那么回路中总电动势等于热
端和冷端处于 温度下的热电动势 与两根连接导线两
端处于的温度 和 条件下的热电动势 的代数和。
2.2.4电源模块
本文选用输出电压12V的锂电池配合LM7805稳压集成电路作为该系统的电源模块。
  三端稳压集成电路LM7805由输入端、接地端和输出端组成。用LM78系列三端稳压IC来组成稳压电源所需的外围
元件极少,电路内部还有过流、过热及调整管的保护电路。
  整个电路所需的各种电压都由该电源模块提供。Atmega128单片机、MAX6675、液晶显示屏LCD1602正常工作电压
在+5V左右。系统需要为其提供+5V的正常工作电压。先利用电源适配器讲220V的外部供电降至24V,再利用LM7805稳
压器将其转成+5V的电压。[13]
2.2.5 LCD1602显示模块
  LCD1602液晶显示屏有数字式接口,另外在拥有体积小、重量轻、功耗低特点的同时的还具有不俗的显示质量;
其中功耗低的特点与Atmega128单片机超低功耗的特点十分契合;所以本次设计采用LCD1602来作为系统的显示模
块。LCD1602液晶显示屏引脚图如图2-2-6:
图2-2-6 LCD1602显示电路在这里插入图片描述

其引脚功能说明如表2-2-6:
表2-2-6 LCD1602引脚功能说明表
  




引脚说明
1 VSS 电源地
2 VDD 电源正极
3 V0 用来控制LCD对比度,连接一个10K的可调电阻来控制或直接连接一个1.5K的电阻亦可;
4 RS 寄存器选择引脚RS,连接LCD的RS寄存器,当RS置1时,选择数据寄存器,当RS置0时,选择指令寄存器
/#W 读写信号线,控制LCD读出还是写入,当RW置1时为读操作,当RW置0是为写操作;
6 E 使能端E,当E置1时读取信息,当E引脚接收到下降沿时执行指令
7 D0 数据
8 D1 数据
9 D2| 数据
10 D3 数据
11 D4 数据
12 D5 数据
13 D6 数据
14 D7 数据
15 BLA LCD背光控制端,BLA脚为背光正极,BLK脚为背光负极。如果这两个引脚不连接,LCD也可以正常工作,但
16 BLK 是背光关闭。
  LCD在使用时必须通过单片机向LCD传输指令,控制LCD读写操作。其操作主要通过单片机输出输出引脚模拟
LCD1602的时序图实现。工作写时序图如图2-5-2:
图2-2-7 LCD1602写时序图在这里插入图片描述

在写入时许允许的条件下,可通过单片机写入控制指令。1602控制指令如表2-2-7:
表2-2-7 1602控制指令表
  
序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 清屏 0 0 0 0 0 0 0 0 0 1
2 光标复位 0 0 0 0 0 0 0 0 1 x
3 输入方式设置 0 0 0 0 0 0 0 1 I/D S
4 显示开关控制 0 0 0 0 0 0 1 D C B
5 光标或字符移位控制 0 0 0 0 0 1 S/C R/L x x
6 功能设置 0 0 0 0 1 DL N F x x
7 字符发生存储器地址设置 0 0 0 1 字符发生存储器地址
8 数据存储器地址设置 0 0 1 显示数据存储器地址
9 读忙标志或地址 0 1 BF 计数器地址
10 写入数据至CGRAM或DDRAM 1 0 要写入的数据内容
11 从CGRAM或DDRAM中读取数据 1 1 读取的数据内容
2.3 本章小结
  本章介绍了本文在实现设计时,系统各个模块所使用到的相关原理和应用时所需要知道的相关知识。其中包括
一些芯片的引脚功能和读写时序。

3 数据测量和热电偶误差补偿

3.1 热电偶的误差
在实际应用中,热电偶测温总是存在误差,这受热电偶生产的工艺影响我们测温时的操作影响,这都是不可避免
的。其主要可以分为两类:1、热电特性不稳定的影响;2、参考端温度的影响;3测量系统的影响。[14]
  其中参考端的温度是影响测量结果的重要因素[15],理想状态下,热电偶的冷端是工作在0℃温度环境下的。但
在实际使用的过程中,冷端的温度总是收到环境的影响不能工作在理想的情况下,在实验或者生产过程中冷端的温
度总是变化的,这导致热电偶产生的电压和处理过程中期望的理想电压有出入,从而导致后续得出的测温结果数据
与温度真值之间存在较大的误差。
  假设在参考温度 条件下,被测温度是 , 为热电偶产生的热电势,其变化大小可以表示为式3-1-1,热感应
电动势下降了 ,因而使得测量结果与实际值有所减小。
   (3-1-1)
  当用热电偶测量温度时,总有一些环境因素会影响到热电偶的冷端,从而影响到测量的准确性,就比如测量高
温水样时,高于室温的水汽总是会或多或少影响到热电偶的冷端。然后本文模拟上述举例的场景,当冷端工作在
18℃室温中,电压表测量热电偶两端经过差分放大处理的电压,再通过计算得出实际电压并记录,数据如表3-1-1:
表3-1-1 冷端工作与18℃时的热电偶输出电压比对表
  
温度值/℃ 理想电压/mV 冷端工作与18℃时热电偶模块输出电压/mV
73 2.934 2.438
66 2.685 1.923
54 2.188 1.547
47 1.899 1.154
41 1.612 0.889
可见,热电偶的输出电压,比较于理想的输出电压有较大的出入。
所以在热电偶的使用过程中,需要对热电偶的冷端进行温度补偿,从而减小或是消除冷端温度引起的误差。
3.2 热电偶冷端温度补偿
3.2.1 热电偶冷端补偿原理
  为了使热电偶产生的热电势 和工作端的温度之间的函数关系为单值函数关系 ,需要使热电
偶在使用过程中冷端的温度保持恒定或者采取其他处理措施。冷端补偿顾名思义就是补偿周围介质的温度变化给测
量过程带来的误差。一般情况下的补偿方法是采用冷端补偿器件获得补偿电动势,然后再与测量端的热电动势相叠
加,其结果就为真实热电动势。
3.2.2 常见的热电偶冷端补偿方法
(1)冷端恒温法
  该方法是将热电偶的冷端置于一个恒定温度为0℃的环境下,只要气压不发生改变,热电偶便可以正常工作在理
就满足了与测量端保持单值函数关系的条件。不过恒温为0℃的环境实现起来条件比较 想状态下。此时的热电势
苛刻,此方法的实现成本较高,没有普适性,本文不采用这种方法。
(2)补偿导线法和计算矫正法相结合的方法
  将热电偶的冷端用导线延长到较为理想的环境中,(其温度等因素应较为稳定)。单独的补偿导线法并不能消
除冷端因为温度变化而带来的测温影响。因此在这之后还需要通过按照上述的热电偶中间温度定律进行热电势的修
正。[12]
(3)电桥补偿法
  在热电偶测温的回路中接入一个桥臂由直流电桥,整个补偿电桥由全波整流电桥、滤波电路、稳压二极管和由
共同组成的电桥四部分所组成[16]。将热电偶的冷端利用补偿导线法延长到电桥处,使冷端 三个电阻和热敏电阻
和电桥处于同一温度条件下,因此他们的温度是同时改变的,配合直流电桥上的热敏电阻,补偿电阻也会输出一个
随之变化的电压 来补偿热电偶冷端温度变化导致的热电势影响。本法也是现在运用较为广泛的方法之一。
3.2.3 利用晶体管PN结特性的冷端补偿电路
根据晶体管的特性可知,PN结两端的电压和电流的关系为:
(3-2-1)
  在式3-2-1中, 为反向饱和电流, 为温度电压当量,其中 为玻尔兹曼常数, 为热力学温度, 为电
子量。在300K时, 。由公式(4-4)可知,晶体管正向偏置式,只要 几倍以上, ,
即I随着U按指数规律变化。在这里插入图片描述

图3-2-1 晶体管补偿电路等效电路
  图4-1为晶体管冷端温度补偿电路的等效电路图, 是由PN结输出的补偿电压,PN结与冷端放在环境温度相同的
, 反向接入热电偶测量电路中。 环境中
设 ,K为热电偶在0℃附近时的灵敏度,热电偶的热电动势方程为:
(3-2-2)
  式3-2-2中, 为晶体管的端电压, 为晶体管在0℃时的端电压;n为并联与PN结两端的调节电位器的分压比。
令 ,由式4-5得到等效回路的热电势为:
(3-2-3)
  由式3-2-3可见,热电偶回路的热电动势与冷端温度无关,只要用 计算出相应的修正值,就可以得到真实的电
动势 。[17]
3.2.4 基于晶体管二极管PN结特性的冷端补偿电路运用
  图3-2-2为基于晶体二极管的冷端温度补偿电路,其中用虚线框中的电阻R4和R5可根据实际需要用一个并联在晶
体二极管D1两端的调节电位器替换,图3-2-3为实物电路,电路中元件参数的选择如表3-2-1:

数据分析:补偿后的电压与理想的电压有明显的出入,依据输出的电压查分度表来得出的温度值与实际温度值
有较大的误差,大约为4度左右。
3.3 本章小结
  本章简述了热电偶测量误差的原因和冷端补偿的原理,举例并简单描述了几种常用的冷端补偿方法,分析了一
种基于晶体管PN结的冷端补偿电路的工作原理,并通过实物实现,对其补偿效果做了检测试验。

4 利用MAX6675芯片作冷端补偿测量水温

4.1 MAX6675芯片的基本原理及内容
  根据热电偶的测温原理,热电偶的输出热电动势不仅与测量端的温度有关,还与冷端的温度有关,在热电偶的
使用中,往往需要冷端补偿,但都比较麻烦。另外,由于热电偶的非线性,在测量中往往会引入非线性测量误差。
[9]MAX6675是一种带有线性校正、热电偶断线检测、冷端补偿的串行K型热电偶转换芯片,具有数字转换功能,内置
由一个12位的ADC。此外,MAX6675内部还包含了热电偶冷端温度补偿传感器和校正,数字控制器和一个SPI兼容接
口,以及相关的逻辑控制。它的温度分辨能力为0.25℃,冷端补偿范围是-20℃~80℃[8]。其内部结构如图4-1-1所
示,引脚图如图4-1-2:在这里插入图片描述

图4-1-1 MAX6675内部原理图
  热电偶的输入信号经过一个差分放大电路,在经过一个电压跟随器来隔离前级的干扰信号,最后通过AD转换输
出到单片机接口。其中0.1µF的电容为旁路电容,用来消除电源对A1运算放大器的干扰,20pF的电容为滤波电容,其
滤波作用。
图4-1-2 MAX6675芯片引脚图
在这里插入图片描述

(1)MAX6675引脚功能如表4-1-1
表4-1-1 MAX6675引脚功能表
  


符号引脚说明
1 VSS 接电源地级
2 VDD 接热电偶的负极
3 V0 接热电偶的正极
4 RS 接电源正极,为5V
5 R/#W控制MAX6675数据输出
可理解为片选引脚,当#CS从高电平变为低电平时,MAX6675停止转化并通过SCK向外输出数据;当#CS从低
电平变为高电平时,MAX6675开始新的一轮转换;
7 D0 数据输出口
8 D1 悬空
(2)MAX6675工作时序:
  MAX6675芯片数据的输出是逐位输出的。只有MAX6675片选端信号为低电平时,当SCK出现一个上升沿MAX6675芯
片从S0口输出一位数据,共16位,其中D14~D3位为热电偶电压信号经过转化后的数字信号也是我们测温程序中最重
要的部分而D15位为无效数据,可以忽略掉。D2为热电偶断线检测位,D0为3态。在这里插入图片描述

图2-7-2 MAX6675时序图
4.2 运用该测温系统测量水温的实验方法
本文测量方法如下:
1.对于80℃~50℃范围的水温:本文让初始温度于80度左右(水银温度计测量)的水放置于室温下自然冷却,将水银
温度计和热电偶探头相邻放置于容器的中心位置,在冷却过程中在每个温度取五组左右的温度数据,进行测量记
录。测量过程如图4-2-1。
2.对于50℃~25℃范围的水温:本文慢慢往容器中逐次加入少许的冷水,再等水银温度计和本文的测温系统示数稳定
后,进行测量记录数据,每加入一次冷水测一组水温。
3.对于0℃~10度范围的水温:本文将多枚冰块解冻于容器中,直至冰块全部融化水银温度计显示温度为0℃,且水银
温度计接触端和热电偶探头可完全浸没于冰水中,开始测量数据。然后在室温的影响下自然升温,测量10组数据。
4.对于10℃~25℃范围的水温:本文慢慢往容器中逐次加入少量上次实验余下的温水,再等水银温度计和本文的测温
系统示数稳定后,进行测量记录数据,每加入一次温水测一组水温数据。测量过程如图4-2-2。在这里插入图片描述

图4-2-1实验实物图1 图4-2-2实验实物图2
4.3 实验数据分析
  一轮0~100℃水温测量实验,大约为40组数据,将数据用matlab画在折线图上。下面提供一轮数据。表4-3-1为
一组典型的数据信息,图4-3-1为实验数据图,图4-3-2为该采用MAX6675作热电偶冷端补偿的测温系统与水银温度计
相比的误差棒图。
在这里插入图片描述

图4-3-1 实验数据图在这里插入图片描述

图4-3-2 采用MAX6675作热电偶冷端补偿的测温系统与水银温度计相比的误差棒图
  可见用MAX6675芯片进行水温测量,以水银温度计的测量结果为准,其误差基本控制在0.7℃内。与上文3.2.3中
的基于晶体二极管PN结的冷端补偿电路效果相比,精确度有明显的提高。
4.4 本章小结
  本章提出了测温实验的实验方法;给出了MAX6675内部原理电路图、引脚图和时序图,并且分析了系统采用了
MAX6675作为冷端温度补偿的测温数据。

5 系统程序编写和实物展示

5.1 程序部分
  为了使检测系统能够实时监测并显示温度的大小,整个检测系统必须要设计相应的软件程序来支持硬件电路的
检测。本文运用ICCAVR软件来编写相应的程序,如图3-1所示,为具体检测温度的软件流程框图。整个检测程序由系
统初始化程序、热电偶数据采集程序、数据转换程序、显示程序以及一些子程序共同完成。在这里插入图片描述

图5-1 系统程序框图
  首先要编写单片机I/O口初始化程序,对单片机要用的到的引脚初始化,对PORTx和DDRx进行赋值起到初始I/O口
的作用,设置其工作方式是输入还是输出,然后再进行液晶显示屏初始化,在之后进行温度读取、转化成温度值,
最后显示在LCD1602液晶显示屏上。
以下是关键程序编写,也就是单片机I/O口初始化程序以及温度采集程序。
5.1.1 I/O口初始化程序:
DDRD=0xff;PORTD=0xFF;
DDRE=0xff;PORTE=0xff;
DDRF=0xfE;PORTF=0xff;
5.1.2 液晶初始化程序:
void init()
{
RW_L;
write_com(0x38);//8位数据接口,两行显示,58点阵
write_com(0x0c);//0000 1111
write_com(0x06);//0000 0110
write_com(0x01);//0000 0001
5.1.3 LCD1602液晶显示相关程序:
void write_com(unsigned char com)
{
RS_L;
RW_L;
PORTD = com;
delay(1);
EN_H;
delay(1);
EN_L;
}
void write_dat(unsigned char dat)
{
RS_H;
RW_L;
PORTD= dat;
delay(10);
EN_H;
delay(10);
EN_L;
}
void display(uint Temp)
{
write_com(0x80);
write_dat(0x30 + Temp%10000/1000);
write_dat(0x30 + Temp%1000/100);
write_dat(0x30 + Temp%100/10);
write_dat(‘.’);
write_dat(0x30 + Temp%10);
}
5.1.4 MAX6675芯片读热电偶温度程序设计:
uint MAX6675_ReadReg(void)
{
uchar i;
uint dat;
i = 0;
dat = 0;
P_CS_Off;
P_SCK_Off;
for(i=0; i<16; i++)
{
P_SCK_On;
dat = dat<<1;
if(Read_SO)
dat = dat|0x01;
P_SCK_Off;
}
P_CS_On;
20
return dat;
}
5.1.5 单片机处理MAX6675芯片16位数据换算成温度值程序设计:
void Temperatureconversion(void)
{
unsigned int t;
t=MAX6675_ReadReg();
  Flag_connect=t&0x04; Flag_connect=Flag_connect>>2;
t = t<<1;
t = t>>4;
MAX6675_Temp = t;
MAX6675_Temp = MAX6675_Temp/4;
MAX6675_Temp = MAX6675_Temp
10;
}
5.2 实物展示
  最后的系统由热电偶、MAX6675芯片模块、LCD1602液晶显示模块、Atmega128主控模块、LM7805模块构成。
如图5-2-1为实物展示图:在这里插入图片描述

图5-2-1 系统实物展示图

附 录
#include <iom128v.h>//一些头文件
#define uchar unsigned char//宏定义
#define uint unsigned int
#define Read_SO PINF&0x01
#define P_SCK_Off PORTF &= ~0x02
#define P_SCK_On PORTF |= 0x02
#define P_CS_Off PORTF &= ~0x04
#define P_CS_On PORTF |= 0x04
#define RS_H PORTE |= 0x01
#define RS_L PORTE &= ~0x01
#define RW_H PORTE |= 0x02
#define RW_L PORTE &= ~0x02
#define EN_H PORTE |= 0x04 
#define EN_L PORTE &= ~0x04 
float MAX6675_Temp;
uchar Flag_connect;
void delay(uint m) 
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
23
}
}
void write_com(unsigned char com)//写液晶命令字
{
RS_L;
RW_L;
PORTD = com;
delay(1);
EN_H;
delay(1);
EN_L; 
}
void write_dat(unsigned char dat)//写液晶数据
{
RS_H;
RW_L;
PORTD= dat;
delay(10);
EN_H;
delay(10);
EN_L;
}
void init()
{
RW_L;
write_com(0x38);//8位数据接口,两行显示,5*8点阵
write_com(0x0c);//0000 1111
write_com(0x06);//0000 0110
write_com(0x01);//0000 0001 //清屏
}
uint MAX6675_ReadReg(void)
{
uchar i;
uint dat;
i = 0;
dat = 0;
P_CS_Off;
P_SCK_Off;
for(i=0; i<16; i++) //get D15-D0 from 6675
{
P_SCK_On;
dat = dat<<1;
if(Read_SO)
dat = dat|0x01;
P_SCK_Off;
}
24
P_CS_On;
return dat; 
} 
void Temperatureconversion(void)
{
unsigned int t;
t=MAX6675_ReadReg();
  Flag_connect=t&0x04; //读出数据的D2位是热电偶掉线标志位,该位为1表示掉线,该位为0表示连接
   Flag_connect=Flag_connect>>2; //MAX6675是否在线
t = t<<1; //读出来的数据的D3~D14是温度值
t = t>>4;
MAX6675_Temp = t; //测得的温度单位是0.25,所以要乘以0.25(即除以4)才能得到以度为单位的温度值
MAX6675_Temp = MAX6675_Temp/4;
MAX6675_Temp = MAX6675_Temp*10; 
}
void display(uint Temp)
{
write_com(0x80);
write_dat(0x30 + Temp%10000/1000);
write_dat(0x30 + Temp%1000/100);
write_dat(0x30 + Temp%100/10);
write_dat('.');
write_dat(0x30 + Temp%10);
}
void main(void)//主函数
{
DDRD=0xff;PORTD=0xFF;
DDRE=0xff;PORTE=0xff;
DDRF=0xfE;PORTF=0xff;
init();
while(1)//主循环
{
Temperatureconversion();
display(MAX6675_Temp);
}
}

6 非技术因素的考虑

6.1 非技术因素的考虑与方案评估
  在设计电路过程中不仅需要对电路进行隔离的设计来防止信号之间的干扰,而且必须要保证在 电路元件的运行
过程中不会导致静电的干扰。因此在完成电路设计和 PCB 制版调试后,要在电路元 件和 PCB 背面涂覆三防漆。
6.2 经济降本决策
  本次设计中采用了LCD1602、Atmega128等低功耗的元器件,降低了能源的消耗又满足了系统的性能要求。
6.3 本课题的创新性
  本文将Atmega128单片机作为测温系统的主控模块配合LCD1602,利用这两个芯片超低功耗的特性,用锂电池配
合变压模块作为供电,用MAX6675芯片作冷端补偿设计实现了一个功耗低但同时精度较高的测温系统。

7 总 结

7.1 毕设过程总
  本课题是基于Atmega128单片机和K型热电偶的水温测量系统设计,通过软硬件相结合的方式,来达到精确测量
水温的目的。从K型热电偶产生电压信号经过放大和冷端温度补偿后通过12位AD转换成数字信号,最后通过单片机采
集,编程将采集到的数字信号转换成温度值显示在LCD1602液晶显示屏上。
  在热电偶的实际运用中,为了保证系统测量的准确,必须对热电偶进行冷端补偿,对于冷端补偿一开始本文先
尝试了软件补偿的方法,通过编写程序来消除冷端在测量环境温度下而产生的干扰电压所带来的影响。但后来研究
发现,软件补偿只能针对那些冷端温度不变或者变化较小的情况。在本文实验过程中,对较高温度的水样进行长时
间测量时,带有一定温度的水汽会影响到冷端的温度,而且在工业生产过程中,热电偶冷端温度总是会随时间的变
化而变化,这导致软件补偿并不是很适用。
  然后本文尝试采用了硬件补偿的方式,通过查阅文献学习到一种基于晶体二极管PN结温度特性的冷端补偿电
路,但由于热电偶的输出电压极小,硬件电路直接焊接对精度的影响极大,而且热电偶的温度补偿电路输出端需通
过放大电路才能测得,其中有许多干扰和波动,这使得本文输出的电压不够准确并且有一种无序感。
  在经过一系列探索后,所以最后采用硬刷电路板和MAX6675来进行温度测量。根据目前的实验数据采集,完全可
以实现对0~80℃范围水温的测量,并且精度控制在0.7℃左右。
  由于第一次接触Atmega128单片机和K型热电偶,在使用这两种元件的时候出了很多问题。Atmega128单片机初次
使用烧录测试程序时由于熔丝位配置不正确,程序烧进去但是怎么也不出程序可以达到的效果。经过几天的研究,
上网查资料,找实例,最终完成了对熔丝位的正确配置,程序最终烧录成功。在编写Atmega128单片机程序的时候,
因为以前单片机只用过51系列,初步接触过ARM时,因为完全没用过AVR类型的单片机,编程时在I/O口的设置中遇到
了很大的麻烦,Atmega128单片机不像51单片机可以直接对I/O口进行操作,Atmega128单片机使用I/O口时必须先对I
/O口进行初始化,设定所用I/O口的工作状态,是输入还是输出,而且Atmega128单片机不像51可以直接进行位操
作,必须通过BIT()函数移位进行位操作。以上这些问题在Atmega128的使用过程中对我产生了很大的困扰,不过值
得庆幸的是这些问题到最后都克服了,最终成功完成了程序的编写。
在整个毕业设计过程中:
  通过完成一次课题的过程,从选题,调研,设计,实验再到完成报告等方面第一次体会到了科研的感觉;学会
了MAX6675芯片、LCD1602的使用方法,和Atmega128单片机的简单应用;了解了K型热电偶的工作原理,和其冷端补
偿的相关方法;学会了使用Visio软件来画系统的结构图、流程图和实验的电路图;并且更一步熟悉了Proteus仿真
软件的操作。将所学应用于解决实际问题,在本次设计中针对冷端补偿的问题,先后尝试了几种补偿方法,可以说
体验了一次不断辩证的探索的过程。
7.2 展望
  温度检测不论是在工业、农业以及家用中发挥着越来越重的作用。随着工业的发展,生产效率的不提高,对温
度检测的要求也越来越高。在超高温和超低温的测量方面,尤其是在液化气体方面的超低温检测需求非常迫切;在
测量对象上,温度检测技术的检测对象将会由点发展到测量线、面甚至于立体对象。
  未来的温度测量技术将会更加数字化、标准化、智能化、实用化的方向发展,新产品要集检测、判断等功能于
一体。工业的发展对新材料的使用会开发出一系列新的温度传感器,如近些年开发的碳化硅薄膜热敏电阻温度传感
器等。
相信不久的将来,测温技术将会越来越先进,越来越精确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值