您的当前位置:首页正文

单片机键盘设计

2024-07-16 来源:意榕旅游网



单片机键盘设计

一、概述

键盘在单片机应用系统中,实现输入数据、传送命令

的功能,是人工干预的主要手段。键盘分两大类:编码键

盘和非编码键盘。

编码键盘:由硬件逻辑电路完成必要的键识别工作与

同时产生一选通脉冲通知微处理器,一般还具有反弹跳和可靠性措施。每按一次键,键盘自动提供被按键的读数,


接口芯片构成编码式键盘系统是很实用的方案。

非编码键盘:只简单地提供键盘的行列与矩阵,其他

操作如键的识别,决定按键的读数等仅靠软件完成,故硬

件较为简单,但占用CPU较多时间。有:独立式按键结构

、矩阵式按键结构。

二、键盘系统设计 首先,确定键盘编码方案

用编码键盘或非编码键盘。随后,确定键盘工作方式:采



用中断或查询方式输入键操作信息。然后,设计硬件电路。

非编码键盘系统中,键闭合和键释放的信息的获取,键

抖动的消除,键值查找及一些保护措施的实施等任务,均

由软件来完成。(一)非编码键盘的键输入程序应完

成的基本任务 1.监测有无键按下;键的闭合与否,反

映在电压上就是呈现出高电平或低电平,所以通过电平的

高低状态的检测,便可确认按键按下与否。

2.判断是哪个键按下。

3.完成键处理任务。从电路或软件的角度


触点的的弹性作用,一个按键开关在闭合和断开的瞬间均

有一连串的抖动,波形如下: 抖动时间

的长短由按键的机械特性决定,一般为5~10ms,这是一

个很重要的参数。抖动过程引起电平信号的波动,有可能

CPU误解为多次按键操作,从而引起误处理。 为了

确保CPU对一次按键动作只确认一次按键,必须消除抖动

的影响。按键的消抖,通常有软件,硬件两种消除方法。

这种方法只适用于键的数目较少的情况。 软件消


抖:如果按键较多,硬件消抖将无法胜任,常采用软件消




抖。通常采用软件延时的方法:在第一次检测到有键按下

时,执行一段延时10ms的子程序后,再确认电平是否仍

保持闭合状态电平,如果保持闭合状态电平,则确认真正

有键按下,进行相应处理工作,消除了抖动的影响。(这

种消除抖动影响的软件措施是切实可行的。) 2.

取串键保护措施。串键:是指同时有一个以上的键按下,

串键会引起CPU错误响应。 通常采取的策略:单键按

下有效,多键同时按下无效。

3.处理连击。连击:是一次按键产生多次击键的效果

。要有对按键释放的处理,为了消除连击,使得一次按键


将是不可预知,由按键时间决定。连击是可以利用的。连

击对于用计数法设计的多功能键特别有效。

三、键盘工作方式

单片及应用系统中,键盘扫描只是CPU的工作内容之

一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于

键盘的工作方式。考虑仪表系统中CPU任务的份量,来确

定键盘的工作方式。


键盘的工作方式选取的原则是:既要保证能及时响应




按键的操作,又不过多的占用CPU的工作时间。

键盘的工作方式有:查询方式(编程扫描,定时扫描

方式)、中断扫描方式。 四、键盘电路结构

(一)独立式按键接口设计

独立式按键就是各按键相互独立,每个按键单独占用

一根I/O口线,每根I/O口线的按键工作状态不会影响其

I/O口线上的工作状态。因此,通过检测输入线的电平

状态可以很容易判断哪个按键被按下了。


缺点:每个按键需占用一根I/O口线,在按键数量较

多时,I/O口浪费大,电路结构显得复杂。

因此,此键盘是用于按键较少或操作速度较高的场合

中断方式

查询方式





也可以用扩展I/O口搭接独立式按键接口电路,可采用8255扩展I/O口,用三态缓冲器扩展。这两种配接方式,都是把按键当作外部RAM某一工作单元的位来对待,通过读片外RAM的方法,识别按键的工作状态。

上电路中独立式按键电路,各按键开关均采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。

(二)矩阵式键盘接口设计
线组成,按键位于行列的交叉点上。节省I/O口。 矩
阵键盘工作原理:行线通过上拉电阻接到+5V上。无按键
,行线处于高电平状态,有键按下,行线电平状态将由与
列线电平为低,则行线电平此行线相连的列线电平决定。

为低;列线电平为高,则行线电平为高。 五、双功能及多功能键设计 在单片机应用系统中,为简化硬件线路,缩小整个系统的规模,总希望设置最少的按键,获得最多的控制功能。 矩阵键盘与独立式按键键盘相比, 硬件电路大大节省。可通过软件的方法让一键具有多功能



。方法:选择一个RAM工作单元,对某一个按键进行按键

计数,根据不同计数值,转到子程序。这种计数多功能键

最好与显示器结合用,以便知道当前计数值,同时配合一

个启动键。 复合键是使用软件实现一键多功能的另一

个途径。所谓复合键,就是两个或两个以上的键的联合,

当这些键同时按下时,才能执行相应的功能程序。实际情

况做不到“同时按下”,他们的时间差别可以长到50ms

解决策略是:定义一个或两个引导键,这些引导键按下时

没什么意义,执行空操作。引导键的例子:微机键盘上的

CTRLSHIFTALT



最好做一键一功能。如果系统功能很多,一键一功能不现

实,可采取一键多功能。 六、功能开关及拨码盘接口

设计

设计原因:键盘输入灵活性大,操纵方便。但某些重

要功能或数据由键盘输入,误操作将产生一些不良后果。

因此常设定静态开关的方法来执行这些功能或输入数据。

静态开关一经设定,将不再改变,一直维持设定的开关状


态。通常这些开关状态是在单片机系统加电时由CPU读入




内存RAM的,以后CPU将不再关注这些开关的状态,因此,

即使加电后,这些开关的状态发生变化,也不会影响CPU

的正常工作,只有在下一次加电时,这些新状态才能生效。

第一,功能开关:主要是根据开关的状态执行一些重要的

功能。 第二,拨码盘:单片机应用系统中,有时要输

入一些控制参数,这些参数一经设定,将维持不变,除非

给系统断电后重新设定。这时使用数字拨码盘既简单直观

,又方便可靠。 七、按键介绍

常用的按键有三种:机械触点式按键、导电橡胶式和

柔性按键(又称触摸式键盘)。


线清晰,工艺简单,适合单件制造。但是触点处易侵入灰

尘而导致接触不良,体积相对较大。

导电橡胶按键是利用橡胶的弹性来复位,通过压制的

方法把面板上所有的按键制成一块,体积小,装配方便,

适合批量生产。但是时间长了,橡胶老化而使弹力下降,

同时易侵入灰尘。


柔性按键是近年来迅速发展的一种新型按键,可以分




为凸球型和平面型两种。凸球型动作幅度触感明显,富有立体感,但制造工艺相对复杂;平面型幅度微小,触感较弱,但工艺简单,寿命长。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外形和面板的布局、色彩、键距可按照整机的要求来设计。 八、单片机系统键盘设计实例 本次设计中,键盘结构采用非编码键盘系统中的独立式按键结构。用三态缓冲器573扩展I/O口搭接独立式按键接口电路,按键状态由573锁存。

键盘工作方式采用定时扫描方式。采用定时器T0定时,
即通过读取573的输出数CPU 每隔200ms扫描键盘一次,
据,识别按键的工作状态。设计中对于重键和连击的
理,返回重新进行监测。只有监测到一个键按下时,才判
执行相应键处理工作。 键盘对液晶显示的控断键值,
制是通过显示画面的页码作为接口参数来完成的。在每一
页中,键盘对数据的修改是通过对按键次数的计算作为接
口参数来实现的。 具体例程如下:
void keyscan()
/*键盘扫描*/
{ucherdata newz temppat

if(time_out)



{ACC=MJP;
/*读取573数据*/
temp=ACC&0x0f
/*取低四位*/
if(temp=0x0f)

/*有键按下*/
{msec(10);
/*延时10MS*/
ACC=MJP
/*读取573 数据*/
if(temp=0x0f)

{newz=temp;
/*读取新键值*/

pat=newz^old;

/*键值有无变化*/





if(pat)>;0)

/*有变化*/

{old=newz;

/*原键值等于新键值*/

keymana();

/*调键散转程序*/

}

(下转第66 页)(上接第64页)
}

else;

}

elsr;





old=temp;

/*原键值不变*/

time_out=0

/*标志位置零*/

}

esel;

} 九、结语 键盘是单片机系统设计中一种主
大程度上提高系统综合性能。



显示全文