首页 > 编程知识 正文

矩阵式键盘的扫描方法,简述矩阵式键盘的扫描方法

时间:2023-05-04 17:31:24 阅读:36398 作者:2013

另一方面,矩阵扫描法(以单片机为例),单片机行列式键盘扫描的原理如下。

1、行线P10~P13是输出线,列线P14~P17是输入线。 首先,单片机将行线(P10~P13 )全部输出为低电平,将列线的导通电阻提高到VCC。 此时,读取列线的数据,如果列线全部为高电平,则不进行键按下,如果列线具有低电平,则调用延迟程序去除键抖动。

2、延迟完成后判断是否有低电平,此时读取列线数据如果有低电平,则确实有按键。 在最后一步确定关键值。 在确定按下键之后,行线可以按顺序输出低电平,并且可以从读取的列线的数据中确定键值。

3 .单片机输出P10为低电平,其他P11~P13输出高电平。 此时,读出的列线的数据全部为高电平,表示第1行没有键按下; 接着,单片机将P11输出到低电平,而其它P10、P12、P13保持在高电平。

4、这个时候再来读列线的数据,发现列线读的数据是低电平,数值是1011(0x0B ),如果我们的键盘布局确定了,0x0b表示S5的值。 只要转移到S5键功能处理子程序就能达到目的。

二、行列反转法(单片机为例)

在此以P1.0~P1.3为列,以P1.7~P1.4为行

如图所示:

第一步:行线IO P1.7~P1.4设定为低电平,列线IO P1.0~P1.3设定为高电平,假设在K1被按下情况下,P1.0=0读取P1端口P1=00001110

步骤2 (将行线IO P1.7~P1.4设为高电平,将列线IO P1.0~P1.3设为低电平,假设按下K1的情况下,P1.7=0引线P1端口P1=01110000

步骤3 :将2字节相加,得到新数据。 每次按0111110 (第1行第1列)键时都会得到不同的字节。 对照我们的字节是什么就知道键值是什么。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。