在现代电子系统中,三防平板键盘的按键个数及功能通常是根据具体应用来确定的,因此在进行系统的按键接口设计时,要根据应用的具体要求来设计按键接口的硬件电路,同时还需要完成识别按键动作、生成按键键码和按键具体功能的程序设计。
三防平板电子系统的按键可以采用机械开关或者薄膜式开关,通过开关中的簧片是否接触或按压来接通或断开电路。如果按键的个数较少,可以采用与嵌入式处理器I/O接口直接相连方式;如果按键的数量较多,为了节约系统资源可以采用矩阵式键盘连接方式。采用键盘连接方式需要设置合理的接口电路,而且还需要编制相应的键盘输入程序。为了能够可靠地识别键盘输入的内容,对于由机械开关组成的键盘,其接口程序必须处理去抖动、防止串键和产生键值(键码)三个问题。键盘输入程序一般包括以下四部分内容。
(1)判断是否有按键按下。可以采取程序扫描方式、定时扫描方式对键盘进行扫描,或者采用中断扫描方式判断是否有按键按下。
在采用程序扫描方式(即查询方式)时,系统首先判断有无按键按下,如有按键按下则延时10 ms消除抖动,再查询是哪一个键被按下并执行相应的处理程序。采用定时扫描方式时,需要利用定时器产生定时中断,响应中断后对键盘进行扫描,定时扫描方式的硬件电路与程序扫描方式相同。在采用中断扫描方式时,当有按键被按下就引起外部中断后,嵌入式处理器立即响应中断,对键盘进行扫描处理。
(2)三防平板按键去抖动。机械开关的抖动现象指当按键被按下时,机械开关在外力的作用下,开关簧片的闭合有一个从断开到不稳定接触,最后到可靠接触的过程,即开关在达到稳定闭合前,会反复闭合、断开几次,在按键释放时也存在同样的现象。若不设法消除开关这种抖动的影响,会使系统误认为键盘按下若干次。键的抖动时间一般为毫秒级,为保证正确地识别输入内容,需要去抖动处理。按键去抖动一般分为软件延时和硬件去抖动两种方法。软件延时方式是指当得知键盘上有按键按下后,延时一段时间(如10 ms)后再进行判断、确认键盘的状态;硬件去抖动方式可使用R-S触发器方式来实现。
(3)确定按键的位置,获得键码。对于按键直接连接方式,需采用逐个I/O接口查询方式确定按键位置;对于键盘结构,可以采用矩阵扫描方式来确定按键的位置,这样可根据闭合按键位置的编号规律计算按键的键码。
(4)确保对按键的一次闭合只做一次处理。如果同时有一个以上的按键按下时,系统应能识别并做相应的处理。三防平板键盘的串键是指多个键同时按下时产生的问题,解决的方法也有软件方法和硬件方法两种。软件方法是用软件扫描键盘,从键盘读取代码是在只有一个按键按下时进行的,若有多个按键按下时,采用等待或出错处理。硬件方法则采用硬件电路确保第一个按下的按键或者最后一个释放的按键被响应,其他的按键即使按下也不会被响应。
在三防平板现代电子系统中,如果按键个数较少(一般指4个以下的按键),通常可将每一个按键分别连接到微处理器的输入引脚上,这种连接方式称为独立式结构按键方式。若需要按键的个数较多,这时通常会把按键排成阵列形式,每一行和每一列的交叉点放置一个按键,这种连接方式称为矩阵编码结构键盘(也称为行列式键盘)结构方式,下面将分别加以介绍。
1.独立式结构按键
在按键的数量较少且控制器的I/O接口数目较多的情况下,可以将每个按键的一端接地,另一端通过一个电阻上拉到电源,同时连接到微处理器的I/O接口输入引脚,如图1所示,上拉电阻作用是当没有按键按下时I/O接口为高电平。一旦有按键按下,此时微处理器的输入引脚为低电平。微处理器根据对应输入引脚上的是低电平还是高电平来判断按键是否按下,并完成读取相应键码的功能。
2.矩阵编码结构键盘
在某些电子系统中,如果采用独立式结构按键,则需要使用大量的 I/O 接口,导致 I/O接口数量不足。为了节省I/O接口的资源,可以将微处理器的I/O接口设置成两组不相交的行线和列线,构成矩阵编码结构键盘接口形式,即在每个行接口线与列接口线的交叉点设置一个按键开关。图2所示为一个含有16个机械按键的矩阵编码结构键盘,排列成为4×4的阵列形式,当没有按键按下时,接口的所有行接口线与列接口线断开不连接。当某个按键被按下后,相应行接口线与列接口线会连接。这种按键排列方式也称为行列式键盘,对这种键盘的识别通常是采用软件键盘行扫描的方法来实现的。
图1 独立式结构按键连接方式
图2 矩阵编码结构键盘
在图2所示的键盘接口中,键盘的行接口线和列接口线均由微处理器通过 I/O 接口引脚加以控制。微处理器通过输出引脚向行接口线上输出全“0”(低电平)信号,然后通过输入引脚读取列接口信号。若键盘阵列中无任何按键按下,则读到的所有列接口信号必然是全“1”(高电平)信号。如某个按键被按下时就会在对应的列接口线上产生“0”信号,这时微处理器会保存被按下键的列号;然后微处理器再逐行输出“0”信号,来判断被按下的按键在哪一行并保存相应的行号,这样就可得到被按下的按键对应的行接口和列接口的位置,即键码。这种键盘处理的方法称为行扫描编程法,具体的流程如图3所示。
图3 行扫描编程法的具体流程
当采用中断扫描编程方式时,如有按键按下时会向微处理器申请中断,微处理器可以进入中断程序处理按键,也可以设置标志位,退出中断后在应用程序中处理按键。