基于单片机的温湿度检测控制系统设计.doc
《基于单片机的温湿度检测控制系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的温湿度检测控制系统设计.doc(30页珍藏版)》请在咨信网上搜索。
各专业完整优秀毕业论文设计图纸 西安科技大学 电子设计大赛(设计) 题 目 基于单片机的温湿度监测系统设计 指导教师 学生姓名 二O一四年五月二十日 开题报告书 2014年5月20日 院(系) 通信与信息工程学院 姓 名 学 号 200811705106 论文(设计)题目 基于单片机的温湿度监测系统设计 一、选题目的和意义 环境的监测与控制在工业、农业、国防等行业有着广泛的应用。由于应用的场合不同监测对象的不同,其系统设计也是千差万别。在实际生活中此类系统有着广泛的应用,室温环境检测系统中温度和湿度是两个重要的显示和分析指标,必须定期抽样检查室温环境温度和湿度,以便采取相应的措施。89C51单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度检测控制系统的实例也很多。使用89C51单片机能够实现温湿度全程的自动检测,而且89C51单片机易于学习、掌握,性价比高。使用89C51型单片机设计温湿度检测系统,可以及时、精确的反映室内的温度以及湿度的变化。当其超过设定范围时报警提醒人进行控制。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境。 二、本选题在国内外的研究现状和发展趋势 目前国内外的温湿度检测使用的温湿度检测元件种类繁多、应用范围也较广泛加之单片机和大规模集成电路技术的不断提高,出现了高性能、高可靠性的单片数据采集系统。基于单机片的温湿度监测控制系统的设计研究较少。随着经济和社会的不断发展,人们对自己的生活环境越来越严格。特别在温室大棚中,对温湿度要求更为严格。基于单片机的温湿度监测控制统设计,将对环境的温湿度监测控制系统做详细的设计与实现。采用高性能的控制芯片89C51,高精度数字温湿度传感器AM2301。向模块化、高速化、智能化的单片机数据采集系统靠近。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境,符合植物的生活环境要求,具有良好的发展前景。 三、课题设计方案 [主要说明:研究(设计)的基本内容、观点及拟采取的研究途径和方法。] 研究设计的基本内容和观点 温度检测控制:对温室温度进行测量,便于方便及时的知道室内温度 湿度检测控制:对温室湿度进行测量,便于方便及时的知道室内湿度 控制处理:当温度、湿度越限时声光报警,根据报警信号提示人采取一定手段进行控制。 显示:1602 LCD显示相应的温湿度。 人性化的设计:根据植物的生活需求,把温湿度值控制在一定的范围内。 能够实时、准确的显示采样温度值与湿度值。 通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警。 研究途径和方法: 通过查阅图书管和网络搜集相关资料,并根据专业课中学习到的相关知识,系统的、全面的组织材料,确定设计思路。一方面通过系统的学习51单片机以及Keil软件的使用和AM2301数字温湿度传感器的资料分析与研究确定编程思路,另一方面通过实物模拟,查看应用效果,最终达到设计的总体要求。 四、主要参考文献 [1]林国汉.基于单片机的温度控制系统设计[J].微计算机信息,2009(25) [2]易顺明.基于单片机的大棚温湿度控制系统设计[J].现代电子技术,2011 (7) [3]张毅刚.单片机原理及应用[M].北京:高等教育出版社2008. [4]Atmel. Atmel 89C51 Microcontrollers Hardware Manual,2010. [5]陈桂友,柴远斌.单片机应用技术[M].北京:机械工业出版社,2008. 目 录 摘 要 1 1 引言 1 1.1 课题背景 1 1.2立题的目的和意义 1 1.3国内外的研究现状和发展趋势 1 1.4本系统主要研究内容 2 2 系统总体设计 2 2.1系统功能设计 2 2.2系统设计原则 2 2.3系统的组成和工作原理 3 3 系统硬件设计 5 3.1单片机系统设计 5 3.2传感器的设计 8 3.3 液晶显示装置设计 10 3.4 光声报警系统与温湿度控制系统设计 12 4 软件系统设计 14 4.1初始化模块 15 4.2温湿度检测模块 15 4.3 温湿度判断控制模块 15 4.4 1602液晶显示模块 16 4.5报警模块 16 4.6 系统整体软件程序 16 总 结 21 参考文献: 22 谢 辞 23 基于单片机的温湿度检测系统设计 苏哲,骆红霞,孟超,严智勇 摘要:本文利用89C51单片机设计一个温室大棚的温湿度检测系统,对室内的温湿度进行检测控制并实时显示。其中温湿度传感器采用AM2301数字温湿度传感器,通过89C51单片机的处理把温湿度值显示在1602液晶上。并实时判断温湿度值是否满足设定的温湿度范围,若超出设定范围,通过89C51启动报警系统,达到检测室内温湿度的目的。 关键字:89C51;AM2301;1602液晶显示;温湿度控制系统 1 引言 1.1 课题背景 随着经济和社会的不断发展,人们对生活质量要求显著提高。对植被也要求越来越严格,如何种植出品种优良的植物,一直是人们研究的话题。而基于单片机的温湿度检测系统对解决这些问题有着非常重大的意义。 以前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。温湿度检测对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。而且其应用十分广泛。 1.2立题的目的和意义 环境的监测与控制在工业、农业、国防等行业有着广泛的应用。由于应用的场合不同监测对象的不同,其系统设计也是千差万别。在实际生活中此类系统有着广泛的应用,室温环境检测系统中温度和湿度是两个重要的显示和分析指标,必须定期抽样检查室温环境温度和湿度,以便采取相应的措施。89C51单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度检测系统的实例也很多。使用89C51单片机能够实现温湿度全程的自动检测与控制,而且89C51单片机易于学习、掌握,性价比高。使用89C51型单片机设计温湿度检测控制系统,可以及时、精确的反映室内的温度以及湿度的变化。当其超过设定范围时报警提醒人进行控制。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境。 1.3国内外的研究现状和发展趋势 目前国内外的温湿度检测使用的温湿度检测元件种类繁多、应用范围也较广泛加之单片机和大规模集成电路技术的不断提高,出现了高性能、高可靠性的单片数据采集系统。基于单机片的温湿度监测控制系统的设计研究较少。随着经济和社会的不断发展,人们对自己的生活环境越来越严格。特别在温室大棚中,对温湿度要求更为严格。基于单片机的温湿度监测控制统设计,将对环境的温湿度监测控制系统做详细的设计与实现。采用高性能的控制芯片89C51,高精度数字温湿度传感器AM2301。向模块化、高速化、智能化的单片机数据采集系统靠近。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境,符合植物的生活环境要求,具有良好的发展前景。 1.4本系统主要研究内容 本系统所要完成的任务是: 1.4.1人性化的设计。根据植物的生活需求,把温湿度值控制在一定的范围内。 1.4.2 能够实时、准确的显示采样温度值与湿度值。 1.4.3通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警。 2 系统总体设计 2.1系统功能设计 系统要完成的设计功能是: 2.1.1 实现对温室大棚温湿度参数的实时采集,测量空间的温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿度的智能检测。 2.1.2 实现超越数据的及时报警,并启动控制系统,实现温室的目的。 2.1.3 现场检测设备应具有较高的灵敏度、可靠性、抗干扰能力。 要求达到的技术指标: 测温范围: 0。C -60。C 测温精度:+0.5。C 测湿范围:0-100%RH 测湿精度:+2.5%RH 2.2系统设计原则 要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。 2.2.1可靠性 高可靠性是单片机系统应用的前提,在系统设计的每一个环节,都应该将可靠性作为首要的设计准则。提高系统的可靠性通常从以下几个方面考虑:使用可靠性高的元器件;设计电路板时布线和接地要合理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施;进行软硬件滤波;系统自诊判断功能等。 2.2.2操作维护方便 在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,尽量减少对操作人员专用知识的要求,以利于系统的推广。因此在设计时,要尽可能减少人机交换接口,多采用操作内置或简化的方法。同时系统应配有现场故障自动诊断程序,一旦发生故障能保证有效地对故障进行定位,以便进行维修。 2.2.3性价比 单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。因此,再设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在系统性能和速度允许的情况下尽可能使用软件功能取代硬件功能等。 2.3系统的组成和工作原理 2.3.1系统的组成 以单片机为控制核心,采用温湿度测量,通信技术,控制技术等技术,以温湿度传感器作为测量元件,构成智能温湿度测量控制系统。可分为温湿度测量电路,显示电路,声光报警电路,温湿度控制电路,见图2.1选用的主要器件有:AT89C51,温湿度传感器AM2301,1602LCD显示模块,降温装置风扇,升温装置加热器,増湿装置喷雾器,除潮装置除潮器,红绿LED灯,报警装置蜂鸣器等[1][2]。 图1系统的组成 2.3.2系统的工作原理 本系统以单片机Atmel89C51为核心,数据采集、传输、显示、报警都要通过单片机。数据采集通过单总线的智能数字温湿度传感器AM2301完成;通过单片机把采集的数据显示在1602LCD上;当采集的数据超出给定范围时,有蜂鸣器实时报警,并显示红灯提示,并进行相应的控制处理。在整个系统中采用了AM2301单总线技术,单片机采用C语言编程。 ·· 89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。 · 双色灯,报警模块:负责系统的报警功能。如果当前的温度超过用户设定的界限值时系统将自动警,双色灯在单片机的控制下有规律的切换,同时报警模块发出报警声,通知用户采取相应的措施。 系统工作流程图见图2 系统初始化 温湿度检测 进行人工温湿调控 不报警 判 断 51单片机 51单片机 报警 LCD 液晶显示 终止 LCD 液晶显示 图2系统的工作原理图 3 系统硬件设计 3.1单片机系统设计 经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据 根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的89C51为主机,满足上面的要求而且设计方便,不需要再存储扩展。 3.1.1 AT89C51单片机 MCS-51系列单片机主要包括基本型产品8031/8051/8751(对应的低功耗型80C31/80C51/87C51和增强型产品8032/8052/8752。虽然他们是8位的单片机,但是具有品种全、兼容性强性能价格比高等特点且软硬件应用设计资料丰富齐全,已为我国广大工程技术人员所熟悉和掌握。在20世纪80年代和90年代,MCS-51系列单片机是在我国应用最为广泛的单片机机型之一。 中央微处理器 AT89C51: AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89C51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。AT89S51单片机综合了微型处理器的基本功能。按照实际需要,同时也考虑到设计成本与整个系统的精巧性,所以在本系统中就选用价格较低、工作稳定的AT89C51单片机作为整个系统的控制器[3]。 图3 AT89C51单片机实物图 图4 AT89C51 单片机的片内硬件组成结构 3.1.2 AT89C51引脚简单介绍 总线型 非总线型 I 图5 89C51的引脚封装 40个引脚按其功能可分为如下3类: 电源及时钟引脚——VCC、VSS;XTAL1、XTAL2。 控制引脚——PSEN、ALE/PROG、EA/VPP、RST。 I/O口引脚——P0、P1、P2、P3,为4个8位I/O口的外部引脚[4]。 3.1.3 时钟电路 AT89C51单片机各功能部件的运行都以时钟信号为准,有条不紊、一拍一拍地工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51单片机内部有一个用于构成震荡的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自己振荡器。外部时钟方式时外部时钟电源直接接到XTAL1端,XTAL2端悬空。 图6时钟电路 3.1.4 复位电路 复位是单片机的初始化操作,只需给AT89C51的复位引脚RST加上大雨2个机器周期(即24个时钟震荡周期)的高电平就可使AT89C51复位。复位电路通常采用上自动复位和按钮复位两种方式。上电复位是通过外部复位电路给电容C充电加至RST引脚一个短的高电平信号,次信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C的充电时间。因此为保证系统能可靠地复位,EST引脚上的高电平必须维持足够长的时间。按键手动复位有电平和脉冲两种形式[5]。 图7复位电路 3.2传感器的设计 3.2.1传感器的基本特性 传感器的静态特性是指对静态的输入信号,传感器的输出量与输入量之间所具有相互关系。不含时间变量的代数方程,或以输入量作横坐标,把与其对应的输出量作纵坐标而画出的特性曲线来描述。表征传感器静态特性的主要参数有:线性度、灵敏度、分辨力和迟滞等。 传感器的动态特性: 所谓动态特性,是指传感器在输入变化时,它的输出的特性。在实际工作中,传感器的动态特性常用它对某些标准输入信号的响应来表示。这是因为传感器对标准输入信号的响应容易用实验方法求得,并且它对标准输入信号的响应与它对任意输入信号的响应之间存在一定的关系,往往知道了前者就能推定后者。最常用的标准输入信号有阶跃信号和正弦信号两种,所以传感器的动态特性也常用阶跃响应和频率响应来表示[6]。 3.2.2 AM2301数字温湿度传感器 图8 数字温湿度传感器 (1)AM2301产品概述 AM2301数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个AM2301传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。 (2)产品亮点 超低能耗、传输距离远、全部自动化校准、采用电容式湿敏元件、完全互换、标准数字单总线输出、卓越的长期稳定性、采用高精度测温元件。 (3)单总线接口定义 图10 AM2301引脚 引脚说明(VDD SDA GND): AM2301的供电电压范围为 3.5V - 5.5V,建议供电电压为 5V。数据线 SDA 引脚为三态结构,用于读/写传感器数据。详细见单总线的通信协议说明。 (4)接口说明 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。 图10 AM2301典型接口电路 3.3 液晶显示装置设计 3.3.1液晶简介 1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用,正因为如此 所以他不能显示图形(用自定义CGRAM,显示效果也不好)1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶[8]。 图11 1602实物图 1602LCD主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35(W×H)mm VSS 1 VDD 2 V0 3 RS 4 R/W 5 EN 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 BLA 15 BLK 16 LCD1602 P8 LCD1602 D0 D1 D2 D3 D4 D5 D6 D7 10K R5 1 2 3 P10 EN RS WR VCC GND VCC GND Vout GND 图12 1602LCD引脚图 引脚功能说明: 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 3.3.2液晶显示原理 读写操作时序如图13和图14所示: 图13 读操作时序 图14 写操作时序 3.4 光声报警系统与温湿度控制系统设计 3.4.1光声报警系统 本系统采用红绿LED灯作为光报警提示,当系统检测到的数据符合给定的要求时,现场始终绿灯显示;当系统检测到的数据不符合给定的要求时,现场转化为红灯报警提示;本系统采用蜂鸣器作为声报警提示,当系统检测到的数据符合给定的要求时,现场没有蜂鸣器报警提示;当系统检测到的数据不符合给定的要求时,现场蜂鸣器报警提示[9]。如图 15 图15 光声报警系统电路图 4 软件系统设计 本系统软件系统设计包过:系统初始化模块,温湿度检测模块,1602LCD显示模块,报警模块,温湿度判断控制模块。系统软件总体流程图如图17 图17 系统流程图 4.1初始化模块 系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态,初始化部分包括以下方面的内容: 4.1.1 单片机初始化以及各种引脚定义。 4.1.2 1602液晶初始化及工作方式。 4.1.3 系统进入正常工作状态。 4.2温湿度检测模块 温湿度检测模块是本系统中的核心模块之一,它负责完成温度和湿度的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。数字式温湿度传感器AM2301直接把检测到的模拟量转化为数字量送给单片机,在经过单片机的处理,把温湿度值显示在1602液晶上。温湿度传感器的精确度值直接影响到整个系统的检测与控制,所以本系统采用数字式温湿度传感器AM2301采集温室内的温湿度[10]。 4.3 温湿度判断控制模块 温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对当前温室内的实际温湿度与给定的温湿度范围进行比较,先进行判断,然后再进行控制,控制模块是决定系统将要进行什么工作的。如温度高于上限时需要降温,低于下限时需要升温,如湿度高于上限时需要降湿,低于下限时需要増湿,同时还要启动警报等等。 温湿度判断控制部分的程序整体思路如图18 图18 温湿度判断控制程序整体思路 4.4 1602液晶显示模块 本系统采用1602液晶显示温湿度值,当系统刚开始上电时1602液晶不显示任何数据,等待AM2301的监测数据,双行显示在1602液晶上。第一行显示:Temperature:--。C,第二行显示:Humidity: --% 4.5报警模块 报警模块具备两项功能,即为报警灯和声音报警。报警灯模块是完成LED有规律的转换,以便从视觉上提醒用户。LED是由单片机控制2个双色LED灯组成的,其转换规律为: 1 系统温湿度值在给定的范围时,绿色LED亮。 2 系统温湿度值超出给定的范围时,红色LED亮。 在LED灯转换的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。 警报灯由2个双色的LED灯组成,一共需要2根数据线,使用单片机控制。要实现的功能是使2个双色LED灯有规律的转换,当系统上电后,系统进行实时的采样,并判断出当前温湿度与给定温湿度之间的差异,如果当前温湿度低于用户给定的下限温湿度值,则说明当前温湿度过低,系统自动启动红色警报灯,通知加温増湿,直至加到所需温湿度值时警报灯熄灭。反之,如果当前温湿度高于用户设定的上限温湿度值,则说明当前温湿度过高,系统也会自动启动警报灯,通知降温减湿,直至降到所需温湿度值时警报灯熄灭。 4.6 系统整体软件程序 本系统采用C语言编程,使用单片机编程软件:Keil软件[11]。 #include <reg52.h> #include <intrins.h> typedef unsigned char uint8; #define uchar unsigned char #define uint unsigned int sbit RS = P1^0 ; sbit RW = P1^1 ; sbit EN = P1^5 ; sbit BUSY = P0^7; sbit dht=P2^0; sbit fine=P2^1; sbit hot=P1^2; sbit pwq=P1^3; sbit ccq=P1^4; sbit beef=P1^6; sbit redled=P2^6; sbit greedled=P2^4; uint hum,temp; //定义湿度、温度(全局) uchar hum_h,hum_l,temp_h,temp_l,check; //湿度高、低8位,温度高、低8位,校验位 uchar num,num1, bai,shi,ge,bai1,shi1,ge1,cnt=0; // uchar code table[]= "Temperature: "; uchar code table1[]="Humidity: "; //unsigned char code word1[]={"Welcome to"}; //unsigned char code word2[]={"www.kingst.org"}; void delay_us(uint i); /********************************************** * 等待繁忙标志 *********************************************/ void wait(void) { P0 = 0xFF; do { RS = 0; RW = 1; EN = 0; delay_us(1); EN = 1; }while (BUSY == 1); EN = 0; } /** * 写数据 */ void write_data(uint8 dat) { wait(); EN = 0; P0 = dat; RS = 1; RW = 0; EN = 1; delay_us(1); EN = 0; } /** * 写命令 */ void write_com(uint8 cmd) { wait(); EN = 0; P0 = cmd; RS = 0; RW = 0; EN = 1; delay_us(1); EN = 0; } /** * 写字符串到LCD */ void w_string(uint8 addr_start, uint8 *p) { write_com(addr_start); while (*p != '\0') { write_data(*p++); } } /** * 初始化1602 */ void Init_LCD1602(void) { write_com(0x38); // 16*2显示,5*7点阵,8位数据接口 write_com(0x0C); // 显示器开、光标开、光标允许闪烁 write_com(0x06); // 文字不动,光标自动右移 write_com(0x01); // 清屏 } /************************************************** DHT **************************************************/ /*--------------温湿度初始化(准备传送数据)----------*/ void delay_us(uint i) { while(i--); } /*--------------------延时(ms级)------------------*/ void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=110;j>0;j--); } void dht_init() { // delay(1000); //延时一会,避开不稳定区域 dht=0; //拉低延时500微秒,发送开始信号 delay_us(50); dht=1; //释放总线,延时30微秒 delay_us(4); while(!dht); //拉低等待 while(dht); //拉高等待,即将传送数据 } uchar read_byte() { uchar n,byte=0,dat; for(n=0;n<8;n++) { while(!dht); delay_us(4); //理论上28us<延时<70us,此处写2--6都可以 dat=0; if(dht) dat=1; while(dht); byte=(byte<<=1)|dat; //0 } return byte; } /*----------------------读40位数据---------------------*/ void read_hum_temp() { dht_init(); hum_h=read_byte(); //读湿度 hum_l=read_byte(); temp_h=read_byte(); //读温度 temp_l=read_byte(); check=read_byte(); //读校验 while(!dht); //等待低电平结束 dht=1; //最后拉高总线 } void zhuanhuan() //提取各位数字 { uchar a; a=hum_h+hum_l+temp_h+temp_l; if(a==check) { // P1=temp_l; hum=temp=0; hum=((hum|hum_h)<<8)|hum_l; temp=((temp|temp_h)<<8)|temp_l; bai=(temp/100)+0x30; shi=(temp%100/10)+0x30; ge=(temp%10)+0x30; bai1=(hum/100)+0x30; shi1=(hum%100/10)+0x30; ge1=(hum%10)+0x30; } else bai=shi=ge=bai1=shi1=ge1=0; } void interrupt_init() { TMOD=0X11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; TR0=1; TH1=(65536-8000)/256; TL1=(65536-8000)%256; EA=1; ET1=1; TR1=0; } void warm_control()//判断控制报警 { if((temp/10<10||temp/10>30)||(hum/10<20||hum/10>60) )//判断温湿度值是否符合要求 { TR1=1; } else { TR1=0; redled=1; greedled=0; } /**********控制模块待加入*********** if(temp/10<10) hot=0; //加热器加热 if(temp/10>30) fine=0; //风扇降温 if(hum/10<20) pwq=0; //喷雾器增湿 if(hum/10>60) ccq=0; //除潮器除潮 ****************************************/ } void Display() { write_com(0x8c); write_data(bai); write_data(shi); write_data('.'); write_data(ge); write_data('C'); write_com(0x80+0x49); write_data(bai1); write_data(shi1); write_data('.'); write_data(ge1); write_data('%'); write_data('H'); } void main() { Init_LCD1602(); interrupt_init(); // w_string(0x80,word1); // w_string(0xC0,word2); write_com(0x80); for(num=0;num<16;num++) { write_data(table[num]); } write_com(0x80+0x40); for(num1=0;num1<16;num1++) { write_data(table1[num1]); } while (1) { read_hum_temp(); delay(3000); //此处的时间不能小于3000,否则读不出! zhuanhuan(); warm_control(); // hum_h=hum_l=temp_h=temp_l=check=temp=hum=0; Display(); } } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; cnt++; if(cnt==10) { cnt=0; } } void timer1() interrupt 3 { TH1=(65536-100)/256; TL1=(65536-100)%256; beef=~beef; redled=0; gr- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温湿度 检测 控制系统 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文