前言
日常办公、打音游均可。总成本可以控制在10元以内。
当前只做了1x5版本的实物,5x5因为时间原因未完成。所以当前固件只支持1x5版本,经过测试目前还无BUG。
固件烧录及焊接说明
固件包含在附件里,烧录方法和一般STC单片机相同。
固件升级需要用到固件升级工具,同时需要主机支持串口通信(通常使用USB转串口模块)。在产品PCB背面找到UART1接口(焊有2.54mm排针),如右图,从方形焊盘开始从左向右依次接主机VCC(需使用3.3v)、TXD、RXD、GND。点击开始烧录等待完成即可。
CH9328的IO2接GND,其余接高电平
关于源码
小人不才,花了两天两夜时间写完代码。暂不考虑公布源码,若有兴趣,可联系我QQ1901667220,大家一起交流进步。
Features
1. 采用STC8G(1T)高性能主控。
2. 适配所有主流操作系统,无需手动安装驱动程序。
3. 按键扫描算法优化,可做到无误触。
4. 片上搭载4kEEPROM,可断电保存用户配置数据。
5. 完全离线的按键编辑,用户可自由配置所有按键。
6. 支持多种按键映射模式,包括特殊键值映射。
7. USB1.1兼容、USB2.0全速模式兼容。
8. PCB保留UART固件升级接口,方便日后升级。
使用方法
◇ 指示灯
本产品指示灯分为两个区域:
左上角三个为用户指示灯,用于提示用户、用户操作反馈和显示系统当前工作模式与状态,具体说明见下文;
右上角三个从左到右依次为:
◽ TLED:当设备与USB主机进行数据传输时该灯保持快速闪烁。
◽ ACT:当设备与USB主机进行USB握手成功后该灯保持常亮。
◽ PWR:当设备接入电源后该灯保持常亮。
◇ 布局
如下图,设备正面有5个机械按键,从左到右以此为ABCDE(具体键帽上标注可能不符,为方便,本说明一律称作ABCDE)。左上角三个LED依次为LED1、LED2、LED3。
◇ 启动选项
将设备通过Micro-USB数据线连接主机,设备上电启动。若不按任何按键直接上电,设备自动进入键盘模式,会根据内部存储的按键映射关系对应不同按键。若按住某一按键时上电,则会进入某一功能,具体如下表:
按键 |
功能 |
说明 |
LED提示 |
按键A |
编辑模式 |
进入编辑模式,用户自由编辑按键映射。 |
3个LED从左到右依次点亮,随后全部熄灭。 |
按键B |
切换预设1 |
切换到对应标号的预设,断电自动保存,下次在上电无需再次切换,若再次上电进入编辑模式则编辑对应预设。 |
3个LED短亮后LED1常亮。 |
按键C |
切换预设2 |
3个LED短亮后LED2常亮。 |
|
按键D |
切换预设3 |
3个LED短亮后LED3常亮。 |
|
不按 |
键盘模式 |
常规工作模式。 |
3个LED短亮后对应预设灯常亮。 |
◇ 预设
初次使用设备时设备内置三组按键预设,分别为预设1、预设2、预设3。每个预设中的每个按键最多映射5个HID码,且各个预设之间相互独立,用户可以根据需要自行更改并保存。预设编辑完毕后用户可在上电时按住按键B、C、D中任意一个从而实现快速切换不同预设。
◇ 编辑模式
上电时按住按键A进入编辑模式,编辑当前所在的预设。进入编辑模式时3个LED会从左向右依次点亮,然后熄灭,表示当前所处编辑模式。在3个LED熄灭状态下,长按某个按键,直到3个LED逐次点亮后闪烁,此时松开按键,进入该按键的编辑状态,此时5个按键对应功能如下:
按键 |
功能 |
按键A |
输入下一位或完成输入 |
按键B |
BCD码第一位(最高位) |
按键C |
BCD码第二位 |
按键D |
BCD码第三位 |
按键E |
BCD码第四位(最低位) |
说明:一个按键的HID扫描码通常由三位十进制数(0-255)构成,通过将其中每一位转化成8421BCD码(以下简称BCD码),由高位向低位依次输入三次来绑定按键。具体HID码表请参考附录1、2。
1.按键映射表的清空操作
在3个LED均熄灭的编辑模式下,长按某个按键,至3个LED逐次点亮并闪烁,再至3个LED逐次熄灭、长亮、再熄灭,即完成对该按键的清空。此时该按键不绑定任何HID码。
注:若没等到3个LED均熄灭的状态提前松开按键,可按3次按键A(即输入000),来避免对按键映射表进行操作。
2.BCD码的输入
3个LED指示当前输入3位十进制数的哪一位,LED1、2、3分别对应百位、十位、个位。在每一轮输入BCD码前,所有位默认是0,当按下按键BCDE里其中一个时,对应位变为1(不论按多少次都是1,且无法变为0,若误操作请清空后再次操作)。如要输入十进制数5(对应BCD码为0101),即只需按下按键C和按键E后再按按键A确定。当三位十进制数最后一位(个位)输入完成后按下按键A,随即3个LED依次点亮、熄灭,代表按键绑定已完成,可对下一按键进行编辑或退出编辑。
输入操作举例如下:
举例 |
按键操作顺序 |
输入9 (对应F键) |
LED1闪烁后常亮 > 按键A > LED2闪烁后常亮 > 按键A > LED3闪烁后常亮 > 按键B、E > 按键A > 3个LED依次点亮后熄灭 > 完成 |
输入40 (对应Enter键) |
LED1闪烁后常亮 > 按键A > LED2闪烁后常亮 > 按键C > 按键A > LED3闪烁后常亮 > 按键A > 3个LED依次点亮后熄灭 > 完成 |
输入240 (对应LCtrl键) |
LED1闪烁后常亮 > 按键D > 按键A > LED2闪烁后常亮 > 按键C > 按键A > LED3闪烁后常亮 > 按键A > 3个LED依次点亮后熄灭 > 完成 |
3.单键和多键绑定
单键和多键绑定操作类似,差别是前者只进行一次绑定,后者进行多次绑定。
每个按键可容纳5个映射关系,清空时会同时清除该按键的所有映射关系,所以建议 先清空再绑定。若忘记按键映射关系,可以在键盘正常工作模式下使用配套资料中的 Keyboard Test Utility软件查看。
4.退出编辑模式
在3个LED均熄灭的状态下,同时长按按键A、B直至3个LED闪烁即恢复正常键
盘模式,随后对应的预设指示灯会保持常亮。
附录1:HID一般按键扫描码表(参考USB-HID数据包传输规范)
按键 |
扫描码 |
按键 |
扫描码 |
按键 |
扫描码 |
按键 |
扫描码 |
A |
4 |
U |
24 |
Space |
44 |
F7 |
64 |
B |
5 |
V |
25 |
-/_ |
45 |
F8 |
65 |
C |
6 |
W |
26 |
=/+ |
46 |
F9 |
66 |
D |
7 |
X |
27 |
[ / { |
47 |
F10 |
67 |
E |
8 |
Y |
28 |
] / } |
48 |
F11 |
68 |
F |
9 |
Z |
29 |
/ | |
49 |
F12 |
69 |
G |
10 |
1 |
30 |
... |
50 |
PrtScr |
70 |
H |
11 |
2 |
31 |
; / : |
51 |
ScrollLock |
71 |
I |
12 |
3 |
32 |
‘/ " |
52 |
Pause |
72 |
J |
13 |
4 |
33 |
` / ~ |
53 |
Insert |
73 |
K |
14 |
5 |
34 |
, / < |
54 |
Home |
74 |
L |
15 |
6 |
35 |
. / > |
55 |
PgUp |
75 |
M |
16 |
7 |
36 |
/ / ? |
56 |
Delete |
76 |
N |
17 |
8 |
37 |
Caps Lock |
57 |
End |
77 |
O |
18 |
9 |
38 |
F1 |
58 |
PgDn |
78 |
P |
19 |
0 |
39 |
F2 |
59 |
Right |
79 |
Q |
20 |
Enter |
40 |
F3 |
60 |
Left |
80 |
R |
21 |
Esc |
41 |
F4 |
61 |
Down |
81 |
S |
22 |
BackSpace |
42 |
F5 |
62 |
Up |
82 |
T |
23 |
Tab |
43 |
F6 |
63 |
NumLock |
83 |
注1:扫描码为0代表不做任何按键绑定操作。 注2:此表仅供参考,若有错误烦请指正。
附录2:HID控制按键扫描码表(该表由软件特别规定)
按键 |
扫描码 |
按键 |
扫描码 |
按键 |
扫描码 |
按键 |
扫描码 |
L Ctrl |
240 |
L Alt |
242 |
R Ctrl |
244 |
R Alt |
246 |
L Shift |
241 |
L GUI |
243 |
R Shift |
245 |
R GUI |
247 |
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持