1、 本科毕业论文(设计)题 目 基于无线传感网的调光系统设计 院(系) 机械与电子工程学院 专 业 电子信息工程 学生姓名 盛 贤 学 号 qq:985901310 指导教师 职称 助教 论文字数 7970 完成日期:2016年 05 月 27 日巢湖学院本科毕业论文(设计)诚信承诺书本人郑重声明:所呈交的本科毕业论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本人签名: 日期: 巢湖学院本
2、科毕业论文 (设计)使用授权说明本人完全了解巢湖学院有关收集、保留和使用毕业论文 (设计)的规定,即:本科生在校期间进行毕业论文(设计)工作的知识产权单位属巢湖学院。学校根据需要,有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许毕业论文 (设计)被查阅和借阅;学校可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编毕业,并且本人电子文档和纸质论文的内容相一致。保密的毕业论文(设计)在解密后遵守此规定。本人签名: 盛贤 日期: 导师签名: 日期: 基于无线传感网的调光系统设计基于无线传感网的调光系统设计摘要 本次设计是利用在大学这
3、四年所学习并掌握到的单片机基础知识、自动控制技术、蓝牙通信技术以及安卓项目开发技术等一系列辅助技术设计完成的一套基于无线传感网的调光系统。本论文详细地讲述了此次设计所使用到的软件编程以及硬件电路连接。整个系统以STC15F104W单片机为核心控制芯片,单片机所实现的主要功能是接收HC-05蓝牙模块发送过来的指令的解析及PWM波的输出。蓝牙通信模块采用工业级的HC-05蓝牙模块来完成,蓝牙模块在整个系统中负责蓝牙指令的接收和发送。LED灯的亮灭及亮度调节是通过单片机输出PWM波控制MOS管的导通与关断来实现。本设计无线控制的控制器是带有蓝牙功能的安卓手机,通过点击安卓手机上的软件,实现蓝牙发送数
4、据给单片机。手机上的软件也已经实现了语音控制功能,可以对着手机说出相应的指令,手机上的程序加以处理之后通过蓝牙发送相应的蓝牙指令到HC-05蓝牙模块。然后蓝牙模块再次发送指令给单片机处理。整个设计思路清晰,软件界面简单明了,适合各个年龄段的人使用(4岁以下小孩除外)。这套系统可以极大的为广大人民群众带来便利,比如冬天的时候懒得下床关灯,就可以打开手机来开灯或者关灯。如果觉得灯的亮度太亮也可以调低LED灯的亮度,达到保护视力以及省电的目的。而且本设计硬件成本也不高,适合量产出来给各个不同岗位的人民带来便利。关键词:单片机;手机遥控;调光;语音控制 The dimming system based
5、 on wireless sensor network designAbstractThis design is the dimmer system base on wireless sensor network which utilize the knowledge I have learned and grasped in four years study at university where I have mastered the basic knowledge of SCM, bluetooth communication technology, automatic control
6、technology,android project development technology and a series of auxiliary technology. This thesis describe the software programming and hardware circuit connection used in the design in detail.The entire system take STC15F104W SCM as the core control chip and the main function of SCM is to receive
7、 the analysis of the instructions send by the HC-05 Bluetooth module and to receive the output of the PWM wave. Bluetooth communication module which is responsible for receiving and sending the Bluetooth instructions in the whole system adopts the HC-05 Bluetooth module in industrial grade to comple
8、te the task. Lighting,dimming and dimmer control of LED lights is through the SCM output PWM wave to control the conduction and shut off of the MOS tube. The design of the controller controlled by wireless is an Android mobile phone with bluetooth function,by clicking the software on the Android pho
9、ne ,the bluetooth can send data to the SCM. Mobile phone software has also achieved voice control function, you can speak the corresponding instructions to the phone, the phone will processing the instructions and then through the bluetooth sending the corresponding instructions to the HC-05 Bluetoo
10、th module.And then the bluetooth module will send instructions to the SCM to processing. The whole design ideas are clear and the software interface is simple and clear which is suitable for people of all ages to use (except for children under the age of 4).This system can bring great convenience to
11、 many people. For example, you can use the phone to turn on or turn off the lights in winter while you are too lazy to get out of the bed.And the hardware costs of the design is not high, it is suitable for mass production to bring convenience for all walks of people.Key words: single chip microcomp
12、uter, Mobile phone remote control, That move light,Voice controlI目 录1 前 言51.1课题研究的目的和意义51.2系统的设计任务和要求52 无线遥控方案设计62.1 设计方案比较62.2 设计方案的选择63 硬件电路电路设计73.1电源电路73.2 HC-05蓝牙模块电路73.3 单片机最小系统电路83.4 LED灯控制电路84单片机环境及软件设计94.1单片机环境搭建94.2单片机软件设计94.2.1 单片机处理流程94.2.2 软件设计注意事项105客户端环及软件境设计105.1客户端开发环境配置105.2 客户端软件设计
13、115.2.1 客户端界面设计116系统的焊接及调试146.1系统焊接146.1.1元件在摆放及安装时,注意事项如下:146.1.2元件在焊接时,注意事项如下:146.2 系统整体调试147 结论14参考文献15致谢15附录I 实物图16附录 单片机程序16巢湖学院2016届毕业论文(设计)1 前 言1.1课题研究的目的和意义伴随着科学技术的不断进步以及人民生活水平的不断提高,智能手机几乎已经普及,无论是走路、坐公交车还是吃饭或者躺在床上,智能手机都是时刻刻陪伴在我们的身边,已然成为生活的一部分。“请随手关灯”这句标语在日常生活中随处可见,只不过由于人们生活水平的显著提高可能并不在乎灯开着浪费
14、的那一两度电费,又或者是因为开关离得比较远懒得去关闭开关等种种原因,随手关灯这件小事总是得不到完美的解决。熟不知如果每个人都浪费那不起眼的一度电,累积起来是对资源的严重浪费!基于综合上面两点考虑,本次设计决定使用触手可及的手机结合单片机来无线控制LED灯的打开与关闭,以及LED灯亮度的调节。1.2系统的设计任务和要求本设计采用STC15F104W单片机为主控芯片,结合HC-05蓝牙模块,通过软件编程结合硬件实物来完成一款无线家电开关控制系统的设计与制作。此蓝牙遥控家电开关系统主要电路模块包括:单片机最小系统、HC-05蓝牙模块、安卓手机、电源系统电路、晶体管开关电路。系统所使用的主要元器件包括
15、:STC15F104W单片机、HC-05工业级2.0蓝牙模块、LED灯、晶体管,其整体流程图如下图1-1所示:本设计主要设计任务和要求包括:(1)手机发送蓝牙指令。(2)hc-05蓝牙模块接收蓝牙指令并传送给单片机。(3)单片机处理蓝牙模块发来的指令,并输出PWM波控制晶体管。图1-1 系统整体流程图2 无线遥控方案设计2.1 设计方案比较(1)以ZigBee模块作为主控制模块ZigBee模块主要使用芯片信号为CC2530,其内核为51单片机,不过这款单片机是增强型的51单片机,其性能更稳定,运算速度更快,主要用来无线通信,可以形成一个局域网,其中终端设备,路由设备,以及比较重要的协调器设备共
16、同组成了这个局域网。而且在这个局域网中协调器相当于整个网络的老大,有了它创建的ZigBee网络之后终端设备和路由器设备才可以加入到这个网络中,其中终端设备不能延续网络,路由器可以扩展网络,打个比方说,协调器产生的网络只要半径10米的圆里面能覆盖到,而10米之外得地方就不会有ZigBee网络了,这时候就需要路由器来延续网络,比如在里协调器10米的地方加一个路由器,就又可以在路由器周围形成一个10米的圆,这个半径为10米的另一个圆里面也会有ZigBee网络,这样就可以形成网络的延伸,达到增加网络覆盖范围的效果。这是这款单片机的强大之处。(2)使用2.4G无线收发模块该方案使用nRF24L01无线模
17、块来收发数据,这个模块的体积比较小,工作电压范围比较宽是1.9v3.6v之间都可以。而且工作温度也比较宽可以在零下40到80之间,符合工业设计要求。根据这个芯片的数据手册上的数据可以看出它的无线发射时的功耗也很低只需要12.3mA的电流就可以将数据发送出去。(3)使用蓝牙模块该方案使用HC-05蓝牙模块作为无线模块来收发数据,HC-05是一款主从一体的蓝牙芯片,该芯片接有UART串口、SPI接口以及USB接口,所以通信模式自由,可以选择自己喜欢的通信方式。该模块主要用于短距离无线数据传输,可以方便的和带有蓝牙模块的设备相连接,并进行通信。比如和笔记本,手机等。2.2 设计方案的选择虽然上述三种
18、方案都可以实现无线遥控的功能,达到本次设计目的,但是综合比较一下的话方案一和方案二较方案三来说缺点还是比较明显的,比如方案一和方案二都不容易做到随身携带,如果关个灯还得找半天遥控器那也挺失败的,而且单独的控制模块需要用电,如果接电池的话那么等电池没电的时候得经常换电池,不论是从经济上还是从试用性上来说都是比较麻烦的。而方案三刚好可以解决上面的两个问题,手机可以做到随身携带,无论是走路、吃饭还是睡觉的时候手机几乎都是在身体旁边触手可及的地方。还是而且手机使用的是可充电电池,不用频繁更换电池,而且手机本来就需要每天都充电,这是不可避免的,所以从某种意义上来说这不算本次设计附加的麻烦点。综上:使用第
19、三种方案做本次设计。3 硬件电路电路设计3.1电源电路由于本次设计所采用的电源是12v电源,而单片机以及蓝牙模块需要的是5v电源所以需要电压转换,电路如下图3-1所示:图3-1系统电源管理电路上图3-1为12v转5v电路,主要用的是LM7805稳压芯片然后用电容滤波,由于本次设计使用的电源质量一般,所以加两个电容去除噪声。如果电源比较稳定的话可以不加电容也没关系的。这里得到的5v电压将会给单片机及蓝牙模块供电,而转换之前的12v电压将直接给led灯供电。3.2 HC-05蓝牙模块电路蓝牙模块采用芯片HC-05的来接收蓝牙指令以及转发指令给单片机。该芯片的与单片机相连接的串口分都接有5.6k的上
20、拉电阻以及二极管,其中上拉电阻的目的是让串口在没有接收到数据的时候始终保持高电平,而5.6k这个阻值较大,目的是为了使得串口没有接收到数据的时候功耗比较低。具体电路见下图3-2。图3-2 HC-05通信模块电路图3.3 单片机最小系统电路由于本次设计使用的是STC公司新出的单片机,型号为STC15F104w,而此款单片机的优点是:自带eeprom、含有两个定时器、只有8个管脚,这使得本次设计可以变得很精致。而且更好的地方是这款单片机自带最小系统电路,也就是说在不加任何外围电路的情况下,只需要提供5v电源,这款单片机就可以跑起来了。这无形之中就去掉了很多必要但又没什么意义的电路,使得这个系统的电
21、路变得清晰明了许多。其管脚图如下图3-3所示:图3-3 STC15F104w管脚图虽然最小系统不需要手动外接电路,但是测试一下还是很有必要的,最起码可以知道这款单片机是不是好的。可以往单片机里面写一段简单的led灯闪烁程序。把led灯闪烁程序编译生成的Hex文件烧写到单片机里面之后还需要在电路上焊接一个led灯和一个1k的电阻,led灯和电阻是串联的,电阻一端接到电源正极,另一端接到单片机的P34口,此时会发现led以间隔一秒的速度闪烁。这里也可以不接led电路,直接用万用表测量,将万用表打到电压档,然后将万用表的黑色表笔接到电源的负极,万用表的红色表笔接到单片机的P34口,此时会发现万用表显
22、示的电压是0、5跳转。此时说明一切正常,单片机是好的而且跑起来了。3.4 LED灯控制电路图3-4 LED灯控制电路图如图3-4所示ID test就是LED灯,PWM接的是单片机的IO口,由于单片机IO口输出的5v电压不能直接驱动MOS管,所以在前面加了个三极管开关电路,这样就可以直接用12v电压来驱动MOS管,达到控制MOS管的开和关。这样就达到开关LED的目的了,然后还需要调节亮度,就用到了PWM技术,这里需要注意的是单片机输出的PWM频率不能比三级管的频率高,也不能比MOS管的开关频率高。因为如果一旦频率高了,就会出现失控的现象,导致调节的效果和想象中的完全不一样甚至是完全没有效果。不过
23、好在现在的三级管和晶体管的频率都很高,都是百MHZ级别的,所以这个问题比较好解决。4单片机环境及软件设计4.1单片机环境搭建单片机开发环境相对于下面的安卓开发环境来说比较简单,只需要满足下面几个条件即可:1、Windows操作系统;2、Keil软件(编写单片机程序的软件);3、STC-ISP软件(下载生成的Hex到单片机的软件);4、Pl2030驱动(下载程序需要使用芯片PL2303)。4.2单片机软件设计由于单片机所需程序不算多,后续以附录的形式提供出来,这里简要介绍一下处理蓝牙指令的主要流程及其注意事项:4.2.1 单片机处理流程图4-1 单片机程序流程图(1)单片机上电复位之后将会把PW
24、M口设定初始值1;(2)设定定时器0和定时器1的定时时间后打开定时器0和1;(3)根据定时器0设定的时间来定时判断软件模拟的串口有没有接收到数据;(4)判断并处理软件模拟串口接收到的数据;(5)根据定时器1定时产生的固定频率结合接收到的数据,输出低电平占空比可调的PWM波。4.2.2 软件设计注意事项(1)由于本次设计所使用到的的这款单片机没有串口所以需要软件模拟串口,所以需要使用的定时器来模拟串口,本次设计采用的是定时器0。(2)手机发送过来的蓝牙指令是ASCII码表里面的字符指令,需要参照ASCII码表(附录里面提供)进行编码转换,转换成相应数字之后再进行处理。 (3)发送的数据前后要加了
25、“r”“n”,这地方也比较重要,因为蓝牙硬件的原因,如果不加的话第一位数字很难发出去,所以得加上换行符,才能使得数据的发送或者接收的更稳定一些。5客户端环及软件境设计5.1客户端开发环境配置(1)因为安卓开发中要用到java代码,所以需要先安装java环境。首先查看一下电脑系统是64位还是32位。本次设计使用的电脑是64位的操作系统。 (2)64位的jdk下载可到oracle官网去下载,其中jdk有很多版本,本次设计选择的是1.7版的,jdk安装的过程很简单,双击让后下一步下一步就行了,不过有一点要注意的是jdk尽量安装在默认位置,也就是c盘,这样方便以后配置环境变量,当然不放在c盘也是可以的
26、。(3)安装好之后先不配环境变量,按windows键加r键,然后输入cmd按回车即可打开dos命令行窗口,在窗口中输入java然后按回车即可看到如下图2-2所示界面图5-1 java环境(4)再次输入javac然后回车,如果不报错并且有类似上图2-2的输出,则表示java环境是正常的可以不配环境变量,如果java和javac有一个报错则环境变量就需要配一下,配的步骤是右击计算机-属性-高级系统设置-高级-环境变量。双击path,在变量值那一栏加入刚刚安装的jdk里面的bin目录。(5)重启电脑之后进入重复上面的操作进入dos命令行重新输入java和javac并回车,然后输出就正常了,此时jav
27、a环境配置完成(6)有了前面的java环境之后安卓环境就已经基本完成了,只需要下载一个eclipse就可以开发安卓项目了,不过直接下载的eclipse不能直接开发安卓项目,还得安装ADT插件才可以,还可以选择直接下载集成好adt的eclipse。设置以后者作为模板。(7)eclipse是不用安装的解压后就可以直接使用。第一次打开eclipse是需要选择工作区间的,也就是希望以后开发的项目方在什么地方,这个没什么要求只要不放在c盘都可以,因为c盘有很多目录都有读写权限控制,eclipse不一定有这个权限,而且也没人希望把项目放在c盘,毕竟如果不小心系统奔溃需要重装系统的话c盘里的东西都没了,所以
28、放在其他盘。(8)打开eclipse之后的界面如下图5-2所示,到这里安卓的环境就配置完成,可以进行安卓项目的开发了。图 5-2 eclipse刚打开的界面5.2 客户端软件设计5.2.1 客户端界面设计由于本次设计所涉及的功能不是太多,且为了界面的设计的简洁以及易操作,所以本次App主界面的由线性布构成,在屏幕中上方的地方设置一个醒目的Button控件,然后在距离底部80dpi的地方放置一个SeekBar,整个界面以一张渐变的图片作为背景使得App看起来清晰明了。具体界面如下图5-3所示:图5-3 App主界面5.2.2 客户端功能设计1、点击客户端App之后首先是4张引导图片,图片滑动结束
29、之后进入上图所示的主界面,此时程序会判断系统是否支持蓝牙功能,如果支持才能执行发送蓝牙指令的操作如果不支持则给出Toast提示:手机不支持蓝牙。2、点击界面上的Button之后系统将会判断蓝牙是否已配对,如果没配对则跳转到蓝牙配对界面,跳转到配对界面之后将会看见手机曾经配对过的蓝牙设备名称,点击名称之后就会与选中的设备进行连接,如果所选的设备当前处于开机状态则可以连接上该蓝牙设备,否则返回上衣界面并提示:“蓝牙设备连接异常,请重试”。如果蓝牙已处于已连接状态则判断是此时Button的状态,如果是开着的则发送关闭指令,如果是关着的则发送打开指令。3 当SeekBar被拖动之后判断蓝牙状态以及Bu
30、tton状态,当蓝牙连接上了且Button状态为开时发送SeekBar的值到HC-05蓝牙模块。反之只改变SeekBar的值但是不发送数据。4 当Button被按住不放的时候判断手机是否处于联网状态,如果没有则给出提示网络连接异常,反之则等待语音输入。当有语音输入之后调用讯飞的语音处理技术,将语音转化成文字之后对文字进行处理。如果文字是0100之间的汉字或者阿拉伯数字,或者“打开”,“关闭”之类语音命令,则发送相应的指令给HC-05蓝牙模块。如果不是则给出语音提醒:“我好像没听明白”。其具体流程图如下图5-4所示。5 点击手机的返回键之后手机用自带的Sharedprefenced保存当前See
31、kBar的值并关闭手机蓝牙功能后退初程序。图5-4 客户端程序设计流程图6系统的焊接及调试6.1系统焊接6.1.1元件在摆放及安装时,注意事项如下:(1)主控制芯片在安装时尽量放在电路板中间;(2)电源接口、开关、散热片灯元件尽量放在板子边上;(3)元器件摆放要有一定的间隙,防止元器件之间相互干扰;(4)元器件摆放要尽量紧凑,不影响整体性能的情况下尽量占满整块电路板。6.1.2元件在焊接时,注意事项如下:(1)注意电容,二极管等元件有正负极;(2)用细砂纸轻轻打磨电路板的焊盘,去除氧化层;(3)将元件插入电路板过孔中,与电路板紧贴至无缝为止;(4)同时预加热元件引脚、焊盘大约1秒钟左右之后再加
32、入适量焊锡;6.2 系统整体调试首先打开单片机模块的电源,看到蓝牙模块的指示灯快速闪烁的时候打开手机的设置,在设置里面搜索并配对HC-05蓝牙模块。配对完成之后进入App,点击Button后可以看见LED灯亮,拖动SeekBar后发现LED灯的亮度跟随着SeekBar的改变而改变,按住Button不放后发现弹出等待语音输入界面,说出相应指令后,LED灯可以被语音控制亮灭及亮度的调节,再次点击Button后LED灯灭。虽然控制上一切都很正常但是,仔细看LED灯会发现有闪烁,上网查询资料后发现PWM的频率比较低,所以才会出现闪烁,针对这个问题也有两种解决方法,第一种是在LED灯两端并联一个电容,第
33、二种是调高PWM的频率。不论是从美观上还是从经济上来说第二种方法都比第一种方法好,所以本次设计选择的是第二种方式。经过多次调节PWM频率并观察不到LED灯闪烁之后,一切功能正常,至此调试结束。实物图见附录I。7 结论本文对基于基于无线传感网的调光系统硬件进行了模块化设计,并着重介绍了数据的无线发送、接收以及处理。软件设计给出了程序流成图以及单片机程序的源代码,目前系统的实验效果良好,硬件电路设计简洁明了操作简单。并合理利用手机自带蓝牙功能,实现了随手关灯的功能,具有较强的实用性。参考文献1张友德.单片微型机原理、应用与实验M.上海:复旦大学出版社,2005.2 汪文,陈林.单片机原理及应用M.
34、湖北:华中科技大学出版社,2007.3 康华光.电子技术基础数字部分M.北京:高等教育出版社,2008. 4 杨欣电子设计从零开始M.北京:清华大学出版社,2005. 5 靳岩,姚尚朗. Google Android 开发入门与实战.人民邮电出版社 6 景保玉.2010中国移动应用开发现状与趋势大调查,2011年01月12日7 Michael J.Young. 轻松搞定XML 林嘉胜译 2001年01月08日 8(英)Herbert Schildt Java参考大全(J2SE 5 Edition),清华大学出版社 9(美)鲍格斯坦(Bergsten,H.)著,林琪,朱涛江 译.JSP设计(第三
35、版)/ OReilly Java系列M.北京:中国电力出版社,2004年12月 10 王向辉,张国印,沈洁.Android应用程序开发.清华大学出版社,2010年3 月致谢本论文是在指导老师方愿捷的悉心指导下完成的。老师渊博的专业知识、严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严于律己、宽以待人的崇高风范,朴实无法、平易近人的人格魅力对本人影响深远。不仅使本人树立了远大的学习目标、掌握了基本的研究方法,还使本人明白了许多为人处事的道理。本次论文从选题到完成,每一步都是在导师的悉心指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!在写论文的过程中,遇到了
36、很多的问题,在老师的耐心指导下,问题都得以解决。所以在此,再次向老师表示我深深的谢意。附录I 实物图附录 单片机程序#include reg51.h#define BAUD 0xFE80 / 9600bps 11.0592MHzsfr AUXR = 0x8E;sbit led=P34;sbit key0=P32;sbit key1=P33;sbit key2=P35;sbit RXB = P30; sbit TXB = P31;typedef bit BOOL;typedef unsigned char BYTE;typedef unsigned int WORD;unsigned int p
37、wm=0,total=0,anxia=0,songkai=0,jishi=0,ge=0,shi=0,bai=0;BYTE TBUF,RBUF;BYTE TDAT,RDAT;BYTE TCNT,RCNT;BYTE TBIT,RBIT;BOOL TING,RING;BOOL TEND,REND;BYTE t, r;BYTE buf16;void UART_INIT();void init_interrupt1() TMOD = 0x00; /timer0 in 16-bit auto reload mode AUXR |= 0x40; /timer0 working at 12T mode 0x4
38、00x80 TL1 = (65536-5)/256; TH1 = (65536-5)%256; /initial timer0 and set reload value TR1 = 1; /tiemr0 start running ET1 = 1; /enable timer0 interrupt PT1 = 1; /improve timer0 interrupt priority /EA = 1; /open global interrupt switchvoid key() if(key0=0) anxia=1; if(jishi300) anxia=0; jishi=0;if(tota
39、l100) total=100; else total+; if(key1=0) / anxia=1; if(jishi300) jishi=0;anxia=0; if(total4000) jishi=0;anxia=0; if(total!=0) total=0; else total=16; void judge() if(pwm100) pwm=0; if(total100) total=100; if(pwm100) pwm=0; if(pwm8; /initial timer0 and set reload value TR0 = 1; /tiemr0 start running
40、ET0 = 1; /enable timer0 interrupt PT0 = 1; /improve timer0 interrupt priority EA = 1; /open global interrupt switch UART_INIT(); init_interrupt1(); key0=1;key1=1;key2=1; while (1) key(); judge();receive(); /-/Timer interrupt routine for UART/void tm0() interrupt 1 using 1void tm1_isr() interrupt 3 pwm+;/led=0; TL1 = (65536-5)/256; TH1 = (65536-5)%256; /initial timer0 and set reload valueif(anxia=1) jishi+;/-/Timer interrupt routine for UARTvoid tm0() interrupt 1 /led=0; if (RING) if (-RCNT = 0) RCNT = 3; /reset send baudrate counter if (-RBIT = 0) RBUF = RDAT; /save the data to RBUF