技术文档

单片机当电脑键盘 单片机模拟PS2键盘实现(1)

小编 2024-11-24 技术文档 23 0

单片机模拟PS2键盘实现(1)

很多控制项目中会用到小型的工控机,有时还需要用到键盘的部分功能。如果配一个全功能的键盘有些浪费资源,空间也不允许,这时,我们可以用单片机来实现模拟出键盘的部分功能。

小型工控机

常用的键盘有两种接口,PS/2和USB,今天先介绍一下PS/2接口的相关情况。

首先先要弄清楚PS/2的传输协议,然后用单片机管脚直接模拟它的时序就可以了。

从设备发送时序

这是从设备键盘的发送时序,可以看到,每个数据由11个bit组成,1个起始位(0),8个数据位,1个校验位(奇校验)和一个结束位(1);时钟频率控制在10-20K之间,下降沿有效。

从设备接收时序

这是主设备的发送,从设备的接收时序,时序基本和上面的一致,但是要注意,当主设备发送数据时,从设备就不能发送数据。只有当时钟线为高电平时,也就是主设备没有动作,这时从设备才可以发送数据。

熟悉单片机编程的朋友大都了解IIC吧?乍一看,PS/2协议是不是跟IIC很像呢?所以编程也就简单多了。了解时序之后,我们还要知道键盘上字符所对应的"通码"和"断码",按照码表传输对应的字符就可以了。下面就是部分字符的码表:

部分字符码表

如果我们想要给电脑发送一个"G",那么,就先发通码"0x33",再发断码"0xF0"和"0x33"就可以了。

好了,理论的东西先讲到这里,下次,我们结合代码,详细的分析PS/2键盘的实现。

如何通过单片机用键盘玩Switch游戏?

TechWeb 文 / 新喀鸦

相信有很多朋友在入手Switch游戏机之前都是在玩电脑游戏,那么肯定有一部分玩家更习惯使用键盘而不是手柄操作。那么这时如何使用键盘玩Switch游戏呢?

首先,如果想直接将键盘连接在Switch游戏机或主机底座上是行不通的,那样直接连接的话键盘只能用于打字,不能用于游戏的操作。因为此时键盘和手柄按键之间缺乏映射关系,你在键盘上所按下的按键不能对应到手柄的按键上。而补全这种映射关系就能解决问题了,比如像市面上出售的“键鼠转换器”或者内置“键鼠转换器”功能的特殊键盘。但这两种产品价格上比较贵,而且功能上也很局限。

在这个局面下,单片机就成了一个很好的解决方案。单片机价格便宜,而且可以通过编程扩展很多功能。

第一步*选择合适的单片机开发板

单片机又称微控制器(MCU),是将单片机主机(CPU、内存和I/O接口)集成在一小块硅片上的微型机。具有三个优势(集成度高、可靠性高、性价比高)。

单片机开发板是一种非常适合单片机学习者以及单片机工程师使用的一种硬件,在开发板上除了单片机芯片以外,一般还会配有各种I/O接口、传感器、点阵显示屏等“外部硬件资源”。

而选择一款合适的单片机开发板,一是要看单片机芯片的各种技术指标,二是要看开发板配备的“外部硬件资源”。

单片机的技术指标一般可以重点看以下四个方面:

字长:例如8位、16位、32位

内存容量:例如8K、64K、16M

运算速度(时钟频率):例如6MHz、12MHz、24MHz

内存存取周期:例如:50nS 、70nS

“而外部硬件资源”则是看开发板提供的接口以及传感器等,比如在一些比较复杂的项目中会用到较多的输入输出引脚,那这种时候就需要选择引脚较多的单片机开发板。

另外在实际的单片机项目中,成本是一个非常重要的考量因素。在单片机选用时往往会优先选择性能勉强够用,但性价比很高的型号。

最终在本次项目中选用了Teensy++ 2.0单片机开发板。

第二步*连接单片机开发板

对于一款陌生的单片机开发板,最快了解它的方法就是去官网查相关资料,这些资料包括但不限于引脚定义、各引脚所能承受的最大电压。

其实也可以从论坛获取相关型号单片机开发板的使用经验,不过论坛上的信息有些会存在一些错误,需要注意甄别。

以上为Teensy++ 2.0单片机开发板的引脚定义图,我们可以按照图上的引脚定义将单片机开发板与下载器等设备连接起来。

连接结果如上图所示

第三步*自己编程或者寻找可用的开源代码

单片机芯片是需要程序和代码来实现功能的,所以我们需要自己开发或者寻找可用的开源代码。

如果不打算自己开发全部内容,准备使用开源程序的话。建议在一开始选择单片机开发板时就考虑相关问题,同样的程序在不同型号的单片机上可能效果会不同。所以这种情况在最初选择单片机时最好直接选择原开发者所采用的单片机型号或是兼容型号,以免未来调试过程中出现麻烦。

最终在本次项目中选用了“伊机控”这款开源程序,以此为基础进行相应开发。

第四步*学习相应的编程语法

如果以开源程序为基础进行开发,则需要仔细阅读开源程序的说明文档。这些程序中会详尽说明开源程序所构筑的特殊语法、函数等内容。

“伊机控”的“简单语法”可以分成6个部分,分别为:注释、输出、按键、摇杆、等待、循环。

熟悉编程的朋友可能注意到了,即使仅依靠这六种语法就已经能构筑出一些自动化操作的指令了。

而在进阶部分还有例如:常量、变量、条件分支、逻辑运算、栈操作等更为复杂的语法功能。

在一些游戏中会有一些重复性的操作,比如刷道具、刷精灵。在人工刷道具的时候,其实操作也就是反反复复那几种。而使用了单片机后,这种步骤则可以通过单片机自动进行了。

第五步*安装驱动并烧录程序

单片机的下载器其实是一个很古老的电子产品了,因此在很多电脑上是需要手动安装驱动的。很多新手明明连接没问题,但插上就是没反应,原因也在于此。没有驱动的话,下载器是不能正常工作的。

而对于单片机的烧录一般需要用到单片机厂商提供的程序,Teensy++ 2.0所用的就是teensy.exe进行烧录。

在完成烧录后我们就可以测试我们自己的代码功能了。

相关问答

单片机键盘 不起作用的起因,硬件是好的,不知道程序这块儿出了...

键盘讨论回答(3)delayms(12);后的if(key_0==0)修改为while(!key_0)(意思为当...如果只用单片机实现这三个功能的话,我感觉这样又能实现。不好意思,恕我直说...

单片机 为什么要有 键盘

单片机说白了就是一个小的电脑的主机那么有了主机以后想让他正常动起来当然缺不了键盘这就像电脑问什么要有键盘一样,输入用的。

矩阵 键盘 单片机 怎么连接?

矩阵键盘是行x列,需要看你矩阵的多少而定,接单片机IO口P0、P1都可以矩阵键盘就是个按键阵列,不需要电源和地,电源和地是接单片机的矩阵键盘是行x列,需要看你...

求c51 单片机 在protues中可以用到的作为 键盘 和数码管驱动的芯...

就用74HC573,采用共阴数码管,接上上拉电阻就可以了啊,键盘直接用总线驱动就行了啊按键和数码管驱动种类有很多,可以用8255,ch451(貌似不能proteus仿真)查查pr...

微处理器 微型计算机 微型计算机系统和 单片机 有什么不同? - ...

3以微型计算机为核心组成的应用控制系统叫做微型计算机系统,包括系统软件和硬件两个组成部分。4单片机是面向工业控制的微处理器,是工业CPU,它是...

微处理器 微型计算机 微型计算机系统和 单片机 有什么不同? - ...

微处理器、单片机是计算机的处理器即指挥中心单元,微型计算机就是我们办公用的电脑,微型计算机系统就是计算机的应用系统1微处理器是将运算器和控...

单片机 的遥控器怎么用?

单片机遥控器是一种无线遥控器,可以通过编程和电路设计控制物品的运动或操作。首先需要将遥控器和被控制的设备连接,然后在单片机控制板上编写程序,将遥控器...

ad矩阵 键盘 怎么接入 单片机 ?

您好,ad矩阵键盘接入单片机的步骤如下:1.选择合适的ad矩阵键盘,根据需要确定键盘的行数和列数。2.将ad矩阵键盘的行和列分别连接到单片机的IO口上。3.在单...

大学生机械专业,这学期有 单片机 实验,需要 电脑 ,不知道咋选,有何推荐?

一、【明白需求】你为什么要购买电脑?要清楚自己买电脑是用于做什么?比如你是为了普通用途,那么现在的一般电脑都是适合你的,就算一个2000多个的电脑也够你...C...

51 单片机 矩阵 键盘 如何实现两个键同时按下的时候显示其他数字,用c语言程序实现?

定义一个按键缓冲区用普通的按键扫描程序,当扫描到有按键按下的时候。按键键的值写入缓冲区。继续扫描直到完成。然后返回缓冲区地址就可以得到多个按键的数...

猜你喜欢