AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf

AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf

ID:57731651

大小:258.69 KB

页数:22页

时间:2020-03-25

AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf_第1页
AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf_第2页
AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf_第3页
AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf_第4页
AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf_第5页
资源描述:

《AVR单片机嵌入式系统原理与应用——马潮(著)第09章.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、9.2按键输入接口设计在单片机嵌入式系统中,按键和键盘是一个基本和常用的接口,它是构成人机对话通道的一种常用的方式。按键和键盘能实现向嵌入式系统输入数据、传输命令等功能,是人工干预、设置和控制系统运行的主要手段。9.2.1简单的按键输入硬件接口与分析键盘是由一组按键组合构成的,所以我们先讨论简单的单个按键的输入。图9-2是简单按键输入接口硬件连接电路图,图中单片机的三个I/O口PC7、PC6、PC5作为输入口(输入方式),分别与K3、K2、K1三个按键连接。其中K2是标准的连接方式,当没有按下K2时,PC6的输入为高电平,按下K2输入为低电平。PC6引脚上的电平值反映了按键的状态。

2、按键K1是一种经济的接法,它充分利用了AVR单片机I/O口的内部上拉特点。在K1的连接中,除了把PC5定义为输入方式时(DDRC.5=0),同时设置PC5口的上拉电阻有效(PORTC.5=1),这样当K1处在断开状态时,PC5引脚在内部上拉电阻的作用下为稳定的高电平(如果上拉电阻无效,则PC5处在高阻输入态,PC5的输入易受到干扰,不稳定),按下K1输入为低电平。与K2连接方式比较,K1连接电路中省掉了一个外部上拉电阻,而在K2的连接方法中,由于外部使用了上拉电阻,所以只要设置PC6口为输入方式即可,该口内部的上拉电阻有效与否则不必考虑了。而对于K3的连接方式,我们不提倡使用,因当

3、K3按下闭合时,PC7口直接与Vcc接通了,有可能会造成大的短路电流流过PC7引脚,从而把端口烧毁。因此电阻R2不仅起到上拉的作用,还有限流的作用,通常在5K-50K之间。图9-2简单按键输入电路图根据按键连接电路可知,按键状态的确认就是判别按键是否闭合,反映在输入口的电平就是和按键相连的I/O引脚呈现出高电平或低电平。如果输入高电平表示断开的话,那么低电平则表示按键闭合,所以简单的讲,在程序中通过检测引脚电平的高低,便可确认按键是否按下。但对于实际的按键确认并不是象上面描述的那么简单。首先要考虑的是按键消抖的问题。通常,按键的开关为机械弹性触点开关,它是利用机械触点接触和分离实现

4、电路的通、断。由于机械触点的弹性作用,加上人们按键时的力度、方向的不同,按键开关从按下到接触稳定要经过数毫秒的弹跳抖动,既在按键按下下的几十毫秒时间里会连续产生多个脉冲。释放按键时,电路也不会一下断开,同样会产生抖动(图9-3)。这两次抖动的时间分别为10-20ms左右,而按键的稳定闭合期通常大于0.3-0.5秒。因此,为了确保MCU对一次按键动作只确认一次,在确认按键是否闭合时,必须要进行消抖处图9-3按键操作波形理。否则,由于MCU软件执行的速度很快,非常可能将抖动产生的多个脉冲误认为多次的按键。在第七章的例7.1中,采用了简单的中断输入按键接口,没有消抖动的功能,所以出现了按

5、键输入控制不稳定的现象。消除按键的抖动既可采用硬件方法,也可采用软件的方法。使用硬件消抖的方式,需要在按键连接的硬件设计上增加硬件消抖电路,如采用R-S触发器或RC积分电路等。采用硬件消抖方式增加了系统的成本,而利用软件方式消抖则是比较经济的做法,但增加了软件设计的复杂性。软件方式消抖的基本原理是在软件中对按键进行两次测试确认,既在第一次检测到按键按下后,间隔15ms左右再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,从而消除了抖动的影响。在按键接口软件中,除了要考虑按键消抖外,一般还要判别按键的释放,只有检测到按键释放以后,才能确定为一次完整的按键动作完成。

6、9.2.2基于状态机的按键输入软件接口设计一般的教课书中给出的按键输入软件接口程序通常非常简单,在程序中一旦检测到按键输入口为低电平时(图9-2),便采用(调用)软件延时程序延时15ms。然后再次检测按键输入口,如果还是低电平则表示按键按下,转入执行按键处理程序。如果第二次检测按键输入口为高电平,则放弃本次按键的检测,从头开始一次新的按键检测过程。这种方式实现的按键输入接口,作为基础学习和一些简单的系统中可以采用,但在多数的实际产品设计中,这种按键输入软件的实现方法有很大的缺陷和不足。上面所提到简单的按键检测处理方法,不仅是由于采用了软件延时而使的MCU的效率降低,而且也不容易同系

7、统中其它功能模块协调工作,系统的实时性也差。另外,由于在不同的产品系统中对按键功能的定义和使用方式也会不同,而且是多变的,加上在测试和处理按键的同时,MCU还要同时处理其它的任务(如显示、计算、计时等),因此编写键盘和按键接口的处理程序需要掌握有效的分析方法,具备较高的软件设计能力和程序编写的技巧。读者可以先仔细观察一下实际产品中各种按键的功能和使用。如一般的电子手表上只有2-3个的按键,却要实现时间、日期、闹钟时间的设置和查看显示等多种功能,因此这些按键是多功能(或

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。