k型热电偶检测温度c语言程序,[请教]普中51单片机与max6675芯片用k型热电偶检测温度的问题...

该博客分享了一段C语言程序,用于在普中51单片机上利用Max6675芯片进行K型热电偶温度检测。程序包括温度转换和数据显示,通过数码管展示读取到的温度值。
摘要由CSDN通过智能技术生成

附上程序:

#include "reg52.h"//头文件

#include "absacc.h"

#include "math.h"

#include "intrins.h"

#define uchar unsigned char //宏定义

#define uint unsigned int

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

sbit SO=P1^0;

sbit SCK=P1^1;

sbit CS=P1^2;

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

void delay(unsigned int i)

{

while(i--);

}

uint Re_Convert (void); //温度转换

void DigDisplay(); //温度显示

uchar qian=0,bai=0,shi=0,ge=0,xiao=0;

uint P_Temp;

float wendu;

uchar code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~F的值

uchar code xiaoshu[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //显示0~F的值(含小数点)

void main(void) //

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一篇关于MAX6675的K热电偶测温实验,见附件下载其源码和使用教程。热电偶实际上是一种能量转换器,它将热能转换为电能,用所产生的热电势测量温度,对于热电偶的热电势,应注意如下几个问题: 1、热电偶的热电势是热电偶工作端的两端温度函数的差,而不是热电偶冷端与工作端,两端温度差的函数; 2、热电偶所产生的热电势的大小,当热电偶的材料是均匀时,与热电偶的长度和直径无关,只与热电偶材料的成份和两端的温差有关; 3、当热电偶的两个热电偶丝材料成份确定后,热电偶热电势的大小,只与热电偶温度差有关;若热电偶冷端的温度保持一定,这时候的热电偶热电势仅是工作端温度的单值函数。 将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路。当导体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流。 根据热电偶测温原理,热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关,需要测量出冷端温度,从而才能准确地测量出真实的温度 可能感兴趣的项目设计:MAX6675+K热电偶测温实验,链接:https://www.cirmall.com/circuit/2537/detail?3 该设计通过SPI接口和USART将测得的温度数据发送到PC的串口助手,本文中使用到了以下模块: a)网购的一款MAX6675模块,包含K热电偶。 b)STM32 Nucleo F302R8开发板。 热电偶工作原理 两种不同成份的导体两端接合成回路,当两个接合点的温度不同时,在回路中就会产生电动势,这种现象称为热电效应,而这种电动势称为热电势。 热电偶就是利用热点效应原理进行温度测量的,其中,直接用作测量介质温度的一端叫做工作端(也称为测量端),另一端叫做冷端(也称为补偿端);冷端与显示仪表或配套仪表连接,显示仪表会指出热电偶所产生的热电势。 MAX6675工作原理 MAX6675MAXIM公司的K热电偶串行模数转换器,它能独立完成信号放大、冷端补偿、线性化、A/D转换及SPI串口数字化输出功能。 MAX6675内部集成有冷端补偿电路;带有简单的3位串行SPI接口;可将温度信号转换成12位数字量,温度分辨率达0.25℃;内含热电偶断线检测电路。冷端补偿的温度范围-20℃~80℃,可以测量0℃~1023.75℃的温度MAX6675为SO-8脚封装,工作电压为+5V直流电压,功耗为47.1mW,电流为50mA,适用于体积不大,不利散热的装置条件下使用,其引脚图如图2所示。其中SO为SPI串行输出端口引脚; CS为片选信号;SCK为串行时钟输入;T+、T-分别接热电偶的测量端和冷端。
这段代码是通过STM32的SPI2接口与MAX6675热电偶温度传感器进行通信,以测量K热电偶温度MAX6675是一种数字式热电偶温度传感器,通过SPI接口与STM32微控制器进行通信。 首先,在函数MAX6675_GPIO_Init中,配置了SPI2的引脚和相关参数。GPIO_InitStructure结构体用于配置GPIO引脚的模式、速度和复用功能。SPI_InitStructure结构体用于配置SPI的工作模式、数据大小、时钟极性和相位等参数。RCC_APB2PeriphClockCmd函数用于使能GPIOB的时钟。 接下来,在函数TEMP_ReadReg中,通过控制SCK和CS引脚的电平变化以及读取SO引脚的状态,逐位读取16位的温度值。具体的操作过程如下: 1. 置CS为高电平,SCK为低电平,进行一些延时。 2. 置CS为低电平,开始传输数据。 3. 循环读取16位数据: a. 左移Temp_2一位。 b. 置SCK为高电平,进行一些延时。 c. 判断SO引脚状态,如果为高电平,则将Temp_2最低位置为1,否则为0。 d. 置SCK为低电平,进行一些延时。 4. 置SCK为低电平,进行一些延时。 5. 置CS为高电平,进行一些延时。 6. 对Temp_2进行一些位操作,将其右移4位,以获得实际的温度值。 7. 返回温度值Temp_2。 需要注意的是,这段代码中的引脚操作和寄存器配置是基于特定的STM32F10x系列微控制器和MAX6675热电偶温度传感器,实际使用时需要根据具体的硬件和接口配置进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值