版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:温室大棚温湿度智能控制系统的设计姓名:学号:系别:物理与电子工程系专业:电子信息工程年级班级:指导教师:毕业论文(设计)作者声明本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全了解有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理机构送交论文的复印件和电子版。同意省级优秀毕业论文评选机构将本毕业论文通过影印、缩印、扫描等方式进行保存、摘编或汇编;同意本论文被编入有关数据库进行检索和查阅。本毕业论文内容不涉及国家机密。论文题目:温室大棚温湿度智能控制系统的设计作者单位:作者签名:年月日目录13354摘要 温室大棚温湿度智能控制系统的设计摘要:鉴于目前温室大棚耗费人力资源多的缺点,设计了基于单片机的温室智能控制系统。该系统对温室环境中的温度、湿度进行检测,并按照作物的需要自动进行通风、浇灌、加热、散热。系统的核心是由AT89S52单片机控制,通过温湿度传感器DHT11对外部环境数据进行采集,并用LCD实时显示,以及蜂鸣器报警等,使得用户能够更方便地进行定时的温湿度控制。该系统结构简单,扩展性强,可靠性高,有助于降低农民劳动量,提高农作物产量。关键词:AT89S52;DHT11;智能控制;温湿度DesignofintelligentcontrolsystemofgreenhouseAbstract:Mostofthegreenhousesnowhasadisadvantagesuchasconsumptionofhumanresources.Thisarticleproposeagreenhouseauto—controlsystembasedonasinglechip.Thesystemmonitorstheenvironmentalfactorssuchastemperatureandhumidity,thenirrigating,heatingandcoolingautomaticallyinaccordancewiththerequirementsofcrops.ThecorecontrolofthesystemisAT89S52thatcollectsenvironmentaldatabythechipDHT11.ThedataisdisplayedbyLCDandalarmedbybuzzertimely.Thedesignbringsthesystemagreatconveniencetocontrolthetemperatureandhumidityregularly.Thesystemissimple,highreliability,scalability,andhelpfultoreducefarmers’laborandincreasecropyields.KeyWords:AT89S52;DHT11;Auto—control;Temperatureandhumidity引言温室栽培技术是指在某种类型的保护设施内(如阳畦、温室、大棚等),人为地创造适宜植被生长发育的最佳环境条件,在不同季节内,尤其是不利于植被生长的季节内进行植被栽培的一种措施,人类利用自然、改造自然的一种创造。由于设施内的条件是可以人为控制的,使得植物在反季生长得以实现。玻璃温室和塑料薄膜温室出现后,农产品的生产出现了划时代的变化。现在人们可以根据自己的意愿,随时生产出所需要的农产品。在不利于植被生长的自然环境中,温室能够创造适宜植被生长发育的条件。温室环境的调节主要包括日光、温度、湿度三个方面。温度:根据植被生长的适宜温度进行温室温度调节,若低于下限温度则采取升温措施,通常采取电热增温和火力增温等,火力增温比较方便。若高于上限温度则采取降温措施,通常通过水管降温和风扇降温,风扇降温比较方便。日光:遮荫是调节日照强度最好的办法,其具体做法是加盖遮阳网或草席,这种方法兼有降低温度的效果。湿度:为满足温室植被对湿度的要求,可以在地上、台阶、盆壁洒水,还可以在空中悬挂湿布,以增加水分的蒸发,最好的办法是设置自动喷雾装置,自动调节湿度。如果湿度过大,容易导致植被病害,可以采用通风的办法来降低湿度,而且最好在室温与气温相差不大的时候进行。本系统注重温度和湿度的调节,光照强度没有考虑其中。温室作为适合我国当前国情的一种农业新技术,越来越广泛地被运用到农业生产中。环境控制高度自动化与智能化将是现代温室发展的一个必然趋势。温室智能控制系统是近些年来逐步兴起的高效、节能的农业技术,该系统利用自然资源,自动调节外部环境中的湿度、温度等因子,进而获取农作物生长的有利条件,从而达到农作物品质的改善、生长周期的调节、产量的增加,最终达到提高农作物经济收益的目的[1]。1.系统方案设计1.1本系统的主要功能本系统所要完成的功能是:首先用户根据不同植被的生长需求由键盘输入界限温度值和湿度值并通过LCD显示。其次能够实时、准确的显示采样温度值与湿度值。然后通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置进行报警,并采取相应的控制方案。最后能够根据植被在不同时间段内对温湿度的不同要求,用户可随机更改温度及湿度值,以满足用户不同的需求。1.2系统的组成和工作原理1.2.1系统的组成温度监控:对温室温度进行测量,并通过升温或降温达到植被的最佳温度。湿度监控:对温室湿度进行测量,并通过喷雾或去湿达到植被的最佳湿度。控制处理:当温度、湿度越限时报警,并根据报警信号提示采取一定手段控制。显示:LCD就地显示输入值和相应的温湿度。1.2.2工作原理实际环境温度与给定界限比较,低于界定温度执行加热/高于界定温度执行制冷措施。实际环境湿度与给定界限比较,高于界定湿度执行加湿/低于界定湿度执行去湿措施。越限报警:当温湿度越限时声光报警。键盘显示:负责用户的输入及相关数据的显示,其中包括LCD显示。1.3系统设计经过对总体方案和实施措施的讨论,可以开始硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据。主机与主要部件的选择:根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的AT89S52为主机,满足上面的要求而且设计方便,不需要再存储扩展。对外部模拟量(温度、湿度)采样,选用DHT11能够满足要求。温室温湿度控制系统是以AT89S52单片机作为中央控制装置,风扇,加热设备,加湿设备,排潮设备,键盘,LCD显示等构成外围电路,其功能和原理如下:AT89S52作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作[2]。用户可以选择系统的工作模式,还可以输入温度及湿度的界限数据,显示实时的温度及湿度值等等。风扇:负责系统的降温工作。加热设备:负责系统的加热工作。喷雾设备:负责系统的加湿工作。排潮设备:负责系统的去湿工作。音效模块:负责系统的报警功能。系统框图如图1所示。复位电路LCD显示AT89S52复位电路LCD显示AT89S52报警电路温湿度传感器报警电路温湿度传感器控制电路时钟震荡控制电路时钟震荡图1系统框图该系统框图总体上可以划分为6个部分,分别为复位电路,温湿度传感器检测电路,时钟震荡,LCD显示,报警电路,控制电路组成。硬件电路的设计2.1系统器件选择2.1.1单片机的选择AT89S52是一种8位控制器,并且具有8K的在系统可编程的Flash存储器,具有低功耗、高性能等特点。单芯片上,有灵活的8位MCU和在系统上可编程的Flash,使得AT89S52单片机为众多控制应用系统提供了较好的解决方案。该单片机与80C51系列产品指令及其引脚兼容[3]。AT89S52单片机具有以下功能:1个6向量2级中断结构,2个数据指针,3个16位的定时器/计数器,8k字节的Flash,32位的I/O口线,256字节的RAM,全双工串行口,看门狗定时器,以及片内晶振和时钟电路。另外,AT89S52可降至0Hz的静态逻辑操作,支持两种软件,可选择节电模式。掉电保护情况下,振荡器被冻结,RAM的内容被保存,单片机工作停止,直至下一个中断源或硬件复位到来为止[4]。空闲模式情况下,允许定时器/计数器、RAM、中断、串口继续工作,CPU工作停止。AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7,共32根I/O线[5]。每根线可以单独用作输入或输出。P1口和P3口的主要功能,如表1和表2所示。表1AT89S52P1口第二功能表脚号第二功能P1.0T2(定时器/计数器),时钟输出P1.1T2EX(定时器/计数器T2的捕捉或重载)P1.5MOSI(在系统编程)P1.6MISO(在系统编程)P1.7SCK(在系统编程)表2AT89S52P3口第二功能表脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0(外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据写选通)P3.7RD(外部数据读选通)2.1.2温湿度传感器的选择DHT11温湿度传感器是一种已校准的数字信号输出的温度湿度复合型传感器。该传感器由NTC测温元件和电阻式感湿元件构成,与8位的单片机连接可以构成温湿度检测装置[6]。为了确保DHT11具有较好的可靠性和长期的稳定性,配置了专用的温湿度传感技术和数字模块采集技术。因此该产品具有较高的性价比、超快的响应、卓越的品质、极强的抗干扰能力。此外该传感器还拥有单线制串行接口,使系统集成较为简易;极低的功耗、超小的体积,使其成为应用场合中的最佳选择;该传感器为4针的单排引脚的封装,连接较为方便。DHT11传感器产品在出厂前,都在温湿度校验室中进行精确的校准。以程序的形式将校准参数存储在OTP中,在检测传感器内部型号的处理中要经常调用这些已经校准过参数[7]。其主要技术指标为:供电电压:3.3~5.5VDC;输出:单总线数字信号;测量范围:湿度20-90%RH,温度0~50℃;测量精度:湿度±5%RH,温度±2℃;分辨率:湿度1%RH,温度1℃;互换性:可完全互换;长期稳定性:<±1%RH/年。其技术参数如表3所示。表3技术参数表参数 条件 mintypmax单位供电DC355.5V供电测量0.52.5mA供电平均0.21mA供电待机100150uA采样周期秒1次2.1.31602LCD液晶显示屏LCD1602主要技术参数:显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。LCD1602的引脚说明:LCD1602采用标准的14脚接口,其中:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端。第4脚:RS:寄存器选择,当为低电平时,选择指令寄存器;当为高电平时,选择数据寄存器。第5脚:RW:读写信号,当为低电平时,进行写操作;当为高电平时,进行读操作。当RS与RW均为低电平时,既可以输入指令,又可以显示地址,当RW为高电平,RS为低电平时,可以读取忙信号;当RW为低电平,RS为高电平时,可以写入数据。第6脚:E端:使能端,当E端口由高电平变成低电平时,液晶模块开始执行命令操作。第7~14脚:D0~D7为8位双向的数据线[8]。第15~16脚为空脚。2.2主控制电路单片机控制DHT11完成温湿度转换需经过系统初始化、ROM操作指令的运行、存储器操作指令存储数据三个步骤,前提是必须要先启动DHT11开始转换,再读出温湿度转换值。通过软件实现数字温湿度传感器的工作,严格遵守单总线协议,流程大致如下:(1)主机发出一个复位脉冲,信号线上的DHT11器件被复位。(2)主机发送ROM命令,程序开始读取单个在线的芯片ROM编码并保存在单片机数据存储器中,把用到的DHT11的ROM编码离线读出,最后用一个二维数组保存ROM编码,数据保存在X25043中。(3)系统工作时,把读取了编码的DHT11挂在总线上。发温湿度转换命令,再总线复位。(4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度读取命令就可以获得对应的温湿度值了[9]。其主控图如图2所示。图2主控电路图2.3温湿度检测电路温湿度检测电路主要由核心部件温湿度传感器DHT11构成,DHT11的1管脚外接电源VCC(5V左右),用于对其供电,2管脚与单片机AT89S52的P3.3口连接,用于检测当前温室温湿度值,并传送至单片机作分析处理。第4管脚接地,构成完整的通路。其应用电路如图3所示。图3DHT11应用电路2.4液晶显示电路该显示电路由LCD1602对当前温湿度值进行显示,电路连接如下:该液晶显示屏的8个引脚分别与单片机的P0口的8个端口进行连接,再接上电源、地便可构成完整的LCD液晶显示电路。其主要实现以下数据的显示:第一行显示RH:XX%H:XXL:XX;第二行显示TH:XXCH:XXL:XX;(注:RH:湿度,TH:温度,H:即high,温湿度最高值,L:即low,温湿度最小值)例如:当液晶显示屏显示为RH:48%H:55L:20;TH:23CH:28L:05表示:当前湿度值为48%,当前温度为23C,当前设定的湿度上限为55%,下限为20%,当前设定的温度值上限为28C,下限为05C。其液晶显示电路如图4所示。图4液晶显示电路图2.5温湿度报警电路本设计采用软件处理报警,采用直流供电,利用有源蜂鸣器进行报警输出。当所测温度高于或低于所置的温度时,数据口相应位高电平,进行报警输出。(也可采用发光二级管报警电路,如果需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模型单元ALARM的内容是否与预设一样,如果不一样,则发光报警)。其报警条件如下:当检测温湿度低于用户设定的温湿度值时报警;当检测的温湿度高于用户设定的温湿度值时报警。其电路连接:蜂鸣器一端口接电源VCC,另一端口接三极管集电极,三极管的基极和P3.4端口连接,发射极接地,完成对单片机P3.4端口传输信号的放大,蜂鸣器发出响声,进而实现报警功能。硬件设计如图5所示。图5报警电路图2.6按键设置电路在电路设计中连接三个按键,标号为S2、S3、S4,分别与单片机的P1.0、P1.1、P1.2连接。S2为设置键,S3为增加键,S4为减少键,按下S2可以设置温湿度的值,按下S3、S4键可以改变设定值。其硬件电路设计如图6所示。图6按键设置电路按键设置电路具体分析如下:P1.0、P1.1、P1.2口不断对按键S2、S3、S4键进行扫描,当先按下S3或S4键时,无法直接调节温湿度值;当按下S2键时,字符光标在湿度最高设定值的十位闪烁,此时再按S3、或S4键可以对湿度的最高值的十位数值进行设置;当第二次按下S2键时,字符光标跳至湿度最高设定值的个位,再按S3、或S4键可以对湿度的最高值的个位数值进行设置;同理随着S2键的按下次数不同,可以对湿度的上下限,温度的上下限进行对应的调节;当所需要设置的温湿度值均设置完毕后,再按下S2键,可以跳出设置模式,入正常工作状态。2.7控制电路控制部分说明:本设计采用继电器代替驱动,用电机MOTOR1、MOTOR2、MOTOR3、MOTOR4分别控制加热器、散热器、加湿设备、排潮设备。其加热电路、散热电路、加湿电路、排潮电路分别如图7、图8、图9、图10所示。工作原理说明:由单片机输出控制信号,当温度较低时,自动启动加热器;当温度较高时,自动启动散热器;当湿度较低时,自动启动排潮设备;当湿度较高时,自动启动加湿设备。图7加热电路图图8散热电路图图9加湿电路图图10排潮电路图控制电路说明:以加热电路图7为例,该电路主要包括继电器、交流电机、三极管等器件构成,由单片机的P1.3口控制,当温度值低于当前温度设定下限(植物生长最佳温度)时,P1.3口输出高电平,三极管导通,进而继电器开光闭合,电机转动,从而实现温度的智能控制;散热电路、加湿电路、排潮电路如加热电路工作原理类似,在此就不一一论述。3.软件设计3.1主程序模块主程序需要调用5个子程序,分别为LCD显示程序,温湿度检测及处理子程序,报警子程序,中断设定子程序,控制部分子程序。各模块程序功能如下:LCD显示程序:向数码管显示器发送数据,控制系统的显示模块。温度检测程序:对温湿度传感器发送的数据进行处理,并予以显示。报警子程序:进行温度上下限判断及报警输出。按键设置程序:设置最佳的温湿度上下限。控制部分子程序:实现对温湿度值的调节,并加以控制。3.2主要模块流程设计3.2.1按键程序流程图开始S2键是否按下S1键是否按下开始S2键是否按下S1键是否按下 Y N NY设置报警上下限(S3为增加键,S4为减键)设置报警上下限(S3为增加键,S4为减键)返回返回图11按键子程序流程图按键程序流程图说明:S1键为复位键,当按下复位键时,系统停止工作,在此时按设置键无效。只有在S1键没有按下时,按下S2键才能进入设置模式。所以系统先对S1键扫描,当S1键没有按下,再对S2键扫描。当扫描到S2键有按下时,再可以根据实际情况需要,按下S3或S4键进行温湿度值的设置。当设置完毕后,返回继续扫描。 3.2.21602显示程序流程图开始开始初始化,写显示地址初始化,写显示地址个位个位数能否显示?NY十十位数能否显示?YNY个位数显示符号,个位数显示符号,十位数显示符号Y结束结束图12LCD显示程序流程图1602显示程序流程图说明:开始进行初始化,清除原有数值,以便显示当前数值,然后写入显示地址,确保正确、完整显示温湿度值,再判断个位、十位能否正常显示数值。该液晶显示包括:当前温度值,当前设定的温度上下限;当前湿度值,当前设定的湿度上下限,共6部分内容。3.2.3控制部分流程图控制部分流程图说明:首先初始化清除原有数值,通过DHT11传输至AT89S52的温湿度数值,判断当前温湿度值是否在用户设定的温湿度上下限的范围内,如果不在范围内,P1.3、P1.4、P1.6、P1.7口输出高电平,对应的继电器开关闭合,启动相应的控制装置;如果在范围内,各控制装置不工作。其流程图如图13所示。开始开始初始化初始化温湿度在界限?温湿度在界限?YNN继电器开关闭合继电器开关闭合启动控制装置启动控制装置返回返回 图13控制部分流程图4.系统调试4.1系统硬件调试首先是系统焊接的顺序问题。本设计采用万能板,把所有的元件焊上去之后,对于没有调试过的板子,难以找到原因。因此焊接的先后顺序显得较为重要,个人认为应该按功能模块一部分一部分进行焊接[10],在焊接过程中,本设计的焊接顺序为:主控电路模块、液晶显示模块、按键模块、控制模块、报警模块、电源模块。系统硬件调试步骤:首先仔细检查原理图中各模块之间的连接是否正确;查看系统原理图与焊接线路是否保持一致;检查系统原理图与各器件的数据清单上引脚是否一致;用万能表检测查是否有虚焊现象,是否构成完整通路;再次阅读器件的数据清单,分析时序是否保持一致,还要分析命令字是否书写正确;针对飞线,可以用其他口线进行隔离控制,探讨其能否进行正常操作,经过多次试验后,才能找到出现的缘由问题[11]。系统调试过程常见问题的解决办法:方法一:排除失效的元器件。造成此类错误主要由以下几个原因造成:一是元器件本身已坏;另一个是错误的安装,造成元器件的损坏。检查器件与系统设计要求的规格和型号是否保持一致。在确保安装正确后,可以用新的元器件代替,进而排除错误。方法二:排除电源故障。在通电前,务必要认真检查电源幅值与极性,否则会造成不必要的损坏。通电后,载检查各模块引脚上的电位,先检测VCC和GND间的电位差,若在4.8V~5V之间属正常。若有高压出现,将会使应用系统中的集成模块发热损坏。4.2系统软件调试软件调试:系统软件根据测试时所发现的错误,找出原因和具体的位置,进行改正[12]。其软件调试结果如图14所示。图14实物仿真图软件调试方法与体会:分析错误的症状,猜测问题的所在位置,利用在程序中输出语句,分析寄存器、存储器的内容等手段来获得错误的线索,一步步地试探分析出错误所在;从发现错误症状的位置开始,人工沿着程序的控制流程往跟踪代码,直到找出错误根源为止;缩小错误的范围,如果已经知道程序中的变量若干位置的正确取值,可以在这些位置上给这些变量以正确值,观察程序运行输出结果,如果没有发现问题,则说明从赋予变量一个正确值开始到输出结果的程序没有出错,问题可能在除此之外的程序中,否则错误就在所考察的这段程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小为止;从测试所暴露的问题出发,收集所有正确或不正确的数分析它们之间的关系;根据测试结果,列出所有可能的错误原因;分析已有的数据,排除彼此矛盾的原因。对余下的原因,选择可能性最大的。在调试过程中,遇到过这样的一个问题,LCD无法进行正常显示数据,分析原因后,我找到LCD显示子程序段,仔细阅读后发现端口定义不一致,上下程序段中的P0口书写错误,一个为P0,另一个为p0,没有区分大小写,结果导致错误。5.结束语本设计用AT89S52单片机作为核心控制部件,LCD1602作为显示部分,同DHT11温湿度采集电路,晶振电路,复位电路,报警电路及上下限湿度调整控制电路,组成了我的温室大棚温湿度智能控制系统。其次就是软件部分,通过用C语言编程实现对器件的控制。综合起来看,本设计具有以下特点:系统结构简单,但实用性较好;用户可以根据实际需要设置适宜的温湿度值;越限报警并控制,和以往设计相比增加了控制功能;该系统成本较低,适用范围较广。但此设计也有不足之处,还没有投入到实际生产中去。此外该设计还可以用于工厂车间,检测车间内温湿度值,为工作人员提供更好的工作环境。总的来说,此设计具有一定的应用价值。参考文献[1]丁欣.基于ARM的智能温室控制系统[J].山西农业大学学报,2010,01(14):1-10.[2]张鑫,华臻,陈书谦.单片机原理及应用[M].北京:电子工业出版社,2008:19-28.[3]张劲松.基于组态的无线节水灌溉监控系统设计[J],东北农业大学学报,2010,03(09):10-15.[4]李群芳.单片微型计算机与接口技术[M].北京:电子工业出版社,2008:36-48.[5]赵娜等.基于51单片机的温度测量系统[J].微计算机信息,2007,2(05):13-19.[6]陈龙.基于AVR多功能报警系统的温湿度模块的设计[J].广东技术师范学院天河学院2011,9(20):2-12.[7]王元庆.新型传感器原理与应用[M].北京:机械工业出版社,2006:78-85.[8]杨金岩.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出社,2005:19-40.[9]唐林林.蔬菜大棚的智能监控系统的设计与实现[D].济南:山东大学,2010:1-30.[10]周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:航空航天大学出版社,2006:20-32.[11]陈世琼.单片机教学多功能实验开发板设计与实现[D].四川:西南交通大学,2010:1-30.[12]王海宁.基于单片机的温度控制系统的研究[D].合肥工业大学,2008:10-20.附录附录1实物图和电路图图15实物图正面图16实物图反面图17电路图附录2程序#include<reg51.h>#include<intrins.h>#include<key.h>#defineucharunsignedchar#defineuintunsignedinttypedefunsignedcharunint8;typedefunsignedcharunint16;sbitRS=P2^5;sbitRW=P2^6;sbitEN=P2^7;sbitBEEP=P3^5;//定义蜂鸣器unsignedcharstr1[]={""};unsignedcharstr2[]={""};sbitTRH=P3^4;//data数据端unint8TH_data,TL_data,RH_data,RL_data,CK_data;unint8TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;unint8com_data,untemp,temp;unint8respond;bitbeep_st;//蜂鸣器间隔标志ucharx=0;//计数器intm;/*************************lcd1602程序**************************/voiddelay1ms(uintms)//延时1毫秒(不够精确的){uinti,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}voidDelayUs(unsignedcharus)//delayus{unsignedcharuscnt;uscnt=us>>1;/*Crystalfrequencyin12MHz*/while(--uscnt);}voidDelayMs(unsignedcharms)//delayMs{while(--ms){DelayUs(250);DelayUs(250); DelayUs(250); DelayUs(250);}}voidInitTimer(void){TMOD=0x1;TH0=0x4c;TL0=0x00;//50ms(晶振11.0592M)EA=1;//全局中断开关TR0=1;ET0=1;//开启定时器0}/*****定时器0中断服务程序*****/voidtimer0(void)interrupt1{TH0=0x4c;TL0=0x00;x++;}unsignedcharrolmove(unsignedcharm){unsignedchara,b,c,d,e,f,g,h;a=(m&0x01)<<7;b=(m&0x02)<<5;c=(m&0x04)<<3;d=(m&0x08)<<1;e=(m&0x10)>>1;f=(m&0x20)>>3;g=(m&0x40)>>5;h=(m&0x80)>>7;m=a|b|c|d|e|f|g|h;returnm;}voidwr_com(ucharcom)//写指令//{delay1ms(1);RS=0;RW=0;EN=0;P0=rolmove(com);delay1ms(1);EN=1;delay1ms(1);EN=0;}voidwr_dat(uchardat)//写数据//{delay1ms(1);;RS=1;RW=0;EN=0;P0=rolmove(dat);delay1ms(1);EN=1;delay1ms(1);EN=0;}voidlcd_init()//初始化设置//{ delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);wr_com(0x80);wr_dat('R');//Awr_com(0x81);wr_dat('H');//Hwr_com(0x82);wr_dat(':');wr_com(0x85);wr_dat('%');wr_com(0x89);wr_dat('T');wr_com(0x8a);wr_dat('H');wr_com(0x8b);wr_dat(':');wr_com(0x8e);wr_dat('C'); }charreceive(){unint8i;com_data=0;for(i=0;i<=7;i++){respond=2;while((!TRH)&&respond++);DelayUs(5);DelayUs(5);DelayUs(5);if(TRH){temp=1;respond=2;while((TRH)&&respond++);}elsetemp=0;com_data<<=1;com_data|=temp;}return(com_data);}//湿度读取子程序//温度高8位==TL_data//温度低8位==TH_data//湿度高8位==RH_data//湿度低8位==RH_data//校验8位==CK_data//调用的程序有delay();,Delay_5us();,RECEIVE();voidread_TRH(){//主机拉低18msTRH=0;DelayMs(18);TRH=1;//DATA总线由上拉电阻拉高主机延时20usDelayUs(5);DelayUs(5);DelayUs(5);DelayUs(5);//主机设为输入判断从机响应信号TRH=1;//判断DHT11是否有低电平响应信号如不响应则跳出,响应则向下运行if(!TRH){respond=2;//判断DHT11发出80us的低电平响应信号是否结束while((!TRH)&&respond++);respond=2;//判断从机是否发出80us的高电平,如发出则进入数据接收状态while(TRH&&respond++);//数据接收状态RH_temp=receive();RL_temp=receive();TH_temp=receive();TL_temp=receive();CK_temp=receive();TRH=1;//数据校验untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp==CK_temp){RH_data=RH_temp;RL_data=RL_temp;TH_data=TH_temp;TL_data=TL_temp;CK_data=CK_temp;}}//湿度整数部分str1[0]=(char)(0X30+RH_data/10);str1[1]=(char)(0X30+RH_data%10);//温度整数部分str2[0]=(char)(0X30+TH_data/10);str2[1]=(char)(0X30+TH_data%10);m=(int)(RH_data);}voidbaojing(){ wr_com(0xc5);wr_dat(tab[0]+0x30); wr_com(0xc6);wr_dat(tab[1]+0x30); wr_com(0xc7);wr_dat('%'); wr_com(0xc8);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 器官移植病人的心理特点与心理护理
- 中医妇产科学:经行乳房胀痛
- 运动康复师的职业技能
- 心理教育与心理护理
- 线上蛋制品加工质量管理体系协议
- JJF(苏) 321-2026 转矩标定器校准规范
- 桥梁桩基防水施工工艺
- 2026安全培训试题带答案
- 中药注射液临床使用基本原则
- 涂布机项目可行性研究报告
- 山东2023年青岛银行西海岸分行社会招聘考试参考题库含答案详解
- 2022年江苏苏州张家港经开区(杨舍镇)学校公益性岗位招聘笔试备考题库及答案解析
- 预埋件专项施工方案
- GB/T 11668-1989图书和其它出版物的书脊规则
- 地暖工程施工方案()
- 生物高考真题卷-天津卷(含答案解析)
- 人教版小学一年级道德与法治上册全册教学完整课件
- DB64-T 1822-2022公路沥青面层典型结构应用技术规范
- 楷书四大家课件
- 2022绿盟科技校园招聘笔试题
- GB∕T 16422.3-2022 塑料 实验室光源暴露试验方法 第3部分:荧光紫外灯
评论
0/150
提交评论