单片机的接口与应用.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.1 按键、键盘及其接口;6.1.2 键盘接口和键输入软件中应解决的几个问题 1.消除键抖动;图6.3 消除键抖动电路 ;2.键编码及键值; (2) 顺序排列键编码。如图6.4(b)所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成: 键码=行首键码+列号;图6.4 行列式键盘的编码与键值 ; 3.键盘的监测方法 对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。;6.1.3 独立式按键 1.独立式按键接口结构; 2.独立式按键的软件结构 下面是查询方式的键盘程序。K0~K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0~PROM7分别为每个按键的功能程序。设I/O为P1口。;JNB ACC.2,K2 ;检测2号键是否按下,按下转 JNB ACC.3,K3 ;检测3号键是否按下,按下转 JNB ACC.4,K4 ;检测4号键是否按下,按下转 JNB ACC.5,K5 ;检测5号键是否按下,按下转 JNB ACC.6,K6 ;检测6号键是否按下,按下转 JNB ACC.7,K7 ;检测7号键是否按下,按下转 JMP START ;无键按下返回,再顺次检测 K0:AJMP PROM0 K1:AJMP PROM1 K7:AJIMP PROM7; PROM0:……………………… ;0号键功能程序 ……………………… JMP START ;0号键功能程序执行完返回 PROM1:……………………… ;0号键功能程序 ……………………… JMP START ;1号键功能程序执行完返回 ……………………… ;7号键功能程序 PROM7: ……………………… JMP START ;7号键功能程序执行完返回;6.1.4 行列式键盘 行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。;图6.6 8155扩展I/O口组成的行列式键盘 ; 2.键盘工作原理 按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5 V,被箝位在高电平状态。 对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。 检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。; 1) 查询工作方式 键盘中有无键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。 键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出0,置对应的列线为低电平,然后从PC口读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。 为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。;;键盘扫描子程序如下: KEY1:ACALL KS1 ;调用判断有无键按下子程序 JNZ

文档评论(0)

zhiliao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档