线反转法行列键盘扫描-Read.PDFVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线反转法行列键盘扫描-Read

-DYDIY- 线反转法行列键盘扫描 杜洋 2005-11-21 行列键盘的学习是单片机学习的必经之路,可是对了初学者来说学习起来并 不容易。书上的资料不多,或是说明不细,抑或太复杂不易理解。我在学行列键 盘时也有过此类的问题,近日我发现了一个非常好的行列扫描的方式——线反转 法行列键盘扫描,它简单易懂,非常适合初学者学习,也可作为程序开发之用。 我同时也写了汇编和C 语言两个事例程序,不论你说什么语言 可以看懂。汇编 和C 的双语言例程也是我今后技术类文章的特点之一。 了解行列键盘扫描得从硬件开始学习,我们得知道行列扫描是什么意思。在 单片机系统中为了扩大同一个I/O 口的键盘个数,则采用了行列式键盘接法,就 是交叉相接。如图: 图1 键盘接的前4 个I/O 口为 接线,后4 个为列接线。这样的接法就构成了一 个坐标,每一个键 对应这一个行的位置和一个列的位置。例如我们说左上角的 那个所对应第1 行和第4 列,即单片机P 10 和P 17 两个I/O 口。键盘的组成是用 的微动开关,微动开关的特性是当有键按下时开关的两个引脚闭合导通。无按键 时两个引脚是断开的状态。这样当我们按下图1 中左上角的键时P 10 和P 17 在 物理上是导通了,而其它的I/O 口(P 11~P 16)都处于独立的状态。我们只要让 单片机发现哪两个I/O 口是导通的我们就可以知道是哪一个键被按下了。 这里我们用的一种方法是先将4 个行线的I/O 口置为 “0 ”(低电平),将列 线的I/O 口置为 “1”( 电平)。这样当有键按下时某一行的I/O 口就和某一列 / - 1 - -DYDIY- 中的I/O 口导通了,因为行线的口 是 “0 ”(低电平)所以和行线导通的列线也 将会变成“0 ”,而其余的列线因为开始时是 “1”又没和其它的行线导通,所以 依然是“1”。这样我们就可以找出了我们的按键所在的列了 (因为列线中只有导 通的列线变为了“0 ”,任何电平与低电平相导通 属于短路,短路的线将会是低 电平)。 其实,所谓的“ ”、“列”是我们人为规定的,如果试着把列看成行,将 看成列是一样的。这里我们规定P 10~P 13 为行,P 14~P 17 为列。 现在我们知道了我们按下的键所在的列了,只要再知道它所在的行的话,我 们就可以确定它的位置了。这时我们将4 个 线的I/O 口置为 “1”( 电平), 将列线的I/O 口置为 “0 ”(低电平),这是和最初的置式相反。被按着的那个按 键还是导通的,还是属于短路,所以在被置“1”的行线中将会有一个变成了“0 ”, 这样我们就确定了按键在 中的位置,到此我们还要确定什么呢?不需要了,我 们已经找到了按下的键了。 举一个例子吧。例如我们按下了左上角的那个按键,首先当4 个行线的I/O 口置为 “0 ”,列线的I/O 口置为 “1”时 (即P1 口的字节数据,第 1 行和第4 列导通,使第4 列 (P 17)变为了 “0 ”(此时的P1 口的字节数据为 。之后当4 个 线的I/O 口置为 “1”,列线的I/O 口置为 “0 ”时 (即 P1 口的字节数据,第4 列和第1 导通,使第1 (P 10)变为了 “0 ”(此时的P1 口的字节数据)。通过了两次用单片机读出2 个字 节的数据,分别是 和 (从左向右,由 位到低位,P 17 —P 10)。前一个字节的低4 位和后一个字节的 4 位 是 “0 ”,于是我们将它 们去掉再将余下的数据拼成一个新的字节,即。如果我们按下的是 第一行的第2 个键的话,我们得到的字节将会是(第1 行,第3 列)。 每按一个键我们都得到不同的字节,比对我们的字节是什么就可以知道键值 是什么了。 / - 2 - -DYDIY- 单片机行列键盘扫描程序流程:

文档评论(0)

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

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

1亿VIP精品文档

相关文档