- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机独立式按键、矩形按键的应用.ppt
第八章 常规按键的应用 键盘的分类 8.1. 独立按键 8.1.1.独立按键原理 8.1.2.按键消抖 当某个按键被按下,由于其触点的机械特性,会抖动约20mS,才会稳定下来,如图所示的波形。如果在此期间去检测,很可能产生误判,所以检测到有键被按下并延时20ms避开抖动期,然后才去检测是哪个被按下。另外手松开也有抖动,所以很有可能在刚才判断时,有按键,等延时20ms之后,就没有按键了。为了提高效率,应在延时20ms后再次判断一下,是否有键被按下。 扫描按键式独立按键 中断式独立按键 扫描式独立按键,这种接法只是将每个按键连接在了I/O口上,在编写程序时只需要不断的扫描I/O口电平的变化就可以了,如果I/O口有电平变化,说明有按键按下,则此时只需要按按键判别的顺序进行判断,这种方法的缺点是,CPU要不断的扫描I/O的电平,占用CPU的时间,较为好的方法是上图所示的中断方案,在这种连接中,当有按键按下时,7408就会在P3.2口产生一个低电平,触发中断,所以此时,单片机不需要不断的扫描I/O口上是否有电平的变化,只需要在产生中断后进行按键处理就可以了,这种方案的缺点是要多占用一个单片机的中断,且要在硬件连接上较为复杂。 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH,L_PRESS LJMP MAINL_PRESS: LCALL DELAY20MS ;消抖 MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH,L_TUREPRESS LJMP MAINL_TUREPRESS: CJNE A, LCALL KEY0 ;KEY0服务程序 LJMP L_EXIT CJNE A, LCALL KEY1 ;KEY1服务程序 LJMP L_EXIT ……….. CJNE A, LCALL KEY7 ;KEY7服务程序L_EXIT: LJMP MAIN 8.1.3.独立按键流程图与软件实现 8.2 矩阵按键 8.2.1.矩阵按键的原理 在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比独立键盘要复杂一些。 8.2.2. 矩阵按键检测 硬件电路如上图单片机的P1口用作键盘I/O口,键盘的行线接到P1口的低4位,键盘的列线接到P1口的高4位。4根行线和4根列线形成16个相交点。每个交点为一个按键,每个按键赋一个键值,从左到右从上到下依次为0-15。 检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,P1.0-P1.3设置为1读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。或者将列设为输入,行设为输出。 8.2.3.计算键值 若有键被按下,判断是哪一个键闭合。方法是对键盘的行线进行扫描。然后进行列线扫描。 在列输出行输入时(即列P1.4-P1.7全为0,行P1.0-P1.3全为1)读取P1.0-P1.3,若全为“1”,则表示没有键闭合,否则有键闭合。由此得到闭合键的行值,然后行输出列输入时(即列P1.4-P1.7全为1,行P1.0-P1.3全为0)读取P1.4-P1.7,由此得到闭合键的列值。 最后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。按照上面所赋的键值标示,键值= 行*4+列。如果键值标示有所改变那么此公式就要相应的发生改变。 计算行: 行全部输出高电平,列全部输出低电平,读回数据,如果P1.0-P1.3某行变为低电平就知道该行上面有按键。代码如左下: 计算列: 行全部输出低电平,列全部输出高电平,然后读回来判断。如果P1.4-P1.7某列变为低电平就知道该列上面有按键。代码如右下:
您可能关注的文档
最近下载
- 2025江西赣州南康赣商村镇银行招聘4人笔试备考试题及答案解析.docx VIP
- T_CMEAS 030-2024 儿童哮喘标准化门诊建设规范.pdf
- 小学一年级体育教案全册表格式(精品).doc VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解参考答案.docx VIP
- 摩登家庭台词剧本第一季第一集中英双语左右对照.pdf VIP
- 前厅服务与管理前厅销售课件.pptx VIP
- 货架验收标准.docx VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解必考题.docx VIP
- 新22N1 供暖工程图集 .docx VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解附答案.docx VIP
文档评论(0)