- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种矩阵键盘的定位的方法(编码方式)
图1是本发明方法的键盘扫描定位原理框图,图2是说明本发明方法的一个实施例的电路图,所述方法通过嵌入式设备和键盘扫描定位程序来实现,所述的嵌入式设备包括键盘和微控制器,所述的键盘扫描定位程序在微控制器中运行。
图1
图2中,键盘的4个按键以2×2的矩阵形式排列,所有的行线与列线都通过上拉电阻接至电源+VCC,并连接至微控制器的I/O接口。本实施例要求利用4个按键实现以下操作:
操作0:键盘从有键按下恢复到没有任何键按下后,时间达到2min时,执行一次操作0;
操作1:按键S1单键按下操作时,执行一次操作1;
操作2:按键S2单键按下操作时,执行一次操作2;按键S2单键按下时间持续3s以上后,每隔0.1s执行一次操作2,直到S2释放(或者键盘状态发生其他改变);
操作3:按键S3单键按下时间持续2s以上后,执行一次操作3;
操作4:按键S3单键释放操作时,执行一次操作4;
操作5:按键S4单键按下后,再按下按键S3的组合键操作,执行一次操作5。
如图1所示的键盘进行初始化,主要是前后读入2次键值,分别作为前态键值与现态键值保存,组合成状态码,同时作为前态状态码和现态状态码保存。
如图1所示的等待键盘扫描时间到,等待时间周期T为10~50ms之间的一个固定值,本实施例选择等待时间为20ms,微控制器采用周期扫描的方式对键盘的当前状态进行读取采样。
如图1所示的采样读取现态键值,本实施例中,图2所示键盘的键值为4位二进制码。例如,没有键按下的键值是1111,S1按下的键值是0101,S1、S2同时按下的键值是0100。
采样读取键值的方法为反转法。首先在所有行线输出低电平,采样读取列线状态作为键值的高2位;再在所有列线输出低电平,采样读取行线状态作为键值的低2位;组合键值的高2位和低2位,得到4位键值。
在采样读取现态键值前,将上一次采样读取的键值保存为前态键值。
如图1所示的键盘状态是否稳定判断,用于确定键盘是否处于稳定状态,如果前后两次键盘采样的键值相同,即现态键值等于前态键值,键盘处于稳定状态,进入下一步骤;如果前后两次键盘采样的键值不同,现态键值不等于前态键值,则返回等待下一次键盘扫描时间到。由于键盘扫描周期在10~50ms之间,当前后两次键盘采样键值相同时,有效地避开了键盘按键抖动的影响。
如图1所示的将现态状态码转为前态状态码,合并现态键值组成现态状态码,用于确定键盘状态或者是键盘操作。进入该步骤后,现态键值与前态键值相等,反映的是稳定的键盘状态。状态码由进入该步骤后前、后2次稳定的键值组合而成,前一次稳定的键值在前,后1次稳定的键值在后。例如,本实施例中,没有键按下的状态码S1键单键按下操作的状态码S1键单键按下维持的状态码S1键单键释放操作的状态码先按下S2后,再按下S1,S1按下操作的组合状态码合并现态键值组成现态状态码的方法是:现态状态码存放在现态状态码寄存器中,先将现态状态码寄存器中的低半部分内容移至高半部分,然后将现态键值放入至现态状态码寄存器的低半部分。在合并现态键值组成现态状态码之前,将上一次合并键值组成的状态码保存为前态状态码。
如图1所示的当前键盘状态维持时间计时,计时的目的是方便处理与键盘状态维持时间相关的键盘操作。实施例中计时的具体方法是:利用计数器k对扫描周期20ms进行计数,现态状态码与前态状态码不相等,令k=1;相等则k加1;为了防止计数器溢出,在k加1后等于设定的上限值MAX时,令k等于设定的下限值MIN。
所述的下限值MIN要大于键盘操作要求的最大计时时间,在本实施例中,键盘操作最大计时时间是2min,对应的计数器k值是6000,下限值MIN取10000,上限值MAX取12000。
如图1所示的查状态码表获取状态号、键号,目的是通过查状态码表的方式快速获取状态号与键号。在本实施例中,共设有6种有效的键盘操作,键号0至键号5与操作0至操作5一一对应。状态号共有7个,状态码表见表1。
表1
状态号01234567状态码111101010110011010011111其他键号0122345255
表1中的状态码中,有有效状态码,也有无效状态码,前面7个有效状态码对应的是有效键盘操作,类型有单键操作状态码,有组合键操作状态码,也有键盘处于维持状态的状态码,状态码表中所有的有效状态码都有一个状态号,且都与其相应的操作键号对应。其他的状态码都是无效状态码,都对应状态号7,且都为无效键号255。
所述的查状态码表,只在所述状态码发生改变,即k=1时进行查询,在k>1的维持状态下,
您可能关注的文档
最近下载
- 成都第四十九中学新初一分班英语试卷.doc VIP
- 中经金融高频考点.doc VIP
- 竞聘演讲稿经营管理部部长.pptx
- 学堂在线 中医养生方法学 章节测试答案.docx VIP
- 整村授信专题培训ppt课件.pptx
- 2025年科技强国爱国主题班会《科技强国 强国有我》课件.pptx VIP
- 《常州武进常州燊荣金属科技有限公司“1·20”较大粉尘爆炸事故调查报告》警示教育专题培训.pptx VIP
- 智能化弱电工程投标文件的技术部分标书范本.docx VIP
- 行业分类专题研究:行业分类标准2.0版及修订说明-20200102-中信证券.pdf VIP
- 深圳市翰林学校英语新初一分班试卷.doc VIP
文档评论(0)