版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目智能温室参数无线监控系统设计学生姓名学号所在学院专业班级电子1203班指导教师完成地点物理与电信工程学院实验室2016年5月20日页5系统分析与调试本设计是在KeilC环境下开发的,KeilC软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者的首选。设计的首要任务是安装和学习使用这个软件,在简单的学习和了解KeilC后,我们便可在此环境下开始了对带录音功能的电子琴的设计工作。在编译完KeilC后,再运用STC_ISP_V480软件烧录到开发板上,实现实物与程序的连接。在烧录前要对STC_ISP_V480进行一些必要的设置。第一步:设置MCUType为STC89C52RC;第二步:打开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:选择对应的COM端口,(可在我的电脑的设备管理处查看COM选项);第四步:点击Download/下载,等提示请给MCU上电时,打开开发板上的开关,它就自行烧录了。KeilC程序运行如图5.1所示,下载图如图5.2所示:图5.1keilC运行图图5.2程序烧录运行图在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。开始供电后、稍带几秒等1602液晶屏能正常显示当前温湿度了之后。观察当前温湿度的变化。并且针对与自己设定的限值相比较。若当前温度没有超标,即没有超过限值。可以用手捂住DHT11传感器,令其温度的显示超标。测试能否达到报警。经过测试。完全可行。因而简单的实现了对温度的控制,继电器也可以控制风扇的转动。结论本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。虽然系统还存在一些不足,比如温湿度测量不够精确,特别是湿度,波动较大。尝试了各种改进方法。仍然不太理想。不过大体能反映出设计的目的和要求。与预期的结果相差不多。经过近两个月的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解!学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。但因为我们的水平有限,此设计中也存在一定的不足。就比如说对温湿度下限的设定与控制,应用就更加广泛。温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经发展成为一种必然。随着世界经济的发展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的办法、既节省了人力资源,更体现了与时俱进的思想、世界在进步、而这种进步就该体现在各个方面。致谢在这次毕业设计中,最应该感谢的是我的指导老师梁芳老师,本次温室大棚环境参数监控系统的成功设计与梁老师的帮助是息息相关的。还有就是应该感谢我校陕西理工学院图书馆的相关图书及文献,以及网上前辈们的优秀研究成果,通过对这些资料的学习与借鉴,完成和丰富了本次毕业设计的内容。再加上自己的思考和领悟才能预期成功地完成的本次目标。梁老师在论文前期、中期、后期都对我的想法及设计经行了独特地分析,这深深的影响了我对学习的态度,也大大促进了本次设计的顺利进行。参考文献[1]高职富.温室环境控制技术的现状及发展前景[J].中国市场,2007年第35期:106-107.[2]吉红.自动控制在国外设施农业中的应用[J].农业环境与发展,2007(5):52-54.[3]陈桂友,柴远斌.单片机应用技术[M].北京:机械工业出版社,2008,10-88.[4]范薇薇.基于无线传感器网络的温室控制系统研究[D].中国知网,2010.[5]王中心.温室土壤温湿度无线信息采集与监控系统的设计与实现.中国知网,2010.[6]李文仲,段朝玉.短距离无线数据通信入门与实战[M],北京航空航天大学出版社,2006.[7]熊诗波.机械工程测试技术基础(第4版)[M].北京:机械工业出版社,2008,60-102.[8]徐爱钧.单片机原理实用教程.电子工业出版社,2011,3.[9]张新荣.基于单片机的多路温度监测系统设计[J].工业控制计算机,2010(7):13-21.[10]孙育才.MCS-51系列单片微型计算机及其应用(第四版)[M].南京:东南大学出版社,2004,56-58.[11]马靖善,秦玉平.C语言程序设计[M].北京:清华大学出版社,2005,11-15.[12]LEWISR.ModelingcontrolsystemusingIEC61499[M].InstitutionofElectricalEngineers,2001.[13]CHRISTENSENJH.BasicconceptofIEC61499[C].FachtagungVerteilteAutomatisierung,MagdeburgDE,2000:22-23.[14]IEC65/240/CD,Functionblocksforindustrial-processmeasurementandcontrolsystems-Part1:Architecture[S].1999.附录ABasedonSingle-ChipMicrocomputerTemperatureandHumidityDataAcquisitionSystemDesignAbstract-Intheacturalproductionoflifeinmanycasesaretoconsidertheinfluenceoftemperatureandhumidityenvironmentandprecisecontrol,Thencamethedataacquisitionsystem.BecausetheCANbuscanimproveantijammingabilityandreliabilityofthedata,correctiveabilityetc.Therefore,usetheCANbusinterfacetotransferdatathenmonitoredbytheuppermachine.Thisarticleintroduceddataacquisitionsystemdesigncomposedoftemperatureandhumiditysensor,theSCMsystem,computer,thecanbus.AfterSHT75digitaltemperatureandhumiditysensorscollectthetemperatureandhumiditymeasurementdatainwarehouseroom,tosenddatatoC8051F060SCMsystemthroughthebusinterface.C8051F060SCMdosimplerapidprocessingofdatathroughtheCANbusinterfacetothecomputerforreal-timemonitoring.Throughtesting,thesystemcanrealizedataacquisition,processingandcommunication.Keywords-temperatureandhumiditysensor,C8051F060,dataacquisition,CANbus)I.INTRODUCTIONBecauseofICmanufacturingtechnologyunceasingenhancement,Theemergenceofahighperformance,highreliabilitysingle-chipDASdataacquisitionsystem.Datacollectiontechnologyhasbecomeaspecializedtechnical,intheindustrialfieldshavebeenextensivelyapplied,dataacquisitionsystemUSESmoreadvancedmoduletypestructure,accordingtothedifferentapplicationrequirementsthroughsimpleincreaseandchangedmodule,andcombiningwiththesystemprogramming,canexpandormodifYsystem,quicklycomposedanewsystem.Temperatureandhumiditydataacquisitionsystemisalwaysrelevantscientificresearchunitsandthecompanycommittedtodevelopingproject,itsearlysysteminmonolithiccomputer8031core,usingthermistorsandwetsensitivecapacitanceastemperaturesensorandhumiditysensors,thewholesystem,whilelowcost,butthelargesizeandlowaccuracy,communicationdistancerestricted,pooruniversality,Toovercometheshortcomings,thispaperstudiesbasedonsingle-chipprocessoroftemperatureandhumiditydataacquisitionsystem,realizetowarehouseroomsceneoftemperatureandhumiditymonitoring,hasthegoodreal-time,highprecision,simpleandconvenient,signaltransceivereasymaintenanceanduseofadvantages.II.BASEDONSINGLE-CHIPMICROCOMPUTERTEMPERATUREANDHUMIDITYDATAACQUISITIONThroughCS051F060single-chipmicrocomputercontrolSHT75digitaltemperatureandhumiditysensorsmeasuringstorehouseroomtemperatureandhumidity,andwillsenddatathroughbusinterfaceCS051F060SCMsystem,aftermicrocontrollersimplerapidprocessinginthroughaCANbusinterfaceteleporttoPCmonitor.A.TheCANtransmitdrivermodulesTheCANtransmitdrivermodulebymicrocontrollerhardwareCS051F060,high-speedlightTLP113andisolationTJAI050high-speedTheCANtransceiverdevicessuchascomposition.Amongthem,CS051F060realizeTheCANbusofapplicationlayerfunction,TJAI050realizeTheCANbusphysicallayerandthedatalinklayerfunction.Thismodulemainlyusedtoupwardplacemachinetosendtemperatureandhumiditydataandacceptcontrolcommand.TJAI050CANprovidedifferentialforbussendingfunction,CANprovidedifferentialacceptcontrollerfunction,andfullycomplywith"ISOl1S9S"standard,highrate,lowelectromagneticradiation,widerangeofdifferentialreceiverinput,CANfightelectromagneticinterference,notonelectricityforbusnodesarenotcausedbyinterference,sendingdata(TXD)controlovertimefunction,intransientautomaticallytobuspinsforprotection,theinputstageand3.3Vdevicecompatible,andthermalprotectionforpowerandland,topreventtheshort-circuitfunction.B.PowersupplycircuitThewholesystemisstable,reliableworkisthebasisofastablepowersupply,switchingisbypowerconversionchipMAX165SandelectricalisolationchipB0505Sdevicessuchascomposition.5Vturn3.3VpowersupplymodulethroughexternalpowersupplyMAX165Swillconvert5V3.3V,forCS051F060single-chipmicrocomputerandSHT75digitaltemperatureandhumiditysensorspowersupply.5Vpowerisolatingmodulethroughwill5Vpowerisolatingintotwoparts,respectivelyforeverylightonbothendsofthedevices.PowerisolatingchipB0505Shastheconstantpressureinput,thesingleoutputvoltageisolationefficiencyhighpowersupplymodule(SO%),smallvolume,lowprice,highreliability,highimpact,isolationcharacteristics,temperaturescopewidth(40°C—+S5°C),etc.Inordertoensureefficientandreliableoperationofthemodulecanberatedload,andtheoutputof5%—100%loadbetween,shouldavoidlong-termworkinno-loadcondition.C.TemperatureandhumiditydataacquisitionandprocessingTemperatureandhumiditydataacquisitionsystemismadeupofthefollowingparts,1)andhumiditysensorSHT75;2)CS051F60microcontroller,3)TheCANbusinterfacecircuit4)Pc.Thesystemframeasshowninfigure1.UsingCS051F060MCUP2.6mouthtovirtualDATA,usingOATAP2.0mouthtovirtualclocklines,thusdirectlywithSHT75digitaltemperatureandhumiditysensorsconnectedandcarriesonthecontrol,afterpowerupSHT75after10mstimecameintosleepmode,beforethisshouldnottransmitanyorders.WhenmakeOATAlineatahighlevels,triggeringSCKninetimesabove(containninetimes),andthensenda"transmissionstart"commandtoactivateSHT75,chipisevocation.Thenanmeasurementcommand(measuringtemperaturecommandfor00000011,measuringrelativehumidityordersfor00000101),I1CwillstartSCKuntilcompletemeasurement.Willthenentersdrawnintoalowlevel,I1CagainrestartSCI(,thentransmittwomeasurementdatabytes.I1Cdatamustbedrawnintoalowlevel,abilityforeachbyteproduceresponsesignal.Transmissionorderfromhighestbits(MSB)tobyte-aligned(LSB).Whensensorelectricityreattachment,programwillenterwaitingoutsideinstructionscycle[51.Ifacceptedtoletsensor'sinstructions,sensor,andmeasurementprocesswillstartoftemperatureorhumidityreal-timedataacquisitionandstorage,waitingforPCtakeseveralorders.BecauseofthetemperatureandhumidityoftheSHT75collecteddatamustnonlinearcompensationtogettheactualenvironmenttemperatureandhumidity.Tocompensateforthenonlinearhumiditysensorstogainaccuratedata,usethefollowingtype(1)correctionoutputvalue:RH1=C1+C2*SORH+C3S0RH2(1)Amongthem:forRH1compensatedforSORHhumidityvalue,SHT75outputof8bitsor12bitshumiditysensorvalue;C1,C2andC2value,asshownintableIandoutputhumiditydataabout.MedianWhenmeasuringtemperaturewith25Clargedifference,inordertocompensatefortemperatureofhumiditymeasurementimpact,usetype(2)correctionoutputvalue:RHtrue=(T-25)(tl+t2*SORH)+RH1(2)Amongthem:forRHtrueRH1compensationtemperatureinfluenceafterthehumidityvalue,tlandt2valuesasshowninchart2,andoutputHumiditydatadigitsareconcernedIII.TESTANDANALYSISOFTHERESULTSThepaperintroducedebugginggoodsystemhasbeenconducted,andseparatelycarriedonthestaticanddynamictests,collectedexperimentaldata.Fromthemicrocontrollermemoryreadoutdatafig.3shows,thissystemcanaccomplishoftemperatureandhumiditydataacqUIsItIon,processing,andcanbetomonitorenvironmentmonitorinrealtime.Willmicrocontrollerhardwaresystemandregulatecircuitandhumiditysensorsignaltothewholedebugging,temperatureandhumiditydataacquisitionsystemhavebeentested.IV.CONCLUSIONThispaperismainlyusedC8051F060single-chipmicrocomputercontrolSHT75digitaltemperatureandhumiditysensorstocollectstorehouseroomtemperature,andhumidityCANbuspassdatalosetoPCmonitorinrealtime.Indatacommunicationsaspects,adoptingCANbus,soCANeffectivelyimprovethemeasurementprecision,temperatureandhumiditysensorisusedawholeanddigitaloutput,sothatthecircuitissimple,highprecisionmeasurement.基于单片机温湿度数据采集系统设计摘要:在实际生产生活中,很多情况下我们都需要考虑温度和湿度对环境的影响以及对其的精确控制,然后是数据采集系统的设计。由于CAN总线可以提高抗干扰能力、可靠性高、纠正能力强等,因此,使用CAN总线接口传输数据的上位机监控。本文介绍了数据采集系统的设计,它是由温湿度传感器,单片机系统,计算机,CAN总线构成的。SHT75数字温湿度传感器采集的温度和湿度的测量数据仓库空间,通过总线interface,C8051F060单片机使用CAN总线接口与电脑进行实时的简单快速的数据处理,并发送数据到C8051F060单片机系统监控。经过测试,该系统可实现数据采集,处理和通信。关键词:温湿度传感器,C8051F060,数据采集,CAN总线一、引言由于集成电路制造技术的不断提高,高性能、高可靠性的单片机DAS数据采集系统出现了。数据采集技术已经成为一种专业的技术,在工业领域得到了广泛的应用。数据采集系统采用更先进的模块式结构,可根据不同的应用需求,通过简单的增加和改变模块,并与系统编程相结合,可以扩大或修改系统,迅速组成一个新的系统。温湿度数据采集系统一直是有关科研单位和公司致力于的开发项目,其早期的系统在8031单片机核心采用热敏电阻和湿敏电容作为温度传感器和湿度传感器,整个系统,虽然成本低,但体积大、精度低,通信距离的限制,通用性较差,为了克服上述的缺点上,本文研究了基于单片机的温湿度数据采集系统,实现对仓库的温湿度监控,具有实时性好,精度高,操作简单方便,信号收发器的维修方便的优点。二、基于单片机温湿度数据采集通过CS051F060单片机控制SHT75数字温湿度传感器来测量仓库室内温度和湿度,并将通过总线接口cs051f060单片机系统发送数据,单片机简单快速的处理后通过CAN总线接口传送给上位机监控。A.CAN传输驱动模块可通过单片机硬件CS051F060传输驱动模块,高速光TLP113和隔离TJAI050高速CAN收发器设备实现。其中,CS051F060实现CAN总线的应用层功能,TJAI050实现CAN总线的物理层和数据链路层的功能。该模块主要用于向上位机发送的温度和湿度数据,并接受控制指令。TJAI050CAN总线发送功能提供差分,可以提供差分接收器的功能,并完全符合“ISOl1S9S”的标准,高速率,低电磁辐射,差分接收器的输入范围宽,可以对抗电磁干扰,没有电总线节点不会造成干扰,自动发送数据(TXD)控制的附加功能,自动保护总线引脚,输入级和3.3V设备兼容,以及电源和土地的过热保护,以防止短路的作用。B.电源供电电路整个系统运行稳定、可靠工作是在稳定的电力供应基础上的,它是通过电源转换芯片MAX165S和电气隔离芯片B0505S设备组成的。5V转3.3V的电源转换模块是通过外部电源MAX165S将5V转换为3.3V,为CS051F060单片机和SHT75数字温湿度传感器提供电源。5V电源通过将5V电源隔离成两个部分,分别加在每一个光器件两端。电源隔离芯片B0505S具有恒压输入,单输出电压隔离效率高的电源模块,体积小,价格低,可靠性高,耐冲击,隔离特性,温度范围宽等等。为了确保模块的有效性和可靠性操作额定负荷,并输出5%-100%的负载,应该避免在无负载条件下长期工作。C.温湿度数据采集与处理温湿度数据采集系统是由以下几部分组成:1)温湿度传感器SHT75;2)CS051F60的单片机;3)CAN总线接口电路;4)在PC机的系统框架。图1系统框图使用CS051F060单片机P2.6口为虚拟数据口,采用OATP2.0口来虚拟时钟线,从而直接与SHT75数字温湿度传感器连接,并进行控制。开机后10ms的时间SHT75进入睡眠模式,在此之前不应发送任何命令。当OATA线是高电平时,触发SCK9次以上(含9次),然后发送一个“传输启动”命令来激活SHT75,芯片是招魂。然后,一个测量命令(测量温度命令00000011,测量相对湿度命令00000101),I1C将启动SCK,直到完成测量。然后当OATA线是低电平时,I1C再次重启SCI,然后发送两个测量数据字节。I1C数据必须被置为一个低电平,这样每个字节产生响应信号的能力才能从最高位(MSB)到最低位(LSB)。当传感器复位后,程序将进入指令周期。如果接受程序指示,传感器和测量程序将启动温度和湿度的实时数据采集和存储,等待电脑的几个命令。因为SHT75采集的温湿度数据必须非线性补偿,以获得实际的环境温度和湿度。为了补偿非线性湿度传感器来获得精确的数据,使用下列类型式(1)来校正湿度输出值:RH1=C1+C2*SORH+C3S0RH2(1)其中:RH1为SORH湿度值的补偿,8位或12位湿度传感器SHT75输出值;C1,C2和C3的值,C3是C1和C2输出湿度数据的中间数表1湿度变换系数当测量温度与25℃相差较大时,为了补偿湿度测量的影响,利用式(2)校正温度输出值:RHtrue=(T-25)(TL+T2*SORH)+RH1(2)其中:RHtrue为RH1补偿温度影响的湿度值,T1和T2的值和输出数据的数字湿度有关,如表2所示:表2温度补偿系统三、测试和结果本文已经对系统进行了调试,并分别对静态和动态电路进行测试,收集得到的实验数据。从单片机的存储器中读出的数据图表明,该系统可以实现温湿度数据采集,处理,并可以实时监测环境。图2接收数据接口将单片机的硬件系统和控制电路、温湿度传感器信号用于整体测试,然后确保温湿度数据采集系统已完成检测。图3温湿度数据采集实验数据收集。四、结论本文主要用于C8051F060单片机控制SHT75数字式温湿度传感器采集仓库室内温湿度,然后CAN总线将数据传输到PC机实时监控。在数据通信方面,采用CAN总线,这样可以有效地提高测量精度,温度和湿度传感器使用一个数字输出,使电路简单,测量精度高。附录B#include<reg52.h>#include<intrins.h>#include<absacc.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedint//定义四个输出端口sbitLed_jiashi=P3^4; //加湿sbitLed_qushi=P3^3; //去湿sbitLed_jiangwen=P3^1; //降温sbitLed_shengwen=P3^2; //升温//定义三个设置按键sbitKey_SET=P2^0;sbitKey_ADD=P2^1;sbitKey_SUB=P2^2;sbitKey_OK=P2^3;//定义24C02数据口sbitSCL=P1^0;sbitSDA=P1^1;//定义DHT11数据口sbitDATA=P1^7;sbitbuzz=P3^5;//定义LCD1602端口sbitE=P1^3; //1602使能引脚//sbitRW=P2^6; //1602读写引脚 sbitRS=P1^2; //1602数据/命令选择引脚//定义全局变量ucharU8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;ucharU8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;ucharMode,humidity,temperature;charTH,TL,HH,HL;bitbdataFlagStartRH,hot,cold,humid,dry,BJ;//定时器0初始化voidTimer0_Init(){ ET0=1;//允许定时器0中断 TMOD=0x11;//定时器工作方式选择 TL0=0xFF; TH0=0x4B;//定时器赋予初值 TR0=1;//启动定时器}//定时器0中断voidTimer0_ISR(void)interrupt1using0{ ucharRHCounter; TL0=0xFF; TH0=0x4B;//定时器赋予初值 RHCounter++; if(RHCounter%10==0&&BJ==1) buzz=!buzz; elseif(BJ==0) buzz=1; //每2秒钟启动一次温湿度转换if(RHCounter>=40){FlagStartRH=1; RHCounter=0;}}/*********************************BASEDRIVE**********************************/voidDELAY(unsignedintt){ while(t!=0) t--;}/******************************IICDRIVE******************************/voidIICStart(void){SCL=0; DELAY(1);SDA=1;SCL=1;DELAY(1);SDA=0;DELAY(1);SCL=0;}voidIICStop(void){ SDA=0;SCL=1;DELAY(1);SDA=1;DELAY(1);SCL=0; }voidSEND0(void){ SDA=0; SCL=1; DELAY(1); SCL=0;}voidSEND1(void){ SDA=1; DELAY(1); SCL=1; DELAY(1); SCL=0;}bitCheck_Ack(void){ unsignedcharerrtime=250; DELAY(1); SCL=1; DELAY(1); CY=SDA; while(CY) { errtime--; CY=SDA; if(!errtime) { IICStop(); return1; } } DELAY(1); SCL=0; return0;}voidWrite_byte(unsignedchardat){unsignedchari; for(i=0;i<8;i++) { if((dat<<i)&0x80) SEND1(); else SEND0(); }}unsignedcharRead_byte(void){ unsignedchari,temp=0; for(i=0;i<8;i++) {SDA=1; SCL=1; DELAY(1); if(SDA==1) { temp=temp<<1; temp=temp|0x01; } else temp=temp<<1; SCL=0; } returntemp;}/************************************EEPROMDRIVE Addr:from0x00-->*************************************/unsignedcharrdeeprom(unsignedcharaddr){unsignedchartemp=0; bitflag=0; IICStart(); Write_byte(0xa0);Check_Ack(); Write_byte(addr); Check_Ack(); IICStart(); Write_byte(0xa1); Check_Ack(); temp=Read_byte(); SEND1(); IICStop(); returntemp;}voidwrteeprom(unsignedcharaddr,unsignedchardat){ IICStart(); Write_byte(0xa0); Check_Ack(); Write_byte(addr); Check_Ack(); Write_byte(dat); Check_Ack(); IICStop();}voidDelay1(uintj){uchari;for(;j>0;j--){ for(i=0;i<27;i++);}}voidDelay_10us(void){uchari;i--;i--;i--;i--;i--;i--;} voidCOM(void){uchari;for(i=0;i<8;i++) { U8FLAG=2; while((!DATA)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0;if(DATA)U8temp=1; U8FLAG=2; while((DATA)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 //如果高电平高过预定0高电平值则数据位为1 U8comdata<<=1; U8comdata|=U8temp;//0}//rof}////温湿度读取子程序////以下变量均为全局变量//温度高8位==U8T_data_H//温度低8位==U8T_data_L//湿度高8位==U8RH_data_H//湿度低8位==U8RH_data_L//校验8位==U8checkdata//调用相关子程序如下//Delay();,Delay_10us();,COM();//ucharRH(void){//主机拉低18msDATA=0; Delay1(180);//原来为5 DATA=1; //总线由上拉电阻拉高主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //主机设为输入判断从机响应信号 DATA=1; //判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行 if(!DATA) //T! { U8FLAG=2; //判断从机是否发出80us的低电平响应信号是否结束 while((!DATA)&&U8FLAG++); U8FLAG=2; //判断从机是否发出80us的高电平,如发出则进入数据接收状态 while((DATA)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; DATA=1; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; } return1; } else//传感器不响应 { return0; }}/*********************************************************************文件名:液晶1602显示.c*描述:该程序实现了对液晶1602的控制。***********************************************************************//*********************************************************************名称:delay()*功能:延时,延时时间大概为140US。*输入:无*输出:无***********************************************************************/voiddelay(){ inti,j; for(i=0;i<=10;i++) for(j=0;j<=2;j++);} /*********************************************************************名称:enable(uchardel)*功能:1602命令函数*输入:输入的命令值*输出:无***********************************************************************/voidenable(uchardel){ P0=del; RS=0; E=1; delay(); E=0; delay();}/*********************************************************************名称:write(uchardel)*功能:1602写数据函数*输入:需要写入1602的数据*输出:无***********************************************************************/voidwrite(uchardel){ P0=del; RS=1; E=1; delay(); E=0; delay();}/*********************************************************************名称:L1602_init()*功能:1602初始化,请参考1602的资料*输入:无*输出:无***********************************************************************/voidL1602_init(void){ enable(0x38); enable(0x0c); enable(0x06); enable(0x01);//清屏要放在最后}/*********************************************************************名称:L1602_char(ucharhang,ucharlie,charsign)*功能:改变液晶中某位的值,如果要让第一行,第五个字符显示"b",调用该函数如下 L1602_char(1,5,'b')*输入:行,列,需要输入1602的数据*输出:无***********************************************************************/voidL1602_char(ucharhang,ucharlie,charsign){ uchara; if(hang==1)a=0x80; if(hang==2)a=0xc0; a=a+lie-1; enable(a); write(sign);}/*********************************************************************名称:L1602_string(ucharhang,ucharlie,uchar*p)*功能:改变液晶中某位的值,如果要让第一行,第五个字符开始显示"abcdef",调用该函数如下 L1602_string(1,5,"abcdef;")*输入:行,列,需要输入1602的数据*输出:无***********************************************************************/voidL1602_string(ucharhang,ucharlie,uchar*p){ uchara; if(hang==1)a=0x80; if(hang==2)a=0xc0; a=a+lie-1; enable(a); while(1) { if(*p=='\0')break; write(*p); p++; }}//显示整型的温湿度数据用,共占用4位,其中一位符号位voidL1602_int(ucharhang,ucharlie,intnum){uinttemp;uintgewei,shiwei,baiwei,sign;if(num>=0)sign=0;elsesign=1;temp=abs(num);baiwei=temp/100;temp=temp-baiwei*100;shiwei=temp/10;gewei=temp-shiwei*10;num=abs(num);if(num>=100){//L1602_char(hang,lie+1,baiwei+48); L1602_char(hang,lie+2,shiwei+48); L1602_char(hang,lie+3,gewei+48);}elseif(num>=10){if(sign==1) L1602_char(hang,lie+1,'-'); L1602_char(hang,lie+2,shiwei+48);L1602_char(hang,lie+3,gewei+48);}else{if(sign==1) L1602_char(hang,lie+2,'-'); else L1602_char(hang,lie+2,'');L1602_char(hang,lie+3,gewei+48);}}voiddisplay(){ if(Mode==0) { L1602_int(1,3,temperature); L1602_char(1,7,0xdf); L1602_int(1,12,humidity); if(hot==1&&cold==0&&humid==0&&dry==0) {L1602_string(2,1,"It'sveryhot!");BJ=1;} elseif(hot==1&&cold==0&&humid==1&&dry==0) {L1602_string(2,1,"Hotandhumid!");BJ=1;} elseif(hot==1&&cold==0&&humid==0&&dry==1) {L1602_string(2,1,"Hotanddry!");BJ=1;} elseif(hot==0&&cold==1&&humid==0&&dry==0) {L1602_string(2,1,"It'sverycold!");BJ=1;} elseif(hot==0&&cold==1&&humid==1&&dry==0) {L1602_string(2,1,"Coldandhumid!");BJ=1;} elseif(hot==0&&cold==1&&humid==0&&dry==1) {L1602_string(2,1,"Coldanddry!");BJ=1;} elseif(hot==0&&cold==0&&humid==1&&dry==0) {L1602_string(2,1,"It'sveryhumid!");BJ=1;} elseif(hot==0&&cold==0&&humid==0&&dry==1) {L1602_string(2,1,"It'sverydry!");BJ=1;} elseif(hot==0&&cold==0&&humid==0&&dry==0) {L1602_string(2,1,"Goodenvironment");BJ=0;} } }/***按键函数***/voidKEY(){ if(Key_SET==0) { Delay1(200); if(Key_SET==0) { Mode++; if(Mode==1) { L1602_string(1,1,"TH:CHH:%"); L1602_char(1,8,0xdf); L1602_string(2,1,"TL:CHL:%"); L1602_char(2,8,0xdf); L1602_int(1,4,TH); L1602_int(1,12,HH); L1602_int(2,4,TL); L1602_int(2,12,HL); enable(0x80+6); enable(0x0f); } elseif(Mode==2) { enable(0x80+0x40+6); enable(0x0f); } elseif(Mode==3) { enable(0x80+14); enable(0x0f); } elseif(Mode==4) { enable(0x80+0x40+14); enable(0x0f); } elseif(Mode>=5) { Mode=1; enable(0x80+6); enable(0x0f); } while(!Key_SET); } } elseif(Key_ADD==0) { Delay1(200); if(Key_ADD==0) { if(Mode==1) { TH++; if(TH>=100) TH=99; L1602_int(1,4,TH); enable(0x80+6); } elseif(Mode==2) { TL++; if(TL>=TH) TL=TH-1; L1602_int(2,4,TL); enable(0x80+0x40+6); } elseif(Mode==3) { HH++; if(HH>=100) HH=99; L1602_int(1,12,HH); enable(0x80+14); } elseif(Mode==4) { HL++; if(HL>=HH) HL=HH-1; L1602_int(2,12,HL); enable(0x80+0x40+14); } while(!Key_ADD); } } elseif(Key_SUB==0) { Delay1(200); if(Key_SUB==0) { if(Mode==1) { TH--; if(TH<=TL) TH=TL+1; L1602_int(1,4,TH); enable(0x80+6); } elseif(Mode==2) { TL--; if(TL<=0) TL=0; L1602_int(2,4,TL); enable(0x80+0x40+6); } elseif(Mode==3) { HH--; if(HH<=HL) HH=HL+1; L1602_int(1,12,HH); enable(0x80+14); } elseif(Mode==4) { HL--; if(HL<=0) HL=0; L1602_int(2,12,HL); enable(0x80+0x40+14); } while(!Key_SUB); } } if(Key_OK==0&&Mode!=0) { Delay1(200); if(Key_OK==0) { L1602_string(1,1,"Tem:CHum:%"); L1602_string(2,1,"Goodenvironment"); Mode=0; wrteeprom(0,TH); Delay1(20); wrteeprom(1,TL); Delay1(20); wrteeprom(2,HH); Delay1(20); wrteeprom(3,HL); enable(0x0c); while(Key_OK==0); } }}//数据初始化voidData_Init(){Led_qushi=1;Led_jiashi=1;Led_jiangwen=1;Led_shengwen=1;}/*********************************************************************名称:Main()*功能:主函数***********************************************************************/voidmain(){uinti,j,testnum;EA=0; Timer0_Init();//定时器0初始化Data_Init(); EA=1; L1602_init(); L1602_string(1,1,"WelcometoT&H"); L1602_string(2,1,"ControlSystem!"); //延时 for(i=0;i<1000;i++) for(j=0;j<1000;j++) {;}//清屏 L1602_string(1,1,""); L1602_string(2,1,"");L1602_string(1,1,"Tem:CHum:%"); L1602_string(2,1,"Goodenvironment");/***载入温度上限和湿度上限设定值***/ TH=rdeeprom(0); Delay1(20); //加延时可以存取稳定 TL=rdeeprom(1); Delay1(20); HH=rdeeprom(2); Delay1(20); HL=rdeeprom(3); while(1) { if(FlagStartRH==1) //温湿度转换标志检查 { TR0=0;testnum=RH(); FlagStartRH=0; TR0=1; humidity=U8RH_data_H; //读出温湿度,只取整数部分 temperature=U8T_data_H; if(Mode==0) //温湿度控制 { if(temperature>TH) { Led_jiangwen=0; hot=1; Led_shengwen=1; cold=0; // BJ=1; } elseif(temperature<TL) { Led_shengwen=0; cold=1; Led_jiangwen=1; hot=0; buzz=0; // BJ=1; } else { Led_jiangwen=1; Led_shengwen=1; hot=0; cold=0; buzz=1; } if(humidity>HH) { Led_qushi=0; humid=1; Led_jiashi=1; dry=0; // BJ=1; } elseif(humidity<HL) { Led_jiashi=0; dry=1; Led_qushi=1; humid=0; // BJ=1; } else { Led_qushi=1; Led_jiashi=1; humid=0; dry=0; } } else { Led_shengwen=1; Led_jiangwen=1; Led_jiashi=1; Led_qushi=1; hot=0; cold=0; humid=0; dry=0; BJ=0; } } display(); KEY(); } }目录TOC\o"1-2"\h\z\u第一章总论 1第一节项目背景 1第二节项目概况 2第二章项目建设必要性 5第三章市场分析与建设规模 7第一节汽车市场需求分析 7第二节市场预测 12第三节项目产品市场分析 13HYPERLINK\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理护理循证医学教学法课件与教案分享
- 护理教学中的团队合作精神培养
- 金融前台职业规划
- 剖宫产术后引流管护理
- 护理教师竞赛培训课程
- 护理实验问题解决
- 快消品行业市场专员岗位全解
- 临床事务经理工作汇报总结
- 快递业务岗位的面试全解析
- 快消品销售员市场推广技巧培训
- 《第2课 玩转季节色》课件2025-2026学年人教版美术二年级下册
- 2026年深圳市高三语文一模作文“戏剧性的瞬间”58分56分范文及点评
- 2026年淮南联合大学单招综合素质考试题库带答案详解
- 2026年安徽工贸职业技术学院单招职业技能考试题库及一套答案详解
- 江苏省重点高中2026届高三九校联考政治试卷(含答案)
- 2026中食(河北)产业发展有限公司招聘市场运营部专员考试参考试题及答案解析
- (一模)东北三省三校2026年高三第一次联合模拟考试物理试卷(含答案)
- 【《中国工商银行个人消费信贷风险与防范研究》14000字(论文)】
- 2026保安员资格考试培训试题及答案
- 2026湖南省卫生健康委直属事业单位招聘185人考试参考题库及答案解析
- CCAA - 质量管理体系基础考前秘卷答案及解析 - 详解版(65题)
评论
0/150
提交评论