1、 毕业论文(设计)设计(论文)题目: 基于单片机的温湿度监测控制系统设计一、设计(论文)内容及要求:(一) 设计(论文)内容本系统所要完成的任务是:1. 熟悉掌握AT89C51单片机的结构和特点 2. 熟练掌握温湿度传感器SHT11的主要特性及测温原理 3. 熟练掌握用LCD1602液晶显示屏的工作原理 4.系统各个功能模块硬件电路的设计; 5.系统软件设计;6.系统调试,实现系统功能 7.能够实时、准确的显示采样温度值与湿度值。8.通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警,并采取相应的控制方案。) (二)要求设计
2、一个基于单片机的温湿度自动控制系统,具体要求如下:1 具有温湿度采集功能;2 对数据实时处理并能够显示;3 当温度或适度高于(低于)设定值时能够自动调节;4 超限报警电路,当环境温度或湿度高于(低于)极限值时,系统能够发出声光报警,提示工作人员进行相应的应急处理;5 自动断电功能,当环境温度或湿度高于(低于)极限值时,系统能够自动切断电源;6 当检测电路电压低即供电不足时,电路发出报警,提示工作人员对检测电路电源进行更换;7基本要求度参数的实时采集,测量空间的温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿度的智能检测;8 实现超越数据的及时报警,并启动控制系统,实现
3、温室的目的;9 现场检测设备应具有较高的灵敏度、可靠性、抗干扰能力;要求达到的技术指标: 测温范围: 0。C -60。C 测温精度:+0.5。C 测湿范围:0-100%RH 测湿精度:+2.5%RH10.要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。二、主要参考资料:1林国汉.基于单片机的温度控制系统设计J.微计算机信息,2009(25): 21242易顺明.基于单片机的大棚温湿度控制系统设计J.现代电子技术,2011 (7):7153张毅刚.单片机原理及应用M.北京:高等教育出版社2008.121064 Atmel. Atmel 89C51 Microcontrollers H
4、ardware Manual,2010. 3598 5陈桂友,柴远斌.单片机应用技术M.北京:机械工业出版社,2008.10886熊诗波.机械工程测试技术基础M.4版.北京:机械工业出版社,2008. 60102 7张新荣.基于单片机的多路温度监测系统设计J.工业控制计算机,2010(7):1321 目 录摘 要11 引言11.1本系统主要研究内容12 系统总体设计22.1系统功能设计22.2系统设计原则22.3系统的组成和工作原理33 系统硬件设计53.1单片机系统设计53.2传感器的设计83.3 液晶显示装置设计103.4 光声报警系统与温湿度控制系统设计124 软件系统设计144.1初始
5、化模块154.2温湿度检测模块154.3 温湿度判断控制模块154.4 1602液晶显示模块164.5报警模块164.6 系统整体软件程序16总 结22谢 辞23基于单片机的温湿度检测控制系统设计摘要随着大棚技术的普及,温室大棚数量不断增多,对于蔬菜大棚来说,最重要的一个管理因素是温湿度控制。温湿度太低,蔬菜就会被冻死或则停止生长,所以要将温湿度始终控制在适合蔬菜生长的范围内。传统的温度控制是在温室大棚内部悬挂温度计,工人依据读取的温度值来调节大棚内的温度。如果仅靠人工控制既耗人力,又容易发生差错。现在,随着农业产业规模的提高,对于数量较多的大棚,传统的温度控制措施就显现出很大的局性。为此,在
6、现代化的蔬菜大棚管理中通常有温湿度自动控制系统,以控制蔬菜大棚温湿度适应生产需要。 本文利用89C51单片机设计一个温室大棚的温湿度检测控制系统,对湿室内的温湿度进行检测控制并实时显示。其中温湿度传感器采用AM2301数字温湿度传感器,通过89C51单片机的处理把温湿度值显示在1602液晶上。并实时判断温湿度值是否满足设定的温湿度范围,若超出设定范围,通过89C51启动温湿度控制系统,达到恒温恒湿的目的。 关键词 89C51单片机 AM2301传感器 1602液晶 控制系统 The design of temperature and humidity measurement and contr
7、ol system based on single-chip microcomputerABSTRACTWith the popularization of trellis technology, greenhouse trellis an ever-growing number, for vegetable shed speaking, one of the most important management factor is the temperature and humidity control. Temperature is too low, the vegetables will
8、freeze to death or stop growing, so will always control temperature and humidity in a suitable vegetable growth range. Traditional temperature control is in greenhouse trellis internal hanging a thermometer, workers according to regulate the temperature reading the temperature inside the shelter. If
9、 only by artificial control both consumption manpower, and easy to place regular orders. Now, with the improvement of agricultural industry scale, for larger quantity of trellis, traditional temperature control measures will show great bureau sex. Therefore, in modern vegetable shed management zhong
10、tong often temperature and humidity automatic control system, in order to control the temperature and humidity, adapt to the trellis vegetable production needs. In this paper, using 89C51 MCU to design a greenhouse temperature and humidity measurement and control system. Detection and control the in
11、door temperature and humidity and real-time display. The temperature and humidity sensor using AM2301digital temperature and humidity sensor, The temperature and humidity are displayed in the 1602 LCD through the 89 C51 single chip computer processing. And the real-time temperature and humidity valu
12、e judgment whether meet the set the humidity and temperature of the range. If it exceeds the setting range, through the 89C51 start the temperature and humidity control system, to achieve the purpose of constant temperature and humidity. KEY WORDS 89C51MCU AM2301 sensor 1602LCD control system1 引言1.1
13、 课题背景植物的生长都是在一定的环境中进行的,其在生长过程中受到环境中各种因素的影响,其中对植物生长影响最大的是环境中的温度和湿度。环境中昼夜的温度和湿度变化大,其对植物生长极为不利。因此必须对环境的温度和湿度进行监测和控制,使其适合植物的生长,提高其产量和质量。本系统就是利用价格便宜的一般电子器件来设计一个参数精度高,控制操作方便,性价比高的应用于农业种植生产的温室大棚温湿度测控系统1.2立题的目的和意义环境的监测与控制在工业、农业、国防等行业有着广泛的应用。由于应用的场合不同监测对象的不同,其系统设计也是千差万别。在实际生活中此类系统有着广泛的应用,室温环境检测系统中温度和湿度是两个重要的
14、显示和分析指标,必须定期抽样检查室温环境温度和湿度,以便采取相应的措施。89C51单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度检测控制系统的实例也很多。使用89C51单片机能够实现温湿度全程的自动检测与控制,而且89C51单片机易于学习、掌握,性价比高。使用89C51型单片机设计温湿度检测控制系统,可以及时、精确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境。1.3国内外的研究现
15、状和发展趋势目前国外大棚业正致力于高科技发展,遥测技术,网络技术,控制局域网已逐渐应用于大棚的管理和控制中。为了充分的利用好温室栽培这一高效技术,就必须有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法,而且其应用十分广泛。近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模,无人化的方向发展的思路也更加完善和成熟。采用高性能的控制芯片89C51,高精度数字温湿度传感器AM2301,向模块化、高速化、智能化的单片机数据采集系统靠近。将此系统应用到温室大棚当中无
16、疑为植物的生活提供了更加适宜的环境,符合植物的生活环境要求,具有良好的发展前景。 1.4本系统主要研究内容本系统所要完成的任务是:1.4.1人性化的设计。根据植物的生活需求,把温湿度值控制在一定的范围内。1.4.2 能够实时、准确的显示采样温度值与湿度值。1.4.3通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警,并采取相应的控制方案。2 系统总体设计2.1系统功能设计系统要完成的设计功能是:2.1.1 实现对温室大棚温湿度参数的实时采集,测量空间的温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿
17、度的智能检测。2.1.2 实现超越数据的及时报警,并启动控制系统,实现温室的目的。2.1.3 现场检测设备应具有较高的灵敏度、可靠性、抗干扰能力。要求达到的技术指标: 测温范围: 0。C -60。C 测温精度:+0.5。C 测湿范围:0-100%RH 测湿精度:+2.5%RH2.2系统设计原则要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。2.2.1可靠性高可靠性是单片机系统应用的前提,在系统设计的每一个环节,都应该将可靠性作为首要的设计准则。提高系统的可靠性通常从以下几个方面考虑:使用可靠性高的元器件;设计电路板时布线和接地要合理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施
18、;进行软硬件滤波;系统自诊判断功能等。2.2.2操作维护方便在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,尽量减少对操作人员专用知识的要求,以利于系统的推广。因此在设计时,要尽可能减少人机交换接口,多采用操作内置或简化的方法。同时系统应配有现场故障自动诊断程序,一旦发生故障能保证有效地对故障进行定位,以便进行维修。2.2.3性价比单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。因此,再设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在系统性能和速度允许的情况下尽可能使用软件功能取代硬件功能等。2.
19、3系统的组成和工作原理2.3.1系统的组成以单片机为控制核心,采用温湿度测量,通信技术,控制技术等技术,以温湿度传感器作为测量元件,构成智能温湿度测量控制系统。可分为温湿度测量电路,显示电路,声光报警电路,温湿度控制电路,见图2.1选用的主要器件有:AT89C51,温湿度传感器AM2301,1602LCD显示模块,降温装置风扇,升温装置加热器,増湿装置喷雾器,除潮装置除潮器,红绿LED灯,报警装置蜂鸣器等12。图1系统的组成2.3.2系统的工作原理本系统以单片机Atmel89C51为核心,数据采集、传输、显示、报警都要通过单片机。数据采集通过单总线的智能数字温湿度传感器AM2301完成;通过单
20、片机把采集的数据显示在1602LCD上;当采集的数据超出给定范围时,有蜂鸣器实时报警,并显示红灯提示,并进行相应的控制处理。在整个系统中采用了AM2301单总线技术,单片机采用C语言编程。温室温湿度控制系统是以89C51单片机作为中央控制装置,风扇,加热设备,加湿设备,排潮设备等 89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。 风扇:负责系统的降温工作。 加热设备:负责系统的加热工作。 喷雾设备:负责系统的加湿工作。 排潮设备:负责系统的去湿工作。 双色灯,报警模块:负责系统的报警功能。如果当前的温度超过用户设定的界限值时系统将自动警,双色灯在单片机的控制下有规律的切
21、换,同时报警模块发出报警声,通知用户采取相应的措施。系统工作流程图见图2图2系统的工作原理图3 系统硬件设计3.1单片机系统设计经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的89C51为主机,满足上面的要求而且设计方便,不需要再存储扩展。3.1.1 AT89C51单片机MCS-51系列单片机主要包括基本型产品8031/8051/8751(对应的低功耗型80C31/80C51/87C51和增强型产品8032/8052/8752。虽然他们是8位的单片机,但是具有品种全、
22、兼容性强性能价格比高等特点且软硬件应用设计资料丰富齐全,已为我国广大工程技术人员所熟悉和掌握。在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
23、可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQF
24、P和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
25、时钟电路AT89C51单片机各功能部件的运行都以时钟信号为准,有条不紊、一拍一拍地工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51单片机内部有一个用于构成震荡的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自己振荡器。外部时钟方式时外部时钟电源直接接到XTAL1端,XTAL2端悬空。图6时钟电路3.1.4 复位电路复位是单片机的初始化操作,只需给AT89C51的复位引脚RST加上大雨2个机器周期(即24个时钟震荡周期)的高电平就可使AT89C51复位。复位电路通常采用上自动
26、复位和按钮复位两种方式。上电复位是通过外部复位电路给电容C充电加至RST引脚一个短的高电平信号,次信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C的充电时间。因此为保证系统能可靠地复位,EST引脚上的高电平必须维持足够长的时间。按键手动复位有电平和脉冲两种形式5。图7复位电路3.2传感器的设计3.2.1传感器的基本特性传感器的静态特性是指对静态的输入信号,传感器的输出量与输入量之间所具有相互关系。不含时间变量的代数方程,或以输入量作横坐标,把与其对应的输出量作纵坐标而画出的特性曲线来描述。表征传感器静态特性的主要参数有:线性度、灵敏度、分辨力和迟滞等。传感
27、器的动态特性: 所谓动态特性,是指传感器在输入变化时,它的输出的特性。在实际工作中,传感器的动态特性常用它对某些标准输入信号的响应来表示。这是因为传感器对标准输入信号的响应容易用实验方法求得,并且它对标准输入信号的响应与它对任意输入信号的响应之间存在一定的关系,往往知道了前者就能推定后者。最常用的标准输入信号有阶跃信号和正弦信号两种,所以传感器的动态特性也常用阶跃响应和频率响应来表示6。3.2.2 AM2301数字温湿度传感器 图8 数字温湿度传感器(1)AM2301产品概述AM2301数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术
28、,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个AM2301传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。(2)产品亮点超低能耗、传输距离远、全部自
29、动化校准、采用电容式湿敏元件、完全互换、标准数字单总线输出、卓越的长期稳定性、采用高精度测温元件。(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字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶
30、模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用,正因为如此 所以他不能显示图形(用自定义CGRAM,显示效果也不好)1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶8。 图11 1602实物图1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:
31、2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm图12 1602LCD引脚图引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者
32、显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.3.2液晶显示原理读写操作时序如图13和图14所示:图13 读操作时序图14 写操作时序3.4 光声报警系统与温湿度控制系统设计3.4.1光声报警系统本系统采用红绿LED灯作为光报警提示,当系统检测到的数据符合给定的要求时,现场始终绿灯显示;当系统检测到的数据不符合给定的要求时,现场转化为红灯报警提示;本系统采用蜂鸣器作为声报警提示,当系统检测
33、到的数据符合给定的要求时,现场没有蜂鸣器报警提示;当系统检测到的数据不符合给定的要求时,现场蜂鸣器报警提示9。如图 15图15 光声报警系统电路图3.4.2温湿度控制系统本系统温湿度控制系统主要组成有:风扇、加热器 、喷雾器、除潮器。当系统检测到的数据不符合给定的要求时,系统启动温湿度控制系统实现恒温恒湿的目的。 风扇:负责系统的降温工作。 加热设备:负责系统的加热工作。 喷雾设备:负责系统的加湿工作。 排潮设备:负责系统的去湿工作。图16 温湿度控制系统电路4 软件系统设计本系统软件系统设计包过:系统初始化模块,温湿度检测模块,1602LCD显示模块,报警模块,温湿度判断控制模块。系统软件总
34、体流程图如图17图17 系统流程图4.1初始化模块系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态,初始化部分包括以下方面的内容:4.1.1 单片机初始化以及各种引脚定义。4.1.2 1602液晶初始化及工作方式。4.1.3 系统进入正常工作状态。4.2温湿度检测模块温湿度检测模块是本系统中的核心模块之一,它负责完成温度和湿度的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。数字式温湿度传感器AM2301直接把检测到的模拟量转化为数字量送给单片机,在经过单片机的处理,把温湿度值显示在1602液晶上。温湿度传感器的精确度值直接影响到整个系统的检测与控制,所以本系统采用
35、数字式温湿度传感器AM2301采集温室内的温湿度10。4.3 温湿度判断控制模块温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对当前温室内的实际温湿度与给定的温湿度范围进行比较,先进行判断,然后再进行控制,控制模块是决定系统将要进行什么工作的。如温度高于上限时需要降温,低于下限时需要升温,如湿度高于上限时需要降湿,低于下限时需要増湿,同时还要启动警报等等。温湿度判断控制部分的程序整体思路如图18图18 温湿度判断控制程序整体思路4.4 1602液晶显示模块本系统采用1602液晶显示温湿度值,当系统刚开始上电时1602液晶不显示任何数据,等待AM2301的监测数据,双行显示在1
36、602液晶上。第一行显示:Temperature:-。C,第二行显示:Humidity: -%4.5报警模块报警模块具备两项功能,即为报警灯和声音报警。报警灯模块是完成LED有规律的转换,以便从视觉上提醒用户。LED是由单片机控制2个双色LED灯组成的,其转换规律为:1 系统温湿度值在给定的范围时,绿色LED亮。2 系统温湿度值超出给定的范围时,红色LED亮。在LED灯转换的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。警报灯由2个双色的LED灯组成,一共需要2根数据线,使用单片机控制。要实现的功能是使2个双色LED灯有规律的转换,当系统上电后,系统进行实时的采样,并判断出
37、当前温湿度与给定温湿度之间的差异,如果当前温湿度低于用户给定的下限温湿度值,则说明当前温湿度过低,系统自动启动红色警报灯,同时开始加温増湿,直至加到所需温湿度值时警报灯熄灭。反之,如果当前温湿度高于用户设定的上限温湿度值,则说明当前温湿度过高,系统也会自动启动警报灯,同时开始降温减湿,直至降到所需温湿度值时警报灯熄灭。4.6 系统整体软件程序本系统采用C语言编程,使用单片机编程软件:Keil软件11。#include#define uchar unsigned char #define uint unsigned intuint hum,temp;/定义湿度、温度(全局)uchar hum_h
38、,hum_l,temp_h,temp_l,check;/湿度高、低8位,温度高、低8位,校验位uchar num,num1, bai,shi,ge,bai1,shi1,ge1,cnt=0; /sbit dht=P10;sbit fine=P11;sbit hot=P12;sbit pwq=P13;sbit ccq=P14;sbit beef=P27;sbit redled=P26;sbit greedled=P25;sbit lcden=P34;sbit lcdrs=P35;uchar code table=Temperature: ; uchar code table1=Humidity:;
39、void write_com(uchar com);void write_data(uchar date);void delay_us(uint i);void delay(uint z);void dht_init();void interrupt_init();void lcd_int();uchar read_byte();void read_hum_temp();void zhuanhuan();void warm_control();void main()/主函数interrupt_init();lcd_int();delay(200); while(1) read_hum_temp
40、();zhuanhuan();warm_control();delay(3000); /此处的时间不能小于3000,否则读不出!/hum_h=hum_l=temp_h=temp_l=check=temp=hum=0; /*-延时(10us级)-*/void delay_us(uint i)while(i-); /*-延时(ms级)-*/void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);/*-温湿度初始化(准备传送数据)-*/void dht_init()/delay(1000); /延时一会,避开不稳定区域dht=0; /拉低延
41、时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;n8;n+) while(!dht);delay_us(4); /理论上28us延时70us,此处写2-6都可以dat=0;if(dht) dat=1;while(dht);byte=(byte=1)|dat; /0return byte; /*-读40位数据-*/void read_hum_temp()dht_
42、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=te
43、mp/100;shi=temp%100/10;ge=temp%10;bai1=hum/100;shi1=hum%100/10;ge1=hum%10;else bai=shi=ge=bai1=shi1=ge1=0; /*-中断初始化-*/void interrupt_init()TMOD=0X01; TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1; /*-中断处理液晶显示函数-*/void timer0() interrupt1TH0=(65536-10000)/256;TL0=(65536-10000)%256;if(cnt=2) for(num=0;num13;num+)write_data(tablenum);delay(20);write_data(bai);write_data(shi);write_data(ge);write_data(C);write_com(0x80+0x40);for(num1=0;num110;num1+)writ