NTC热敏电阻采集温度-单片机通用模板

news2025/1/23 11:58:15

NTC热敏电阻采集温度-单片机通用模板

  • 一、NTC热敏电阻转换温度的原理
  • 二、AT104Tem.c的实现
  • 三、AT104Tem.h的实现

一、NTC热敏电阻转换温度的原理

  • ①NTC热敏电阻会随着温度的升高,电阻值R逐渐降低;
  • ②硬件搭建电阻分压电路采集ADC逆推热敏电阻当前的阻值,然后根据阻值查表即可得出温度;
    在这里插入图片描述

二、AT104Tem.c的实现

#include "at104Tem.h"

u16	code TemperTable[]={
0x022D,  //0
0x0246,  //1
0x0260,  //2
0x027B,  //3
0x0296,  //4
0x02B2,  //5
0x02CF,  //6
0x02ED,  //7
0x030B,  //8
0x032A,  //9
0x034A,  //10
0x036A,  //11
0x038B,  //12
0x03AD,  //13
0x03D0,  //14
0x03F3,  //15
0x0417,  //16
0x043B,  //17
0x0460,  //18
0x0486,  //19
0x04AC,  //20
0x04D2,  //21
0x04F9,  //22
0x0521,  //23
0x0549,  //24
0x0571,  //25
0x0599,  //26
0x05C2,  //27
0x05EB,  //28
0x0615,  //29
0x063E,  //30
0x0668,  //31
0x0692,  //32
0x06BC,  //33
0x06E6,  //34
0x0710,  //35
0x073A,  //36
0x0763,  //37
0x078D,  //38
0x07B7,  //39
0x07E0,  //40
0x0809,  //41
0x0832,  //42
0x085B,  //43
0x0884,  //44
0x08AC,  //45
0x08D3,  //46
0x08FB,  //47
0x0922,  //48
0x0948,  //49
0x096F,  //50
0x0994,  //51
0x09BA,  //52
0x09DE,  //53
0x0A02,  //54
0x0A26,  //55
0x0A49,  //56
0x0A6C,  //57
0x0A8E,  //58
0x0AAF,  //59
0x0AD0,  //60
0x0AF1,  //61
0x0B10,  //62
0x0B2F,  //63
0x0B4E,  //64
0x0B6C,  //65
0x0B89,  //66
0x0BA6,  //67
0x0BC2,  //68
0x0BDD,  //69
0x0BF8,  //70
0x0C13,  //71
0x0C2D,  //72
0x0C46,  //73
0x0C5E,  //74
0x0C76,  //75
0x0C8E,  //76
0x0CA5,  //77
0x0CBB,  //78
0x0CD1,  //79
0x0CE6,  //80
0x0CFB,  //81
0x0D0F,  //82
0x0D23,  //83
0x0D36,  //84
0x0D49,  //85
0x0D5B,  //86
0x0D6D,  //87
0x0D7F,  //88
0x0D8F,  //89
0x0DA0,  //90
0x0DB0,  //91
0x0DBF,  //92
0x0DCF,  //93
0x0DDD,  //94
0x0DEC,  //95
0x0DFA,  //96
0x0E07,  //97
0x0E15,  //98
0x0E22,  //99
0x0E2E,  //100
0x0E3A,  //101
0x0E46,  //102
0x0E52,  //103
0x0E5D,  //104
0x0E68,  //105
0x0E72,  //106

0x0182,  //107
0x018C,  //108
0x0197,  //109
0x01A1,  //110
0x01AC,  //111
0x01B7,  //112
0x01C2,  //113
0x01CE,  //114
0x01D9,  //115
0x01E5,  //116
0x01F1,  //117
0x01FD,  //118
0x020A,  //119
0x0217,  //120
0x0223,  //121
0x0230,  //122
0x023E,  //123
0x024B,  //124
0x0259,  //125
0x0267,  //126
0x0275,  //127
0x0283,  //128
0x0292,  //129
0x02A0,  //130
0x02AF,  //131
0x02BE,  //132
0x02CD,  //133
0x02DD,  //134
0x02EC,  //135
0x02FC,  //136
0x030C,  //137
0x031D,  //138
0x032D,  //139
0x033E,  //140
0x034E,  //141
0x035F,  //142
0x0370,  //143
0x0382,  //144
0x0393,  //145
0x03A5,  //146
0x03B7,  //147
0x03C9,  //148
0x03DB,  //149
0x03ED,  //150
0x03FF,  //151
0x0412,  //152
0x0425,  //153
0x0437,  //154
0x044A,  //155
0x045E,  //156
0x0471,  //157
0x0484,  //158
0x0498,  //159
0x04AB,  //160
0x04BF,  //161
0x04D3,  //162
0x04E7,  //163
0x04FB,  //164
0x050F,  //165
0x0523,  //166
0x0538,  //167
0x054C,  //168
0x0560,  //169
0x0575,  //170
0x058A,  //171
0x059E,  //172
0x05B3,  //173
0x05C8,  //174
0x05DD,  //175
0x05F1,  //176
0x0606,  //177
0x061B,  //178
0x0630,  //179
0x0645,  //180
0x065A,  //181
0x066F,  //182
0x0684,  //183
0x0699,  //184
0x06AE,  //185
0x06C3,  //186
0x06D8,  //187
0x06ED,  //188
0x0702,  //189
0x0717,  //190
0x072C,  //191
0x0741,  //192
0x0756,  //193
0x076A,  //194
0x077F,  //195
0x0794,  //196
0x07A9,  //197
0x07BD,  //198
0x07D2,  //199
0x07E6,  //200
0x07FB,  //201
0x080F,  //202
0x0823,  //203
0x0837,  //204
0x084B,  //205
0x085F,  //206
0x0873,  //207
0x0887,  //208
0x089B,  //209
0x08AE,  //210
0x08C2,  //211
0x08D5,  //212
0x08E8,  //213
0x08FC,  //214
0x090F,  //215
0x0922,  //216
0x0934,  //217
0x0947,  //218
0x095A,  //219
0x096C,  //220
0x097E,  //221
0x0991,  //222
0x09A3,  //223
0x09B5,  //224
0x09C7,  //225
0x09D8,  //226
0x09EA,  //227
0x09FB,  //228
0x0A0C,  //229
0x0A1D,  //230
0x0A2E,  //231
0x0A3F,  //232
0x0A50,  //233
0x0A60,  //234
0x0A71,  //235
0x0A81,  //236
0x0A91,  //237
0x0AA1,  //238
0x0AB1,  //239
0x0AC0,  //240
0x0AD0,  //241
0x0AE0,  //242
0x0AEF,  //243
0x0AFE,  //244
0x0B0D,  //245
0x0B1C,  //246
0x0B2A,  //247
0x0B38,  //248
0x0B47,  //249
0x0B55,  //250
0x0B63,  //251
0x0B71,  //252
0x0B7F,  //253
0x0B8D,  //254
0x0B9A,  //255
0x0BA7,  //256
0x0BB4,  //257
0x0BC1,  //258
0x0BCE,  //259
0x0BDB,  //260
0x0BE8,  //261

};

TemTypedef Tem;

//=============================================================================
//函数名称:CT0FloatHz
//输	入:无
//输	出:无
//功	能:CT0高阻态,CT1低电平
//=============================================================================
void CT0FloatHz(void)
{
	CT0Clo();
 	CT1Open();
	P3MODH &= 0xC3;
	P3MODH |= 0x18;			// P36高阻态 P35 输出低电平	
}

//=============================================================================
//函数名称:CT1FloatHz
//输	入:无
//输	出:无
//功	能:分压切换为680R+51k
//=============================================================================
void CT1FloatHz(void)
{
	CT1Clo();
 	CT0Open();
	P3MODH &= 0xC3;
	P3MODH |= 0x24;			// P35高阻态 P36 输出低电平	
}

//=============================================================================
//函数名称:F_TemperADCWork
//输	入:无
//输	出:无
//功	能:获取温度数据
//=============================================================================
void F_TemperADCWork(void)
{
	//u8 TemSumCount=4;
	u16 i=0;
	u16 AdcSum=0,AdcAvr=0;
	CT1FloatHz();
	nopDelay(2500);
	AdcAvr = getChannelVal(AD11);
	CT0Clo();
	Tem.InTmp = 0;
	
	for(i=0;i<=107;i++)
	{	
		if(AdcAvr>=TemperTable[i])	Tem.InTmp++;
		else	
			break;
	}
	
	if(Tem.InTmp>=107)	//Tem.InTmp=50;
	{
		CT0FloatHz();
		AdcSum=0;
		nopDelay(2500);
		AdcAvr = getChannelVal(AD11);
		CT1Clo();
		Tem.InTmp = 107;
		
		for(i=107;i<261;i++)
		{	
			if(AdcAvr>=TemperTable[i])	Tem.InTmp++;
			else	
				break;
		}
		if(Tem.InTmp>=260)	Tem.InTmp=260;
	}	

	//TemperatureCompensation();	//温度补偿
	//Tem.InFah=Tem.InTmp*1.8+32;	//华氏度转换

}
  • ①根据阻值表和分压计算出ADC_AT引脚的电压,再根据参考电阻逆推出ADC数值;
  • ②测量温度0 ~ 260℃,阻值跨度较大,可通过修改分压电阻的从而提高温度的精度。CT0低电平,CT1高阻态测量0 ~ 106℃范围内的温度,如超出范围控制CT0高阻态,CT1低电平测量107~261℃的温度(切换引脚注意延时给C1电容充电);
  • ③非温度测量周期CT0、CT1设置高阻态进行低功耗处理;

三、AT104Tem.h的实现

#ifndef	__AT104TEM_H__
#define	__AT104TEM_H__

#include "board.h"

sbit CT0IO  = P3^6;
sbit CT1IO  = P3^5;

#define CT0Open()	(CT0IO = 0)
#define CT0Clo()	(CT0IO = 1)
#define CT1Open()	(CT1IO = 0)
#define CT1Clo()	(CT1IO = 1)

typedef struct
{
	//u16 AdcSum;
	//u16 AdcAvr;
	//s16 InTmp;
	//s16 InFah;
	u16 InTmp;	

}xdata TemTypedef;

extern TemTypedef Tem;
extern void F_TemperADCWork(void);


#endif

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1600900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线上频繁fullgc问题-SpringActuator的坑

整体复盘 一个不算普通的周五中午&#xff0c;同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看&#xff0c;很明显的问题就是内存不足&#xff0c;疯狂无效gc。而且结合arthas和gc日志查看&#xff0c;老年代打满了&#xff0c;gc不了一点。既然问题是内存问题&…

[html]一个动态js倒计时小组件

先看效果 代码 <style>.alert-sec-circle {stroke-dasharray: 735;transition: stroke-dashoffset 1s linear;} </style><div style"width: 110px; height: 110px; float: left;"><svg style"width:110px;height:110px;"><cir…

新零售门店、商品、会员管理指标体系总览

新零售&#xff0c;旨在打破传统零售业的边界&#xff0c;引入先进科技和数字化手段&#xff0c;通过整合线上线下渠道&#xff0c;全面提升用户体验&#xff0c;并实现更智能、高效、个性化的零售运营模式。这一模式不仅仅关注销售产品&#xff0c;更注重构建全方位的购物生态…

SpringBoot整合minio服务

这里我选用的是JDK1.8 SpringBoot2.3.12.RELEASE 一、导入依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.2</version> </dependency> 二、导入工具类 注意&#xff1a;需要在…

eclipse中tomcat环境配置,2024年最新Web前端面试选择题

先自我介绍一下&#xff0c;小编浙江大学毕业&#xff0c;去过华为、字节跳动等大厂&#xff0c;目前阿里P7 深知大多数程序员&#xff0c;想要提升技能&#xff0c;往往是自己摸索成长&#xff0c;但自己不成体系的自学效果低效又漫长&#xff0c;而且极易碰到天花板技术停滞…

【位运算 子集状态压缩】982按位与为零的三元组

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…

IP协议如何进行地址管理?

如今&#xff0c;IP协议有两个版本&#xff0c;分别是IPv4和IPv6&#xff0c;IPv4是目前主要应用的版本。IPv4的IP地址是以4个字节的数字来表示的&#xff0c;比如 127.0.0.1。因此&#xff0c;IPv4所能表示IP地址的个数是2^32次方&#xff0c;也就是42亿多个&#xff0c;看起来…

当全连接队列满了,tcp客户端收到服务端RST信令的模拟

当tcp服务端全连接队列满了后&#xff0c;并且服务端也不accept取出连接&#xff0c;客户端再次连接时&#xff0c;服务端能够看到SYN_RECV状态。但是客户端看到的是ESTABLISHED状态&#xff0c;所以客户端自认为成功建立了连接&#xff0c;故其写往服务端写数据&#xff0c;发…

大数据平台搭建2024(三)

三&#xff1a;HBase安装 提前上传hbase安装包至虚拟机 1 上传、解压 tar -zxvf hbase-2.0.0-alpha2-bin.tar.gz -C /hadoop2 修改配置文件 在/hadoop/hbase-2.0.0-alpha2-bin/conf文件夹里 vi /hadoop/hbase-2.0.0-alpha2/conf/hbase-env.sh修改hbase-env.sh文件 export…

【单例模式】饿汉式、懒汉式、静态内部类--简单例子

单例模式是⼀个单例类在任何情况下都只存在⼀个实例&#xff0c;构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例&#xff0c;对外提供⼀个静态公有⽅法获取实例。 目录 一、单例模式 饿汉式 静态内部类 懒汉式 反射可以破坏单例 道高一尺魔高一丈 枚举 一、单例…

【Conda基础命令】使用conda创建、查看、删除虚拟环境及可能的报错处理

文章目录 前言&#xff08;1&#xff09; 在默认路径下创建一个新的虚拟环境&#xff08;2&#xff09; 查看已有的虚拟环境&#xff08;3&#xff09; 删除已有的虚拟环境&#xff08;谨慎操作&#xff09;&#xff08;4&#xff09;激活虚拟环境&#xff08;5&#xff09;退出…

AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路

​导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 刚刚&#xff0c;李飞飞团队发布《2024年人工智能指数报告》&#xff1a;10大趋势&#xff0c;揭示AI大模型的“喜”与“忧” 摘…

ubuntu 设置 root 用户密码,创建新用户并赋权限

ubuntu 设置 root 用户密码&#xff0c;创建新用户并赋权限 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用&#xff0c; 安装 Ubuntu-20.04 系统&#xff0c;新安装好的系统&#xff0c;设置用户名密码时&#xff0c; root 用户密码默认为空&#xff0c;这时需要设置…

《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-05-软件可靠性测试

文章目录 1. 概述2. 定义软件运行剖面2.1 软件的使用行为建模2.2 输入域分层2.3 弧上的概率分配2.4 其他注意点 3. 可靠性测试用例设计4. 可靠性测试的实施4.1 测试前检查4.2 注意点4.2 可靠性测试的难点1&#xff09;失效判断的主观性2&#xff09;计算的错误结果不易被发现 4…

企业微信主体的修改方法

企业微信变更主体有什么作用&#xff1f;当我们的企业因为各种原因需要注销或已经注销&#xff0c;或者运营变更等情况&#xff0c;企业微信无法继续使用原主体继续使用时&#xff0c;可以申请企业主体变更&#xff0c;变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

【教程】ubuntu20.04 下配置 Charm-crypto 0.5 实验环境

目录 前言先决条件基本依赖安装准备好 gcc&#xff0c;make 和 perl准备好 m4&#xff0c;flex&#xff0c;bison 和 libssl-dev安装 Python3.x&#xff0c;pip3 和 pyparsing 安装 OpenSSL安装 GMP5.x安装 PBC安装 Charm-crypto5.0安装开发环境检验 Charm-crypto5.0 安装成功参…

【高端电流检测IC储能产品应用方案】耐压45V侧轨的电流检测芯片FP137 应用于电脑电源,开关电源以及多口快充充电器,户外移动电源,适配器,电池充电器等

近年来&#xff0c;随着电子产品的飞速发展&#xff0c;对电流检测精度和可靠性的要求也越来越高。特别是在电脑电源、开关电源以及多口快充充电器、户外移动电源、适配器、电池充电器等领域&#xff0c;对电流检测技术的需求更是日益增长。 电流检测芯片是一种关键的电子元器…

异地组网如何安装?

【天联】是一款强大的异地组网安装工具&#xff0c;可以帮助企业实现远程设备的统一管理和协同办公。以下是【天联】可以应用的一些场景&#xff1a; 零售、收银软件应用统一管理&#xff1a;【天联】可以结合医药、餐饮、商超等零售业的收银软件&#xff0c;实现异地统一管理。…

企业邮箱迁移是什么?如何通过IMAP/POP协议进行邮箱迁移?

使用公司邮箱工作的过程中&#xff0c;公司可能遇到公司规模的扩大或技术架构升级&#xff0c;可能要换公司邮箱。假如马上使用新的公司邮箱&#xff0c;业务处理要被终断。企业邮箱转移是公司更换邮箱不可或缺的一步&#xff0c;不仅是技术操作&#xff0c;更是企业信息安全、…

【机器学习300问】71、神经网络中前向传播和反向传播是什么?

我之前写了一篇有关计算图如何帮助人们理解反向传播的文章&#xff0c;那为什么我还要写这篇文章呢&#xff1f;是因为我又学习了一个新的方法来可视化前向传播和反向传播&#xff0c;我想把两种方法总结在一起&#xff0c;方便我自己后续的复习。对了顺便附上往期文章的链接方…