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_PPGPIO_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_16BitAutoReloadNoMaskinit.TIM_ClkSource = TIM_CLOCK_1T;	//时钟源		TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Extinit.TIM_ClkOut = DISABLE;		//可编程时钟输出,	ENABLE,DISABLE/*24MHz = 2400000024000000 / 1000 = 24000(每毫秒震动的次数)65535 - (24000 * 2) = 65535 - 48000 = 17535(装载初值)*/init.TIM_Value = 65536UL - (MAIN_Fosc / (hz_value * 2));		//装载初值 0~65535init.TIM_Run = ENABLE;		//是否运行		ENABLE,DISABLETimer_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,7Timer_config(hz1[i]);delay_ms(250);delay_ms(250);delay_ms(250);delay_ms(250);}}
}

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

六、总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HNCTF_RE复现(一)

baby_python hnctf.yuanshen.life:33276 网页打不开&#xff0c;只能 nc 连接远程服务器。 运行没有回显 利用pickletools库进行反编译为字节码&#xff08;不知道为什么&#xff09; # Python 3.10.12 from pickle import loads import pickletools main b"\x80\x04ct…

医学科技查新中对查新点的撰写方法!附案例讲解!

我国的科技查新工作最早是从医学领域开始的&#xff0c;始于1985年中国科学院医学情报所&#xff0c;后来逐步发展到工、农等其 他各个领域。医学科技查新包括立项查新和成果查新两个部分&#xff0c;其中医学立项查新&#xff0c;它是指在医学科研项目申报开题之前&#xff0c…

策略模式详解

策略模式 1 概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿&#xff0c;开发需要选择一款开发工具&#xff0c;当然可以进行代码开发的工具有很多&#xff0c;可以选择Idea进…

直播卖券有妙招:实景ai无人直播系统帮助商家自动化团购直播!

在数字化浪潮席卷的今天&#xff0c;直播卖券已成为商家推广和营销的重要手段。然而&#xff0c;如何高效、精准地利用直播卖券&#xff0c;让每一位观众都能沉浸在购物的乐趣中&#xff0c;成为商家们迫切需要解决的问题。幸运的是&#xff0c;实景AI无人直播系统应运而生&…

【刷题篇】二分查找(二)

文章目录 1、山脉数组的峰顶索引2、寻找峰值3、寻找旋转排序数组中的最小值4、LCR 点名 1、山脉数组的峰顶索引 符合下列属性的数组 arr 称为 山脉数组 &#xff1a; arr.length > 3 存在 i&#xff08;0 < i < arr.length - 1&#xff09;使得&#xff1a; arr[0] &l…

【错题集-编程题】空调遥控(二分 / 滑动窗口)

牛客对应题目链接&#xff1a;空调遥控 (nowcoder.com) 一、分析题目 1、滑动窗口 先排序&#xff0c;然后维护窗口内最大值与最小值的差在 2 * p 之间&#xff08;max - min&#xff09;。 2、二分查找 先排序&#xff0c;然后枚举所有的温度&#xff0c;⼆分出符合要求的…

李宏毅-Self-attention机制详解

原视频链接&#xff1a;attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理&#xff0c;输入都可以看作是一个向量&#xff0c;输出是一个数值或类别。然而&#xff0c;若输入是一系列向量&#xff0c;长度可能会不同&#xff0c;例如把句子里的…

手机自动化操作:uiautomator

更多精彩内容在公众号。 前面介绍的adb方法都不好实现代码自动化控制&#xff0c;如果想要实现代码自动化控制的话就要用到uiautomator这个工具 UiAutomator是一个用于Android平台的自动化测试框架。它允许开发人员编写自动化测试脚本来模拟用户在Android设备上的操作&#xf…

回归的无分布预测推理

摘要 我们利用保形推理&#xff0c;开发了回归中无分布预测推理的一般框架。所提出的方法允许使用回归函数的任何估计量构建响应变量的预测带。所得的预测带在标准假设下保留了原始估计量的一致性&#xff0c;同时保证了有限样本边际覆盖&#xff0c;即使这些假设不成立。我们…

Unity Mirror 从入门到入神(一)

Mirror从入门到成神 文章目录 Mirror从入门到成神简介NetworkClientRegisterPrefabConnect (string address)Disconnect ()activeactiveHost NetworkServerSpawn 简介 Mirror是一个unity网络同步框架&#xff0c;基于MonoBehaviour生命周期的回调的基础上进行数值的同步&#…

文本三剑客-awk

一、awk的介绍 1.1awk的简介 AWK 是一种处理文本文件的语言&#xff0c;是一个强大的文本分析工具 可以在无交互的模式下实现复杂的文本操作 相较于sed常作用于一整个行的处理&#xff0c;awk则比较倾向于一行当中分成数个字段来处理&#xff0c;因为awk相当适合小型的文本…

SQL已知2商品的总价,求商品的数量

已知商品1和2价格&#xff0c;求商品1的数量&#xff08;商品2的数量自动计算&#xff09;&#xff0c;使得商品总价小于并最接近目标总价的值&#xff1b; 解决&#xff1a; 使用MySQL数据库&#xff1a; -- 创建表 CREATE TABLE products (price_1 INT,price_2 INT,target_p…