第9章 mcs–51单但片机的接口与应用.pptVIP

  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文档。上传文档
查看更多
第9章 mcs–51单但片机的接口与应用

* * 第9章 MCS–51单片机的接口与应用 9.1 键盘及其接口 9.2 显示及显示器接口 9.3 A/D转换器接口 9.4 D/A转换器接口 一、键的识别 1.测试有键被按下否 9.1 按键、键盘及其接口 可先经输出口向所有列线输出 低电平,然后再经输入口输入各 行线状态。若各行线状态皆为 高电平,则表明无键被按下;若 各行线状态中有低电平出现,则 表明有键被按下。 图9.1 行列矩阵式键盘 键稳定 键按下 后沿抖动 前沿抖动 图9.2 键合断时的电压抖动 2. 去抖动 3.键扫描以确定被按键的物理位置 4. 计算键码: 根据输出低电平的列线号和变为低电平的行线值,可以求得闭合键的键码。键码实际上就是键在矩阵中按从左向右、从上向下的序号。按这种规律,本键盘32个键的键码为00H~1FH。 键码=行首键码+列号 5.等待键释放 计算键码之后,再以延时和扫描的方法等待和判定键 释放。键释放之后,就可以根据得到的键码转相应的 键处理子程序,进行数据的输入或命令的处理。 3.键盘的监测方法 对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。 二、 独立式按键 图9.4 独立式按键的接口电路示意图 (a) 中断方式;(b) 查询方式 三、行列式(矩阵)键盘(省I/O口) 行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。 0列 1列 2列 3列 0行 1行 2行 3行 +5V 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口,如8255;用一种可编程的键盘、显示接口芯片8279进行接口等。 其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用(实验箱8255)。 四.键盘工作方式 2.原理 按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5 V,被箝位在高电平状态。 1)编程扫描方式 CPU在完成其它工作的空余来响应键输入要求。 图9.6 8×8键盘连接 … … +5V +5V …… 8255   PA7 PA1 PA0 PB0 PB1 PB7 … … 图9.7 中断连接方式 ? INT1 ? 80C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 +5V 2)中断扫描方式 中断工作方式: 提高CPU的效率,可采用中断工作方式。 这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。 五、键盘接口举例(自学): 图9.8 软件消除抖动和识别键码流程图 Y Y Y N N N 闭合键释放吗? 返回 二次调用延时子程序12ms 有键闭合吗? 调用延时 子程序6ms 有键闭合吗? 判断闭合键键码 转键码处理 KEY 键盘扫描子程序如下: KEY1:ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(A)≠ 0转消抖延时 AJMP KEY1 ;无键按下返回 LK1:ACALL TM12S ;调12 ms延时子程序 ACALL KS1 ;查有无键按下,若有则真有键按下 JNZ LK2 ;键(A)≠ 0逐列扫描 AJMP KEY1 ;不是真有键按下,返回 LK2;MOV R2,#07FH ;初始列扫描字(0列)送入R2 MOV R4,#00H ;初始列(0列)号送入R4 LK

文档评论(0)

189****6821 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档