毕业论文-智能温室控制系统设计(30页).doc
-毕业论文-智能温室控制系统设计密 级:毕业设计(论文)智能温室控制系统设计THE DESIGN OF INTELLIGENT GREENHOUSE CONTROL SYSTEM 学生学号学生姓名学院名称专业名称指导教师2012年5月29日-第 23 页图书分类号:徐州工程学院学位论文原创性声明本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。本人完全意识到本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日徐州工程学院学位论文版权协议书本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。论文作者签名: 导师签名: 日期: 年 月 日 日期: 年 月 日摘要本文提出了一种以51单片机为主控器和射频nRF905为无线收发模块的智能温室控制系统的总体设计方案和实现方法。系统设置了一个主机和两个从机,通过无线通信方式,实现了两个节点的温湿度数据采集。主机通过从机预设的不同地址来实现区分两个节点发送来的温湿度数据。本设计采用nRF905射频模块为无线传输模块,DS18B20为温度传感器模块,DHT11为湿度采集模块从而实现温室的温湿度监测与控制。51单片机和nRF905之间通过模拟高速串口SPI实现双向通信, SPI支持高速数据传输,从而满足了温室温湿度数据的实时传输。用VB6.0中的MScomm控件编写了温湿度接收界面,通过串口将采集到的温湿度数据显示在PC机上。关键词 STC89C51;nRF905;DS18B20;DHT11AbstractThis paper presents a method based on 51 single chip microcomputer as a main controller and nRF905 as wireless transceiver module to design the intelligent greenhouse control system . The system provided a master and two slaves,master can acquist the data of temperature and humidity from two slaves through the wireness communication mode. The master can distinguish the data from two different places through different address. This design use nRF905 module as wireless transmission module, DS18B20 as temperature sensor and DHT11 as humidity acquisition module to sense the greenhouse temperature and humidity. 51 single chip microcomputer and nRF905 can realize two-way communication through the simulation of high speed serial SPI , SPI support high speed data transmission, so it can meet the needs of the greenhouse temperature and humidity data real-time transmission. The temperature and humidity receiving interface can be made by VB6.0 MScomm controller, the greenhouse temperature and humidity data can be displayed on PC machine through the serial port. Keywords STC89C51; nRF905; DS18B20; DHT11目 录1 绪论11.1 背景及意义11.2工作原理12 系统总体设计22.1 系统的整体结构22.2课题需要完成的任务23 系统硬件设计33.1主控制器的选用33.2无线传感器nRF905模块33.2.1芯片结构33.2.2 接口电路管脚说明33.2.3 nRF905工作方式53.2.4 nRF905模块配置63.2.5 nRF905与单片机的硬件连接原理图63.3 温度传感器DS18B2073.3.1 DS18B20主要特性73.3.2 DS18B20的外部结构73.3.3 DS18B20的数据处理73.3.4单片机与DS18B20的硬件连接原理图93.4湿度传感器DHT1193.4.1 DHT11接口说明93.4.2 DHT11与单片机的硬件连接103.5LCD1602液晶显示模块103.5.1控制器接口说明103.5.2基本时序操作113.5.3显示数据存储器(DDRAM)113.5.4 LCD1602控制命令字设置113.6控制执行单元的设计123.7 PC机与单片机之间的RS485通信134系统软件设计144.1主机软件设计144.1.1主程序设计144.1.2 nRF905软件设计144.1.3主机串口软件设计174.2从机软件设计184.2.1从机主程序设计184.2.2 DS18B20温度采集软件设计184.2.3 DHT11湿度采集软件设计184.2.4LCD1602软件设计215上位机软件设计225.1 VB6.0特点225.2 MSComm控件225.2.1 MSComm控件的主要属性225.3 VB程序设计225.3.1 程序详细设计225.3.2 系统界面226调试246.1LCD1602液晶显示模块在设计过程中遇到的问题和解决方法246.2串口设计过程中遇到的问题和解决方法246.3 DS18B20设计过程中遇到的问题和解决方法246.4控制执行单元设计过程中遇到的问题和解决方法24结论25致谢26参考文献27附录28附录1 硬件原理图28附录2源程序代码291 绪论1.1 背景及意义 温室控制技术是现代农业研究的重要内容,针对长期以来温室大棚效率低、生产成本高、消耗人力资源多等缺点,温室智能控制系统能有效地克服这些困难。本系统主要由上、下位机模块构成,下位机主要是对温室内环境因素中的温度、湿度等进行检测并按照一定的通信方式将数据传给上位机,上位机实时接收下位机上传的数据使用户能在远程监测温室的环境参数,下位机根据一定的算法控制喷淋、遮阳、通风、加热等执行系统,调节环境参数,实现温室智能控制,达到农作物优质、高产、高效的栽培目的。1.2工作原理智能温室控制系统是一种基于射频技术的无线温湿度检测与控制系统。本系统由传感器、显示器、上位机、控制执行单元构成。传感器部分包括数字温度传感器DS18B20、单片机STC89C51、低功耗无线模块nRF905和天线。显示器由LCD1602构成。上位机是由VB的Mscomm控件编写而成。本系统由三个单片机模块构成,其中两个模块用作数据采集的从机,另外一个模块用作数据接收的主机。从机采集温室温湿度并将数据送LCD1602显示,无线发射模块nRF905将采集到的温湿度发送给主机,主机将接收到的数据通过串口发送给上位机,上位机显示温室数据给用户,单片机从机将采集到的数据与预设值比较,决定是否打开控制执行单元,以达到智能控制的效果。2 系统总体设计2.1 系统的整体结构本系统包含一台主机和两台从机。系统的整体结构框图如图2-1所示。温湿度数据NRF905单片机执行器单片机NRF905RS485PC 从机1执行器NRF905单片机主机温湿度数据 从机2图2-1 系统整体结构框图2.2课题需要完成的任务一、完成系统的硬件设计与调试。二、完成温湿度采集的程序设计。三、完成温湿度用LCD1602显示的程序设计。四、完成nRF905无线收发模块收发数据的程序设计。五、完成主机与PC机实现串口通信的程序设计。六、完成控制执行单元软硬件的设计。七、完成VB上位机程序的设计。3 系统硬件设计3.1主控制器的选用 本系统涉及的主要器件包括:主控芯片、DS18B20温度传感器、DHT11湿度传感器、nRF905无线模块,所涉及的器件较多,选择一款合适的主控芯片直接影响到系统的整体性能和设计的最终效果。STC89C51单片机作为目前市场上最为常用的单片机具有结构简单、可控性好、I/0口多、下载程序方便、价格低廉的特点,符合本系统的设计要求,故选用STC89C51单片机作为主控制器。3.2无线传感器nRF905模块3.2.1芯片结构 nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率、放大器等模块,使用非常方便其详细结构如图3-1所示。图3-1 nRF905的详细结构图3.2.2 接口电路管脚说明nRF905封装如图3-2所示。图3-2 nRF905封装各引脚说明如表3-1所示。表3-1 nRF905管脚说明表管脚名称管脚功能说明1VCC电源电源+1.9-3.6V DC2TX_EN数字输入TX_EN=1发送模式 TX_EN=0接收模式3TRX_CE数字输入使能芯片发射或接收4PWR_UP数字输入芯片上电5uCLK时钟输出本模块弃用6CD数字输出载波检测7AM数字输出地址匹配8DR数字输出接收或发射数据完成9MISOSPI接口SPI输出10MOSISPI接口SPI输入11SCKSPI时钟SPI时钟12CSNSPI使能SPI使能13GND地接地14GND地接地注意:(1) nRF905供电范围为3-3.6V之间,超出这个范围就会烧毁nRF905模块。(2) nRF905的引脚可与5V单片机的I/O口直接相连,VCC和接地端除外。(3) 没有SPI接口的单片机可以模拟SPI。(4) 与51系列单片机P0口相连时,需加10K的上拉电阻。3.2.3 nRF905工作方式nRF905有两种工作模式和两种节能模式。两种工作模式分别ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定,其工作模式如表3-2所示。表3-2 nRF905工作模式PWR_UPTRX_CETX_EN工作模式0XX关机模式10X空闲模式110接收模式111发送模式 nRF905发送流程典型的nRF905发送流程分以下几步:A微控制器通过SPI接口按时序把地址和数据发送给nRF905;BPWR_UP=1, TRX_CE=1 ,TX_EN=1 启动发送模式;CnRF905开始发送数据;DAUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;E当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式;nRF905接收流程ATRX_CE=1、TX_EN=0,nRF905进入接收模式;B等待650us,nRF905不断监测,等待接受数据;C若从机上的nRF905检测到的载波频段与自身的相同时,CD=1;D若接收地址与自身地址匹配,AM=1;E当一个数据包接收完毕后DR=1;FTRX_CE=0,nRF905等待下一次接收数据;G数据通过SPI口以一定速率进入微控制器;H若数据接收完成,DR=0 ,AM=0;3.2.4 nRF905模块配置1)SPI接口寄存器配置SPI接口由5个寄存器组成,其中状态寄存器存储AM和DR引脚信息,射频和输出功能信息由射频配置寄存器保存,接收机地址和数据字节数信息由发送地址寄存器保存,待发送的数据信息由发送数据寄存器保存,要接收的数据字节数等信息由接收数据寄存器保存。2)SPI指令设置SPI接口的指令如表3-3所示。表3-3 SPI串行接口指令设置指令名称指令格式操作WC0000AAAA写配置寄存器RC0001AAAA读配置寄存器WTP00100000写TX有效数据1-32字节写操作全部从字节0开始RTP00100001读TX有效数据1-32字节读操作全部从字节0开始WTA00100010写TX地址1-4字节写操作全部从0字节开始RTA00100011读TX地址1-4字节读操作全部从字节0开始RRP00100100读RX有效数据1-32字节读操作全部从字节0开始CC100pphccccccccc快速配置寄存器3.2.5 nRF905与单片机的硬件连接原理图nRF905与单片机的硬件连接原理图如图3-3所示。图3-3 nRF905与单片机的硬件连接原理图3.3 温度传感器DS18B203.3.1 DS18B20主要特性(1) 供电范围:3.0V-5.5V,在寄生电源方式下可由数据线供电。(2) 在使用中不需要任何外围元件。(3) 独特的单总线接口方式只需要一根信号线即可实现单片机与DS18B20的通信。(4) 测温范围:-55°C+125°C,在-10+85°C时精度为±0.5°C。(5) 分辨率为9-12位,对应的可分辨温度分别为0.5°C 、0.25°C、0.125°C和0.0625°C,可实现高精度测温。(6) 在9位分辨率时最多在93.75ms内把温度值转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。(7) 多个DS18B20可以挂在一根数据线上,实现多点测温。3.3.2 DS18B20的外部结构 DS18B20采用如图3-4所示的3脚PR-35封装或8脚SOIC封装。图中管脚定义如下:(1) I/O:数字信号输入输出端。(2) GND:电源地。(3) VDD:外接供电电源输入端(在寄生电源接线方式时接地)。图3-4 DS18B20封装3.3.3 DS18B20的数据处理DS18B20的高速暂存存储器由9个字节组成,其分配见表3-4,当温度转换命令发布后,经转换所得的温度值以2字节补码形式存放到高速暂存存储器的第0和第1个字节。单片机可通过单总线接口读取到该数据,读取时低位在前,高位在后。表3-4字节分配功能0温度转换后的低字节1温度转换后的高字节2高温度触发器TH3低温度触发器TL4配置寄存器5保留6保留7保留8CRC校验寄存器表3-5所列是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8bit的RAM中,二进制的前5位是符号位,如果测的温度大于或等于0,这五位为0,只要将测得数值乘以0.0625即可得到实际温度;如果温度小于0,这五位为1,测的数值需要取反加1再乘以0.0625即可得到实际温度。单片机对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能进行存储器操作和数据操作。DS18B20的操作要遵循一定的工作时序和通信协议。如单片机控制DS18B20完成温度转换这一过程,要经过以下几个步骤:对DS18B20读写之前先进行复位,再发送ROM指令,最后发送RAM指令。DS18B20有六条控制命令,如表3-6所示。表3-5 DS18B20部分温度数据表 温度/16位二进制编码十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H表3-6 DS18B20控制命令指令约定代码操作说明温度转换44H启动DS18B20读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TL、TH字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H发送电源供电方式给CPU3.3.4单片机与DS18B20的硬件连接原理图单片机和DS18B20的硬件连接图见图3-5,DS18B20的单总线DQ与单片机STC89C51的P1.6端口连接,另加一个上拉电阻。详细原理图见附录1。图3-5单片机和DS18B20的硬件连接图3.4湿度传感器DHT113.4.1 DHT11接口说明DHT11引脚图如图3-6所示。图3-6 DHT11引脚图DHT11引脚说明如表3-7所示。表3-7 DHT11引脚说明Pin名称注释1VDD供电3-5.5V2DATA串行数据单总线3NC空脚,悬空4GND接地3.4.2 DHT11与单片机的硬件连接 DHT11与单片机的硬件连接图如图3-7所示。图3-7单片机与DHT11湿度传感器硬件连接图3.5LCD1602液晶显示模块3.5.1控制器接口说明各引脚符号及功能如表3-8所示。表3-8 接口信号表引脚编号引脚名称引脚功能14-7D7-D0数据线6E片选信号,写数据控制5R/W读/写方向控制信号,低电平为写入,高电平为输出4RS寄存器选择信号 续表3-83V0驱动电压调节2VDD+5V1VSS地线15V-背光电压负端(GND)16V+背光电压正端(+5V)3.5.2基本时序操作 (1)读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字 (2)写指令:输入:RS=L,RW=L,D0D7=指令码, 输出:无 (3)读数据:输入:RS=H,RW=H,E=H 输出:D0D7=数据 (4)写数据:输入:RS=H,RW=L,D0D7=数据, 输出:无3.5.3显示数据存储器(DDRAM)LCD控制器的指令系统规定,在发送待显示字符代码的指令之前,先要送DDRAM的地址,实际上是待显示的字符所要显示的位置。若LCD为双行字符显示,每行40个显示位置,第一行地址为00H27H;第二行地址为40H67H。双行显示的DDRAM地址与显示位置的对应关系见表3-9。表3-9 双行显示的DDRAM地址与显示位置的对应关系显示位置12345673940DDRAMLine100H01H02 H03 H04 H05 H06 H26 H27 H地址Line240 H41 H42 H43 H44 H45 H46 H66 H67 H3.5.4 LCD1602控制命令字设置LCD1602控制命令字设置如表3-10所示。表3-10 LCD1602控制命令字设置命令字功能0x38设置显示模式0x06光标和显示开关设置0x80数据指针设置0x01清屏0x02显示回车3.5.5单片机与LCD1602的硬件连接原理图本设计选用STC89C51单片机的P2口和P3口的一部分,LCD1602采用8位数据线工作方式。STC89C51的P2口与LCD1602的8位数据线连接,STC89C51的P3口的P3.4、P3.5端口分别与LCD1602的使能端口、读写选择端口连接。硬件连线原理图见图3-8,LCDl602的RW选择接地,详细原理图见附录1。 图3-8单片机与LCD1602的硬件连接原理图 3.6控制执行单元的设计在本系统中控制执行单元的作用是接受从机的控制命令以弱电控制强电设备,由于温室中的控制设备大多为强电设备,直接用单片机控制不能驱动这些设备,故需要一个中间设备来驱动它们。本系统控制执行单元的设计思想是将继电器放在驱动设备的主回路中,用单片机控制继电器的通断来间接控制加热器、喷淋器、排风扇的电源通断从而达到调节温室温湿度的效果。本设计选用的继电器型号为HK3FF-DC5V-SHG,该继电器可以用小电压控制220V的强电符合设计的要求。由于单片机的驱动电流很小,故需要在继电器与单片机之间加一个三极管起放大信号的作用,其原理图如图3-9所示。图3-9 控制执行单元原理图3.7 PC机与单片机之间的RS485通信本系统中温室中的温湿度数据需要经过远距离传输才能传送到计算机,传统的RS232通信方式不能满足远距离传输的要求。RS485通信最大传输距离能达到1219m,最大传输距离能达到10Mb/s,在100Kb/s的传输速率下能达到最大传输距离符合本系统的设计要求。RS485接口电路图如图3-10所示,单片机的TTL电平信号通过MAX485芯片转换成RS485信号使数据能够远距离传输,PC机数据接收端有一个RS485转RS232转换器,通过MAX485芯片和MAX232芯片能将RS485信号转换成RS232信号以此使单片机主机与PC机能进行远程通信。图3-10 RS485接口电路4系统软件设计4.1主机软件设计4.1.1主程序设计 主程序开始后先进行初始化操作,包括nRF905的初始化和串口的初始化。初始化后将主机的nRF905置为发送状态,主机发送所要数据的从机地址,从机收到地址后发送应答信号,主机收到应答信号后将nRF905设置为接收状态,接收来自从机的数据,数据接收完成后主机通过串口将数据送PC机显示。主程序流程图如图4-1所示。4.1.2 nRF905软件设计由于STC89C51单片机没有专门的SPI口,需要用普通I/O口模拟SPI其操作过程如下所示:1. SPI写操作 (a)取发送数据一个字节的最高位。 (b)判断最高位是1还是0。 (c)如果为1则MOSI引脚置为高电平,否则MOSI引脚置为低电平。 (d)SCK=1。 (e)将数据左移一位,如此循环8次直至一个字节数据发送完成。 (f) SCK=0。SPI写操作的流程图如图4-2所示。2. SPI读操作 (a)数据左移一位。 (b)SCK=1。 (c)判断MISO引脚电平是1还是0。 (d)如果是1 数据最后一位置1,否则置0。 (e)SCK=0。 (f)如此循环8次直至读完一个字节。SPI读操作的流程图如图4-3所示。 图4-1主程序流程图 图4-2 SPI写数据流程图 图4-3 SPI读数据流程图4.1.3主机串口软件设计 本串口软件的主要功能是将主机接收到的数据通过串口发送给PC机,PC机接收到数据后通过VB实时显示温室的温湿度,其数据发送流程如图4-4所示。图4-4 串口数据发送流程图4.2从机软件设计4.2.1从机主程序设计从机主程序首先进行初始化设置,其内容包括nRF905初始化设置、LCD1602初始化设置、DS18B20初始化设置和DHT11初始化设置,调用DS18B20温度采集子程序和DHT11湿度采集子程序进行数据采集,将采集到的数据送至LCD1602显示并保存至发送数据缓冲区,通过nRF905将采集到的数据由从机发送给主机。调用数据处理函数判断当前温室温湿度是否超过预定值,如超过预定值则打开控制执行单元,如不超过预定值则关闭控制执行单元。详细程序见附录2。从机主程序流程图如图4-5所示。4.2.2 DS18B20温度采集软件设计DS18B20进行温度采集时首先将DS18B20初始化,从机检测DS18B20存在与否,如存在则跳过DS18B20的ROM,否则继续检测。调用温度转换函数,读温度数据,处理温度数据,最后输出温度数据。DS18B20采集温度的流程如图4-6所示。4.2.3 DHT11湿度采集软件设计当DHT11不采集数据时,总线状态为高电平。当要采集数据时总线被拉低等待DHT11响应,总线拉低必须大于18ms。当DHT11接收到主机的开始信号时,必需等待直至主机开始信号结束,发送80us低电平响应信号,主机发送开始信号结束后,延时等待20-40us,读取DHT11的响应信号,主机发送开始信号后,总线由上拉电阻拉高,此时可以读取总线上的数据。湿度采集过程如图4-7所示。图4-5从机主程序流程图 图4-6 DS18B20温度采集流程图 图4-7湿度采集流程图4.2.4LCD1602软件设计LCD1602液晶显示过程如图4-8所示。LCD1602液晶显示所要用到的函数如下:void lcd_init( ) /LCD初始化void write_com( ) / 写命令字函数void write_data( ) / 写数据函数图4-8 LCD1602液晶显示流程图5上位机软件设计上位机的开发环境基于VB6.0企业版,利用MScomm控件接收单片机发送的数据,并在计算机上显示以达到远程监控的目的。5.1 VB6.0特点1. 可视化编程:开发者只需使用VB提供的可视化设计工具,在屏幕上对各种部件布局并设置好这些图形的属性就可以得到预期的效果。2. 面向对象的程序设计:把数据与程序作为一个对象封装起来,将应有的属性赋予每个对象,使其具体直观。3. 结构化程序设计语言:结构化的设计靠子程序,函数来实现,子程序函数中的程序流程用顺序,循环,分支等结构实现。4. 事件驱动编程机制:对象的操作通过事件来执行。5. 具有功能强大和开放的特点:复杂的功能可以靠简单的语法实现,Active控件和DLL使其功能增强,具有访问数据库的功能,提供数据的存储和检索。5.2 MSComm控件VB中的MSComm控件可以使PC机与单片机之间建立通信关系,使用MSComm控件进行串口编程时非常方便,通过事件驱动方式对各事件设置属性,从而使数据传到PC机上实现温室的远程监控。5.2.1 MSComm控件的主要属性MSComm控件的主要属性如表5-1所示。5.3 VB程序设计5.3.1 程序详细设计VB程序详细设计请见附录2。5.3.2 系统界面系统界面见图5-1。表5-1MSComm控件的主要属性属性语法作用CommPortMSComm1.CommPort=Value设置或返回通信端口号InputMSComm1.Input返回并删除接收缓冲区中的数据流InputLenMSComm1.InputLen=Value设置并返回Input属性从接收缓冲区读取的字符数 续表5-1InputModeMSComm1.InputMode=Value设置或返回接收数据的数据类型OutPutMSComm1.OutPut=Value向传输缓冲区写数据流PortOpenMSComm1.PortOpen=Value设置或返回通信端口的状态SettingsMSComm1.Settings=Value设置并返回通信参数RThresholdobject.RThreshold=ValueOnComm事件发生之前,设置并返回接收缓冲区可接收的字符数SThresholdobject.SThreshold=ValueOnComm事件发生之前,设置并返回发送缓冲区中允许的最小字符数DTREnableobject.DTREnable=Value确定在通信时是否使DTR线有效RTSEnableobject.RTSEnable=Value确定是否使RTS线有效OutBufferSizeMSComm1.OutBufferSize=Value设置或返回传输缓冲区大小InBufferSizeMSComm1.InBufferSize=Value设置或返回接收缓冲区大小图5-1上位机界面6调试6.1LCD1602液晶显示模块在设计过程中遇到的问题和解决方法LCD1602不能正确显示经过对硬件电路的检查问题如下:(1) WR读写端未接地。(2) LCD对比度调节端电压没调节好。解决方法:(1) WR端接地。(2) 在LCD对比度调节端接一个10K的电位器,可在运行时调节背光到合适的亮度。6.2串口设计过程中遇到的问题和解决方法串口通信正常,但向上位机发送的数据是乱码。检查程序发现问题如下:串口波特率设置与所用的晶振不匹配。解决方法:选用11.0592MHZ的晶振,编写与之一致的波特率设置命令。6.3 DS18B20设计过程中遇到的问题和解决方法一 、单片机检测不到DS18B20,检查硬件电路发现问题如下:DS18B20 GND引脚与VCC引脚搞错,DS18B20不能正常工作。解决方法:重新焊接DS18B20电路。二、温度传感器 DS18B20读出的温度值不是正确的温度值,通过检查程序发现问题如下:(1)DS18B20单总线结构的特点使程序的延时要求特别严格。(2)温度数据转换错误。解决方案如下:(1) 用试凑法不断改写延时程序,得出最适合的延时时间。(2) 找出错误程序段,对温度数据转换程序进行修改。6.4控制执行单元设计过程中遇到的问题和解决方法单片机不能正常驱动继电器工作,查阅相关资料发现问题如下:单片机I/0口驱动能力不够继电器无法正常工作。解决方法:使用三极管驱动继电器,三极管基极连接单片机I/O口,三级管发射级连接继电器,利用三极管的放大作用驱动继电器。结论本文通过对51单片机、无线传输模块nRF905和各传感器的研究,设计了一种基于51单片机的无线温室智能控制系统。通过制作主机和从机电路板,设计和实现了环境数据的采集、收发、显示和上传PC机于一体。主要完成了以下工作:(1) 调查了解了各单片机的性能,选择了以51单片机为主控芯片。(2) 查阅了大量关于无线模块的资料和数据手册,根据实际需要对模块进行了选型,经分析比较后选择了无线模块nRF905。(3) 完成了系统主机和从机电路板的绘图和制作。(4) 编写了nRF905无线通讯程序,实现了主机与从机的通信。(5) 选用DS18B20和DHT11这两个传感器采集温室温湿度,并用LCD1602显示采集的温湿度。(6) 编写了主机串口通讯程序,实现了将数据通过串口上传至上位机。(7) 用VB6.0企业版设计了主控界面,实现了将采集到的温湿度显示于上位机。(8) 制作了控制执行单元的硬件,使单片机能根据温湿度的变化选择打开或关闭控制执行单元。(9) 制作了RS485接口电路,使数据能够进行远距离传输。本系统由主机和从机两个部分构成,系统的从机由DS18B20数字温度传感器、DHT11数字湿度传感器、LCD1602液晶显示模块和控制执行单元模块构成。温度和湿度传感器采集的数据送LCD1602显示,单片机从机将系统温湿度由nRF905发送至单片机主机。从机判断温湿度是否符合系统要求,根据相关控制算法驱动控制执行单元。系统的主机负责数据的接收与发送,将nRF905接收来的温湿度送上位机起中间桥梁作用,以达到智能控制作用。本系统结构简单,没有复杂的