《基于C语言的MCS-51单片机教程》_任务3:键盘应用.pptxVIP

《基于C语言的MCS-51单片机教程》_任务3:键盘应用.pptx

  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文档。上传文档
查看更多

1、键盘的分类

※键盘分编码键盘和非编码键盘。

在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。

非编码键盘有分为:独立式非编码键盘和行列式非编码键盘。;

2、键盘的结构

※常用的机械式按键,按键是4脚封装,内部2脚相连,图(b)是按键的背面图,用万用表测试4只引脚的通断。1号和2号引脚是连通的,3号和4号

引脚是连通的。硬件连接时注意引出按键4个引脚中不相通的2个引脚,如

按键的对角上的两个引脚。;

独立式按键是指各按键相互独立地接通一条输入数据线。当任

何一个键按下时,与之相连的输入数据线即可读入数据0,而没有

按下时读入1。

独立式键盘的电路简单,易于编程,但占用的IO口线较多,当

需要较多按键时可能产生IO资源紧张问题。;

F20A8

P21A9

P22A10

P23A11

P24A12

P25A13P26/A14P27A15;

※2)当按键闭合时,单

片机引脚接地,当按键断

开时,单片机引脚被上拉

电阻拉为高电平,按键闭

合或按下,单片机引脚的

电平稳定,是一种标准的

接法。;

※3)当按键断开时,单

片机引脚接地,当按键闭

合时,单片机引脚直接

和电源相连,这种接法

短路电流大,易烧毁单片机I/O口电路,是危险

的连接方法。;

软件方面如何读取引脚状态呢?有查询法和中断法。普遍采用查询法。查询法是CPU读取连接按键的单片机端口的电平状态,如果读取的是低电平,就确认该端口对

应的按键已按下,如果读取的是高电平,就确认该端口对

应的按键没按下。

提示:因为51系列单片机的端口是准双向口,在读

引脚前,需要先对输入端口置1。

举例:读P1.0

bits1;//定义位变量s1,保存按键通断状态

P1_0=1;S1=P1_0;

读P1:

Unsignedcharsw;//定义字节变量

P1=0xff;Sw=P1;;

5、按键的去抖

由于机械触点的弹性作用,按键在闭合时不会马上稳定地接地,在断开时也不会立刻断开。通常在闭合和断开

的瞬间都伴随有一定时间的触点机械抖动,如下图。抖

动时间一般为5~10ms,在触点抖动期间检测按键的通与

断状态,可能导致判断出错。因此,为保证CPU对按键

的断开和闭合做出正确的判断,就必须消除抖动。

键按下;

4.7K

Vcc(+5V)

在键数较少时可用硬件方法消除键抖动。如图所示的RS触发器为常用的硬件去抖。

图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0

此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。;

按键的去抖—硬件方法;

有键按下否?

Y

延时10mS

有键按下否?

Y

(a)检测按键

按键去抖流程图;

※软件去抖的原理一:前沿消抖法。读按键状

态,判断有键按下,延时10ms,再次读按键

状态,有键按下,才确认是哪一个按键,从而消除前沿的抖动。流程如下图(a)。;

按键释放否?

(e)技键释放等停

软件去抖的原理二:在去抖时间内连续多次去读按键所在端口的状态,并与上一次进

行对比,若状态改变,则重新初始化去抖时间。直到在去抖时间内,每次读到的口状态都一致时,我们才认为扫描到稳定的按键。流程如下图(C)。;

举例

编写程序,识别图中的8个按键是哪一个键被

按下,返回键的编号。;

硬件电路

C1

U1

4TL作;

按键编号;

/****************获取按键状态的参考程序片段*************/

//**********按键扫描程序

unsignedcharkeyscan()

{

unsignedcharsw;//定义变量sw,暂存P1状态的变量

unsignedcharkey//定义变量key,暂存按下键的编号

P1=0xff;//预先对输入端口置1

Sw=P1;

switch(sw)

caseOxfe:key=0;break;

caseOxfd:key=1;break;

caseOxfb:key=2;break;

caseOxf7:key=3;break;

caseOxef:key=4;break;

caseOxdf:key=5;break;

caseOxbf:key=6;break;

caseOx7f:key=7;break;

returnkey;//获得按键编号;

6、矩阵式按键;

特点:占用IO口线较少,但软件将较为

复杂。

判断

文档评论(0)

乐毅淘文斋 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8121131046000040

1亿VIP精品文档

相关文档