找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4011|回复: 1
收起左侧

单片机蔬菜大棚温度感应系统,带源码仿真图

[复制链接]
ID:570856 发表于 2019-6-24 15:08 | 显示全部楼层 |阅读模式
如题 51单片机设计,内有文档代码解释

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
本文介绍的是一个由单片机构成的温度控制系统,主要用来提供测温的解决方案,同时还能实时监控温度变化趋势,以及报警功能。它利用STC89C52RC单片机,DS18B20,蜂鸣器报警电路和LCD1602来实现温度检测控制功能。温度检测是使用的DS18B20温度传感器,将检测得到的温度通过单片机单总线的协议读取并将其显示在LCD1602液晶屏上。除此之外,它还能通过按键设置温度的上限值,如果温度超过上限,则蜂鸣器报警,大大提高了系统的安全性。本文在后续章节详细介绍了系统的总体方案设计,硬件设计,软件设计等。

传感器主要大体经过了三个发展阶段:模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;智能温度传感器。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。

系统总体方案设计

温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。

2.1、传感器部分

方案一:采用热敏电阻,利用其感温效应,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂,一定程度上也增加了软件实现的难度。

方案二:在温度控制系统中,传统的测温方法是将模拟信号远距离采样进行A/D转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输、放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化,便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器STC89C52RC构成的温度测第一章总体设计方案4量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于STC89C52RC可以带多个DSB1820,可实现多点测量,轻松的组建传感器网络,本次设计用于大棚温度检测比较适合方便。

2.2、主控制部分

方案一:此方案采用PC机实现,它可在线编程,可在线仿真的功能,这让调试变得方便,且人机交互友好。但是PC机输出信号不能直接与DS18B20通信,需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦。

方案二:此方案采用STC89C52RC八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信,运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)实现温度数据采集,组成两级分布式温度测量的巡回检测系统,实现远程控制。另外STC89S51在农业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。

总体设计综上所述,温度传感器以及主控部分都采用第二方案。首先由温度传感器DS18B20采集温度数据,经单片机I/O模拟单总线读取后送入STC89C52RC单片机中进行运算处理,并LCD1602液晶显示当前温度,同时与键盘输入的设定温度值(上限)进行比较,由单片机控制是否发出报警信号。在整个过程中,温度始终都能得以显示。设定温度过程中显示设定温度值,以便于操作。

本系统的总体设计方框图如图2-1所示,它主要由五部分组成:

①主控制部分主芯片采用单片机STC89C52RC(包括时钟和复位电路);

②显示部分采用3位LED数码管以动态扫描方式实现温度显示;

③温度采集部分采用DS18B20温度传感器;

④按键输入部分主要功能是实现设定温度值的输入;

⑤人体红外传感器用来检测人体信息

DS18B20检测温度,将温度信息传送到单片机内,单片机检测到温度信号,对其进行处理,将处理得到的数据在LCD1602液晶上显示出来。可以通过按键来设置温度的上下限值,当温度超过范围时,单片机控制蜂鸣器报警,同时当人体红外传感器检测到人体时,也会触发蜂鸣器报警。

图2-1 系统总体设计框图


3、系统硬件设计

硬件电路部分包括51单片机主控模块的设计,单片机最小系统的设计,DS18B20温度检测模块,按键设置模块,蜂鸣器报警模块,LCD1602液晶显示模块。各模块电路的详细介绍将在后续给出。

主程序流程图设计

如下图4-2所示是系统主程序流程图。

图4-2 主程序流程图

如图4.2所示,程序开始后,进行初始化,初始化包括LCD1602液晶初始化,DS18B20初始化;然后在LCD1602液晶上显示固定信息,再给DS18B20温度传感器发送读取数据命令,则模块开始测温。然后进入主循环,显示当前温度,再进入按键设置子程序设置当前温度上限值,最后比较当前温度是否超过范围,若是则蜂鸣器报警,否则不报警。

4.3各子程序设计

子程序设计包括按键设置子程序、DS18B20温度检测子程序、LCD1602液晶显示子程序、。各子程序的具体介绍将在如下部分详细给出。

4.3.1按键设置子程序

图4-3 按键设置子程序流程图

如图4-3所示为按键设置子程序流程图,程序当分别按下按键K1、K2时,则上限值Tmpup加1和减1,然后结束,Tmpup表示温度上限,程序当分别按下按键K3、K4时,则上限值Tmpdowm加1和减1,然后结束,Tmpdowm表示温度下限。


如上为DS18B20读取温度子函数,read_18b20()是用来读取DS18B20温度传感器中的一字节数据,通过DQ数据总线时序来实现。read_temp()是用来处理从DS18B20读取的数据并转换成温度值的函数,通过调用read_temp()函数得到两字节温度数据,分为高8位和低8位,将其整合在一起得到温度完整的数据。


如上LCD_Init()函数为1602液晶初始化程序,write_com(0x38)用来设置初始化显示模式为0x38,write_com(0x0c)用来显示开和光标设置,write_com(0x06)用来显示光标移动设置。Wite_com()用来写命令,write_data()用来写数据,write_string()则用来给1602写入显示的字符串数据。

如上为按键设置子程序,当按键KEY0或KEY1、KEY2或KEY3按下时LCD显示的设置上限值也会随之加减,改变报警温度上限,从而实时判断当前温度,当温度超出范围则蜂鸣器报警。

附录一 系统原理图


全部资料51hei下载地址:

设计方案.7z (666.59 KB, 下载次数: 65)



回复

使用道具 举报

ID:586438 发表于 2019-8-6 15:54 | 显示全部楼层
前来学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表