2.2 软件实现
温度测量是铝水平温度测量过程的最后一个环节,在系统测量完铝水平后,开始进行温度测量,这一部分程序作为一个独立的程序段,定时调用,主要包括MAX6675数据读取、开路判断、数据处理和码制转换等几个部分。程序流程如下:
下面给出MAX6675温度值读取程序设计:
温度值读取程序
位定义
CS BIT P1.0 ;数据输入
SCK BIT P1.1 ;片选
SO BIT P1.2 ;时钟
数据字节定义
DATAH DATA 40H ;读取数据高位
DATAL DATA 41H ;读取数据低位
TDATAH DATA 42H ;温度高位
TDATAL DATA 43H ;温度低位
CLR CS ;CS低电平,停止数据转换,输出数据D15
CLR CLK ;时钟置为低电平
MOV R7, #08H
RD_DATAH: ;读数据高位字节D15-D8
MOV C,SO ;读SO端数据
RLC A ;累加器左移一位
SETB SCK
NOP
CLR SCK
DJNZ R7,RD_DATA
MOV DATAH,A ;将数据高位移入缓冲区
MOV R7,#08H
RD_DATAL: ;读数据低位字节D7-D0
MOV C,SO ;读SO端数据
RLC A ;累加器左移一位
SETB SCK
NOP
CLR SCK
DJNZ R7,RD_DATAL
MOV DATAL,A ;将数据低位移入缓冲区
SETB CS ;CS高电平,停止数据输出,启动新的数据转换;数据转换子程序,将读得的16位数据转换为12位温度值,去掉无用的位
MOV A,DATAL
RLC A
MOV DATAL,A
MOV A,DATAH
RLC A ;整个数据位左移一位,去掉D15位
SWAP A ;将DATAH中的高低4位数据互换
MOV B,A ;数据暂存于B中
ANL A,#0FH ;得到温度数据高位字节部分D14 ~D11
MOV TDATAH,A ;将温度值高位字节保存
MOV A,B
ANL A,#0F0H ;得到温度数据低位字节部分D10 ~D7
MOV B,A
MOV A,DATAL ;
ANL A,#0FH ;得到温度数据低位字节部分D6 ~D3
ORL A,B ;合并的温度低位字节
MOV TDATAL,A ;将温度值低位字节保存
3 应用中注意的几个问题
在铝水平温度测量仪的设计和调试过程中遇到诸多问题,现将与MAX6675相关的几个问题和使用心得摘录如下,以供参考。
1)MAX6675芯片对电源噪声较为敏感,尽量将MAX6675布置在远离其他I/O芯片的地方。
2)MAX6675芯片T-必须接地,并使接地点尽可能接近GND脚,否则读出数据为无规律的乱码。
3)MAX6675是通过冷端补偿来校正周围温度变化的。该器件将周围温度通过内部的温度检测二极管转换为温度补偿电压,该器件内部电路将二极管电压和热电偶电压送到ADC中转换,以计算热电偶的热端温度。当热电偶的冷端与芯片温度相等时,MAX6675可获得最佳的测量精度。
因此在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,例如7805等带散热片的稳压器件。
4)尽量采用大截面积的热电偶导线,长距离传输时,可采用双绞线作为信号传输线。
5)根据应用场合的不同,可通过相应的数字滤波器进行数据处理,以提高所需要某一段测量数据的准确性。
4 结束语
MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等集中在一个芯片上解决,简化了铝水平温度测量仪中热电偶测温电路的设计,实际运行结果表明,该测温系统抗干扰能力强、结构简单、可靠性高,测量精度满足要求。因此,在基于微处理器的单片机嵌入式工业测温系统中,由MAX6675构成的单片热电偶测温解决方案,具有良好的实用价值。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@blueai.net.cn。
- 暂无反馈