单片机键盘程序设计举例(单片机模拟PS2键盘实现)

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

单片机键盘程序设计举例(单片机模拟PS2键盘实现)(1)

小型工控机

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

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

单片机键盘程序设计举例(单片机模拟PS2键盘实现)(2)

从设备发送时序

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

单片机键盘程序设计举例(单片机模拟PS2键盘实现)(3)

从设备接收时序

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

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

单片机键盘程序设计举例(单片机模拟PS2键盘实现)(4)

部分字符码表

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

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页