能同时模拟键盘及鼠标的神器--51单片机可控制

之前有一遍是只能模拟键盘的,现在是键盘和数据都能同时模拟的啦

材料清单:

  1. 单片机最小系统*1或者USB-TTL模块;(家中常备)
  2. 模拟键盘鼠标功能板一块*1;M宝购买网址:https://c.tb.cn/c.02oDJ9
  3. 杜邦线-母--母*4;(家中必备)

接线图:

         模拟键盘鼠标功能板       单片机最小系统或USB-TTL模块
                    VCC                             VCC
                    TXD                              RXD
                    RXD                              TXD
                    GND                              GND

能同时模拟键盘及鼠标的神器--51单片机可控制

如果使用USB-TTL模块VCC可以不接,因为USB-TTL模块不需要供电,接了也是没有问题的

 

模拟鼠标调试:

1.把USB-TTL模块和模拟键盘鼠标功能板都插进电脑;

2.打开串口调试助手;串口调试助手:https://pan.baidu.com/s/1t4dx2XvdLq7FAHp6D4QNVg     提取码:8fd8

3.波特率选择57600,选择对应的串口打开,勾选十六进制发送,输入框输入57 AB 02 00 22 33 00

能同时模拟键盘及鼠标的神器--51单片机可控制

点击发送就可以看到鼠标自己移动了,如果成功的话就会返回一个字符‘0’.

鼠标数据说明(坐标为相对坐标):

0x57

0xAB

0x02

4字节鼠标数据

4字节鼠标数据:

BYTE1

BYTE2

BYTE3

BYTE4

按键

X轴相对位移值

Y轴相对位移值

滚轮

按键:

0x01 :表示左键按下

0x02 :表示右键按下

0x04 :表示中建按下

X轴相对位移值:

0x00-0x7F  鼠标向右移动,0x7F对应的十进制是127,就是每次向右移动最大像素就是127个像素

0xFF-0x81  鼠标向左移动,0xFF就是向左移动0个像素;0x81就是向左移动127个像素

Y轴相对位移值:同X轴相对位移值 

0x00-0x7F  滚轮向上移动,数值越大,滚越多

0x81-0xFF  滚轮向下移动,数值越大,滚越少

例:鼠标向右和向下同时移动一百个单位:

57 AB 02 00 64 64 00

(10进制的100对应的十六进制是64)

 

 

模拟键盘调试:

先新建打开一个TXT文档,然后按下图设置串口调试助手,点击右边的序号发送57 AB 01 00 00 04 00 00 00 00 00 

代表按键A按下,然后把光标放进TXT文档,就可以看到效果了,然后发送57 AB 01 00 00 00 00 00 00 00 00代表按键松开了,

不然电脑的按键A一直被按下

能同时模拟键盘及鼠标的神器--51单片机可控制

键盘数据说明:

0x57

0xAB

0x01

8字节标准键盘数据

8字节标准键盘数据:
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8
定义分别是:
BYTE1 --
        |--bit0:   Left Control  是否按下,按下为1 
       |--bit1:   Left Shift  是否按下,按下为1 
       |--bit2:   Left Alt    是否按下,按下为1 
       |--bit3:   Left GUI    是否按下,按下为1 
       |--bit4:   Right Control 是否按下,按下为1 
       |--bit5:   Right Shift   是否按下,按下为1 
       |--bit6:   Right Alt   是否按下,按下为1 
       |--bit7:   Right GUI   是否按下,按下为1 
BYTE2 -- 暂不清楚,有的地方说是保留位
BYTE3--BYTE8 -- 这六个为普通按键
例:想同时按下了Left Shift + ‘a’+‘b’三个键即发送数据:

57 AB 01 02 00 04 05 00 00 00 00


例:按下组合按键后只释放某个按键,例如上面的三个组合键按下后,希望只释放“b”,而另外两个按键还保持按下,即发送数据:

57 AB 01 02 00 04 00 00 00 00 00

这样就可以单独释放按键‘b’了,而按键‘a’保持按下

其他的按键查看键值对照表:https://pan.baidu.com/s/1bmbrdGoz7i2j5AJVHULRUQ