有温度传感器的风机控制系统C语言,基于AT89S51单片机和LM35温度传感器的温度采集显示...

本文主要是介绍有温度传感器的风机控制系统C语言,基于AT89S51单片机和LM35温度传感器的温度采集显示...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着电子和传感技术的快速发展,温度的测量和控制在民用、工业以及航空航天技术等领域,等到了广泛应用。小型的、低功耗的、廉价的、可靠性高的温度传感器引起了人们的广泛关注。在实际生产、生活等领域中,温度是环境因素不可或缺的一部分,对温度进行及时精确的控制和检测显得尤为重要。本文基于AT89S51单片机,采用LM35温度传感器,设计了一种灵敏度较高,抗干扰能力强,工作稳定可靠的温度采集显示系统。

1、系统结构及工作原理

温度采集显示系统电路由温度采集模块、A/D转换模块、单片机控制模块、数码管显示模块和下载模块组成。电路工作原理是:首先由LM35温度传感器采集外界环境的温度,经LM358放大10倍后以电压形式输入到A/D采样电路,由A/D转换器TLC549将温度的数字量值传送给单片机系统,再有单片机系统驱动数码管显示温度。本文设计的基于LM35的单片机温度采集显示系统的温度测量范围为 25℃ ~ 80℃温度采集显示系统电路是一个开环控制系统系统原理框图如图1示:

3fdc704de5cb0c18340fb6f2bded0f03.png

2、系统核心硬件电路设计

系统核心硬件电路设计主要包含温度采集模块的设计、A/D转换模块的设计、单片机控制模块的设计、数码管显示模块的设计和下载模块的设计。

2.1、采集模块的设计

传感器是信号输入的第一个环节,也是整个测试系统性能的关键环节之一,因此对传感器的正确选用显得尤为重要。在本系统中,温度采集模块的核心硬件采用LM35温度传感器,该器件有很高的工作精度和较宽的线性工作范围,其输出电压与摄氏温度线性成比例,温度每上升1℃,电压上升10ms。LM35无需外部校准,可以提供±1/4℃的常用室温精度。从经济适用等多方面考虑,系统采用LM35温度传感器和LM358放大电路进行温度采集模块的设计,设计原理图如图2 所示。图2中,经过LM35传感器采集后的微弱电压通过 LM358 放大电路放大10倍后送入单片机。

a411929c2fe1bccd7222451acc7fc9ae.png

2.2、/D 转换模块的设计

A/D转换模块的核心硬件采用 TLC549,它是CMOS串行的8位A/D转换器,该集成电路内置一个8位开关电容逐次逼近型ADC,A/D芯片转换时间为17us,支持电压为3V ~ 6V。TLC549 的使用只有输入/输出时钟,输入随着芯片选择(CS)的控制输入数据。TLC549的输入/输出时钟的输入频率高达1.1MHz。A/D转换模块的设计原理图,如图3所示:

d82706aa5503ee523255d002672def30.png

2、3 单片机控制模块的设计

8031芯片由于内部没有程序存储器,需要进行外部扩展,不仅占用空间大,而且电路复杂度增大。51系列微处理器基于简化的嵌入式控制系统结构,在个人PC机、自动控制、甚至军事领域都应有广泛,作为控制核心优点凸现。单片机控制模块的核心硬件采用AT89S51,该单片机是一种低功耗、高性能CMOS的8位微控制器,具有8K系统可编程Flash存储器,可读可写。具有在线编程的功能,能够在线调试软件使其与硬件匹配。系统通过单片机驱动数码管,使其显示所测温度。单片机控制模块的设计原理图,如图4所示。

5d00a95555bf6702a85144bf35ce4cab.png

2.4、数码管显示模块的设计

显示系统是单片机控制系统的重要组成部分,主要用于显示各种参数的值,便于工作人员及时掌握生产过程。数码管显示模块采用普通8为数码管,利用单片机驱动数码管显示所测量的温度。数码管显示模块的设计原理图,如图5所示:

d61d9615da2b382836bc4eb0edb0703c.png

2.5、下载模块的设计

下载模块可以实现单片机之间的单机通信、多机通信,以及与计算机之间的通信,本系统主要实现从计算机上下载程序到单片机上,从而驱动整个电路板的工作。下载模块的核心硬件采用串口MAX232和RS232,MAX232是TTL和RS232电平相互转换的芯片。单片机通过内部的通用异步接收/发送器

(UART)与MAX232进行通信。下载模块的设计原理图,如图6所示。

da17205d0dd04eb650f64ec9fda0b972.png

3、系统软件设计

系统软件设计采用C语言编程,模块化结构进行开发。该程序主要包括主函数、延时子函数、A/D转换子函数和温度显示子函数。其中,延时子函数和A/D转换子函数如图7-a所示,温度显示子函数和系统主函数如图7-b所示。

82badf76d8c07ca37d36c0f7b56d4354.png

4、系统性能测试

性能测试表明,在室内恒速移动、室温变化不明显。同样,在室外进行温度采集,变化也不是很明显。当用手指捂住芯片或采用或暖风机加热使得室。温快速发生变化,温度急剧上升。测试结果表明本系统响应时间短,灵敏度高。

5、结论

温度采集和控制系统在现代生活中应用的十分广泛。系统实现了温度的采集和显示功能,经过反复试验表明该系统具有响应时间短、抗干扰能力强、工作稳定可靠等特点,同时具有体积小和成本低廉的优势,具有很高的工程价值,在日常生活和学术研究等领域有着广泛的应用前景。本系统采集的温度范围为25℃~80℃之间,温度数值的精度为整数,下一步将研究如何采用频率检测控制技术来进一步提高温度测量精度和范围。同时,通过扩展后还可以用于温度测量、温度预警、控制为一体的多功能产品。

这篇关于有温度传感器的风机控制系统C语言,基于AT89S51单片机和LM35温度传感器的温度采集显示...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/392146

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,