《按键资料整理》由会员分享,可在线阅读,更多相关《按键资料整理(8页珍藏版)》请在金锄头文库上搜索。
1、键盘知识讲解键盘知识讲解一、键盘的分类一、键盘的分类编码键盘 键盘 独立键盘 非编码键盘 矩阵键盘键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。 键盘分两大类:编码键盘和非编码键盘。编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘 自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按 键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279 可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读 数等仅靠软件完成
2、,故硬件较为简单,但占用 CPU 较多时间。有:独立式按键结构、矩阵 式按键结构。二、键盘系统设计二、键盘系统设计首先,确定键盘编码方案:采用编码键盘或非编码键盘。随后,确定键盘工作方式: 采用中断或查询方式输入键操作信息。然后,设计硬件电路。非编码键盘系统中,键闭合 和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软 件来完成。(一)非编码键盘的键输入程序应完成的基本任务1.监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以 通过电平的高低状态的检测,便可确认按键按下与否。2.判断是哪个键按下。3.完成键处理任务。(二)从电路或软件的角度应解
3、决的问题1.消除抖动影响。键盘按键所用开关为机械弹性开关,利用了机械触点的合、断作用。 由于机械触点的的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动,波形 如下:抖动时间的长短由按键的机械特性决定,一般为510ms,这是一个很重要的参数。抖 动过程引起电平信号的波动,有可能令 CPU 误解为多次按键操作,从而引起误处理。为了确保 CPU 对一次按键动作只确认一次按键,必须消除抖动的影响。按键的消抖, 通常有软件,硬件两种消除方法。硬件消抖硬件消抖 :这种方法只适用于键的数目较少的情况。 软件消抖:软件消抖:如果按键较多,硬件消抖将无法胜任,常采用软件消抖。通常采用软件延 时的方法:
4、在第一次检测到有键按下时,执行一段延时10ms 的子程序后,再确认电平是否 仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作, 消除了抖动的影响。 (这种消除抖动影响的软件措施是切实可行的。 )2.采取串键保护措施。串键:是指同时有一个以上的键按下,串键会引起 CPU 错误响 应。 通常采取的策略:单键按下有效,多键同时按下无效。3.处理连击。连击:是一次按键产生多次击键的效果。要有对按键释放的处理,为了 消除连击,使得一次按键只产生一次键功能的执行(不管一次按键持续的时间多长,仅采 样一个数据) 。否则的话,键功能程序的执行次数将是不可预知,由按键时间决定。连击
5、是 可以利用的。连击对于用计数法设计的多功能键特别有效。三、键盘工作方式三、键盘工作方式查询方式(编程扫描,定时扫描方式) 键盘的工作方式 中断扫描方式单片及应用系统中,键盘扫描只是 CPU 的工作内容之一。CPU 忙于各项任务时,如 何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中 CPU 任务的份量,来确定键 盘的工作方式。键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用 CPU 的工作时间。四、键盘电路结构四、键盘电路结构(一)独立式按键接口设计独立式按键就是各按键相互独立,每个按键单独占用一根 I/O 口线,每根 I/O 口线的 按键工作状态不会影响其他
6、I/O 口线上的工作状态。因此,通过检测输入线的电平状态可 以很容易判断哪个按键被按下了。优点:电路配置灵活,软件结构简单。缺点:每个按键需占用一根 I/O 口线,在按键数量较多时,I/O 口浪费大,电路结构 显得复杂。因此,此键盘是用于按键较少或操作速度较高的场合。也可以用扩展 I/O 口搭接独立式按键接口电路,可采用8255扩展 I/O 口,用三态缓冲 器扩展。这两种配接方式,都是把按键当作外部 RAM 某一工作单元的位来对待,通过读 片外 RAM 的方法,识别按键的工作状态。上电路中独立式按键电路,各按键开关均采用了上拉电阻,是为了保证在按键断开时, 各 I/O 有确定的高电平。如输入口
7、线内部已有上拉电阻,则外电路的上拉电阻可省去。(二)矩阵式键盘接口设计矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点 上。节省 I/O 口。矩阵键盘工作原理:行线通过上拉电阻接到+5V 上。无按键,行线处于高电平状态, 有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平 为低;列线电平为高,则行线电平为高。五、双功能及多功能键设计五、双功能及多功能键设计在单片机应用系统中,为简化硬件线路,缩小整个系统的规模,总希望设置最少的按 键,获得最多的控制功能。矩阵键盘与独立式按键键盘相比,硬件电路大大节省。可通过软件的方法让一键具有 多功能。方法
8、:选择一个 RAM 工作单元,对某一个按键进行按键计数,根据不同计数值, 转到子程序。这种计数多功能键最好与显示器结合用,以便知道当前计数值,同时配合一 个启动键。复合键是使用软件实现一键多功能的另一个途径。所谓复合键,就是两个或两个以上 的键的联合,当这些键同时按下时,才能执行相应的功能程序。实际情况做不到“同时按下” ,他们的时间差别可以长到50ms,解决策略是:定义一个或两个引导键,这些引导键按下 时没什么意义,执行空操作。引导键的例子:微机键盘上的 CTRL、SHIFT、ALT。缺点:一是操作变得复杂,二是操作时间变长。多功能键的利用,应具体情况具体分析。要求速度的场合最好做一键一功能
9、。如果系 统功能很多,一键一功能不现实,可采取一键多功能。六、功能开关及拨码盘接口设计六、功能开关及拨码盘接口设计设计原因:键盘输入灵活性大,操纵方便。但某些重要功能或数据由键盘输入,误操 作将产生一些不良后果。因此常设定静态开关的方法来执行这些功能或输入数据。静态开 关一经设定,将不再改变,一直维持设定的开关状态。通常这些开关状态是在单片机系统 加电时由 CPU 读入内存 RAM 的,以后 CPU 将不再关注这些开关的状态,因此,即使加 电后,这些开关的状态发生变化,也不会影响 CPU 的正常工作,只有在下一次加电时,这 些新状态才能生效。第一、功能开关:主要是根据开关的状态执行一些重要的功
10、能。第二、拨码盘:单片机应用系统中,有时要输入一些控制参数,这些参数一经设定, 将维持不变,除非给系统断电后重新设定。这时使用数字拨码盘既简单直观,又方便 可靠。七、按键介绍七、按键介绍常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘) 。机械触点式按键是利用弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制 造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一 块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易 侵入灰尘。柔性按键是近年来迅速发展的一种新型按键,可
11、以分为凸球型和平面型两种。凸球型 动作幅度触感明显,富有立体感,但制造工艺相对复杂;平面型幅度微小,触感较弱,但 工艺简单,寿命长。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且 外形和面板的布局、色彩、键距可按照整机的要求来设计。八、按键的特殊处理八、按键的特殊处理(一)按键“触发”和“长按”有效的核心算法:unsigned char Trg; / Trg(triger) 代表的是触发 unsigned char Cont; / Cont(continue)代表的是连续按下 void KeyRead( void ) unsigned char ReadData = PINB0x
12、ff; Trg = ReadData Cont = ReadData; 以 PB0接口按键为例,读取结果如下表所示:数据结果ReadDataTrgCont没有按键的时候000第一次 PB0按下的时候0x010x010x01PB0按着不松的情况0x0100x01按键松开的情况000运用中用“与”即可实现按键“触发”或“长按”的处理任务。例如:void KeyProc(void) if (Trg / 模式寄存器加1 if (Cont / 计时if (cnt_plus 100) / 20ms*100 = 2S 如果时间到Func(); / 你需要的执行的程序 参考内容:参考内容: 还可以使用状态机解
13、决按键长按处理。以下以一个按键 A 为例:键值为 A_Key(每一 次收到 A_Key 表示按键 A 被按下一次) ,假设每50ms 扫描一次。 状态 意义-Idel - 按键没有按下(初始状态) KDown - 按键按下 KUp - 按键弹起-参考连接:http:/ 。它无法判断2个以上按键同时在同一输入行线被按下的情况,因为当有2个以上按键被按下时,按键扫描输入端的电平其实不是一个标准的1电平或者0电平。电压大概为多少,这要看有几个按键在同一输入行线上被按下以及 MCU的 IO 驱动能力。为了能防止 IO 冲突,又能识别2个以上的按键在同一行输入,这时可以通过软件来改变扫描方式以解决该问题
14、:整个扫描过程中, 只有一条线是输出的,其他剩余的行和所有的列都是输入,这样就能避免冲突。图8.1 矩阵扫描电路参考连接:http:/ 从矩阵按键扫描谈软硬件配合的重要性从矩阵按键扫描谈软硬件配合的重要性九、单片机系统键盘设计实例九、单片机系统键盘设计实例实例参考连接:http:/ AVR 单片机定时器按键扫描程序单片机定时器按键扫描程序十、结语十、结语键盘是单片机系统设计中一种主要的信息输入接口,合理的设计,不仅可以节省系统 的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。全文参考连接:http:/ 电脑键盘工作原理电脑键盘工作原理http:/ 1. 消抖复杂,效率低。很多人直接在电平判断后使用 delay()函数,进行消抖, 耽误时间;有人在按键电平中断中消抖,导致其他的中断,比如串口、定时等 反应很慢,不适合做实时系统; 2. 特殊功能按键的处理麻烦。使用简单电平判断的按键扫描,在需要长按响应、复合按键响应、复合按键长按响应的时候,需要增加很多的标志位,反复使用 if.else 判断,有时候把自个都搞乱了。 3. 不便于移植和修改。使用以上两点编写的函数,如果用在直接端口按键上的,那么在行列扫