花园农田智能自动灌溉系统

合集下载

基于PLC的全自动灌溉控制系统的设计

基于PLC的全自动灌溉控制系统的设计

基于PLC的全自动灌溉控制系统的设计全自动灌溉控制系统是一种基于PLC(可编程逻辑控制器)的灌溉系统,它可以用于农田、花园、果园等各种农业和园艺用地。

系统通过传感器监测土壤湿度、气温、湿度和天气预报等参数,并根据这些参数自动控制灌溉设备的开启和关闭。

下面将详细介绍基于PLC的全自动灌溉控制系统的设计。

首先,系统需要使用传感器进行数据采集。

传感器可以测量土壤湿度、气温、湿度和降雨等参数。

这些传感器将数据传输给PLC的输入模块,PLC读取这些数据并进行处理。

接下来,PLC根据所测得的数据判断是否需要进行灌溉。

首先,PLC需要检查土壤湿度是否低于预定的阈值。

如果低于阈值,即表示土壤干燥,需要进行灌溉。

其次,PLC需要检查天气预报和实际降雨情况。

如果降雨量足够或即将有降雨,灌溉设备将不会启动。

最后,PLC还可以根据气温和湿度调整灌溉设备的工作时间和水量,以适应不同季节和植物的需求。

PLC根据上述判断结果,控制灌溉设备的开启和关闭。

当系统判断需要灌溉时,PLC将输出信号传给灌溉设备的控制模块,启动灌溉设备,如水泵或喷灌系统。

当土壤湿度达到设定的阈值或者天气条件不需要灌溉时,PLC将关闭灌溉设备。

此外,系统还可以配备远程监控和控制功能。

通过PLC与网络通信,用户可以远程监测和控制灌溉系统。

用户可以通过手机应用或网页界面查看实时数据,如土壤湿度、气温和湿度等参数,以及设定灌溉计划。

用户还可以远程控制灌溉设备,手动开关灌溉系统。

在系统设计过程中,需要充分考虑系统的可靠性和安全性。

系统应具备防雷击、过压、过流等保护功能,确保正常工作。

另外,系统还需要具备故障诊断和报警功能,当发生故障时,及时报警并记录故障信息,以便维修和调试。

总结起来,基于PLC的全自动灌溉控制系统可以实现灌溉设备的自动控制,根据不同的环境参数和实际需求进行智能灌溉。

该系统具有操作简单、节约资源、提高工作效率等优点,可以广泛应用于农业和园艺领域,为农田、花园和果园等提供全自动化的灌溉解决方案。

智能农业灌溉系统

智能农业灌溉系统

智能农业灌溉系统智能农业灌溉系统是一项利用现代科技和先进设备来提高农业生产效率的创新解决方案。

它集成了无线传感器网络、数据分析和自动化控制技术,能够实时监测土壤湿度、气象条件和植物生长情况,从而智能地调节灌溉水量和灌溉时间,为农田提供最佳的水分供应。

这篇文章将详细介绍智能农业灌溉系统的工作原理、优势和应用前景。

一、工作原理智能农业灌溉系统的工作原理主要包括以下几个方面:1. 传感器监测:在农田中布置一定数量的土壤湿度传感器,通过测量土壤湿度和其他参数,了解农田当前的水分状况。

同时,还可以添加气象传感器来收集气温、湿度、风向等气象数据。

2. 数据分析:传感器采集到的数据通过无线网络传输到集中控制中心,进行数据分析和处理。

利用机器学习和人工智能算法,对大量数据进行挖掘和分析,生成决策模型和预测模型。

3. 自动控制:根据分析结果,智能农业灌溉系统能够自动地调节灌溉设备的工作状态。

通过智能控制阀门、水泵等设备,调整灌溉水量和灌溉时间,以实现农田的最优灌溉。

二、优势智能农业灌溉系统相比传统的灌溉方式具有明显的优势:1. 提高水资源利用率:智能农业灌溉系统能够根据农田的实际需水量进行精确灌溉,避免了传统方式中的过量灌溉和浪费,有效地节约了水资源。

2. 减少劳动力成本:传统的灌溉需要大量的人工操作,而智能农业灌溉系统可实现自动化控制,减轻了农田管理人员的工作负担,降低了劳动力成本。

3. 提高农作物产量和质量:智能农业灌溉系统可以根据农田的实际情况调节灌溉水量,保证作物在不同生长阶段得到适当的水分供应,从而提高农作物的产量和质量。

4. 减少农药使用量:智能农业灌溉系统可以实时监测农田的水分状况,避免了过度灌溉导致的积水,减少了病虫害的滋生,降低了农药的使用量。

三、应用前景智能农业灌溉系统在现代农业中有广阔的应用前景:1. 大规模农田应用:智能农业灌溉系统适用于大面积农田的灌溉管理,可以有效地提高农田的灌溉效率,降低水资源的利用成本。

智能灌溉控制系统

智能灌溉控制系统

智能灌溉控制系统在现代农业领域,水资源的高效利用已成为提高生产效率和环境保护的关键。

智能灌溉控制系统作为一种先进的农业技术,通过集成传感器、自动化设备和智能算法,实现了对农田灌溉过程的精准控制。

这种系统不仅能够根据土壤湿度、天气条件和作物需求自动调节灌溉量,还能有效减少水资源浪费,提高作物的产量和质量。

智能灌溉控制系统的核心在于其精准性和自动化。

系统通过安装在农田中的传感器实时监测土壤湿度、温度、光照等环境参数,并将这些数据传输到中央控制单元。

中央控制单元根据预设的灌溉策略和实时数据,自动控制灌溉系统的启停和水量分配,确保作物在不同生长阶段都能获得适量的水分。

智能灌溉控制系统还具备远程监控和管理的功能。

农户可以通过手机或电脑远程查看农田的灌溉情况,随时调整灌溉策略,实现对农田的智能化管理。

这种远程管理方式不仅提高了农户的工作效率,还降低了劳动强度。

智能灌溉控制系统的应用不仅限于大型农场,也适用于家庭菜园和城市绿化。

对于家庭菜园,智能灌溉系统可以根据蔬菜的生长需求和天气变化自动调节灌溉量,确保蔬菜的健康生长。

对于城市绿化,智能灌溉系统可以自动控制喷泉、喷灌等设备的运行,实现城市绿化的自动化管理。

智能灌溉控制系统是现代农业的重要组成部分,它通过精准控制和自动化管理,实现了水资源的高效利用和作物的优质生产。

随着科技的不断进步和应用的推广,智能灌溉控制系统将在未来农业生产中发挥越来越重要的作用。

智能灌溉控制系统在现代农业领域,水资源的高效利用已成为提高生产效率和环境保护的关键。

智能灌溉控制系统作为一种先进的农业技术,通过集成传感器、自动化设备和智能算法,实现了对农田灌溉过程的精准控制。

这种系统不仅能够根据土壤湿度、天气条件和作物需求自动调节灌溉量,还能有效减少水资源浪费,提高作物的产量和质量。

智能灌溉控制系统的核心在于其精准性和自动化。

系统通过安装在农田中的传感器实时监测土壤湿度、温度、光照等环境参数,并将这些数据传输到中央控制单元。

2023年智能花园灌溉系统使用说明书

2023年智能花园灌溉系统使用说明书

2023年智能花园灌溉系统使用说明书欢迎使用2023年智能花园灌溉系统。

本使用说明书将为您详细介绍如何正确操作和使用本系统,以确保您能够充分利用其所有功能。

一、系统概述2023年智能花园灌溉系统是一款高效、智能化的自动灌溉系统,旨在为您的花园提供准确、定时的灌溉服务。

该系统采用先进的传感器技术和智能控制器,能够根据花园的实际需求自动调节水量和灌溉时间。

二、系统组成1. 水源接口:系统的入口,用于连接自来水或其他水源供应。

2. 传感器:负责对花园土壤的湿度、温度和光照等参数进行实时监测。

3. 控制器:根据传感器的反馈信息,通过智能算法控制灌溉计划,并与其他组件进行通讯。

4. 灌溉装置:包括喷头、水管和水泵等部件,负责将水源引入花园,并根据控制器的指令进行灌溉。

三、系统操作1. 安装与连接a. 将水源接口与水源连接,保证供水通畅。

b. 将传感器布置在花园各个区域的适宜位置。

注意保持传感器与土壤的良好接触。

c. 将控制器与传感器和灌溉装置等组件连接,确保电路正常通电。

2. 设置参数a. 启动系统后,根据提示按键进入系统设置界面。

b. 按照操作指引,设置花园的面积、植物类型、灌溉频率和水量等参数。

系统将根据这些参数进行智能调控。

c. 完成设置后,保存并退出设置界面。

3. 手动操作a. 当需要手动灌溉时,按下手动灌溉按钮。

系统将根据预设的参数进行灌溉,直到手动关闭。

b. 注意手动操作不会影响系统的自动灌溉计划。

4. 定时灌溉a. 设置好花园的灌溉时间段,系统会在预设的时间自动开启和关闭灌溉。

b. 灌溉时间可根据季节和植物需求进行调整,以达到最佳的灌溉效果。

四、注意事项1. 系统运行前,请确保所有组件连接牢固,电路正常,以避免电击和设备损坏。

2. 避免在雨天或高湿度环境下使用系统,以免造成过度灌溉。

3. 定期检查传感器和喷头等部件是否正常工作,如有异常及时维修或更换。

4. 请按照国家相关法律法规和水资源管理要求,合理使用水资源。

农业智能灌溉系统解决方案

农业智能灌溉系统解决方案

农业智能灌溉系统解决方案农业智能灌溉系统是一种利用先进的传感器技术、自动控制和数据分析算法等技术手段,将农田的灌溉过程进行智能化管理的一种系统。

该系统通过实时监测土壤湿度、气温、降雨量等环境条件,利用数据分析算法进行决策,自动调节灌溉设备的灌溉水量和时间,从而实现农田的精准灌溉,提高灌溉效率和水资源利用效率。

1.传感器技术:系统应配备土壤湿度传感器、气温传感器、降雨量传感器等多种传感器,用于实时监测环境条件。

传感器应具有高精度、稳定性好、能耗低等特点,能够长期有效地工作在田间环境中。

2.数据采集与传输:传感器采集到的数据需要通过无线通信或有线通信方式传输到数据中心进行分析。

使用无线传感器网络技术可以实现灵活布置传感器节点,提高数据采集的稳定性和可靠性。

3.数据分析与决策:在数据中心对传感器采集的数据进行实时分析,并经过算法处理得出灌溉决策。

通过分析土壤湿度数据、气温等环境数据,结合作物需水量等参数,采用模糊控制、遗传算法等方法,自动调整灌溉设备的灌溉水量和时间,实现精准灌溉。

4.控制系统:针对不同类型的灌溉设备,设计相应的控制系统,并与数据中心进行通信,实现远程控制和监控。

控制系统应具备可靠性高、反应速度快、易于操作等特点,能够满足各种环境条件下的灌溉需求。

5.动力系统:灌溉设备通常需要配备动力系统,如水泵、发动机等。

动力系统应具备高效、低噪音、可靠性好等特点,能够满足长时间、大流量的灌溉需求。

6.系统监测与维护:在系统运行过程中,需要对传感器、控制系统、动力系统等进行实时监测和维护。

通过远程监控和故障报警系统,可以实现对系统的及时维护和故障处理。

1.精准调控:通过实时监测环境条件和作物需水量等信息,能够根据作物的生长状态和需水量等因素,对灌溉进行动态调控,实现精确灌溉,减少水资源的浪费。

2.节约资源:通过灌溉水量的精确调控,可以避免过度灌溉,减少对水资源的消耗。

同时,系统的自动控制和数据分析功能,能够减少人工干预和管理成本。

什么是智慧灌溉系统

什么是智慧灌溉系统

什么是智慧灌溉系统智慧灌溉系统是一种利用先进的技术和信息化手段,通过对土壤、作物和环境参数进行准确监测,实时控制水源,合理用水的智能化灌溉系统。

这种系统能够根据作物的需水状况和土壤水分状况,精确计算出灌溉的时间和水量,实现对农田灌溉的精细管理,提高水资源利用率,提升农田产量和质量。

1. 智慧灌溉系统的基本原理智慧灌溉系统基于先进的传感器技术和物联网技术,实时监测土壤湿度、作物生长情况、气象环境等多个指标。

通过收集这些数据,系统能够进行智能分析和预测,为农民提供精准的灌溉方案。

同时,智慧灌溉系统还能根据不同的作物类型和生长阶段,自动调整灌溉水量和灌溉频率,以达到最佳的灌溉效果。

2. 智慧灌溉系统的优势智慧灌溉系统相比传统的人工灌溉方式具有诸多优势。

首先,该系统能够根据实时监测数据,实现水资源的精细管理,避免了传统方式中常见的过度灌溉和浪费现象。

其次,智慧灌溉系统还可以通过调整灌溉水量和灌溉频率,减少土壤侵蚀、水土流失等环境问题的发生。

此外,该系统还能够提供农田监测数据和预警信息,帮助农民及时调整农业生产策略,提高作物产量和品质。

3. 智慧灌溉系统的应用场景智慧灌溉系统在农业生产中具有广泛应用前景。

首先,该系统可以应用于大田作物的灌溉管理,如水稻、小麦、玉米等。

其次,智慧灌溉系统还可以用于果树、蔬菜等农作物的灌溉,帮助农民精确掌握灌溉时机和水量,提高果实和蔬菜的产量和品质。

此外,智慧灌溉系统还可以用于农田的排灌管理,提高土壤水分利用率,改善土壤结构。

4. 智慧灌溉系统的前景和挑战智慧灌溉系统在农业生产中具有广阔的前景,能够提高农田的水资源利用率,改善农业生产的效益和可持续性。

然而,智慧灌溉系统的应用还面临一些挑战。

首先,系统的建设和维护需要相应的技术和人力投入,对农民来说也需要一定的学习和适应过程。

其次,智慧灌溉系统的成本较高,需要资金支持和政策扶持。

此外,该系统在某些地区可能受到天气、土壤条件等自然因素的限制。

智能灌溉系统

智能灌溉系统

智能灌溉系统概述智能灌溉系统是指通过各种传感技术和自动化控制技术,将水资源用于植物灌溉。

该系统通过监测土壤含水量、气象因素等实时环境参数,自动控制水的流量和灌溉时间,从而实现节水、节能、减少二氧化碳排放等目的。

智能灌溉系统的优势智能灌溉系统相比传统的手动灌溉,具有以下优势:•省水:该系统通过实时监测土壤含水量,可自动调节灌溉时间和水的流量,从而达到节水的目的。

•节能:传统的手动灌溉需要人力进行控制,而智能灌溉系统则可以实现自动化控制,无需人力,从而节约人力资源。

•保护环境:通过灌溉系统的精确控制,减少了农田灌溉水浪费、土地侵蚀、农药和化肥的流失等,降低了对环境的污染。

•提高作物产量:智能灌溉系统可以根据作物成长周期和不同生长阶段变化自动控制灌溉、肥料喷洒等,提高农作物的生产效率和产量。

智能灌溉系统的组成智能灌溉系统主要由以下四个组成部分组成:传感器、执行机构、控制器、通信模块。

传感器传感器可以用来实时监测土壤含水量、大气温度、湿度、辐射度等环境参数。

通过传感器采集的数据,系统可以实现动态调整灌溉车速、水流量等参数,提高水资源利用效率。

常用的传感器有土壤水分传感器、大气温湿度传感器、光照传感器等。

执行机构执行机构是系统中实现自动化控制的关键部件,能够根据传感器采集的数据,实现自动液位控制、泵的开关控制、灌溉喷头的开关控制等功能。

常用的执行机构有减压阀、电磁阀、水泵等。

控制器控制器可以实现对传感器和执行机构的控制,控制器通常通过算法进行决策,并输出控制信号,实现对执行机构的开关控制。

常用的控制器有单片机、微处理器等。

通信模块通信模块可实现智能灌溉系统的远程监测和控制,通过网络平台,对系统进行远程监视,实时传输数据,调节系统运行状态,提高灌溉系统的稳定性和安全性。

智能灌溉系统的应用智能灌溉系统通常用于农田灌溉、果树园、蔬菜大棚、花卉绿化等场合。

在物联网技术的应用和智能算法的支持下,智能灌溉系统的应用越来越广泛。

智能灌溉控制系统的工作原理

智能灌溉控制系统的工作原理

智能灌溉控制系统的工作原理大家好,今天我们来聊聊智能灌溉控制系统。

别看名字挺高大上的,其实它的工作原理一点都不复杂,通俗点说,就是用聪明的办法来给植物浇水。

走,咱们一起看看这套系统是怎么运作的吧!1. 智能灌溉系统的基本概念1.1 什么是智能灌溉系统?简而言之,智能灌溉系统就是一种能自动根据土壤湿度、天气情况等因素来给植物浇水的装置。

你可以把它想象成一个勤劳的小助手,帮你照顾植物,省去你不少麻烦。

就像老话说的“省心省力”,它就是为了这个目的而诞生的。

1.2 它的核心组件是什么?智能灌溉系统通常有几个重要的部分:传感器、控制器和执行器。

传感器就像是植物的“语言翻译器”,它能检测土壤的湿度和环境的变化;控制器是系统的大脑,负责分析数据并决定什么时候需要浇水;执行器就是“行动派”,按照控制器的指示实际进行浇水操作。

2. 智能灌溉系统的工作原理2.1 数据采集一切的开始,都是从传感器采集数据开始的。

比如说,土壤湿度传感器会测量土壤的湿润程度,一旦湿度低于预设值,它就会发出信号。

就像你手机上收到了一条消息,提醒你该喝水了,植物也是这样,通过传感器来“告诉”系统它需要水分了。

2.2 数据分析接下来,控制器就要登场了。

控制器会把传感器收集到的数据进行分析,像是一位细心的老师,审视学生的表现。

如果系统检测到土壤干燥,它就会决定启动灌溉系统,开始给植物浇水。

说白了,控制器就是植物的“贴心管家”。

2.3 执行灌溉最后,就是执行器的工作了。

执行器负责把水送到植物的根部。

它的工作可以是自动的,也可以是远程控制的。

比如,你可以在手机上设置一个浇水计划,系统就会按时自动完成灌溉。

这样一来,植物喝水就像吃饭一样定时定量,健康又省心。

3. 智能灌溉系统的优势3.1 节水环保智能灌溉系统的一大优点就是节水。

传统的灌溉方式常常因为过量或不够精确,浪费了大量的水资源。

而智能系统则根据植物的实际需求来调节水量,既能保证植物健康,又能节约水资源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要:本花园农田智能自动灌溉系统以STC90C58RD+为核心控制单元,采用抗干扰能力强,精度较高的数字温湿度传感器DHT11测量温湿度数据控制灌溉。

并且通过多孔管实现由土壤湿度检测到空气湿度检测的转换,并且能较准确的实现湿度的测量。

系统通过1602液晶把温度、湿度等实时信息反馈给使用者。

使用者也可通过键盘实现手动给水。

关键词:智能灌溉温湿度传感器Abstract:The Intelligentautomatic irrigation system of the garden and farmlandis based on STC90C58RD+micro control unit. Byusingthe anti-interference ability, high accuracy digital temperature humility sensor DHT11,thisirrigation system can get the data of temperature and humility, and control the irrigation.By using the porous pipe, the system can convert the measurement of soil humility to the measurement of the air humility. Users can get the information of temperature,humidity through 1602 screen. Users can also control the irrigation through keyboard manually. Keywords:Intelligent irrigation temperature humility sensor1前言随着经济的发展,智能化渐渐步入普通百姓的家。

现在市场上的各类智能化产品可谓层出不穷,最常见的有智能电饭煲,智能电冰箱和智能洗衣机等。

所谓的智能化,其目的在于增加人与机器的互动,降低功耗,提升效率,尽量达到以人为本的目的。

而本小组的作品—“花园绿地智能自动灌溉系统”,就是遵循上述目的设计的。

对于现代城市大量的绿地来说,植物的灌溉花费大量人力物力,而且并不一定能够依据植物的需求即使提供水分。

夏日的骄阳,随时都有可能对植物的生长造成伤害。

有鉴于此,本小组设计了花园绿地智能自动灌溉系统,它能够对温湿度实时监控,自动灌溉并且可以随时切换手动自动灌溉。

对植物的灌溉根据土壤湿度而定,当土壤湿度低于阈值时,它能自动灌溉。

有了它,可以节约大量人力物力,并且起到节约水资源的作用。

2 总体方案设计及选择2.1总体系统设计总体系统设计如上图所示,以单片机为核心,通过温湿度传感器来判断获取温湿度数据,进而控制开关模块的工作。

由于功耗较低使用电池模块为整个系统提供稳定的低压直流电。

人机交互由键盘和LCD来完成。

通过键盘,用户能执行基本的控制,而LCD能把温度,湿度,工作状态等基本信息反馈给用户。

2.2微控制器方案性能要求:(1)较强的抗干扰能力(2)低功耗(3)较高处理速度(4)成本合理。

方案比较:两款单片机均能较好地实行上述要求但采用51内核的STC89C58RD+具有比ATmega16更稳定的市场来源,更低的成本(前者的约为后者二分之一)而且ROM、RAM容量更大。

最终决定采用STC89C58RD+。

2.3湿度检测方案方案比较:土壤湿度传感器可以精确地测量土壤的湿度值,但是价格较高在700~1000元不适于民用。

通过多孔管将土壤湿度转换为空气湿度进行测量,实现难度较低价格便宜,但是精度较低需要重新确定土壤湿度和空气湿度的对应关系。

通过比较发现,民用不需要过高的精确度,而且空气湿度传感器有数字型可以直接测得数字值易于MCU使用。

最终我们决定使用方案二。

3 单元模块设计3.1单片机最小系统设计本系统以STC89C58RD+为核心控制单元其管脚与一般的51兼容,其主要特性如下:(1)增强型51内核,一个机器周期执行一条指令。

(2)工作电压5.5V~3.3V(3)工作频率范围0~35MHz(4)60K ROM,1024 RAM(5)32个通用IO口,可推输出,电流达20ma(6)支持ISP,IAP串口编程方式(7)集成EPROOM,看门狗,内部RC(8)上电自动复位,掉电检测(9)5路中断,支持上升沿触发(10)2路8位PWM其引脚如上图所示,RXD,TXD为串口收发端,INT0,INT1为外部触发,WR,RD分别为外部写选通,外部读选通。

P0,P1,P2,P3为输入输出接口。

可设定为四种模式:准双向口,推免,高阻,开漏。

P1口第二功能为AD口和ISP下载口P0口自带上拉电阻。

XTAL2 XTAL1为晶振引脚。

最小系统电路:C3与R1构成上电复位电路,XTAL1,XTAL2与晶振相连,频率为12MHz,C1,C2为起振电容EA接正极,以保证对内部ROM编程。

电源电压为直流5V。

晶振频率为11.0562MHz。

3.2DHT11湿度传感器DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8位单片机相连接。

每个DHT11传感器都在湿度校验室中进行校准。

校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行口,较小的体积、较低的功耗,信号传输距离可达20米。

DHT11的供电电压为3-5.5V。

传感器上电后,要等待1s 以越过不稳定状态在此期间无需发送任何指令。

电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

由于DHT11的温度测量只能精确到个位,而实际浴室温度变化比较小,很难通过DHT11的变化控制PWM的占空比,故本设计只采用DHT11的湿度传感器,而温度的测量则交由DS18B20实现。

3.3模块连接图注:DHT11温湿度检测模块可以多个并行使用,测量多点温湿度值,并且由MCU同时控制决定灌溉。

仿真图3.4程序主要流程图NN4主程序设计#include <reg51.h>#include <intrins.h>//typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量*/typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量*/typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量*/typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量*/typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量*/typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量*/typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度)*/typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度)*///#define uchar unsigned char#define uint unsigned int#define Data_0_time 4sbit RS = P1^5;sbit RW = P1^6;sbit E = P1^7;uchar code table1[]="HUMI";uchar code table2[]="TEMP";//************************************************************************* void delay1(uint z)//{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//************************************************************************* void read_busy()//1.1{RS = 0;RW = 1;E = 1;while(P2&0x80);}//************************************************************************* void write_com(uchar com)//1.2{P2 = com;RS = 0;RW = 0;E = 1;//???delay1(5);E = 0;}//************************************************************************* uchar read_dat(void)//1.3{uchar rdat;RS = 1;RW = 1;E = 1;rdat = P2;delay1(5);return(rdat);}//************************************************************************* void write_dat(uchar dat)//1.4{P2 = dat;RS = 1;RW = 0;E = 1;delay1(5);E = 0;}//************************************************************************* void init()//{delay1(15); //5.1write_com(0x38);//5.2delay1(5); //5.3write_com(0x38);//5.4delay1(5); //5.5write_com(0x38);//5.6write_com(0x38);//5.8write_com(0x08);//5.9write_com(0x01);//5.10write_com(0x06);//5.11write_com(0x0c);//5.12}//************************************************************************* void display(uchar *p)//write string{while(*p!='\0'){write_dat(*p);p++;read_busy();}}//*************************************************************************//----------------------------------------------////----------------IO口定义区--------------------////----------------------------------------------//sbit P1_0 = P1^0 ;//----------------------------------------------////----------------定义区--------------------////----------------------------------------------//U8 U8FLAG,k,humih,humil,temph,templ,temp,humi;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_t emp;U8 U8comdata;U8 outdata[5]; //定义发送的字节数U8 indata[5];U8 count, count_r=0;U8 str[5]={"RS232"};U16 U16temp1,U16temp2;SendData(U8 *a){outdata[0] = a[0];outdata[1] = a[1];outdata[2] = a[2];outdata[3] = a[3];outdata[4] = a[4];count = 1;SBUF=outdata[0];}void Delay(U16 j){ U8 i;for(;j>0;j--){for(i=0;i<27;i++);}}void Delay_10us(void){U8 i;i--;i--;i--;i--;i--;i--;}void COM(void){U8 i;for(i=0;i<8;i++){U8FLAG=2;while((!P1_0)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(P1_0)U8temp=1;U8FLAG=2;while((P1_0)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1// 如果高电平高过预定0高电平值则数据位为1U8comdata<<=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();//--------------------------------void RH(void){//主机拉低18msP1_0=0;Delay(180);P1_0=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入判断从机响应信号P1_0=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P1_0) //T !{U8FLAG=2;//判断从机是否发出80us 的低电平响应信号是否结束while((!P1_0)&&U8FLAG++);U8FLAG=2;//判断从机是否发出80us 的高电平,如发出则进入数据接收状态while((P1_0)&&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;P1_0=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;}//fi}//fi}//----------------------------------------------//main()功能描述: AT89C51 11.0592MHz 串口发//送温湿度数据,波特率9600//----------------------------------------------void main(){U8 i,j;//uchar str[6]={"RS232"};/* 系统初始化*/TMOD = 0x20; //定时器T1使用工作方式2TH1 = 253; // 设置初值TL1 = 253;TR1 = 1; // 开始计时SCON = 0x50; //工作方式1,波特率9600bps,允许接收ES = 1;EA = 1; // 打开所以中断TI = 0;RI = 0;write_com(0x80+0x03);display(table1);write_com(0x80+0x43);display(table2);SendData(str) ; //发送到串口Delay(1); //延时100US(12M晶振) while(1){//------------------------//调用温湿度读取子程序RH();//串口显示程序//--------------------------str[0]=U8RH_data_H;str[1]=U8RH_data_L;str[2]=U8T_data_H;str[3]=U8T_data_L;str[4]=U8checkdata;SendData(str) ; //发送到串口//读取模块数据周期不易小于2Shumi=U8RH_data_H;temp=U8T_data_H;humih=humi/10+0x30;humil=humi%10+0x30;temph=temp/10+0x30;templ=temp%10+0x30;write_com(0x80+0x09);write_dat(':');write_dat(humih);write_dat(humil);write_dat('%');write_com(0x80+0x49);write_dat(':');write_dat(temph);write_dat(templ);write_dat('`');write_dat('C');Delay(5000);}//elihwvoid RSINTR() interrupt 4 using 2{U8 InPut3;if(TI==1) //发送中断{TI=0;if(count!=5) //发送完5位数据{SBUF= outdata[count];count++;}}if(RI==1) //接收中断{InPut3=SBUF;indata[count_r]=InPut3;count_r++;RI=0;if (count_r==5)//接收完4位数据{//数据接收完毕处理。

相关文档
最新文档