STC8增强型单片机开发【热敏电阻】

目录

一、引言

二、热敏电阻概述

三、STC8增强型单片机简介

四、基于STC8单片机的热敏电阻测温系统

五、热敏电阻测温系统的优化与扩展

提高测量精度

扩展系统功能

六、 温度计算步骤

通过ADC采样计算出热敏电阻位置的电压

通过欧姆定律计算热敏电阻的阻值

通过阻值查表得到温度

七、代码实现

六、总结


一、引言

在电子测温技术中,热敏电阻以其价格低廉、灵敏度高和响应速度快等特点,得到了广泛的应用。而STC8增强型单片机作为一款功能强大的微控制器,具有高性能、低功耗和易用性等优点,非常适合用于热敏电阻的数据采集和温度控制系统中。本文将探讨如何使用STC8增强型单片机来开发基于热敏电阻的温度测量系统。

二、热敏电阻概述

热敏电阻是一种半导体电阻器,其阻值会随着温度的变化而显著变化。根据阻值随温度变化的特性,热敏电阻可分为正温度系数(PTC)和负温度系数(NTC)两种。其中,NTC热敏电阻在温度升高时阻值减小,应用更为广泛。

三、STC8增强型单片机简介

STC8系列增强型单片机是一款高性能、低功耗的8位微控制器,具有高速的运算能力和丰富的外设接口,如ADC(模数转换器)、GPIO(通用输入输出)、UART(通用异步收发传输器)等。这些特性使得STC8单片机成为开发温度测量系统的理想选择。

四、基于STC8单片机的热敏电阻测温系统

  1. 硬件设计
    • 将热敏电阻与STC8单片机的ADC接口连接,以便将热敏电阻的阻值转换为数字信号。
    • 设计适当的电源电路和滤波电路,以确保热敏电阻的稳定工作和准确测量。
    • 根据需要,可以添加显示模块(如LCD显示屏)或通信模块(如无线模块),以实现温度数据的显示和远程传输。
  2. 软件编程
    • 初始化STC8单片机的ADC模块,并设置合适的采样率和分辨率。
    • 编写程序以定期读取ADC接口上的数字信号,该信号反映了热敏电阻的阻值。
    • 根据热敏电阻的阻值与温度之间的对应关系(通常通过查表或拟合曲线获得),将读取的阻值转换为对应的温度值。
    • 将温度值进行处理和显示,或根据需要将其发送给远程设备。

五、热敏电阻测温系统的优化与扩展

  1. 提高测量精度
    • 可以通过增加ADC的采样率和分辨率,以及优化滤波电路,来提高温度测量的精度。
    • 也可以采用多点测量和平均算法,以减少环境噪声和随机误差的影响。
  2. 扩展系统功能
    • 可以添加温度控制模块,如加热或制冷设备,以实现对温度的自动调节。
    • 可以通过无线通信模块将温度数据发送给远程设备,以实现远程监控和控制。
    • 还可以将温度数据与其他传感器数据(如湿度、光照等)进行融合,以实现更复杂的环境监测和控制功能。

六、 温度计算步骤

通过ADC采样计算出热敏电阻位置的电压

    • ADC_Value就是通过ADC采样出来的的数值,范围是0-4096
    • V_ntc即为对应的电压值
通过欧姆定律计算热敏电阻的阻值

串联分压,电流不变。上面是热敏电阻ntc和10k电阻的电流等式,根据公式推导出热敏电阻的阻值计算公式:

通过阻值查表得到温度

根据阻值对照该热敏电阻提供的对照表,得到对应的温度值,下面是《热敏电阻与温度对照表》。

七、代码实现

以下是一个简单的示例代码,演示了如何在STC8增强型单片机上实现热敏电阻案例:

#include "STC8G_H_GPIO.h"
#include "STC8G_H_Delay.h"
#include "STC8G_H_Timer.h"
#include "STC8G_H_NVIC.h"

#define BUZZER	P00

//			 C`	   D`     E`   F`	  G`	A`	  B`    C``
u16 hz[] = {1047, 1175, 1319, 1397, 1568, 1760, 1976, 2093};

void GPIO_config(void) {
	GPIO_InitTypeDef	GPIO_InitStructure;		//结构定义
	GPIO_InitStructure.Pin  = GPIO_Pin_0;		//指定要初始化的IO,
	GPIO_InitStructure.Mode = GPIO_OUT_PP;	//指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
	GPIO_Inilize(GPIO_P0, &GPIO_InitStructure);//初始化
}

void Timer_config(u16 hz_value) {
	TIM_InitTypeDef init;
	init.TIM_Mode = TIM_16BitAutoReload;		//工作模式,  	TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
	init.TIM_ClkSource = TIM_CLOCK_1T;	//时钟源		TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
	init.TIM_ClkOut = DISABLE;		//可编程时钟输出,	ENABLE,DISABLE
	
	/*
		24MHz = 24000000
		
		24000000 / 1000 = 24000(每毫秒震动的次数)
	
		65535 - (24000 * 2) = 65535 - 48000 = 17535(装载初值)
	*/
	
	init.TIM_Value = 65536UL - (MAIN_Fosc / (hz_value * 2));		//装载初值 0~65535
	init.TIM_Run = ENABLE;		//是否运行		ENABLE,DISABLE

	Timer_Inilize(Timer0, &init);
	
	// 启用中断
	NVIC_Timer0_Init(ENABLE, Priority_0);
}

extern void timer0_callback() {
	// 当Timer触发中断函数时,调用此函数
	BUZZER = !BUZZER;
}

int main() {
	
	u8 i = 0;
	
	EA = 1;	// 打开总中断
	
	GPIO_config();
	
	Timer_config();
	
	// 拉高不响说明是无源蜂鸣器(2Hz~4kHz),无源蜂鸣器需要一定频率(20Hz~20kHz)的高低电平才能响
	//BUZZER = 1;

	while(1) {
	
		  for (i = 0; i <= 7; i++) {
			// i = 0,1,2,3,4,5,6,7
			Timer_config(hz1[i]);
			
			delay_ms(250);
			delay_ms(250);
			delay_ms(250);
			delay_ms(250);
		}
				
	}
}

以上代码所需库函数文件: 

六、总结

本文介绍了基于STC8增强型单片机开发热敏电阻测温系统的基本方法和步骤。通过合理的硬件设计和软件编程,可以实现对温度的精确测量和有效控制。在实际应用中,可以根据具体需求对系统进行优化和扩展,以满足不同场合下的温度测量和控制需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】常用指令、热键与权限管理

一、常用指令 &#xff08;1&#xff09;ls 功能&#xff1a;列出指定目录下的所有子目录与文件 用法&#xff1a;ls &#xff08;选项&#xff09; &#xff08;目录或文件名&#xff09; 常用选项&#xff1a; -a&#xff1a;列出目录下的所有文件&#xff0c;包括隐藏…

fastjson1.2.68对于文件操作的分析最全

fastjson1.2.68对于文件操作的分析 前言分析复制文件写入文件读取文件分析poc拓宽场景极限环境poc优化修改再次优化poc的分析 前言 这次分析也是分析了很久&#xff0c;因为每个链子都是自己去跟着分析了的&#xff0c;然后主要是去学习了一下怎么去挖链子 分析 前面漏洞复现…

TypeScript中的泛型(Generics)

TypeScript中的泛型&#xff08;Generics&#xff09; 在前面的几篇文章中&#xff0c;我们了解了TypeScript的类、接口和基本的数据类型系统。本文将重点介绍TypeScript中的泛型&#xff0c;这是一种强大的工具&#xff0c;它允许我们创建可重用的组件&#xff0c;同时保持类…

【Java学习笔记10 Java Web 应用——JSP

JSP(Java Script Pages)技术是一种网站开发技术&#xff0c;可以让Web开发人员快速、高效的开发出易于维护的动态网页。使用JSP技术开发的Web应用程序具有跨平台性&#xff0c;不需要修改程序&#xff0c;发布后即可在Windows、Linux等不同的操作系统中运行。 10.1 JSP技术概述…

申请免费通配符证书

通配符证书是一种 SSL/TLS 证书&#xff0c;可用于保护多个域&#xff08;主机&#xff09;&#xff0c;由域名字段中的通配符 (*) 指示。这种证书主要用于具有许多子域的组织。通配符证书对主域及其所有次级子域有效。 通配符证书和多域名证书的区别&#xff1a; 要注意的是…

webpack优化构建速度示例-合理配置loader的include exclude:

实际上&#xff0c;babel-loader 在 Webpack 配置中默认并不包含 exclude 和 include 选项的默认值&#xff0c;通常&#xff0c;为了优化构建性能&#xff0c;开发者会显式地设置 exclude 和 include 选项&#xff0c;以便 babel-loader 只处理必要的文件。 src/index.js impo…

Zookeeper and RPC dubbo

javaguide zookeeper面试题 Zookeeper 啥是Zookeeper干啥的 ZooKeeper 可以被用作注册中心、分布式锁&#xff1b; ZooKeeper 是 Hadoop 生态系统的一员&#xff1b; 构建 ZooKeeper 集群的时候&#xff0c;使用的服务器最好是奇数台。 启动ZK 下载安装解压 不过多赘述 我的…

Spring:了解@Import注解的三种用法

一、前言 在 Spring 框架中&#xff0c;Import 注解用于导入配置类&#xff0c;使得你可以在一个配置类中引入另一个或多个配置类&#xff0c;从而实现配置的模块化。这对于组织大型应用程序的配置非常有用&#xff0c;因为它允许你将配置分散到多个类中&#xff0c;然后再将它…

RAW转换和图像编辑工具:Capture One 23 Pro (win/mac)中文专业版

Capture One 23是一款功能强大的桌面版照片编辑软件&#xff0c;由丹麦PHASE ONE飞思数码公司开发。 以下是该软件的一些主要特点&#xff1a; 强大的RAW处理功能&#xff1a;Capture One 23支持多种品牌的相机和镜头&#xff0c;提供了丰富的RAW处理工具&#xff0c;包括曝光、…

RALL-E: Robust Codec Language Modeling with Chain-of-Thought Prompting for TTS

demo pageDetai Xin&#xff0c; tanxu微软 & 东大 & 浙大 abstract 使用CoT的思路&#xff0c;和Valle的框架&#xff0c;先实现LLM预测音素级别pitch/duration&#xff0c;然后预测speech token。 methods Prosody tokens as chain-of-thought prompts 和Valle一…

【JavaEE】Servlet

文章目录 一、Servlet 是什么二、如何创建Servlet程序1、创建项目2、引入依赖3、创建目录4、编写代码5、打包程序6、部署程序7、验证程序 一、Servlet 是什么 二、如何创建Servlet程序 1、创建项目 2、引入依赖 Maven 项目创建完后&#xff0c;会自动生成一个 pom.xml 的文…

独家|暴雨推出基于国产X86芯片的四路服务器

伴随着智慧计算时代的到来和企业数字化转型的深入&#xff0c;人工智能、大数据、虚拟化等创新技术在应用普及的过程中&#xff0c;也在不断地细分和深化&#xff0c;使得企业的业务系统日趋复杂&#xff0c;数据量、数据类型更加庞大&#xff0c;对计算平台的性能要求“水涨船…

Google I/O 2024:探索未来AI技术的无限可能

近日&#xff0c;Google I/O 2024大会圆满落幕&#xff0c;带给我们一场关于人工智能的盛宴。在这场大会上&#xff0c;Google推出了一系列令人激动的AI新功能和工具&#xff0c;让我们得以一窥未来的科技发展。今天&#xff0c;就让我来为大家总结一下这些亮点吧&#xff01; …

一键修复所有dll缺失,教大家解决丢失的dll文件

修复所有DLL&#xff08;动态链接库&#xff09;文件缺失的问题通常不可能通过单一的"一键修复"按钮来实现&#xff0c;因为DLL文件缺失可能由各种不同的原因导致&#xff0c;比如应用程序安装不正确、病毒感染、或系统文件损坏等。 使用内置的系统文件检查器&#x…

鸿蒙应用布局ArkUI【基础运用案例】

布局基础运用案例 平级导航的复合网格视图 平级导航的复合网格视图常出现在同时展示多种不同内容的界面。 例如&#xff0c;市场类应用作为典型的平级导航&#xff0c;其首页不同板块采用了不同布局能力。 标题栏与搜索栏&#xff1a;因元素单一、位置固定在顶部&#xff0c…

C++ 中重写重载和隐藏的区别

重写&#xff08;override&#xff09;、重载&#xff08;overload&#xff09;和隐藏&#xff08;overwrite&#xff09;在C中是3个完全不同的概念。我们这里对其进行详细的说明 1、重写&#xff08;override&#xff09;是指派生类覆盖了基类的虚函数&#xff0c;这里的覆盖必…

【JAVA SE】初识JAVA

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;JAVA 个人主页&#xff1a;Celias blog~ 目录 ​编辑 一、关于JAVA 1.1 JAVA语言简介 1.2 语言优势 1…

Patch-Wise Graph Contrastive Learning for Image Translation

Patch-Wise Graph Contrastive Learning for Image Translation 图像翻译中的逐块图对比学习 Chanyong Jung1, Gihyun Kwon1, Jong Chul Ye1, 2 Chanyong Jung&#xff0c;Gihyun Kwon&#xff0c;Jong Chul Ye 1, 2 Abstract 摘要 Patch-Wise Graph Cont…

Windows快捷命令

Windows 操作系统提供了大量的快捷命令&#xff0c;用于快速访问系统设置和管理工具。这些命令在各个版本的 Windows 中基本都适用&#xff0c;可以帮助用户快速进入各类管理工具&#xff0c;方便系统的配置和管理。如果你需要使用这些工具&#xff0c;只需按 Win R 键&#x…

win11快速安装mysql数据库系统

win11快速安装mysql数据库系统 1、下载 1.1 打开官网 1.2 向下滚动页面 1.3 进入下载选项 1.4 下载8.0.4 LTS 1.5 开始下载 1.6 下载中 2、解压 大家注意&#xff0c;此时解压后目录是没有data目录的。 3、数据库初始化 3.1 管理员身份打开CMD 开始菜单上&#xff0c;输入…