版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能化粮库粮食计量与温湿度监控系统的设计与实现摘要为了实现对粮库粮食计量以及温湿度的智能化监控,设计由上位控制主机和多点下位监测从机两部分组成的无线监控系统。从机由温湿度传感模块、超声波模块、无线传输模块和单片机等组成,主机由单片机、按键模块、无线传输模块和报警模块等组成。从机通过测量粮仓内温湿度、粮食体积,经过无线传输模块将监测数据传送至上位主机,并在显示器上显示出该监测节点的节点号和该监测点当前温湿度测量值、粮食体积,并对温湿度超值具有报警功能,以便仓库管理人员能实时地了解仓库的各项数据,并对特殊情况进行及时的处理。关键词:粮食计量,温湿度,传感器,无线传输,超值报警IntelligentGrainTemperatureandHumidityMeasurementandControlSystemDesignandImplementationABSTRACTInordertorealizethegrainmeasurementandintelligenttemperatureandhumiditymonitoring,designbyundertheuppercontrolhostandmultipointmonitoringwirelessmonitoringsystemcomposedoftwopartsfromthemachine.Fromthemachinebythetemperatureandhumiditysensormodule,ultrasonicmodule,wirelesstransmissionmoduleandmicrocontroller,etc,thehostbysinglechipmicrocomputer,thekeymodule,wirelesstransmissionmoduleandalarmmodule,etc.Fromthemachine,throughthemeasurementoftemperatureandhumidityinthegranary,grainsize,throughthewirelesstransmissionmodulewillmonitordatatransferfirsthost,andthatonthescreendisplaythenodenumberofthemonitoringnodeandthecurrenttemperatureandhumidityofthemonitoringmeasurements,grainsize,andthetemperatureandhumidityvaluehasalarmfunction,sothatwarehousemanagementpersonnelcanreal-timeunderstandingofthedatawarehouseandthespecialcircumstancesandtimelyprocessing.KEYWORDS:Grainmeasurement,temperatureandhumiditysensor,wirelesstransmission,valuealarm目录前言 1第1章绪论 2课题设计的背景、目的及意义 2国内外研究现状 3设计内容及要求 4第2章系统总体方案功能分析 6系统组成框图 6系统各硬件模块的功能分析 7第3章系统硬件电路设计及实现 8电源模块的设计及实现 8温湿度采集模块的设计及实现 9温湿度采集 9计量采集的设计及实现 10单片机控制模块的选用 12时钟电路设计及实现 12复位电路设计及实现 13无线传输模块的选用 14按键模块的设计及实现 15显示模块的选用及和单片机的连接 16报警模块的设计及实现 19蜂鸣器 19报警电路设计及实现 19系统总体硬件设计及实现 20第4章系统程序设计 22主机程序设计 22主机程序设计思路 22主机程序流程 22无线模块程序设计 22从机程序设计 22从机程序设计思路 22从机程序流程 22温湿度测量程序设计 22超声波测距模块程序设计 22第5章系统调试与数据分析 22硬件电路的实现和调试 22软硬件功能分析 22软硬件的功能实现 22软硬件的不足之处 22测试结果分析 22结论 22谢辞 22参考文献 22附录 22外文资料译文 22前言我国是一个人口大国、农业大国,粮食的存储对稳定国民经济发展和保障民生起着至关重要的作用。粮仓内粮食的温湿度、数量如果不能实时的监控和统计,就可能会发生粮食变质、偷盗的情况,因此粮仓粮食计量和温湿度的实时监控是关系着我国的粮食安全的重要环节。随着单片机技术、传感器技术和无线传输技术的不断发展。以这些技术为基础的无线监测系统越来越多的运用到我国的粮仓管理中。为了能实时对粮仓粮食进行计量、温湿度进行监控,本课题设计了一套智能化监控系统——智能化粮库粮食计量与温湿度监控系统。该系统不仅能测量粮仓的温湿度,还具有以往监控系统所不具备的计量功能。同时该系统还能对温湿度超值报警,以便管理人员能够及时采取措施保障粮食安全,对于保障我国粮食安全能起到重要作用。第1章绪论课题设计的背景、目的及意义粮食产量和质量的保障,是一个国家经济的重要来源,它将推动着国家其它经济的快速发展。在我们这个农业大国中,要做好粮食增收和保量、保质的工作。这项工作的好与坏,将涉及到我国其它方面。因此,做好粮食的保护管理工作;这为促进促进我国社会和谐与稳定的发展,有着积极的推动作用[1-3]。在我国当今科学技术快速发展的情况下,像以往那种干旱、害虫等不利粮食增产的情况,都可以用科学技术手段来解决。从而使得这些不利影响不存在;同时,也解决了与粮食相联系的其它行业有好的保障[4-5]。但是,近年来由于各种原因,有关单位忽视了粮食仓储设施的现代化建设,忽视了粮食储备的重要性,出现国有粮食仓储流失现象。同时,粮食的质量也存在问题。在对国内部分粮库检查过程中,甚至还存在着偷粮、盗粮等不法现象。例如,现存在有些地方自己通过非法手段拿取粮食,对国家和人民造成很大的影响。同时,这些弊端也波及到我国的其它方面。为了应对上述等不良现象,国家已经在对粮食的存储量和粮食质量等方面采取了相应的措施。但是,目前国内粮食管理局还是无法将粮食的计量与粮食温湿度结合在一起,进行有效的检测。不能很好的有效的对粮食进行管理保护,保证粮食的稳定增产和粮食质量的优质[6-7]。因此,针对当前粮库存粮过程中存在的这些问题(粮食的偷盗、潮湿、干燥等)。应采取相应的技术措施,提高粮食局的管理水平[8]。其一就是分析清楚自然环境对粮食造成的影响,这些影响可能会对粮食造成哪些不利因素。其次,分析粮食数量的非正常减少,这其中的漏洞问题。本系统就是采用通信技术、传感技术、单片机技术,构建了一整套完备的监控系统,来应对当前存在的这些问题[9]。综上所述,目前迫切需要一套能够随时进行粮库各个粮仓实际库存计量、温湿度检测为一体监控系统,以技术手段消除可能存在的监守自盗等丑恶现象和确保粮食质量安全。从而提高粮食监管部门的监管能力和技术手段,克服长期以来一直困扰粮食仓贮监粮食计量与保质的难题[10]。国内外研究现状对于智能化粮库粮食的计量与粮情监控管理系统,以前仅是依靠操作人员的手工检测,其中投入了大量的人力、物力;同时,检测误差很大,工作可靠性也不高。近年来,粮食管理局开始采用先进的传感检测技术与数据采集技术等手段[11]。其中在粮食数量的检测方面,采取的主要检测方式有:基于流量计的库存计量方法。它是在粮食入库/出库时,在提升机传输带上面了安装流量计。以此来获取粮食入库/出库时的数量,根据统计的数据来确定粮仓的库存数据。这种计量手段可以在粮食入库/出库的过程中来获取数据,这种方式的特点是误差小,操作简单、管理方便。根据装运粮食车辆固有的载重系统的标准数据来确定粮食的库存数量。这种检测方式是以车的本身承受的重量,批次、数量、结合粮食入库/出库操作,以及粮食上一次出库或者入库操作完成后的存储数据,进而获得的相应的存储数据。粮库容量计量方法。它是囊括了电子秤的工作原理,应用工作可靠性高的电子元件制成检测仪。它是通过相应的处理所检测的物理量,把其用相应的工作设备变化成所识别的数据,然后把它发至MCU有相应的加工就能完成系统的预期目标。然后,根据粮仓的底面积和粮食的密度就可以确定仓内粮食的存储量。在以上这三种检测方法中,基于流量计的库存计量方法虽然检测精确度很高,操作简单、管理方便。但是,这种方法不能实时得知测量结果,只能查看历史数据,中间粮食的数量出现什么变故也不得而知。与上述方法相比较而言,第二种方法计算量大、测量过程过于麻烦,而且所测得的数据真实性不强,测量误差也很大。同时,也存在着第一种测量方法存在的缺点。与前两种测量方法相比较,第三种测量方法能够克服上述缺点。但是考虑到库内粮食的影响因素太多,所检测的数据很难直接得到,其中存在的自然因素、粮堆的模型和粮食的物理因素,这些都制约着测量的可行性。所以,设计非接触式的在线工作模块是当前迫切需求的[12]。在粮情检测与控制方面,粮食的温度、湿度检测是粮库粮食管理的一个重要方面。当今世界和我国的科学水平有了很好的基础,已经摆脱了以前的那些落后的局面。单片机技术的更新换代,使得单片机技术、数据采集与通信技术被广泛应用在智能化粮库粮食的计量与粮情监控管理系统。最开始是采用热导电片、铜作为传感检测元件,以热导电片、铜电阻的热反应变化来得知粮情的变化。然而像这种工作模式仍是依靠人工去工作。它的缺点是:可靠性不好;同时,它的精度也不高。面对这种难题的困扰,我国的一些技术工作者在多年来的设计研究下,取得了很大的进步。传感检测装置的自动化、数字化,数据采集技术日益完善,速度快、准确度高的特点。从而使得我们在粮食管理方面,有逐步完善的检测系统。我国在粮库管理方面所用的监测与控制系统,已经进入智能化、信息化和数字化的时代。在本系统采用的硬件检测装置中,用到的是温湿度、计量等方面的检测设备。在数据采集模块上,有计量、温湿度等粮情的预设置接口,还有集成设计电路板上专属的多个芯片,来完成系统预先设定的功能。除了可以检测上述数据外,还留有计量报警、温湿度报警和数据转换等功能。采取这些设备组成的管理模块所具备的功能,其特点:系统的结构布局简单、容易安装和维护,还有就是检测采集数据的实时性、准确度高等优点。不足之处,就是在这些选购的设备中,温湿度传感器虽然克服了传统的测温测湿系统中的不便。这种检测设备以更直观、更准确的给出了检测数值,但是投入的成本较高。相比较而言,世界上发达国家在这方面的研究技术已经远远的走在了我们的前边。在粮食管理技术方面,国内与国外在这方面已经有了一定的差距。国外,在这方面所采用的已是全数字、多功能。设计内容及要求本次毕业设计以单片机STC89C52为核心,能够综合测量多点温湿度并对粮食计量,通过无线收发信号,具有报警系统和显示功能。具体设计内容如下:1.选择合适的传感器,并分析它们的使用方法。2.实现传感器与单片机的连接,实现数据的采集。3.设计多个采集从机子系统,编号为A-N,能满足对温湿度、计量的测量。4.从机采集数据后经无线模块发送至主机,并在主机显示各个节点的信息,主机通过按键设置温湿度上下限,对于温湿度超值进行报警。5.搭建硬件电路,编写相应的软件程序,实现系统的软硬件功能,进行系统调试和测试数据综合分析。第2章系统总体方案功能分析系统组成框图根据本次课题的内容及课题任务的要求,智能化粮库粮食计量与温湿度监控系统主要由计量、温湿度检测电路、下位机控制电路、无线传输电路、上位机控制电路四个主要模块组成。系统设计了两个下位监测从机,其总体原理框图,如图2-1所示。图2-1总体原理框图根据原理框图,设计方案:采用数字式温湿度传感器DHT11和HC-SR04超声波模块组成数据采集端,上位机和下位机采用单片机STC89C52,利用NRF905作为无线传输模块,LCD12864显示测量结果。系统组成框图如图2-2所示。图2-2系统模块组成图系统各硬件模块的功能分析1.电源模块功能分析系统有无线模块、单片机模块、采集模块、按键模块、报警模块等等,无线模块需要提供+,其他模块提供+,综合分析需要电源模块提供++,以满足各模块的工作电压需求。2.采集模块功能分析采集模块包括温湿度的采集和计量采集。为了了解粮仓的实时情况,采集模块一定要选好采样点并保证数据的准确性。3.单片机控制模块功能分析单片机控制模块,它的晶振控制着单片机的工作节奏,I/O口控制着外围电路的工作情况,主要是控制粮食计量、温湿度的测量、NRF905接收和发送数据、报警模块的工作等等。4.无线传输模块功能分析上位监测主机和下位监测机都需要连接无线传输模块,根据上位监测主机和下位监测从机的功能要求,处于等待接收模式或发送模式。上位监测主机首先是发送模式,然后等待接收;下位监测从机首先等待接收数据,然后发送数据。5.按键模块功能分析按键模块用来设置温湿度的报警上下限。6.显示模块功能分析显示模块由带字库的12864组成,用来显示监测数据。7.报警模块功能分析上位机接收到的温湿度数值不在给定范围内时,就驱动蜂鸣器。第3章系统硬件电路设计及实现确定了多点粮仓温湿度的无线监测系统方案设计,根据系统实现方案中各模块的功能要求,对多点粮仓温湿度的无线监测系统各模块硬件电路进行设计。该模块分为上位机和下位机,其主要包括以下七个模块:电源模块、采集模块、单片机控制模块、无线传输模块、按键模块、显示模块和报警电路模块。电源模块的设计及实现电源模块外接USB提供+,通过芯片AMS1117输出稳定的+,这样可以为系统提供++。电源模块如图3-1所示。图3-1电源模块AMS117芯片引脚描述如表3-1所示。表3-1AMS117引脚描述Pin名称注释1GND/ADJ地/ADJ2OUT输出电压3IN输入工作电压温湿度采集模块的设计及实现温湿度采集温湿度采集采用数字式DHT11温湿度传感器,该芯片的性能和具体使用方法如下:1.相对湿度和温度测量,范围是20-90%RH、0-50℃,精度±5%RH、±2℃;2.全部校准,数字输出;3.卓越的长期稳定性;4.只需数据端接上拉电阻,无需额外部件;5.超长的信号传输距离,信号传输距离可达20米以上;6.超低能耗;7.4引脚安装。DHT11的硬件设计也极其简单,就只有4个引脚,其中还有一个空脚悬空的。—1mA之间,漏极开路,内部没有拉高电路,当输出0是就是低电平,但输出1时实际上是悬空的,所以要接上拉电阻,满足电流需要,故选择上拉电阻为10K,电流为1mA。具体的设计图和实物图,如图3-2和图3-3所示。图3-2DHT11连接图图3-3DHT11实物图DHT11温湿度传感器引脚描述如表3-2所示。表3-2DHT11引脚描述Pin名称注释1VCC2DATA串行数据单总线3NC悬空4GND接地计量采集的设计及实现计量采集利用HC-SR04超声波测距模块对粮仓的粮食进行计量,其原理为:此传感检测装置采取了相应的专有手段,以及采取拾取误差小的方法,进而得知粮库传感器波束源到实测物的距离。它在物料中检测时,它方向性保持的很好,而且在物料的检测时准确度高。当超声波遇到障碍时能随时的有反射属性[13-14]。它利用光束源的出发点和光束角的大小,根据超声波的可回波测距原理得知物料的垂直距离和物料的低面积,从而也就得出粮食的体积[15]。其原理如图3-4所示。图3-4超声波物位检测原理图根据示意图得出:(3-1)(3-2)注:s表示光束源到物料表层的垂直距离,c表示超声波光束的传播速度,t表示超声波检测物位所需的时间;H表示光束源到物料底层的距离,它可以直接测量得出;h表示物料位的实际高度。其中s,h可根据上述公式可以得出。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:采用IO口TRIG触发测距,给至少10us的高电平信号;模块自动发送8个40khz的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间×声速(340M/S))/2。。HC-SR04超声波模块电路图和实物图如图3-5和图3-6所示。图3-5HC-SR04连接图图3-6HC-SR04实物图HC-SR04超声波模块引脚描述如表3-3所示。表3-3HC-SR04超声波模块引脚描述Pin名称注释1VCC供电+2TRIG触发控制信号输入3ECHO回响信号输出4GND接地单片机控制模块的选用常用的单片机有很多种:Intel8051系列、STC系列、Motorola和M68HC系列、Atmel的AT89系列、台湾华邦(Winbond)W78系列、荷兰Pilips的PCF80C51系列、Microchip公司系列4位单片机、台湾义隆的EM-78系列等。本次设计最终选用了STC89C52单片机。STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能COMOS8的微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机最小模块包括两部分:时钟电路和复位电路。时钟电路设计及实现时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度。目前51系列单片机都采用CMOS工艺,允许的最高频率是随型号而变化的,本系统采用12MHz的晶振,则其一个机器周期为1us。因为本设计需要I/O口来模拟SPI时序,以及DHT11都需要严格的时间控制,所以取整数周期,有利于时间的计算。STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该放大器的输入端和输出端,在XTAL1、XTAL2上外接晶振和电容组成振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联谐振电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度的稳定性,所以本设计采用12MHz的晶体振荡器和30pF的电容。时钟电路设计,如图3-7所示。图3-7时钟电路复位电路设计及实现单片机有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期以上的高电平,使器件复位,只要RST保持高电平,单片机保持复位状态,此时ALE、PSEN、P0、P1、P2、P3口都输出高电平,RST上输入返回低电平以后,退出复位,单片机从初始状态开始工作。人工复位就是将一个按钮开关并联于上电复位电路,按一下开关,就在RST端就出现一段时间的高电平,即使器件复位。由于单片机复位端有内接电阻,所以复位电路设计,如图3-8所示。图3-8复位电路按下开关后,电容充电,到达稳定后,电容相当于开路,其两端电压为5V,电路的时间常数为R×C,本设计取R=200Ω、C=10uF,经计算时间常数为2ms,而两个机器周期只有2us,所以该设计完全满足要求。无线传输模块的选用采用NRF905作为无线收发模块,其特点:1.433Mhz开放ISM频段免许可证使用;2.最高工作速率50kbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合;3.125频道,满足多点通信和跳频通信需要;4.内置硬件CRC检错和点对多点通信地址控制;5.低功耗-工作,待机模式下状态仅为;6.收发模式切换时间<650us;7.模块可软件设地址,只有收到本机地址时才会输出数据,可直接接各种单片机使用,软件编程非常方便;8.TXMode:在+10dBm情况下,电流为30mA;RXMode:;9.标准DIP间距接口,便于嵌入式应用。NRF905引脚图和实物图如图3-9和图3-10所示。图3-9NRF905引脚图图3-10NRF905实物图NRF905引脚描述如表3-4所示。表3-4NRF905引脚描述Pin名称功能说明1VCC电源电源+~DC2TRX_EN数字输入TX_EN=1TX模式TX_EN=0RX模式3TRX_CE数字输入使能芯片发射或接收4PWR_UP数字输入芯片上电5UPCLK时钟输出本模块该脚不用6CD数字输出载波检测7AM数字输出地址匹配8DR数字输出接收或发射数据完成9MISOSPI接口SPI输出10MOSISPI接口SPI输入11SCKSPI时钟SPI时钟12GSNSPI使能SPI使能13GND地接地14GND地接地VCC脚接电压范围为~之间,不能在这个区间之外,超过将会烧毁模块,该系统采用+。由于单片机上面没有SPI,所以该系统用IO口模拟SPI。按键模块的设计及实现本设计主机采用4×4矩阵式键盘来设置温湿度报警的上下限,这样的设计简单明了。如图3-11所示为矩阵键盘与主机连接图。图3-12为矩阵键盘实物图。图3-11矩阵键盘与单片机连接图图3-12模块化矩阵键盘这种模块化矩阵键盘有效的减少了设计时间,采用8根引脚与单片机连接,采用编程来定义按键功能,本次设计按键定义:A键、B键设置温度报警上下限,C键、D键设置湿度报警上下限,#键确定,*键清除,数字键用来设值。显示模块的选用及和单片机的连接显示模块采用DM12864M汉字图形点阵显示模块,可显示汉字及图形,内置8192个汉字、128个字符及64×256点阵显示RAM。主要技术参数及特性:1.电源:VDD+~+5V(内置升压电路,无需负压);2.显示内容:128列×64行;3.显示颜色:黄绿;4.显示角度:6:00钟直视;5.LCD类型:STN;6.与MCU接口:8位或4位并行/3位串行;7.配置LED背光;8.多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。DM12864M电路连接图和实物图如图3-13和图3-14所示。图3-13DM12864M显示模块与主机连接图图3-14DM12864M实物图DM12864M引脚描述如表3-5所示。表3-5DM12864M引脚描述Pin引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位低电平有效18NC空脚19LED_A背光源正极20LED_K背光源负极报警模块的设计及实现报警电路要达到的功能是,当下位机测量得到的数据传输给上位机后,上位机将接收到的数据与限定值相比较,如不在范围内,就发出警报。蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。本系统采用压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后(~15V直流工作电压),多谐振荡器起振,~,阻抗匹配器推动压电蜂鸣片发声。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,本系统使用PNP型三极管来放大电流。报警电路设计及实现图3-15蜂鸣器连接电路图图3-16蜂鸣器实物图图3-16为蜂鸣器实物图。如图3-15所示,蜂鸣器工作电流比较大,所以直接外接+,,三极管Q0起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。系统总体硬件设计及实现系统包括用来采集发射的从机和接受显示的主机,在各个模块硬件电路确定后,就可以确定本系统总体硬件设计。主机硬件电路:图-17主机硬件电路从机硬件电路:图3-18从机硬件电路第4章系统程序设计在硬件设计的基础上,根据硬件设计的各个模块,完成程序设计。程序设计分为主机程序设计和从机程序设计两个部分。主机程序设计主机程序设计思路设计采用A、B两个从机作为采集端,A、B两个从机将采集的信息依次循环通过NRF905无线模块发送到主机,主机依次接受数据后在显示屏上显示,并与温湿度上下限值进行对比,若发生超值,则启动报警器。主机程序流程图4-1主机程序流程图无线模块程序设计无线模块NRF905的工作方式:NewMsg-RF905一共有四种工作模式,其中有两种活动RX/TX模式和两种节电模式。活动模式:ShockBurstRX和ShockBurstTX。节电模式:掉电和SPI编程、STANDBY和SPI编程。NRF905工作模式由TRX_CE、TX_EN、PWR_UP的设置来设定,如表4-1所示。表4-1工作模式的设置表PWR_UPTRX_CETX_EN工作模式0XX掉电和SPI编程10XStandby和SPI编程110ShockBurstRX111ShockBurstTX该系统中只使用了ShockBurstRX和ShockBurstTX模式,故只介绍这两种工作模式的流程。ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。ShockBurstTM技术同时也减小了整个系统的平均工作电流。在ShockBurstTM收发模式下,NRF905自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,DR引脚通知微处理器数据发射完毕。具体的发送和接受流程如下。ShockBurstTX发送流程:1.微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给NRF905,SPI接口的速率在通信协议和器件配置时确定;2.控制器置高TRX_C和TX_EN,激发NRF905的ShockBurstTM发送模式;3.NRFF905的ShockBurstTM发送:A.射频寄存器自动开启;B.数据打包(加字头和CRC校验码);C.发送数据包;D.当数据发送完成,数据准备好引脚被置高;4.TO_RETRAN被置高,NRF905不断重发,直到TRX_CE被置低;5.RX_CE被置低,NRF905发送过程完成,自动进入空闲模式。ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,NRF905才能接受下一个发送数据包。ShockBurstRX接收流程:1.TRX_CE为高、TX_EN为低时,NRF905进入ShockBurstTM接收模式;2.0us后,NRF905不断监测,等待接收数据;3.NRF905检测到同一频段的载波时,载波检测引脚被置高;4.接收到一个相匹配的地址,AM引脚被置高;5.当一个正确的数据包接收完毕,NRF905自动移去字头、地址和CRC校验位,然后把DR引脚置高;6.控制器把TRX_CE置低,NRF905进入空闲模式;7.控制器通过SPI口,以一定的速率把数据移到微控制器内;8.所有的数据接收完毕,NRF905把DR引脚和AM引脚置低;9.NRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,NRF905立即把其工作模式改变,数据包则丢失。当微处理器接到AM引脚的信号之后,其就知道NRF905正在接收数据包,其可以决定是让NRF905继续接收该数据包还是进入另一个工作模式。无线模块NRF905的配置:所有配置字都是通过SPI接口送给NRF905。SIP接口的工作方式可通过SPI指令进行设置。当NRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。SPI接口寄存器配置SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。SPI指令设置当CSN为低时,SPI接口开始等待一条指令。任何一条新指令均由CSN的由高到低的转换开始。用于SPI接口的有用命令如表4-2所示。表4-2SPI指令设置表SPI串行接口指令设置指令名称指令格式操作W_CONFIG(WC)0000AAAA写配置寄存器AAAA指出写操作的开始字节字节数量取决于AAAA指出的开始地址R_CONFIG(RC)0001AAAA读配置寄存器AAAA指出读操作的开始字节字节数量取决于AAAA指出的开始地址W_TX_PAYLOAD(WTP)00100000写TX有效数据1-32字节写操作全部从字节0开始R_TX_PAYLOAD(RTP)00100001读TX有效数据1-32字节读操作全部从字节0开始W_TX_ADDRESS(WTA)00100010写TX地址1-4字节写操作全部从字节0开始R_TX_ADDRESS(RTA)00100011读TX地址1-4字节读操作全部从字节0开始R_RX_PAYLOAD(RRP)00100100读RX有效数据1-32字节读操作全部从字节0开始CHANNEL_CONFIG(CC)1000pphccccccccc快速设置配置寄存器中CH_NOHFREQ_PLL和PA_PWR的专用命令CH_NO=cccccccccHFREQ_PLL=hPA_PWR=ppSPI时序SPI时序包括读时序和写时序,如图4-2和图4-3所示。图4-2SPI读操作图4-3SPI写操作从图4-3中可看出,CSN在低电平是有效,CSK在下降沿时有效,具体命令的设置必须在CSN和CSK有效的情况下实施。配置寄存器说明NRF905配置寄存器的具体说明如表4-3所示。表4-3NRF905配置信息说明表参数位宽说明CH_NO9同HFREQ_PLL一起设置中心频率默认值=001101100b=180dFRF=+CH_NOd/10*(1+HFREQ_PLLd)MHZHFREQ_PLL1设置PLL在433或868/915MHZ模式默认值=00-器件工作在433MH频段1-器件工作在868/915MHZ频段PA_PWR2输出功率默认值=0000-10dBm01-2dBm10+6dBm11+10dBmRX_RED_PWR1灵敏度降低默认值=00-正常模式1-低功耗模式AUTO_RETRAN1重发数据如果TX寄存器的TRX_CE和TX_EN被设置为高默认值=00-不重发数据1-重发数据包RX_AWF3RX地址宽度默认值=100001-1字节RX地址宽度100-4字节RX地址宽度TX_AWF3TX地址宽度默认值=100001-1字节TX地址宽度100-4字节TX地址宽度RX_PW6RX接收有效数据宽度默认值=100000000001-1字节RX有效数据宽度000010-2字节RX有效数据宽度100000-32字节RX有效数据宽度TX_PW6TX有效数据宽度默认值=100000000001-1字节TX有效数据宽度000010-2字节TX有效数据宽度100000-32字节TX有效数据宽RX_ADDRESS32RX地址使用字节依赖于RX_AFW默认值=E7E7E7E7hUP_CLK_FREQ2输出时钟频率默认值=1100-4MHZ01-2MHZ10-1MHZ11-500KHZUP_CLK_EN1输出时钟使能默认值=10-没有外部时钟1-外部时钟信号使能XOF3晶体振荡器频率必须依据外部晶体的标称频率设置默认值=100000-4MHZ001-8MHZ010-12MHZ011-16MHZ100-20MHZCRC_EN1CRC校验允许默认值=10-不允许1-允许CRC_MODE1CRC模式默认值=10-8位CRC校验位1-16位CRC校验位配置寄存器内容配置寄存器有十个字节需要设置,如表4-4所示。表4-4十个字节的配置信息分析表字节号内容位[70]MSB=BIT[7]初始化值0Bit[70]0110_11001Bit[7:6]AUTO_RETRANRX_RED_PWRPA_PWR[1:0]HFREQ_PLLCH_NO[8]0000_00002Bit[7]没用TX_AFW[2:0]Bit[3]没用RX_AFW[2:0]0100_01003Bit[7:6]没用RX_PWR[5:0]0010_00004Bit[7:6]没用TX_PWR[5:0]0010_00005RX地址0字节E76RX地址1字节E77RX地址2字节E78RX地址3字节E79CRC_模式CRC校验允许XOF[2:0]UP_CLK_EN1110_0111具体每个字节的含义作如下的解释:字节0:[7:0]CH_NO[7:0],连同字节1的CH_NO[8]和HFREQ_PLL控制905的载波频段。参考设置:OperatingfrequencyHFREQ_PLLCH_NOMHz[0][001001100]MHz[0][001101011]MHz[0][001101100]MHz[0][001111011]MHz[1][001010110]MHz[1][001110101]MHz[1][001110110]MHz[1][001111101]MHz[1][100011111]MHz[1][100100000]MHz[1][110011111]载波频率的计算公式:(4-1)字节1:[0]CH_NO[8]:参见字节0[1]HFREQ_PLL:0-器件工作在433MHZ频段1-期间工作在868/915MHZ频段[3:2]PA_PWR:输出功率00-10dBm(默认)01-2dBm10+6dBm11+10dBm[4]RX_RED_PWR:降低接收模式电流消耗至,灵敏度降低。0-正常模式(默认)1-低功耗模式[5]AUTO_RETRAN:自动重发TX寄存器中的数据包,如果TRX_CE和TX_EN被设置为高。0-不重发数据包(默认)1-自动重发数据包[7:6]保留字节2:[2:0]RX_AWF[2:0]:RX地址宽度001-1字节RX地址宽度(默认)100-4字节RX地址宽度[3]保留[6:4]TX_AWF[2:0]:TX地址宽度001-1字节TX地址宽度100-4字节TX地址宽度[7]保留字节3:[5:0]RX_PW[5:0]:RX接收有效数据宽度000001-1字节RX有效数据宽度000010-2字节RX有效数据宽度10000-32字节RX有效数据宽度[7:6]保留字节4:[5:0]TX_PW[5:0]:TX发送有效数据宽度000001-1字节TX有效数据宽度000010-2字节TX有效数据宽度100000-32字节TX有效数据宽度[7:6]保留字节5:RX地址0字节字节6:RX地址1字节字节7:RX地址2字节字节8:RX地址3字节字节9:[1:0]UP_CLK_FREQ[1:0]:输出时钟频率00-4MHZ01-2MHZ10-1MHZ11-500KHZ[2]UP_CLK_EN:输出时钟使能0-没有外部时钟1-外部时钟信号使能(默认)[5:3]XOF[2:0]:晶体振荡器频率,必须依据外部晶体的标称频率设置(无线模块上905芯片外接晶振的频率)。000-4MHZ001-8MHZ010-12MHZ011-16MHZ100-20MHZ(默认)[6]CRC_EN:CRC校验允许0-部允许1-允许(默认)[7]CRC_MODE:CRC模式0-8位CRC校验位1-16位CRC校验位(默认)系统主机的配置信息为:0X4C、0X0C、0X44、0X08、0X08、0XE6、0XE6、0XE6、0XE6、0X58。系统A从机的配置信息为:0X4C、0X0C、0X44、0X08、0X08、0XE7、0XE7、0XE7、0XE7、0X58。系统B从机的配置信息为:0X4C、0X0C、0X44、0X08、0X08、0XE5、0XE5、0XE5、0XE5、0X58。从配置信息上可看出,地址宽度都设置为4个字节,发送和接收的数据长度都为8个字节,频率为430MHz。从机程序设计从机程序设计思路从机收到主机命令后,将检测好的数据通过NRF905发送至主机,先发送地址,再发送数据,然后设置发送命令,该程序设计思路主要围绕NRF905。从机程序流程图4-4从机程序流程图温湿度测量程序设计DHT11的测温度模式DHT11有四个引脚,其中第二个为DATA端,DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,小数部分用于以后扩展,现读出为零,操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和。数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。DHT11的工作时序用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。该模式下,DHT11接收到开始信号触发一次温湿度采集,,如果没有接收到主机发送开始信号,。通讯过程如图4-5示。图4-5DHT11的通讯过程总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据。该过程如图4-6所示。图4-6DHT11通信详细过程每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1,具体格式如图4-7所示。图4-7数据输出高低电平详图测温湿度流程湿度测量的过程按照第三章介绍的时序图进行测量湿度,具体的流程如图4-8所示。图4-8DHT11测湿度流程图测量的过程具体如下:第一步:主机把总线拉低18ms,等待DHT11响应;第二步:主机发送开始信号结束后,延时等待20-40us,等待DHT11响应;第三步:DHT11接收到主机的开始信号后,发送80us低电平响应信号;第四步:DHT11发送响应信号结束后后,再把总线拉高80us,准备发送数据;第五步:读取数据;第六步:进行数据校验,如果正确,就将其拆成四位显示,如果不正确,则丢弃数据,重新测量。超声波测距模块程序设计图4-9HC-SR04超声波模块时序图以上时序图表明只需要提供一个10us以上的脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者uS/148=英寸:或是:距离=高电平时间×声速/2:建议测量周期为60ms以上,以防止发射信号对回响信号的影响。第5章系统调试与数据分析在完成软件设计和硬件设计的基础上,根据本系统的任务要求,分步实现该系统,对照设计指标,分析本系统的功能实现情况和不足之处。硬件电路的实现和调试本系统焊接和调试是按如下步骤进行的:第一步,制作电源模块;第二步,制作三个单片机最小系统和显示电路;第三步,将其中两个单片机作为从机,接上各个采集模块电路;第四步,连上无线模块nRF905,先让两个单片机之间能够单向传输,再双向传输;第五步,将温湿度、计量信息传输过来并显示;第六步,接上按键模块和报警电路,使功能完善:第七步,烧入程序,调试系统。实现的硬件系统如图5-1所示。图5-1系统硬件软硬件功能分析软硬件的功能实现本系统从机能够完成实时计量、温湿度测量,能够接收上位机的命令和发送计量、温湿度信息值给主机;主机也能及时接收从机传送的信息值,并驱动报警模块和显示电路。硬件设计上也较为流畅,制作也很规范,但是有些地方一开始缺少考虑,还是有不足之处。软硬件的不足之处首先硬件制作方面,选择的HC-SR04超声波模块测量距离20~4000cm,对于较为高大的仓库无法进行测量,需要选择测量距离大的传感器。其次,软件方面也有一个不足之处,由于程序不够精简,过于繁琐,导致系统反应时间上有点迟缓,还要加以改进。测试结果分析为了确定测量结果的正确性,我将其测量结果与温湿度测量仪的结果进行比较,具体情况如表5-1所示。表5-1测量结果对比表温湿度测量仪A从机B从机温度℃湿度%温度℃湿度%温度℃湿度%586156585756575757565757575659585960596057585956计算误差的公式为:(5-1)(5-2)EQEQ(5-3)根据这三个公式求得A从机的测温误差为±%,B从机的测温误差为±%;A从机的测湿误差为±%,B从机的测湿误差为±%。从计算的结果可以看出,湿度和温度的精度要求都在±5%范围内,所以本设计的指标要求,该系统完全满足。下位机测得的结果,能够显示出来,也能够无线传输给上位机;上位机能够接收下位机发送的数据,并显示温湿度信息值和表示监测点,与下位机测得的数据完全吻合,所以NRF905模块也是完全符合要求的。综合分析,该系统实现了预定的研究目标。结论本论文针对粮食的计量与温湿度检测,完成了一个智能化粮库的粮食计量与粮情监控系统。包括了系统的总体方案的设计、传感检测装置的硬件选型与检测原理、主、分控装置子系统的研究和数据采集子系统的设计。所做的主要工作如下:1.设计出了一套完整的智能化粮食计量与粮食温湿度检测系统总体方案,以及对硬件设施的选型。2.数据采集系统是以AT89C52单片机作为核心元件来设计的,综合其它部件设计了一套很好的硬件数据采集系统。在此模式进行现场实时传输的过程里,正是单片机的信号实时处理、处理和测量值的实时检测能力。从而,它能准确、实时的检测和采集现场的数据。3.设计实现了主、分控装置一套,这两个子系统装置是以AT89C52单片机作为核心部件来设计的。这样便于在粮库现场能够很好的监控分散的粮仓内的数据采集模块,同时能把收到的数据经处理、打包传送给监控中心。本文创新点:针对粮库现场的实际情况。在计量方面,采用的是非接触式超声波测距传感器来测量粮食的存储量,比以往人工测量效率更高。在检测粮食温湿度方面,采用的是数字式温湿度传感器来完成粮仓温湿度监控;同时,计量检测与温湿度监测二者接入同一数据采集模块。以便这些数据同一时间送达上位机,而且还能保证检测数据的分明度和准确度。谢辞四年时光,转瞬即逝。回想从大一到现在,洛阳理工学院给我创造了优雅的学习环境及舒适的生活条件,洛阳理工学院的老师给我传授了做人的道理和丰富的专业知识,洛阳理工学院的同学让我学会了团结的精神与谦虚苦学的态度。现如今,即将离开自己的母校,结束自己的学生生涯;与此同时,也将走向社会,开启自己的事业征程。路漫漫其修远兮,吾将上下而求索。在此之际,我真心的感谢自己的老师、同学以及在学习生活上帮助过我的各位朋友。参考文献[1]吴存荣,唐怀建,王艳艳.我国粮食储藏标准体系的现状与展望[J].中国粮油学报,2010,25(11):124-128.[2]中国粮油学会储藏分会.粮食储藏科学技术学科发展报告[J].粮食储藏,2009,38(5):3-7.[3]唐柏飞.我国粮食储藏的现状及发展趋势[J].中国粮食经济,2007,1:35-39.[4]刘克强.对中国粮食安全问题的研究[J].首都经济贸易大学学报,2008,10(5):42-46.[5]吕建华.国外粮食储藏技术研究及对我国的启示[J].信息技术,2008,(17):20-22.[6]胡啟龙.利用仓房空间温控储粮技术实现“一减二降三防”低温绿色储粮[J].信息技术,2009,2(13):46-48.[7]万拯群.我国储粮技术创新途径与发展思路[J].粮食储藏,2003,32(1):22-26.[8]兰盛斌,郭道林,严晓平等.我国粮食储藏的现状与未来发展趋势[J].中国科技成果,2008,(17):8-16.[9]汪建,许驰.21世纪粮情测控系统的研究与实现[J].粮油仓储科技通讯,2002,(5):34-36.[10]张亚超,朱小会.浅析智能传感器与粮食储藏[J].中国西部科技,2011,10(7):48-49.[11]白杨,梁青云.对基于无线传输方式的粮情监控系统的研究[J].黑龙江粮食,2008,(1):47-49.[12]王明志,马忠宝.无线大型粮库温度监控系统[J].机械设计与制造,2008,(9):41-43.[13]王莹.超声波料位计在粮仓测量中的应用[J].粮食与饲料工业,2004,(5):18.[14]宋飞,石红瑞,窦连旺.超声波传感器在料位测量中的应用[J].仪器仪表与应用,2007,(3):67-70.[15]李正群.一种智能式非接触体积测量系统[J].计量技术,1999,(1):25-27.附录部分相关程序//主函数#include""#include""#include""#include""#defineuintunsignedint#defineucharunsignedcharsbitfengming=P3^1; //蜂鸣器externuchardataRxBuf[NUM];ucharkey='N'; //获取按键的值的变量ucharT_Max,T_Min,H_Max,H_Min; //报警的温度、湿度上下限ucharT_A,T_B,H_A,H_B; //读取的温湿度的变量uchartable_line1[]="A体:000m3";uchartable_line2[]="温度:00湿度:00";uchartable_line3[]="B体:000m3";uchartable_line4[]="温度:00湿度:00";ucharcodetable_T_Max[]="输入报警温度上限";ucharcodetable_T_Min[]="输入报警温度下限";ucharcodetable_H_Max[]="输入报警湿度上限";ucharcodetable_H_Min[]="输入报警湿度下限";ucharcodetable_Success[]="设置成功";voiddelayms(uintz){ unsignedintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidLCD_disp() //12864的初始化显示{ uchari=0; lcd_pos(0,0); while(table_line1[i]!='\0') { lcd_wdat(table_line1[i++]); } i=0; lcd_pos(1,0); while(table_line2[i]!='\0') { lcd_wdat(table_line2[i++]); } i=0; lcd_pos(2,0); while(table_line3[i]!='\0') { lcd_wdat(table_line3[i++]); } i=0; lcd_pos(3,0); while(table_line4[i]!='\0') { lcd_wdat(table_line4[i++]); }}voidkeyDo(uchark) /按键操作函数{ uchari=0; ucharkey1='',key2=''; if(k=='A') //如果按下的是A,执行设置报警温度上限 { ucharkeyCount=0;//记录按键按下的次数 lcd_wcmd(0x01);//清除LCD的显示内容 i=0; lcd_pos(0,0); while(table_T_Max[i]!='\0') { lcd_wdat(table_T_Max[i++]); } while(1) { key=KeyScan(); if(key>='0'&&key<='9')//按下的是数字键 { if(keyCount<2) { if(keyCount++==0) key1=key; else key2=key; lcd_pos(1,0); lcd_wdat(key1); lcd_wdat(key2); } } elseif(key=='*') //按下的是清除键 { keyCount=0; key1=''; key2=''; lcd_pos(1,0); lcd_wdat(''); lcd_wdat(''); } elseif(key=='#') //确认键 { if(keyCount==2) { at24_write(0x00,key1-0x30); //存储温度的值 delayms(100); at24_write(0x01,key2-0x30); //存储温度的值 delayms(100); T_Max=(at24_read(0x00)*10)+at24_read(0x01); lcd_wcmd(0x01);//清除LCD的显示内容 KeyDelay(100); i=0; lcd_pos(1,2); while(table_Success[i]!='\0') { lcd_wdat(table_Success[i++]); } KeyDelay(2000); break; } } } } elseif(k=='B') //设置报警温度的下限 { ucharkeyCount=0; //记录按键按下的次数 lcd_wcmd(0x01);//清除LCD的显示内容 i=0; lcd_pos(0,0); while(table_T_Min[i]!='\0') { lcd_wdat(table_T_Min[i++]); } while(1) { key=KeyScan(); if(key>='0'&&key<='9')//按下的是数字键 { if(keyCount<2) { if(keyCount++==0) key1=key; else key2=key; lcd_pos(1,0); lcd_wdat(key1); lcd_wdat(key2); } } elseif(key=='*') //按下的是清除键 { keyCount=0; key1=''; key2=''; lcd_pos(1,0); lcd_wdat(''); lcd_wdat(''); } elseif(key=='#') //确认键 { if(keyCount==2) { at24_write(0x02,key1-0x30); //存储温度的值 delayms(100); at24_write(0x03,key2-0x30); //存储温度的值 delayms(100); T_Min=(at24_read(0x02)*10)+at24_read(0x03); lcd_wcmd(0x01);//清除LCD的显示内容 KeyDelay(100); i=0; lcd_pos(1,2); while(table_Success[i]!='\0') { lcd_wdat(table_Success[i++]); } KeyDelay(2000); break; } } } } elseif(k=='C') //设置报警湿度的上限 { ucharkeyCount=0; //记录按键按下的次数 lcd_wcmd(0x01);//清除LCD的显示内容 i=0; lcd_pos(0,0); while(table_H_Max[i]!='\0') { lcd_wdat(table_H_Max[i++]); } while(1) { key=KeyScan(); if(key>='0'&&key<='9')//按下的是数字键 { if(keyCount<2) { if(keyCount++==0) key1=key; else key2=key;lcd_pos(1,0); lcd_wdat(key1); lcd_wdat(key2); } } elseif(key=='*') //按下的是清除键 { keyCount=0; key1=''; key2=''; lcd_pos(1,0); lcd_wdat(''); lcd_wdat(''); } elseif(key=='#') //确认键 { if(keyCount==2) { at24_write(0x04,key1-0x30); //存储温度的值 delayms(100); at24_write(0x05,key2-0x30); //存储温度的值 delayms(100); H_Max=(at24_read(0x04)*10)+at24_read(0x05); lcd_wcmd(0x01);//清除LCD的显示内容 KeyDelay(100); i=0; lcd_pos(1,2); while(table_Success[i]!='\0') { lcd_wdat(table_Success[i++]); } KeyDelay(2000); break; } } } } elseif(k=='D') //设置报警湿度的下限 { ucharkeyCount=0; //记录按键按下的次数 lcd_wcmd(0x01);//清除LCD的显示内容 i=0; lcd_pos(0,0); while(table_H_Min[i]!='\0') { lcd_wdat(table_H_Min[i++]); } while(1) { key=KeyScan(); if(key>='0'&&key<='9')//按下的是数字键 { if(keyCount<2) { if(keyCount++==0) key1=key; else key2=key; lcd_pos(1,0); lcd_wdat(key1); lcd_wdat(key2); } } elseif(key=='*') //按下的是清除键 { keyCount=0; key1=''; key2=''; lcd_pos(1,0); lcd_wdat(''); lcd_wdat(''); } elseif(key=='#') //确认键 { if(keyCount==2) { at24_write(0x06,key1-0x30); //存储温度的值 delayms(100); at24_write(0x07,key2-0x30); //存储温度的值 delayms(100); H_Min=(at24_read(0x06)*10)+at24_read(0x07); lcd_wcmd(0x01);//清除LCD的显示内容 KeyDelay(100); i=0; lcd_pos(1,2); while(table_Success[i]!='\0') { lcd_wdat(table_Success[i++]); } KeyDelay(2000); break; } } } }}voidsetDistance(ucharp,ucharbai,ucharshi,ucharge) //设置体积{ uintV,V_L; V_L=(bai-0x30)*100+(shi-0x30)*10+ge-0x30; V=400-V_L; bai=V/100+0x30; shi=(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省宜昌市协作体2024-2025学年高三上学期11月期中考试生物试题含答案
- 2024年出售农民自建房协议书模板
- 2024年代理父母养老协议书模板
- 2024年承接手工厂外发合同范本
- 企业如何开展好工会活动
- 与水有关的主题活动
- 上消化道出血的护理
- 【数学】抛物线的简单几何性质第1课时课件+2024-2025学年高二上人教A版(2019)选择性必修第一册
- 2024贵州肉类供货合同范文
- 2024年矫味剂项目综合评估报告
- 民族团结主题班会教学课件
- 国开成本会计第14章综合练习试题及答案
- 幼儿园教育活动设计与指导(第二版)教案第二章第二节幼儿园语言教育活动设计二
- 外观检查记录表
- GB∕T 13171.1-2022 洗衣粉 第1部分:技术要求
- 气温的变化与分布 完整版课件
- 现在完成时的用法 完整版课件
- 中小学古诗词首
- DB11T 1411-2017 节能监测服务平台建设规范
- 外科学教案-心脏疾病
- 白内障手术流程
评论
0/150
提交评论