单片机按键电路

上传人:博****1 文档编号:496945024 上传时间:2023-04-07 格式:DOC 页数:7 大小:342KB
返回 下载 相关 举报
单片机按键电路_第1页
第1页 / 共7页
单片机按键电路_第2页
第2页 / 共7页
单片机按键电路_第3页
第3页 / 共7页
单片机按键电路_第4页
第4页 / 共7页
单片机按键电路_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《单片机按键电路》由会员分享,可在线阅读,更多相关《单片机按键电路(7页珍藏版)》请在金锄头文库上搜索。

1、标题 :键盘接口电路教学目标与要求:1. 键盘去抖动和连接、控制方式2. 独立式按键及其接口电路3. 矩阵式键盘及其接口电路授课时数: 2教学重点 : . 矩阵式键盘及其接口电路教学内容及过程:一、键盘接口概述1、按键开关去抖动问题机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11 所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动

2、措施。这一点可从硬件、 软件两方面予以考虑。 在键数较少时, 可采用硬件去抖, 而当键数较多时,采用软件去抖。 在硬件上可采用在键输出端加 R-S 触发器 (双稳态触发器 )或单稳态触发器构成去抖动电路。图 9-12 是一种由 R-S 触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。软件上采取的措施是:在检测到有按键按下时,执行一个10 ms 左右(具体时间应视所使用的按键进行调整)的延时程序后, 再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平, 则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。2.编制键盘

3、程序一个完善的键盘控制程序应具备以下功能:(1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。(2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。(3) 准确输出按键值(或键号) ,以满足跳转指令要求。二、独立式按键单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。1. 独立式按键结构独立式按键是直接用I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O 口线的状态。 独立式按键的典型应用如图7.4 所示。独

4、立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O 口线,因此,在按键较多时,I/O 口线浪费较大,不宜采用。2.矩阵式键盘I/O 端线分为行线和列线,按键跨接在行线和列线上,按键按下时, 行线与列线发生短路。特点:占用 I/O 端线较少;软件结构教复杂。适用于按键较多的场合。3.键盘扫描控制方式 程序控制扫描方式键处理程序固定在主程序的某个程序段。特点:对 CPU 工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 定时控制扫描方式利用定时 /计数器每隔一段时间产生定时中断,CPU 响应中断后对键盘进行扫描。特点:与程序控制扫描方式的区别是

5、,在扫描间隔时间内,前者用 CPU 工作程序填充,后者用定时 /计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 中断控制方式中断控制方式是利用外部中断源,响应键输入信号。特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高 CPU 运行效率,但要占用一个宝贵的中断资源。三、独立式按键及其接口电路1、按键直接与I/O 口连接【例 9-8】按图 9-13(a) 、(b) ,试分别编制按键扫描子程序。解:按图 9-13(a) 编程如下:KEYA:ORLP1,#07H;置 P1.0 P1.2 为输入态MOVA,P

6、1;读键值 ,键闭合相应位为0CPLA;取反 ,键闭合相应位为 1ANLA,#00000111B; 屏蔽高 5 位 ,保留有键值信息的低3 位JZGRET;全 0,无键闭合 ,返回LCALLDY10ms;非全 0,有键闭合 ,延时 10ms,软件去抖动MOVA,P1;重读键值 ,键闭合相应位为0CPLA;取反 ,键闭合相应位为 1ANLA,#00000111B; 屏蔽高 5 位 ,保留有键值信息的低3 位JZGRET;全 0,无键闭合 ,返回 ; 非全 0,确认有键闭合JBAcc.0,KA0; 转 0#键功能程序JBAcc.1,KA1; 转 1#键功能程序JBAcc.2,KA2; 转 2#键功

7、能程序GRET:RETKA0: LCALLWORK0;执行 0#键功能子程序RETKA1: LCALLWORK1;执行 1#键功能子程序RETKA2: LCALLWORK2;执行 2#键功能子程序RET按图 9-13(b) 编程如下:KEYB:ORLP1,#07H;置 P1.0P1.2 为输入态MOVA,P1;读键值 ,键闭合相应位为1ANLA,#00000111B;屏蔽高 5 位 ,保留有键值信息的低3 位JZGRET;全 0,无键闭合 ,返回LCALLDY10ms;非全 0,有键闭合 ,延时 10ms,软件去抖动MOVA,P1;重读键值 ,键闭合相应位为1ANLA,#00000111B;屏

8、蔽高 5 位 ,保留有键值信息的低3 位JZGRET;全 0,无键闭合 ,返回 ;非全 0,确认有键闭合JBAcc.0,KB0; 转 0#键功能程序JBJBAcc.1,KB1Acc.2,KB2; 转 1#键功能程序; 转 2#键功能程序GRET:RETKB0: LCALLWORK0;执行0#键功能子程序RETKB1: LCALLWORK1;执行1#键功能子程序RETKB2: LCALLWORK2;执行2#键功能子程序RET四、矩阵式键盘及其接口电路矩阵式键盘中, 行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V 上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时

9、,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。2. 矩阵式键盘按键的识别识别按键的方法很多,其中,最常见的方法是扫描法。下面以图7.5 中 8 号键的识别为例来说明扫描法识别按键的过程。按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此, 必须使所有列线处在低电平。 只有这样, 当有键按下时, 该键

10、所在的行电平才会由高电平变为低电平。CPU 根据行电平的变化,便能判定相应的行有键按下。8 号键按下时, 第 2 行一定为低电平。然而,第2 行为低电平时,能否肯定是8 号键按下呢?回答是否定的,因为9、10、11 号键按下,同样会使第2 行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻, 让下一列处在低电平,依此循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察8 号键按下时的工作过程,当第 0 列处于低电平时,第 2 行处于低电平,而第 1、2、3 列处于低电平时,第 2 行

11、却处在高电平,由此可判定按下的键应是第 2 行与第 0 列的交叉点,即 8 号键。3. 键盘的编码对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高 4 位是行号,低4 位是列号。如图 9-15 中的 8 号键,它位于第2行,第 0列,因此, 其键盘编码应为 20H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按排进行编码。以图7.5 中的 44 键盘为例,可将键号编码为:01H、 02H、 03H、 、 0EH、 0F

12、H、10H等 16个键号。编码相互转换可通过计算或查表的方法实现。【例 9-10】按图 9-15 及图 9-16,试编制矩阵式键盘扫描程序。解:KEY:MOVP1,#0F0H ;行线置低电平 ,列线置输入态KEY0:MOVA,P1;读列线数据CPLA;数据取反 ,“1”有效ANLA,#0F0H; 屏蔽行线 ,保留列线数据MOVR1,A;存列线数据 (R1 高 4 位 )JZGRET;全 0,无键按下 ,返回KEY1:MOVP1,#0FH;行线置输入态 ,列线置低电平MOVA, P1;读行线数据CPLA;数据取反 ,“1”有效ANLA, #0FH;屏蔽列线 ,保留行线数据MOVR2,A;存行线数据 (R2 低 4 位 )JZGRET;全 0,无键按下 ,返回JBCF0,WAIT; 已有消抖标志 ,转SETBF0; 无消抖标志 ,置消抖标志LCALLDY10m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号