基于蓝牙的多功能无线鼠标设计_第1页
基于蓝牙的多功能无线鼠标设计_第2页
基于蓝牙的多功能无线鼠标设计_第3页
基于蓝牙的多功能无线鼠标设计_第4页
基于蓝牙的多功能无线鼠标设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1基于蓝牙的多功能无线鼠标设计摘要随着科学技术的发展,无线通信技术越发成熟,无线鼠标则是无线技术的产物,在生活中被人们广泛使用。其中蓝牙鼠标是先进技术的集中体现。本文阐述了以低成本为目标的蓝牙鼠标产品解决方案。蓝牙的创始人是爱立信公司,爱立信早在1994年就已进行研发。1997年,爱立信与其他设备生产商联系,并激发了他们对该项技术的浓厚兴趣。1998年2月,跨国大公司,包括诺基亚、苹果、三星组成的一个特殊兴趣小组(SIG),他们共同的目标是建立一个全球性的小范围无线通信技术,即蓝牙。本设计采用了51单片机作为鼠标的微控制器,Atmel32u4单片机作为电脑端的接收模块,充分发挥了51单片机和Atmel32u4单片机的性能,完成了低成本设计,具备一定实用性:PC机端软件则设计为运行在后台的应用程序,接收USB接口数据并进行处理,以模拟鼠标功能。关键字:蓝牙技术、无线鼠标、USB接口2AbstractWiththedevelopmentofscienceandtechnology,wirelesscommunicationtechnologybecomesmoremature,wirelessmouseistheproductofwirelesstechnology,iswidelyusedinlife.TheBluetoothmouseistheembodimentoftheadvancedtechnology.ThispaperexpoundstheBluetoothmouseproductswithlowcostasthetargetsolution.BluetoothisthefounderoftheEricsson,Ericssonhasbeenbackin1994forresearch.In1997,Ericssonandotherequipmentmanufacturers,andtheirinterestinthetechnology.In1998February,largemultinationalcompanies,IncludingaspecialinterestgroupNokia,apple,Samsungiscomposedof(SIG),theircommongoalistoestablishaglobalsmallrangewirelesscommunicationtechnology,thebluetooth.Thisdesignadopts51singlechipcomputerasthemicrocontrollerofthemouse,Atmel32u4microcontrollerisusedasthereceivingmodulecomputerterminal,givefullplaytotheperformanceofthe51singlechipmicrocomputerandAtmel32u4chip,thelowcostdesign,hasacertainpracticality:thePCsoftwareisdesignedtorunapplicationsinthebackground,receivetheUSBinterfacedataandprocessinginthesimulation,thefunctionofthemouse.Keywords:bluetooth、wirelessandMouse、USB3目录摘要.2Abstract.3第一章引言.41.1无线技术背景.41.2蓝牙技术优势.5第二章蓝牙无线通信技术.62.1蓝牙技术概述.62.2蓝牙系统功能单元概述.72.3蓝牙协议体系.82.4蓝牙低层传输协议.82.4.1基带和链路控制器.92.4.2无线射频.92.5蓝牙HCI主机控制器接口.102.5.1蓝牙主机控制器接口描述.102.5.2HCI分组描述.11第三章原理及电路设计.123.1接收端模块.123.2发射端模块.133.2.1主控制器.133.2.2按键控制.143.3蓝牙模块.153.4电源系统.16第四章实物制作与调试.174.1实物制作.174.1.2发射端模块.184.2程序及调试.184.2.1程序.184.2.2调试.234.2.3调试结果.25总结.26参考文献.27致谢.28附件:.29附录1:实物照片说明.29附录2:部分源程序.294第一章引言1.1无线技术背景现代人的生活中,越来越多的电子设备进入生活的每一个角落。现代化电子设备给人们带来无与伦比的效率方便的同时,也给许多人带来了麻烦:每台电脑的背面,都是一大堆各种各样的接口和电线,一个系统中经常排布着各种外部设备的连接电线,正确地连接它们非常让人头疼。近几年,微电子技术的不断进步推动了计算机和通信设备的和发展,一些电子消费产品,如PC电脑、掌上电脑、手机通讯、等进入了人们的学习、生活和工作中,成为人们不可缺少的一部分。然而这些设备之间的数据传送往往通过电缆进行,限制了使用的灵活性。因此,人们希望有一种能够取代电缆的短距离无线连接技术,以解决这个问题。在这种需求推动下,“蓝牙(Bluetooth)”应运而生了。蓝牙技术的出现和发展推动和扩大了无线通信的应用范围,使网络中各种数据和通信设备可以通过极其便捷的方式进行相互通信。蓝牙技术在促进和扩大了无线通信的应用范围的出现和发展,使其在网络和通信设备的数据可以通过极其方便的方式互相沟通。蓝牙理论数据传输速率1Mbps(实际传输速率为721Kbps),最大传输距离为10米,通过增加发射功率可达到100米。蓝牙技术的功耗很低,多用在消费类电子产品上,如PDA、笔记本电脑、手机通讯、无线鼠标等等。鼠标无疑是我们操作电脑时使用最常用的部件,是我们与电脑之间的接口,而无线鼠标则使我们的工作快捷,不受电缆限制。目前市场上无线鼠标产品所用技术以使用IRDA为最多,其次是蓝牙等无线射频技术。本课题是将蓝牙技术应用在无线和鼠标的尝试,是对传统无线鼠标的技术改进。51.2蓝牙技术优势目前短距离无线通信技术主要有同样工作在2.4GHz频段上的IEEE802.11B,HomeRF,另外还有红外技术。下面分别它们的特点分别进行比较。IEEE802.11b是第一个支持在工作区域实现无线漫游的发展的目的。它支持10个到100个接入点。最重要的应用是实现高品质的数据网络,例如文件或网络共享。IEEE802.11B的速度为2.4GHz直接序列扩频,最大数据传输速率为11Mb/s,无须直线传播。也因为IEEE802.11的高可靠性,使它的成本比其它技术要高。此外,语音支持802.11b是有限的,目前质量差。因此,对于那些只想用一个单一的无线网络技术来满足用户的要求,也不符合IEEE802.11。HomeRF系统在2.45GHz频带扩展频谱上以50跳砂速率跳频。从设计之初是为了满足家庭网络消费者的需求。除了提供良好的服务品质外,简单、保密、易操作是很显著的特点。在家庭网络上,HomeRF是消费者合适的选择。随着射频技术相比,红外线系统的工作原理是非常简单的,它具有结构简单,成本低,良好的方向发展,所以红外系统中的应用是非常广泛的,但也有很多缺点,比如距离有限、角度限制等。蓝牙和IEEE802.11b,家庭射频技术不同的是,它有一整套新的协议,可以应用于更多的场合。蓝牙技术中的跳频更快,因而更加稳定,同时它还具有低功耗、低成本和比较灵活等优点。蓝牙技术是没有极限的方向,以其良好的智能和全方位的击败了红外技术,对IEEE802.11b技术以其低廉的价格占优。6第二章蓝牙无线通信技术2.1蓝牙技术概述随着计算机网络的快速发展和移动电话技术,越来越多的人急需开发无线数据在一定范围内的传输和语音通信。大范围全球范围的无线通讯有GSM.CDMAIX.36网络,IEEE802.11,短距离RF,和蓝牙(Bluetooth)。以爱立信为首,由五家IT界巨头Ericsson,TOSHIBA,IBM,INTEI和NOKIA于1998年5月共同提出了一种近距离无线数字通信的技术指标,旨在创立一项软硬件结合的公开规范,为所有不同设备提供具备相互操作性、可交又开发的工具、这个工具便是蓝牙Bluetooth)。目前,加盟的公司己超过2000多个,其中包括许多世界著名的计算机、通信、家电业厂商以及汽车、照相机制造商。蓝牙是一种开放性的技术,它具有如下技术特性:1)蓝牙技术的开放性蓝牙技术是由不同的厂商共同发起的技术协议,它可以被任何加入蓝牙SIG的厂商无偿使用。为了保证不同厂商生产的蓝牙设备之间的互操作性,蓝牙SIG制订了一整套严格的检测程序,只要蓝牙产品制造商通过蓝牙SIG和符合蓝牙标准,即可投入市场。2)短距离蓝牙无线通信技术,短距离(通常是10米),能耗低,因此更适合小型,便携式和电池供电的设备由一个人。3)无线通信方式蓝牙技术主要面向网络中的各种数据及语音设备,如PC机,拨号网络,笔记本电脑,PDA,打印机,传真机,数码相机,移动电话,高品质耳机等。蓝牙无线意味着他们将成为一个围绕个人的网络,不需要用户连接困难,实现便携式设备的各种资源之间的共享。4)蓝牙产品的互操作性和兼容性7蓝牙产品以满足蓝牙规范,也必须通过SIG认证计划(资格程序),只有通过认证程序,才能走向市场。这样就保证了即使是不同公司的蓝牙产品,也可实现互操作和数据共享,达到完全兼容的目的。2.2蓝牙系统功能单元概述蓝牙系统由无线射频单元、链路控制单元(基带)、链路管理、软件功能等功能单元组成。1.基带基带中描述数字信号处理的硬件是链路控制器,基带链路控制器负责处理基带协议和其他一些低层连接规范。包括:(1)建立网络连接蓝牙基带技术支持两种连接类型:同步面向连接SCO(主要用于传送语音),异步无连接ACL(主要用于传送数据包)。(2)差错控制蓝压基带控制器有三种纠错方案:1/3比例前向纠错码、2/3比例前向纠错码和数据的自动请求重发方案。2.无线射频单元蓝牙工作的频段上存在着来自微波炉、无线局域网等各种无线设备的干扰。蓝牙采用了跳频扩谱技术主动地去避免干扰,我国的蓝牙射频频段最低频率2.402GHz,最高频率为2.48GHzo频率中心频点的间隔为1MHz,跳频频点数79个,上、下保护频带分别为3.5MHz和2MHze蓝牙设备根据发射器的功率大小分为3个功率级别。级别1的蓝牙设备发射功率为l00mW(20dBm)0;级别2的蓝牙设备为2.5mW(约4dBm):级别3的蓝牙设备为1mW(OdBm),典型蓝牙设备都属于这一级别。系统的设计通信范围为10cm到lom,但是通过增大发射功率可以将范围扩大至100m.3.软件结构蓝牙设备需要支持一些基本互操作特性要求。蓝牙设备必须能够相互识别并装载相应的软件以支持设备更高层次的性能。82.3蓝牙协议体系SIG所颁布的蓝牙规范(SpecificationoftheBluetoothSystem)公布了蓝牙无线通信协议标准.到目前为止,SIG颁布了蓝牙规范1.0,1.0b和1.1三个版本,蓝牙规范给出了实际应用所应遵循的标准和需要达标的要求,对于具体的实现方法交给开发人员来决定,这样就可以增加产品的市场竞争力。蓝牙规范的核心部分就是协议栈。这个协议栈允许设备定位、互相连接且彼此交换数据,从而在蓝牙设备间实现互操作性的交互式应用。下面简述蓝牙协议栈的主要组成部分,不同的层之间的接触分析协议栈。在蓝牙的协议规范之中,遵循开放系统互连参考模型(OpenSystemInterconnectionReferencedModel,OSI(RM)从低到高地定义了蓝牙协议堆栈的各个层次。SIG在制定蓝牙的协议堆栈时,一个重要的原则就是,高层尽量地利用己有的协议,而不是对于不同的应用去定义新的协议。所以蓝牙协议堆栈中的许多协议并不是蓝牙规范所特有的,而是己经应用成熟的协议。还有一些协议是SIG基于其它协议修改而成的,如串口仿真(RFCOMM)和电话控制协议(TelephoneControlprotocolSpecification,TCS).蓝牙协议的体系结构可以分为四层,包括核心层,协议层,取代有线电话控制协议层和协议层,每层包括一些特定的协议:.核心协议:基带、链路管理协议(LMP)、服务发现协议(SDP)、逻辑链路控制和适配协议(L2CXP);.替代电缆协议:串行电路仿真协议(RFCOMM);.电话控制协议;.选用协议:点到点协议、用户数据报/传输控制协议/互联网协议、目标交换协议、无线应用协议、无线应用环境等。蓝牙协议栈中,不是所有的应用都必须使用全部协议,可以只采用部分纵向协议,利用特殊的服务来支持主要应用。蓝牙核心协议中的低层传输协议是蓝牙无线技术的专有协议,是由蓝牙SIG开发出来的。低层传输协议是最需要协议的蓝牙设备。2.4蓝牙低层传输协议蓝牙低层传输协议由基带、射频、链路管理(LMP)等三部分组成。从应用的角度来看,射频,基带和LMP属于蓝牙低层协议,其功能包括空气协议和信号处理,对应用程序是透明的。92.4.1基带和链路控制器蓝牙基带主要功能包括微微网和设备控制功能,如链路连接建立(查询和呼叫)、跳帧序列选择、媒体接入控制和功率模式和安全法则等。蓝牙系统包括两种连接方式,即点对点连接方式和点到多点连接方式,共享通信信道的蓝牙单元构成微微网。蓝牙设备发送数据时,基带部分将来自高层协议的数据进行信道编码,向下传给射频进行发送;接收数据时,通过空气接收数据,无线电频率数据解调恢复到基带,基带信道传输数据的解码,向高层传输。蓝牙链路控制器有两个主要状态:待机(STANDBY)和连接(CONNECTION)状态,另外还有7个子状态:寻呼、寻呼扫描、查询、查询扫描、主设备响应、从设备响应和查询响应,中间的临时过渡状态。为了从一个状态转移到另一个状态,可以执行蓝牙链路控制器命令,也可以使用链路控制器的内部信号。连接状态是指连接已经建立,数据包可以双向传输的状态。这种状态下,通信的主从双方都使用主设备接入码和时钟,跳帧序列选择为信道跳频序列。可以使用断开(Detach)和复位(Reset)命令从连接状态下离开。Detach命令是正常连接断开,但链路控制器的所有配置信息仍然有效。Reset命令是硬启动命令,链路控制器的所有配置信息都要刷新,必须重新配置才能使用。设备的连接状态可以在主动模式、呼吸模式、保持模式和睡眠模式的中的一个激活。待机状态是蓝牙设备的低功耗状态,此状态下只有本地时钟在低功率振荡器下精度运行。蓝牙设备可以离开待机状态到寻呼扫描状态,完成一个成功的寻呼,进入连接状态成为主设备。蓝牙源设备在不知道目的设备地址的情况下使用查询过程,该过程也可以用来发现辐射范围内的其他蓝牙设备。发起设备广播发送的查询信息不包括源设备的任何信息但可以制定什么级别的设备进行响应。2.4.2无线射频蓝牙收发机是调频扩展频谱(FHSS)的无线系统,在m个1Mhz带宽的信道上运行,大部分国家m=79,一些国家m=23,信道由在79或23个射频信道上跳变的伪随机跳变序列来表现。跳变序列对同一个微微网来说是唯一的。102.5蓝牙HCI主机控制器接口2.5.1蓝牙主机控制器接口描述研究蓝牙的足迹控制器接口(HostControllerInterface)之前首先必须明确蓝牙主机与主机控制器的概念。按照蓝牙协议和高层应用程序的集成方式,蓝牙设备通常可以分为两种应用模式:单处理器模式和多处理器模式。当所有蓝牙协议和应用程序都由一块单独的处理器控制实现,称为单处理器模式,这种模式集成度高,有利于节省成本和减小体积,适用于协议栈和应用程序简单的应用模型实现,例如蓝牙头戴式设备。多数情况下,蓝牙的低层传输协议以firmware(固件)的形式集成与蓝牙模块中,有其中的高性能微处理器控制,而协议栈的其他部分有另外的处理器控制实现,这种模式称为多处理器模式,又叫做主机-主机控制器模式。在多处理器模式中实现高层协议栈的部分为主机蓝牙模块通过相应的接口与之相连,主机控制器(HostController)位于蓝牙模块之中,用来解释从主机接收到的信息并将其正确的发送到蓝牙模块合适的组件中,同时收集来自蓝牙模块的数据和硬件/固件的状态信息,并根据需要将其传送给主机。主机控制器接口是蓝牙设备开发人员控制蓝牙模块的唯一途径,因而具有非常重要的地位。为了让不同厂商的蓝牙模块能够互通,SIG对主机控制器接口的形式和指令格式都做了相应的规定,这就是蓝牙规范中的主机控制器接口功能规范。从严格意义上讲,HCI层协议并不是蓝牙协议栈中的协议,在单处理器应用模式中,由于不存在主机控制器接口,因而也不存在HCI层协议.除了完成数据通信功能之外,HCI还提供了控制基带与链路控制器、链路管理器、状态寄存器等硬件资源的功能,为了完成这些功能,HCI规范中定义了丰富的功能指令。通过这些HCI指令,蓝牙设备的开发人员可以完成对蓝牙模块的各种操作,包括实现基带和链路管理器协议中定义的各种功能。1.1蓝牙规范定义了三个具体的物理接口HCI传输标准,这三个不同的物理接口分别USB,RS232和UART,因此这三种接口也是大部分蓝牙模块所提供的物理接口形式。UART(通用异步收发机)接口是一种串行接口,事实上它是RS232的一个固有子集。在蓝牙HCI层的应用上,二者的分别在于:RS232指的是主机和蓝牙模块位于两块不同的电路板之上,连线距离较长,数据在传输过程中的误码率不能忽略,因此RS232上使用的HCI11分组格式中使用检错和纠错机制:UART则指的是主机和蓝牙模块位于一块电路板之上,连线距离短,可以认为数据在传输过程中不会出现误码,因此UART上使用的HCI分组格式中没有检错和纠错机制。2.5.2HCI分组描述HCI是分组(包)交流信息的方式。主机和主机控制器间的通信都以分组的形式进行,每个指令的执行结果信息也都是通过特定的事件分组向主机报告的。主机和蓝牙模块是用来传达命令的响应,主机到主机控制器发送指令包。主机控制器执行某一指令后,大多数情况下会返回给主机一个指令完成事件分组,该分组携带有指令完成的信息。有些分组不会返回指令完成事件,而返回指令状态事件分组,用以说明主机发出的指令己经被主机控制器接收并开始处理。如果指令分组的参数有误,返回的指令状态事件分组就会给出相应的错误代码。有三种类型的HCI分组:指令包(命令包),事件分组(事件分组)和数据包(数据包)。在主机和主机控制器的双向传输的数据包,只有从主机控制器指令包和从主机到主机事件数据包。主机发向主机控制器的大多数指令分组,主机控制器都会返回对应的事件分组,说明指令分组的执行情况。命令包从主机发送命令到主机控制器,又分为链路控制指令、链路策略和模式指令、主机控制和基带指令、信息指令、状态指令和测试指令六种。主机控制器事件包,通知主机的各种活动,包括一般事件(包括指令完成事件和命令状态事件),测试事件和错误事件(如冲洗发生和数据缓存刷新数据缓冲区溢出的缓冲区溢出)数据分组分为异步无连接数据分组和同步面向连接数据分组两种。在HCI规范中,HCI分组的数据和参数格式遵循如下规则:.除非特别指出,参数值按小端格式(LittleEdien)进行收发;.除非特别指出,数值采用二进制或十六进制的小端格式(LittleEdien)12第3章原理及电路设计跟其他无线鼠标原理一样,蓝牙鼠标也是通过两个模块进行信号的传递。发射端接收鼠标动作信号,再通过蓝牙无线将信号发送到PC端,经过接收端的信号处理成数据发送到电脑实现鼠标动作。图3.1所示为鼠标运行时的流程图:配对图3.1蓝牙鼠标流程现在市场上一般的蓝牙设备接收端对数据的接收和处理是一体的,可以把处理完的数据直接发送到电脑。鉴于在PC端底层的技术及软件应用比较困难,本课题在接收端多加了一块单片机作为单独的处理单元来实现蓝牙鼠标功能。3.1接收端模块本设计接收端模块采用Atmel32u4单片机作为接收芯片。当接收到蓝牙数据时候,按照对应的蓝牙数据来执行usb对应的动作。Atmel32u4通过usb控制器模拟鼠标运行。图3.2为接收端设计原理图:鼠标动作单片机信号接收与发送蓝牙模块发射端蓝牙模块接收端PC端动作实现13C10n23p45uF67D-SxM_NGIPLH9Y+VRETKUB*(#W)A/8OXzrdio图3.2接收端设计原理图图中上部分电路是预留的接口,就是板子上面的6个排针,是给系统烧录bootloader的,bootloader是一个引导程序,只有烧录了之后才能通过串口给单片机下载程序。和51单片机的最小系统一样Arduino的单片机也需要复位电路,振荡电路,图中上面的部分就是单片机的复位电路,当中部分是震荡电路。下面的电容都是滤波电容,电解电容主要滤除低频干扰杂波,瓷片电容主要滤除高频干扰杂波。其中的那个电感是数字电源到模拟电路之间加的,也是为了滤波。3.2发射端模块3.2.1主控制器发射端采用51单片机作为主芯片。按键设置为6个按键,分别作用于上、下、左、右、左键和右键。当按下某个按键时通过低电平响应,把数据传送给单片机,再通过单片机控制蓝牙模块传输信号。图3.3为51单片机主控制原理图:.ZeyJ14图3.351单片机主机控制原理其中开关s1部分用于单片机的复位,Atmel32u4单片机作为接收芯片,负责接收按键数据与发送蓝牙信号。图中左侧是复位电路,是单片机最小系统的组成部分。单片机是高电平复位,当按下复位按键9引脚通过电阻接到电源也就是接了高电平,单片机就复位。阻值大小可以通过算分压来得出范围,当按键按下的时候1K的电阻和10K的电阻串联分压,选择的阻值要保证9引脚得到的电平是高电平。3.2.2按键控制鼠标的移动方向和左右键的工作状态,其电平受K1K6的控制,其中K1、K2控制X轴方向的正向和反向移动,K3、K4控制Y轴方向的正向和反向移动,K5控制鼠标的左键,K6控制鼠标的右键。如下表所示:鼠标按键测试表鼠标按键原理图如图3.4所示K1E23ey+5R7084图3.4鼠标按键原理按键A0A1A2A3A4A5工作状态K1100000X轴正方向移动K2010000X轴负方向移动K3001000Y轴正方向移动K4000100Y轴负方向移动K5000010鼠标左键K6000001鼠标右键153.3蓝牙模块蓝牙模块也分为两个部分,分别作用于发射端和接收端。发射端51单片机接收到按键数据经过处理后将数据传送给发射端蓝牙。再通过发射端蓝牙和接收端蓝牙间的信号传递将信号传送给接收端Atmel32u4单片机处理。最后数据通过USB接口进入电脑进行响应实现数据传递。图3.5图3.6为发射端与接收端蓝牙模块原理图:R4Coment:5.6KVD3810GN-SBMOI7L9+2PUATXYEHar图3.5发射端蓝牙模块原理图两个二极管是最简单的5V转3.3V的电路,TXD上面接的上拉电阻电压是5V的,但是蓝牙芯片的电压是3.3的,因此通过一个二极管把5V信号变成3.3V的。反过来,RXD上面的上拉电阻接的电压是VCC33,是3.3V的电压给蓝牙芯片的,蓝牙芯片输出接到单片机部分需要升高成5V的电压,因此加了一个二极管。uiJ图3.6接收端蓝牙模块原理图163.4电源系统我们提供一节9V的方块电池为发射端模块提供供电。图3.6为电源系统原理图:D01N47C52U/6VSWRKLEJ38图3.6电源系统电源电路采用7805稳压芯片,保证电压输出是标准的5V电压。这个1K的电阻是LED发光二极管的限流电阻。LED是电流点亮器件,点亮电流是毫安级别的,所以加限流电阻,换成大的或者小的对电路没有影响,只是会影响LED的亮度。17第4章实物制作与调试4.1实物制作4.1.1接收端模块考虑到第一次制作的准确性,我们可以先完全了解各模块的工作原理和电路工作原理,制作无线鼠标所需要的模块可以购买成品,然后进行直接焊连。接收端分为上下两块电路板,上面一块为扩展版,方便安插元器件和搭建电路。图4.1图4.2为接收端电路板和扩展板电路实物图图4.1接收端电路板图4.2扩展板184.1.2发射端模块此次发射端模块运用的是按键执行鼠标操作,电路板尺寸会偏大。但不影响电路运行。图4.3为发射端电路实物图图4.3发射端电路实物图4.2程序及调试4.2.1程序本课题的蓝牙鼠标使用的蓝牙模块是成品,所以电路连接好后只需要在电脑软件上键入程序,程序运行成功后蓝牙鼠标就可以使用了。下面提供接收端和发射端的源程序:voidsetup()/initializeserial:Serial1.begin(9600);Shubiao.begin();voidloop()while(Serial1.available()charinChar=(char)Serial1.read();if(inChar=A)定义鼠标方向左移digitalWrite(13,!digitalRead(13);Shubiao.move(-3,0);/命令鼠标左移40个单位19elseif(inChar=D)定义鼠标方向右移digitalWrite(13,!digitalRead(13);Shubiao.move(3,0);elseif(inChar=W)定义鼠标方向上移digitalWrite(13,!digitalRead(13);Shubiao.move(0,-3);elseif(inChar=S)定义鼠标方向下移digitalWrite(13,!digitalRead(13);Shubiao.move(0,3);elseif(inChar=L)定义鼠标左键动作digitalWrite(13,!digitalRead(13);Shubiao.click(Shubiao_LEFT);elseif(inChar=R)定义鼠标右键动作digitalWrite(13,!digitalRead(13);Shubiao.click(Shubiao_RIGHT);接收端控制板程序Main.c代码如下:#includemain.h#includeuart.h#includeunsignedchartemp2=0,temp1=0x7f;unsignedcharKEY_NUM=0;/*/主函数/*voidmain()Uart_Init();Delay_ms(100);while(1)20Scan_Key();/*/按键扫描程序/*voidScan_Key()if(KEY_W=0)/按键1扫描Delay_ms(10);/去抖if(KEY_W=0)UartPrintf(W);if(KEY_S=0)/按键1扫描Delay_ms(10);/去抖if(KEY_S=0)UartPrintf(S);if(KEY_A=0)/按键1扫描Delay_ms(10);/去抖if(KEY_A=0)UartPrintf(A);if(KEY_D=0)/按键1扫描Delay_ms(10);/去抖if(KEY_D=0)UartPrintf(D);if(KEY_L=0)/按键1扫描Delay_ms(10);/去抖if(KEY_L=0)21UartPrintf(L);while(KEY_L=0);if(KEY_R=0)/按键1扫描Delay_ms(10);/延时去抖if(KEY_R=0)UartPrintf(R);while(KEY_R=0);/*/延时函数,延时1s/*voidDelay_ms(unsignedintm)unsignedintj;unsignedinti;for(i=0;isbitKEY_W=P32;sbitKEY_S=P35;sbitKEY_A=P34;sbitKEY_D=P33;sbitKEY_L=P37;sbitKEY_R=P36;externvoidDelay_ms(unsignedintm);externvoidScan_Key();#endif22Uart.c代码:#includeuart.h/unsignedcharRX_Buffer30;unsignedcharNum=0;unsignedchartemp=0;voidUart_Init()SCON=0X50;/UART方式1;8位UARTREN=1;/允许串行口接收数据PCON=0x00;/SMOD=0;波特率不加倍TMOD=0x20;/T1方式2,用于产生波特率TH1=0xFD;/装初值TL1=0xFD;TR1=1;/启动定时器1EA=1;/打开全局中断控制ES=1;/串行口中断voidUartPrintf(unsignedchar*p)/发送字符串while(*p)SBUF=*(p+);while(TI=0);TI=0;voidUartPrintASCII(unsignedcharc)/发送一个字符TI=0;SBUF=c;while(TI=0);TI=0;voidRECEIVE_DATA(void)interrupt4using1/串口中断23if(RI=1)RI=0;Uart.h代码:#ifndef_UART_H_#define_UART_H_#include/externvoidUart_Init();externvoidUartPrintf(unsignedchar*p);externvoidUartPrintASCII(unsignedcharc);externunsignedcharRX_Buffer30;externunsignedcharNum;externbitFlag_Relay1;externbitFlag_Relay2;externbitFlag_Relay3;externbitFlag_Relay4;#endif发射端代码4.2.2调试模块指示灯说明1.将模块通电同时(或者之前),将KEY引脚接高电平,此时指示灯慢闪(1s亮一次),模块进入AT状态,此时波特率固定38400.2.将模块通电后,将KEY引脚悬空或者接地,此时指示灯快闪(1S亮两次),表示模块进入可配对状态。但此时如果将KEY引脚接高电平,模块也会进入AT状态。但是指示灯依然是快闪(1S亮两次)。3.模块配对成功,此时STA双闪(一次闪两下,2S闪一次)。下面进行实物调试:241.当接收端接USB线接入电脑时,蓝牙模块进入AT状态,如图4.4:图4.4AT模式下接收端模块2.我们用一块9V的电池为发射端鼠标模块通电,此时模块指示灯快闪,表示进入可配对状态,如图4.5:图4.5可配对状态发射端3.此时将两模块互相靠近,模块指示灯经短暂闪烁后变为STA双闪(一次闪两下,2S闪一次),表示配对成功,此时可正常使用蓝牙鼠标功能了。如图4.6:图4.6配对成功两模块254.2.3调试结果调试之前我们需要在电脑系统中安装Arduino这个软件,这个软件是识别外部蓝牙信号的常用软件。现在再无任何干扰条件的情况下的调试结果:鼠标控制模块移动情况桌面鼠标移动情况左按键一下左移1CM右按键一下右移1CM上按键一下上移1CM下按键一下下移1CM左键按键左键1S后响应右键按键右键1S后响应26总结在本文对无线蓝牙鼠标进行研究和设计过程中,首先,我查找网络和书籍各种资料进行对比分析,了解无线蓝牙鼠标的基本理论;重点对接收电路的工作原理,蓝牙模块发射的分析,与学习相关的知识和编码解码原理;最后,对无线蓝牙鼠标进行设计与制作。经过近几个月的努力,终于基本完成了整个课题任务。期间遇到了比较多的问题,比如对Atmel32u4单片机和蓝牙发射接收电路很少接触,从设计到调试都有很多困难。所以这个参考很多的书也问了很多人,都一一解决。当然,从设计也总结了不少经验。例如,对电路板,在布线时要做到配线要尽量宽些,以免配线因操作不当而短路。在元件的焊接时思路可以更广泛些,比如在发射端电路板上可以多加一块扩展板方便安插元器件和搭建电路。我在做毕业设计的过程中,遇到了许许多多的问题,但在导师耐心地指导下和同学的帮助下,最终把毕业设计完成.在此设计中,我学到许多东西。通过此次的课程设计,我明白了蓝牙鼠标的构成及工作原理,深入理解了51单片机及Atmel32u4单片机的作用,深刻认识到了“理论联系实际”的这句话的重要性与真实性。通过本课程设计,我不仅知道更多的理论知识,同时也巩固以前的知识。最重要的是在实践中理解了书本上的知识,明白了学以致用的真理。也明白为什么老师要求我们在这次毕业设计中做一个好工作。他是为了教会我们如何运用所学的知识去解决实际的问题,提高我们的动手能力。27参考文献1.邹艳碧蓝牙技术软件实现模式分析。微计算机信息20032.王耀明蓝牙系统服务发现协议(SDP)的分析和应用。计算机工程20023.林继建PC机和单片机串行通信程序设计。计算机应用研究20014.李朝清PC及单片机串行通信程序设计。计算机应用研究20015.田学峰计算机通信与RS232接口实用指南。电子工业出版社19956.陈启美计算机USB接口技术南京大学出版社20037.金纯、徐光辰、孙睿,蓝牙技术,电子工业出版社,20018.严紫建、刘元安,蓝牙技术,北京邮电大学出版社.2001.9.马建仓、赵玉亭、罗亚军等蓝牙核心技术,科学出版社。200010.袁新燕,计算机外设与接口简明教程,北京航空航天大学出版社,200028致谢历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师魏明老师,他对我进行了无私的指导和帮助,以其博大精深的学术知识不厌其烦的帮助进行论文的修改和改进。在此向帮助和指导过我的各位老师表示最中心的感谢!感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版灯过程中提供热情的帮助。29附件:中英文文献翻译名称蓝牙30附录1:实物照片说明接收端电路板扩展板发射端电路实物图配对成功两模块31附录2:部分源程序设计程序voidsetup()/initializeserial:Serial1.begin(9600);Shubiao.begin();voidloop()while(Serial1.available()charinChar=(char)Serial1.read();if(inChar=A)定义鼠标方向左移digitalWrite(13,!digitalRead(13);Shubiao.move(-3,0);/命令鼠标左移40个单位elseif(inChar=D)定义鼠标方向右移digitalWrite(13,!digitalRead(13);Shubiao.move(3,0);elseif(inChar=W)定义鼠标方向上移digitalWrite(13,!digitalRead(13);Shubiao.move(0,-3);elseif(inChar=S)定义鼠标方向下移digitalWrite(13,!digitalRead(13);Shubiao.move(0,3);elseif(inChar=L)定义鼠标左键动作digitalWrite(13,!digitalRead(13);Shubiao.click(Shubiao_LEFT);else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论