客制pc小键盘,CH552单片机HID键盘,电脑多媒体小键盘

11个月前

简介:使用沁恒CH552G单片机制作的自定义键盘

开源协议: CC-BY-NC-SA 3.0

  • 7.7k
  • 72
  • 109

描述

使用沁恒CH552G 51单片机制作的自定义键盘(也可以用CH551G),使用3个凯华矮轴以及一个EC16增量旋转编码器(EC11也可以,附件里有EC11的工程),接口用带定位柱的MICRO-USB,MICRO-USB旁边H1的是用于短接插进入电脑进行程序下载(不必焊接排针,用镊子短接就行)。为了避免使用不同的旋转编码器驱动有问题,附件里提供了我使用的2种旋转编码器的链接、程序源码、元器件清单、HID协议、HID用途表。

程序下载工具:http://www.wch.cn/download/WCHISPTool_Setup_exe.html

按键功能自定义:

  • 普通键盘按键:
  • 普通按键hid值可以看我附件里提供的HID用途表1.12.pdf的**Keyboard/Keypad Page的Usage ID(Hex) **以C的06为0x06。
键盘发送给PC的数据每次8个字节:BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8。定义分别是:
BYTE1 --
       |--bit0:   Left Control     0x01 
       |--bit1:   Left Shift       0x02 
       |--bit2:   Left Alt         0x04 
       |--bit3:   Left GUI(win键)  0x08 
       |--bit4:   Right Control    0x10
       |--bit5:   Right Shift      0x20 
       |--bit6:   Right Alt        0x40
       |--bit7:   Right GUI        0x80
BYTE2 -- 暂不清楚,有的地方说是保留位
BYTE3--BYTE8 -- 这六个为普通按键
以按键1修改为例:
  按键功能:ctrl + c 
if(keyCode == 0x31)//按键1
{
    HIDKey[0] = 0x01; //HIDKey[0]放Ctrl、Shift、Alt这些。这里为  左Ctrl 0x01
        HIDKey[2] = 0x06; //HIDKey[2]-HIDKey[7]为按下的第一个按键到第六个,这里0x06为c
    if(Ready) //枚举成功
        {
            HIDValueHandle1(); //多媒体按键HID值上传
        }
}
  • 多媒体按键:

BYTE1:Vol- 到 Scan Pre Track BYTE2:Scan Next Track开始的8个,取值参考下面的BYTE1去对照KeyMULRepDesc数顺序。

BYTE1 BYTE2 BYTE3 这3个字节分成24位,每个位代表一个按键,1代表按下,0抬起。
BYTE1 --
       |--bit0:  Vol-                 0x01
       |--bit1:  Vol+                 0x02 
       |--bit2:  Mute                 0x04
       |--bit3:  Email                0x08 
       |--bit4:  Media                0x10
       |--bit5:  WWW Home             0x20 
       |--bit6:  Play/Pause           0x40 
       |--bit7:  Scan Pre Track       0x80 
BYTE2 BYTE3按下面的顺序排下去,BYTE3 bit7:最后一个Usage( NULL )。
BYTE4 --
    系统功能按键,关机(0x81),休眠(0x82),唤醒(0x83)
以按键1修改为例:
if(keyCode == 0x31)//按键1
{
    HIDKeyMUL[0] = 0x02; //音量+
    if(Ready) //枚举成功
        {
            HIDValueHandle2(); //多媒体按键HID值上传
        }
}

程序下载步骤: 先短接H1然后插入电脑,看下图,工程里用的是CH552G(如果用其他型号选对应型号就行)。

  1. 选择8位CH55X系列。
  2. 选择CH552。
  3. 把(下载完成后运行目标程序)的√打上就不用拔插重启了。
  4. 看usb设备列表了出现设备就可以下一步了。
  5. 选择编译好的程序CH552E.hex。
  6. 点击下载,最下方的下载进度条走完就下载就行了
  7. 下载方式记得选 usb

QQ截图20200819130054.jpg 修改日期:2021-01-02 10:54

文档

PCB_2020-05-03_18-57-55

在编辑器中打开

BOM

ID Name Designator Footprint Quantity
1 HDR-F-2.54_1x2 H1 HDR-M-2.54_1X2 1
2 EC16 SW4 SW-TH_EC11XXXXXXXX 1
3 0.1uF C1,C2 C0805 2
4 CPG135001D03 SW2,SW3,SW1 KEY-TH_CPG135001D0X 3
5 CH552G U1 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1
6 MICRO 4P DIP USB1 MINI-USB-SMD_MICRO-4P-DIP 1
7 104 C3 C0805 1
8 LED-G LED1,LED3,LED2 LED0805_GREEN 3
9 22k R7 R0805 1
10 2.2k R5,R3,R4 R0805 3
11 10k R2,R1 R0805 2

展开

工程成员

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn