文档详情

无线鼠标报告.doc

发布:2017-06-04约3.5千字共11页下载文档
文本预览下载声明
无线鼠标制作 学校专业:_____西安邮电大学理学院_________ 制作者: _刘峪,刘江江,曹明智,段少飞___ 指导教师:_____________孙宇航_____________ 摘要 本文介绍了基于STC89C52RC单片机的无线鼠标制作,通过模拟Windows串口鼠标的通信协议,让计算机将单片机识别为串口鼠标。 无线接收发送采用315M无线收发模块。 无线鼠标设计方案(探索之路) 方案一:由于缺乏电路设计的经验,一开始我们采用的方案非常简单:将有线鼠标的USB线剪断,将其用315M无线收发器代替,鼠标发射编码信号,计算机接收并解码无线信号。 VCC D+ 串行信号 D- GND D+ 串行信号 D+ D- 这个方案的缺点是:315M无线收发器的传输速率跟不上鼠标的扫描速率。 方案二:将上述方案的315M无线收发模块改为市面上通用的4.2G无线收发模块,最常用的有NRF24L01。但是NRF24L01采用的是SPI通信协议,如果要将有线鼠标改为无线鼠标,需要在鼠标端口接USB转SPI模块,计算机端接SPI转USB模块,造价昂贵且实验价值不高。 方案三:是电院同学之前采用过的方案,主要思想是用单片机来接受红外遥控信号,控制单片机输出高低电压来代替鼠标按键的作用。这种方案的实施可行性非常高,但是功能只有按键的作用,无法控制光标的移动。 方案四:用51单片机模拟串口鼠标的信号输出,用红外遥控信号控制单片机,单片机输出相应的串口信号,控制鼠标光标的移动, 以及左右按键的功能。我们最后采取的就是此方案。 实验材料简介 1. 51单片机STC89C52RC开发板: 选用一个开发板,而不是直接使用单片机STC89C52RC,因为开发板上的电路焊接牢固稳定,自己用51单片机搭建外部电路很容易出现毛病,这个开发板的功能我们基本都可以用到。开发板上的主要组成部分有: (1) STC89C52RC: STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。采用的外接晶振11.0592hz。 (2)PL2303 是Prolific 公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232?装置与USB 功能接口便利连接的解决方案。 2. 315M无线收发模块 此无线收发器采用的是PT2262-M4/PT2272-M4,为四路独立动点输出电路。也就是说,按下A, B,C,D键时,接收端分别有相应的四个端口输出高电平。 杜邦线 我们购买的是双母头的杜邦线,因为无线接收器和单片机上都有相应的插针,既然能插杜邦线,就不需要焊接了,而且对于后续的改进也很方便。 三、方案详述 第一步: 我们要做的就是把51单片机做成一个电脑识别的鼠标,有两种方法,第一种是自定义通信协议,需要写出计算机上的驱动程序,可以说相当复杂,我们短时间内是无法完成的;第二种方法是模拟Windows老式串口鼠标,让Windows自动帮我们安装驱动程序。 下面附上串口鼠标的通信协议: 数据格式 ??? ㈠ MicroSoft 公司标准: MICROSOFT FORMAT 字节 字元(B i t) 7 6 5 4 3 2 1 0 BYTE1 1 1 L R Y7 Y6 X7 X6 BYTE2 0 0 X5 X4 X3 X2 X1 X0 BYTE3 0 0 Y5 Y4 Y3 Y2 Y1 Y0 注释: L = 左键状态 R = 右键状态 1 = 按下 0 = 释放 X0-X7 = X 距离 Y0-Y7 = Y 距离 X7或Y7为±符号位 串口特性:波特率 = 1200 Baud,8 位数据,无校验位,2 停止位。 (这是我从网上查到的通信协议,但是有一处应该是错误的:“X0-X7 = X 距离”,实际上我测试的结果是x6x5x4x3x2x1x0由高位到低位所组成的二进制数表示鼠标一次前进的距离
显示全部
相似文档