检测课程设计蔬菜大棚自动控制系统.doc
检测课程设计蔬菜大棚智能控制系统学院: 电气学院专业班级:电仪093班姓名: 朱学政 指导教师:董爱华 李良目录1摘要-32. 实验所需元器件-33. 实验整体结构图-44. 传感器简介-74.1.1 DS18B20简介-74.1.2 DS18B20的性能特点-7 4.2.1 DHT11简介-7 4.2.2 DHT11的性能特点-8 4.3 热释电传感器模块简介及特性-10 4.4 光敏电阻传感器原理及特性-114.5 ZigBee无线模块简介-125. 温室大棚控制系统软件设计-12 5.1.1 下位机软件设计-12 5.1.2 编程软件简介-15 5.2.1 上位机软件设计-15 5.2.2 Microsoft Visual Studio 2008编程软件简介-166. 总 结-17附录-18参考文献-371. 摘要随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温室环境自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的温湿度与光照强度的控制措施。但是,目前应用于温室大棚的温湿度检测系统大多采用模拟温度传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统。这种温湿度度采集系统需要在温室大棚内布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大。为了克服这些缺点,本系统采用单片机做下位机,计算机做上位机并采用无线传输技术实现蔬菜大棚的自动控制,同时,本系统所选的温湿度传感器采用单总线方式传输数据,使数据采集更加准确。本系统采用单总线传感器能够对大棚内的温湿度进行采集,利用温湿度传感器将温室大棚内温湿度的变化,变换成数字量,其值由单片机处理,最后由单片机传输给上位机显示,显示温室大棚内的实际温湿度,同时上位机预设目标量传输给下位机,由下位机将采集量同预设量比较,对大棚内的温度进行自动调节。再利用光敏电阻对当前光照强度进行检测,同理实施自动控制。同时,在该系统中加入了热释电用于防盗报警,使经济作物更安全!这种温湿度及光照强度的测控系统可应用于农业生产的温室大棚,实现对温度,湿度,光照强度的实时控制,是一种比较智能、经济的方案,适于大力推广,以便促进农作物的生长,从而提高温室大棚的亩产量,以带来很好的经济效益和社会效益。2. 实验所需元器件 ATmega16单片机最小系统(1个),电加热丝(1个),继电器(2只),风扇(1个),三极管8050(4只),热释电模块(1个),光敏电阻(2只),DS18B20温度传感器(1只),DHT11温湿度传感器(1只),ZigBee无线通信模块(2个),MAX232(1个)。3. 实验整体结构图AVR单片机DS18B20温度传感器DHT11湿度传感器光敏电阻(内)光敏电阻(外)热释电ZigBee无线传输模块加热器通风散热扇补光灯图3.1 整体实物图图3.2下位机控制系统ZigBee无线传输模块PC机图3.3上位机控制外围硬件 本系统由如图1、图2所示,DS18B20温度传感器与DHT11温湿度传感器及光敏电阻采集数据,ATmega16单片机进行数据处理,上位机显示温湿度并设定目标温度与光照强度。由PWM控制光照强度,当温度小于设定目标温度时,加热起开始加热,当温度等于目标温度时,加热器停止加热,当温度超过目标温度+1时,通风散热扇开始工作降温,以此循环,控制温度恒定。补光灯的控制是通过检测当前光照与设定目标光照的差值,再通过PID算法控制PWM的产生来控制灯光的强度。由热释电红外传感器来检测外界环境的变化,输出信号给单片机,由单片机将信号传送给上位机,上位机判断信号,从而做出是否报警的动作。图3.4 传感器使用几部分驱动电路图图3.5 无线通讯模块与加热模块电路图图3.6 ATmega16单片机最小系统4. 传感器简介4.1.1 DS18B20简介图4.1 DS18B20不同封装与管脚图 DS18B20数字温度传感器采用DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样等优点,适用于各种狭小空间设备数字测温和控制领域。4.1.2 DS18B20的性能特点 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温 DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内 温范围55125,在-10+85时精度为±0.5 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 测量结果直接输出数字温度信号,以"一 线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。4.2.1 DHT11简介图4.2 DHT11实物图DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。4.2.2 DHT11的性能特点 DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和 数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。1.通讯过程如图4.3所示图4.3总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。图4.4总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图4.5所示 图4.5数字1信号表示方法.如图4.6所示图4.64.3 热释电传感器模块简介及特性图4.7 热释电传感器模块实物图 热释电红外线传感器由探测元、滤光片和场效应管阻抗变换器等三大部分组成,如图4.8所示。对不同的传感器来说,探测元的制造材料有所不同。如SD02的敏感单元由锆钛酸铅制成;P2288由LiTaO3 制成。将这些材料做成很薄的薄片,每一片薄片相对的两面各引出一根电极,在电极两端则形成一个等效的小电容。因为这两个小电容是做在同一硅晶片上的,因此形成的等效小电容能自身产生极化,在电容的两端产生极性相反的正、负电荷。传感器中两个电容是极性相反串联的。图4.8双探测元热释电红外传感器当传感器没有检测到人体辐射出的红外线信号时,在电容两端产生极性相反、电量相等的正、负电荷,所以,正负电荷相互抵消,回路中无电流,传感器无输出。 当人体静止在传感器的检测区域内时,照射到两个电容上的红外线光能能量相等,且达到平衡,极性相反、能量相等的光电流在回路中相互抵消,传感器仍然没有信号输出。当人体在传感器的检测区域内移动时,照射到两个电容上的红外线能量不相等,光电流在回路中不能相互抵消,传感器有信号输出。综上所述,传感器只对移动或运动的人体和体温近似人体的物体起作用。4.4 光敏电阻传感器原理及特性图4.9 光敏电阻实物图 光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻。为了增加灵敏度,两电极常做成梳状。构成光敏电阻的材料有金属的硫化物、硒化物、碲化物等半导体。 半导体的导电能力取决于半导体导带内载流子数目的多少。当光敏电阻受到光照时,价带中的电子吸收光子能量后跃迁到导带,成为自由电子,同时产生空穴,电子空穴对的出现使电阻率变小。光照愈强,光生电子空穴对就越多,阻值就愈低。当光敏电阻两端加上电压后,流过光敏电阻的电流随光照增大而增大。入射光消失,电子-空穴对逐渐复合,电阻也逐渐恢复原值,电流也逐渐减小。光敏电阻的应用光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温,多湿的恶劣环境下,还能保持高度的稳定性和可靠性,可广泛应用于照相机,太阳能庭院灯,草坪灯,验钞机,石英钟,音乐杯,礼品盒,迷你小夜灯,光声控开关,路灯自动开关以及各种光控玩具,光控灯饰,灯具等光自动开关控制领域。4.5 ZigBee无线模块简介图4.10 ZigBee无线通讯模块实物图 Zigbee是基于IEEE802.15.4标准的低功耗个域网协议。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。5. 温室大棚控制系统软件设计5.1.1 下位机软件设计本系统所使用的下位机为AVR单片机系列的ATmega16单片机,使用的下位机编程软件为ICCV7 。整体程序框图如下:DS18B20驱动程序检测实时温度DHT11驱动程序检测实时湿度AD转换内外光敏电阻变换电压值程序数据处理部分检测热释电信号程序加热器驱动程序报警信号输出程序通风散热扇驱动程序串口发送程序补光灯驱动程序定时器串口接收程序PWM波产生程序图5.1由图可以看出,下位机的程序模块主要包括:1. 数据采集 单片机通过对DS18B20,DHT11的驱动,读出当前棚内的实时温度和湿度,对单片机内AD的控制,实施对内外光敏电阻电压的采样,反映出当前时刻的光照强度。再通过对热释电的检测程序,读取热释电的当前状态,完成数据的采集。2数据处理 对采集回来的数据进行进一步处理,如将小数与整数合并,超过一字节的数分成若干字节存储操作,完成对上位机发送过来的数比较操作等。3. 数据发送 将处理过的数通过无线传输模块发送给上位机。4. 数据接收5. 实施控制 将接收回来的数据及操作命令进行处理,并且同实时采集回来的数据进行比较,然后对系统完成控制操作。6. 状态记忆 当下位机的数据发生改变时,单片机就会将数据写入EEPROM中,确保下位机系统在非正常情况恢复后能继续先前状态运行。软件程序流程图如下:开始DS18B20初始化AD初始化定时器初始化PWM波形发生初始化串口初始化开中断AD转换热释电传感器检测读取温度读取湿度串口发送数据读取串口数据控制方式:手动(Y)自动(N)加热(yes/no)通风(yes/no)补光(yes/no)控制温度控制光照强度YN图5.2 程序流程图5.1.2 编程软件简介 ICCAVR是 AVR 单片机的 C 语言开发软件,软件集成有编辑,代码生成,编译,程序下载等功能,是目前国内用的最广泛的 AVR 单片机开发软件。我们用它来编辑,编译avr软件。5.2.1 上位机软件设计 本系统的上位机系统是利用Microsoft Visual Studio 2008软件编写的VB操作平台,软件平台截图为:图5.3 上位机软件截图 由该软件平台截图可以看出,该上位机控制平台的功能主要有:下位机系统主要参数显示,手动控制参数设置,自动控制参数设置,通信端口设置,以及软件帮助部分。每部分的具体功能如下:1. 显示部分: 该部分主要用来显示系统的温度,湿度,内外光照等数据,使得下位机系统的状太实时掌握。2. 手动控制参数设置部分: 该部分主要用来设置手动控制时的状态,例如确定当前补光灯的开关状态,通风散热扇的开关状态等。单击手动控制,即可完成对下位机的手动控制。3. 自动控制参数部分 完成对下位机系统的精确控制,如输入设定目标温度,输入设定棚内光强等,单击自动控制,即可完成对下位机的自动控制精确。4. 通信端口设置部分 该端口主要用来设定串口通信时所用PC机的端口以及通信波特率等,单击连接串口,即完成数据通信,这是软件操作的开始。5. 软件帮助部分 该部分主要用来显示一些帮助信息。此平台除了完成以上部分外,还可以对软件最后一次状态进行记录,写入text文件中保存,而且可以记录报警信息,同样是以text文件保存。5.2.2 Microsoft Visual Studio 2008编程软件简介 Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。 VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。开发智能客户端应用程序。Visual Studio 2008 为开发人员生成智能客户端提供了新颖且容易的方式。它提供了一组综合性的工具和类,从而简化了将智能客户端与新的或现有 Web 应用程序进行集成的过程,并且为在断开连接的情况下本地缓存数据提供了支持。 创建 Microsoft Office 应用程序。Visual Studio Tools for Office (VSTO) 完全集成到 Visual Studio 2008 专业版中。开发人员现在可以自定义各种 Office 应用程序(例如,Outlook® 和 PowerPoint®),从而提高用户的工作效率,简化部署过程。 生成 Windows Vista 应用程序。通过将新的 Windows Presentation Foundation 功能融合到现有 Windows 窗体应用程序和新的应用程序中,开发人员可以轻松地利用新的平台技术,并且向其客户提供更具吸引力的应用程序。 更加富有成效地处理数据。由于引入了语言集成查询 (LINQ) 和其他数据访问改进功能,开发人员能够应用一致的编程方法进行数据处理,使用新的数据设计图面执行数据访问,以及使用内置类来实施偶尔连接的设计模式。 实现新的 Web 体验。开发人员可以使用 Visual Studio 2008 轻松创建高效的交互式 Web 应用程序。为人熟悉的 ASP.NET AJAX 编程模型的无缝集成实现了更为高效的客户端执行,从而为最终用户提供了响应能力更强的 Web 界面。JavaScript IntelliSense 和调试进一步改善了开发体验。 获得经过改善的总体开发人员体验。Visual Studio 2008 进行了重大产品质量改进,并且更改了最流行的设计图面向用户返回错误的方式,这两个方面结合起来,为开发人员带来了更好的总体体验。此外,Visual Studio 2008 通过使开发人员能够面向不同的 .NET Framework 平台,提高了用户在开发工作中分别采用不同工具集和框架的能力。 改善应用程序生命周期管理 (ALM)。Visual Studio 中的 ALM 功能不仅为管理整个软件开发生命周期提供了良好的支持,而且为与企业应用程序的最终用户及其利益相关者进行关键性交互提供了绝佳的支持。 6. 总 结 以上为我们所设计的蔬菜大棚自动控制系统,它经过多次修改和整理,可以满足设计的基本要求。采用ATmega16 AVR单片机,DHT11数字温湿度传感器,DS18B20温度传感器,热释电传感器,散热扇,加热器等器件设计蔬菜大棚控制系统,实现温湿度采集,温度自动调节,光照强度自动调节,防盗报警等功能。 因为水平有限,此设计存在一定的问题。譬如系统数据传输数据出错,控制还不够十分精确等。由于使用的是单片机作为核心的控制元件,配合其它器件,使本温度控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平,同时有上位机控制操作,使控制更加方便简洁,更节省人力物力,更智能更人性化。附录:下位机程序代码:主程序:#include<iom16v.h>#include<macros.h>#include"canshu.h"/#include"zifubianma.h"#include"eeprom.h"#include"ds18b20.h"#include"shidu.h"#include"AD.h"/#include"motor.h"#include"PWM.h"#include"PID.h"#include"buguangdeng.h"#include"SCI.h"#include"time.h"/#include"nokia5110.h"void main(void)Init_DS18B20();AD_init();/motor_init();time0_init();nokia5110_init();PWM_init();USART_Init();SEI();control_init();read_date(); while(1)AD_chuli();if(zishoudong=1)dianresi();tongfeng();buguang();else if(zishoudong=2) kongwen();buguangdeng();reshidian();AD.Hvoid AD_init(void) DDRA=0x00;PORTA=0XFF;ADCSRA=0xe6;unsigned int AD_read(unsigned char a) unsigned int zhi=0;ADMUX=a; while(!ADIF);zhi=ADC;return zhi;void AD_chuli(void) shiyan0=AD_read(0);delay_ms(20);shiyan1=AD_read(1);delay_ms(20);shiyan2=AD_read(2);a3=shiyan0/253;a4=shiyan0%253;/内光照a5=shiyan1/253;a6=shiyan1%253;/外光照a7=shiyan2/253;a8=shiyan2%253;/卷帘度buguangdeng.hvoid control_init(void) DDRB&=0x7f;DDRC|=0XC0;PORTC&=0X3F;/*shoudongkongzhi*/void buguang(void)if(cunshushou1=1) PORTD|=0X80;else if(cunshushou1=0)PORTD&=0X7F;void dianresi(void) if(cunshushou0=1) PORTC|=0X80;else if(cunshushou0=0)PORTC&=0X7F;void tongfeng(void) if(cunshushou4=1) PORTC|=0X40;else if(cunshushou4=0)PORTC&=0XbF;/*zidongkongzhi*/void kongwen(void) if(TN>=(cunshuzi0+1) PORTC&=0X7F; /关加热PORTC|=0X40; /关加热 else if(TN>=(cunshuzi0) PORTC&=0X3F;/关加热/PORTC&=0XbF;/关风扇else if(TN<(cunshuzi0) PORTC|=0X80;/开加热PORTC&=0XbF;/关风扇void buguangdeng(void) if(shiyan1>(cunshuzi3)PORTC&=0XDF; else if(shiyan1<(cunshuzi4)PORTC|=0X20;void reshidian(void) if(PINB&0X80)=0X80) a10=1;else if(PINB&0X80)=0x00) a10=0;Ds18b20.h/*以下是DS18B20的操作程序 */ /*函数功能:将DS18B20传感器初始化,读取应答信号出口参数:flag */unsigned char Init_DS18B20(void) unsigned char flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DDRB|=0x40; PORTB|=0X40; /先将数据线拉高 for(time=0;time<2;time+); /略微延时约6微秒/2 PORTB&=0xbf; /再将数据线从高拉低,要求保持480960us for(time=0;time<200;time+); /略微延时约600微秒/200 /以向DS18B20发出一持续480960us的低电平复位脉冲 PORTB|=0X40; /释放数据线(将数据线拉高) for(time=0;time<10;time+); /延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲)/10 DDRB&=0XBF; for(time=0;time<5;time+) flag=PINB&0X40; /让单片机检测是否输出了存在脉冲(DQ=0表示存在) for(time=0;time<200;time+); /延时足够长时间,等待存在脉冲输出完毕/200 DDRB|=0X40; return (flag); /返回检测成功标志/*函数功能:从DS18B20读取一个字节数据出口参数:dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat,flag1; /储存读出的一个字节数据for (i=0;i<8;i+)PORTB|=0X40; / 先将数据线拉高NOP(); /等待一个机器周期 PORTB&=0XBF; /单片机从DS18B20读书据时,将数据线从高拉低即启动读时序dat>>=1;NOP(); /等待一个机器周期 PORTB|=0X40; /将数据线"人为"拉高,为单片机检测DS18B20的输出电平作准备DDRB&=0XBF;for(time=0;time<2;time+); /延时约6us,使主机在15us内采样/2 flag1=PINB&0X40;if(flag1=0X40) dat|=0x80; /如果读到的数据是1,则将1存入datelsedat|=0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入rifor(time=0;time<8;time+); /延时3us,两个读时序之间必须有大于1us的恢复期/8DDRB|=0X40; return(dat); /返回读出的十进制数据/*函数功能:向DS18B20写入一个字节数据入口参数:dat*/ void WriteOneChar(unsigned int dat)unsigned char i=0;dat<<=6;for (i=0; i<8; i+)PORTB|=0X40; / 先将数据线拉高NOP(); /等待一个机器周期 PORTB&=0xBF; /将数据线从高拉低时即启动写时序 NOP(); PORTB=dat&0x40; /利用与运算取出要写的某位二进制数据,/并将其送到数据线上等待DS18B20采样for(time=0;time<10;time+);/延时约30us,DS18B20在拉低后的约1560us期间从数据线上采样/10PORTB|=0X40; /释放数据线 for(time=0;time<1;time+);/延时3us,两个写时序间至少需要1us的恢复期 /1dat>>=1; /将dat中的各二进制位数据右移1位for(time=0;time<4;time+); /稍作延时,给硬件一点反应时间 /4/*函数功能:做好读温度的准备*/ void ReadyReadTemp(void) Init_DS18B20(); /将DS18B20初始化WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换 Init_DS18B20(); /将DS18B20初始化WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器,前两个分别是温度的低位和高位/*/void wendu(void)ReadyReadTemp(); /读温度准备TL=ReadOneChar(); /先读的是温度值低位TH=ReadOneChar();TN=TH*16+TL/16; /实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 /这样得出的是温度的整数部分,小数部分被丢弃了TD=(TL%16)*10/16; /计算温度的小数部分,将余数乘以10再除以16取整,/这样得到的是温度小数部分的第一位数字(保留1位小数)a1=TN;a2=TD;SCI.H/unsigned char zhuantai12=254,0,0,0,0,0,0,0,0,0,0,0;void USART_Init(void) DDRD|=0X02; /TX:D1;RX:D0DDRD&=0Xfe; /TX:D1;RX:D0UCSRB|=0X98; /接收中断使能,接收发送时能UCSRC|=0X86; /寄存器选着,八位数据发送 UBRR=47; /* 设置波