有温度传感器的风机控制系统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

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)