当前位置:首页 > 技术心得 > 正文内容

线反转法行列键盘扫描

xjtudll17年前 (2009-12-21)技术心得68132

    行列键盘的学习是单片机学习的必经之路,可是对于初学者来说学习起来并不容易。书上的资料不多,或是说明不细,亦或太复杂不易理解。而线反转法行列键盘扫描简单易懂,非常适合初学者学习,也可作为程序开发之用。
    了解行列键盘扫描得从硬件开始学习,我们得知道行列扫描是什么意思。在 单片机系统中为了扩大同一个 I/O 口的键盘个数,则采用了行列式键盘接法,就 是交叉相接。所谓的“行”、“列”是我们人为规定的,如果试着把列看成行,将行看成列是一样的。
    这里我们规定 P1.0~P1.3为列,P1.7~P1.4 为行。 如图所示:

 1、51例子
举一个例子吧。
第一步:行线IO P1.7~P1.4置低电平,列线IO P1.0~P1.3置高电平
假设K1按下,那么P1.0=0 读P1口 P1=00001110
第二步:行线IO P1.7~P1.4置高电平,列线IO P1.0~P1.3置低电平
假设K1按下,那么P1.7=0 读P1口 P1=01110000
两个字节相加,得到新数据:01111110(第一行 第一列)

每按一个键我们都得到不同的字节,比对我们的字节是什么就可以知道键值是什么了。

2、MSP430例子
前面我们已经讲述了51的例子,51有其特性,IO口送出去的数据,如果不改变的话,还可以读回来,类似于一个锁存器。但是MSP430或AVR之类的单片机,是不行的。
因此,对于IO内部无上拉电阻的MSP430单片机,比如MSP430F149,不仅行线需要加上拉电阻,列线也需要加上拉电阻,以便维持高电平。而MSP430F21X1等系列则不必了,因为其IO可以通过配置寄存器得到上拉电阻或下拉电阻。
除了这些不同外,按键扫描流程也略有不同。
同样行列线的定义如上图。
第一步:设置 行线为输入态,列线为输出态
第二步:列线 输出低电平
第三步:读行线P1.7~P1.4的电平,读回来的数据抛弃低四位
第四步:设置 列线为输入态,行线为输出态
第五步:行线 输出低电平

第六步:读列线P1.0~P1.3的电平,读回来的数据抛弃高四位

两个字节相加,得到一个新数据。比对字节同样可以知道键值。
如果是MSP430F21X1等系列单片机,需要加一步配置上拉电阻(在外部无上拉电阻的情况下)。


扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/22/

标签: 键盘MSP43051
分享给朋友:

“线反转法行列键盘扫描” 的相关文章

数模转换器原理及组成

数模转换器原理及组成

数模转换器原理 DAC输出模拟量的大小与输入数字量大小成正比。假设DAC转换比例系数为k,则: DAC输出特性(k为转换比例系数) 两个相邻数码转换出的电压值之间的差值,是信息所能分辨的最小量(1 LSB);最大输入数字量对应的输出电压值(绝对值)用FSR表示。 数模转换器组成 D...

Doxygen-利用graphviz生成及添加函数关系调用图

Doxygen-利用graphviz生成及添加函数关系调用图

准备工作:安装graphviz。 参考文献:http://hi.baidu.com/rdray/item/7b39b14830ba6c08c116131a 基本配置就不讲了,与生成Html文件类似。请参考:http://xjtudll.cn/Exp/243/ 1、Expert->Dot 要勾选...

iPad2插电循环重启,无法充电

老爷机iPad2最近发疯了: 1、不插充电器 无法开机; 2、插上普通充电器,木有反应; 3、插上专用的5V,2.1A充电器,有时可开机,但一会儿就关机了。然后又自动开机。循环往复。 经过分析,初步确定是电池有问题(机子本身无进水无维修) 可以参考下面的讨论: https://discussions...

金蝶K3新增发货通知单时在“选单号”中找不到此客户的销售订单

金蝶K3新增发货通知单时在“选单号”中找不到此客户的销售订单

问题描述:新增“发货通知单”时在“选单号”项按“F7”没有销售订单可选,这个销售订单确定是没有做发货通知单的,如下图所示: 解决方法:1、找到相应的销售订单,下推可以生成发货通知单。(有些人喜欢用新增的方式而不是下推的方式生成单据)2、试一下了另一个客户使用“新增”的方式可以在选单号中找到销售订单...

模数转换器的分类

直接ADC是将输入模拟电压直接转换成数字量,如并联比较型ADC和逐次比较型ADC; 间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,如双积分型ADC。 并联比较型ADC 优点:采用各量级同时并行比较,各位输出码同时并行产生,因此转换速度快,转换速度与输出码位数无关...

金蝶K3实际成本各种计算方法的区别及举例

金蝶K3实际成本各种计算方法的区别及举例

http://blog.sina.cn/dpool/blog/s/blog_166bf582c0102wzcl.html 实际成本各种计算方法的区别及举例 K3WISE实际成本包含四种计算方法,分别是品种法、分步法、分批法和分类法。品种法可视同为分步法的一种特殊情形,即没有中间产品,材料一步...

评论列表

xjtudll
xjtudll IP:
12年前 (2014-08-05)

是西交毕业的

myxiaonia
myxiaonia IP:
12年前 (2014-08-04)

你好,请问矩阵键盘行扫描法能够避免#型中,任意3个键都能正确读回么
还有你是xjtu的校友么,我看你网址名字很有特殊,我是的哦

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。