用51单片机和ch375实现键鼠功能
说明:
为了参加比赛,我和我的队友设计了一款人机交互系统,我负责接收摄像头数据和模拟键鼠功能,由于当时只是学习了51故用51单片机和ch375模拟一套简单的键鼠功能。若真想实现键鼠功能,推荐使用32及类似的单片机做。
简单介绍:
- ch375:
CH375 是一个 USB 总线的通用接口芯片,支持 USB-HOST 主机方式和 USB-DEVICE/SLAVE 设备方式。 在本地端,CH375 具有 8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机 /DSP/MCU/MPU 等控制器的系统总线上。在 USB 主机方式下,CH375 还提供了串行通讯方式,通过串行 输入、串行输出和中断输出与单片机/DSP/MCU/MPU 等相连接。(详细请看数据手册) - stc12c5a60s2:
比较常见的一款51单片机,不必细说。o( ̄▽ ̄)o
电路图:
不是很清晰(>人<;)
3d效果图是这样的:
代码实现(注意的地方):
hid报告描述符:(详细的去看hid协议(。^▽^))
代码量有点多只能截图,下面会给资料链接
- 对main函数做点解释:
- mouse_dataup函数是实现鼠标的移动或者左右按键
- key_dataup函数是键盘的值的实现,可以实现四个键一起按下,事实上协议是支持5个按键一起按下的,但由于这是键鼠 一起的,故占用了一个,只能四个。CH375 具有 8 位数据总线,这就限定了一次性只能发8个字节。可以下载代码找到该函数看看。
资料链接:
- 文件说明:
键:单独实现键盘功能
键鼠:俩功能
鼠标:单独鼠标功能
键盘键值:是hid协议里每个按键所对应的值