行列式键盘

近期关于行列式键盘的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯 ,并进行了系统化的梳理。若这些内容恰好能为您提供参考 ,将是我们最大的荣幸 。

∵一个36键的行列式键盘,可以设计成√36×√36=6*6的形式,需要占用6+6=12根引脚线 ,而如果从这12根引脚线中任意《偷工减料》一根,则只能最多设计成5×6=30键的键盘,不敷使用 。∴32键的行列式键盘 ,最少需要占用12根引脚线。可以设计成6×6(4个键位不用)、5×7(3个键位废弃) 、4×8的形式。

矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘 。

在行线和列线的每一个交叉点上 ,设置一个按键。这样键盘中按键的个数是4×4个。

这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率 。由于单片机IO端口具

有线与的功能,因此当任意一个按键按下时,行和列都有一根线被线与 ,通过运算就可以

得出按键的坐标从而判断按键键值。

原理如同矩阵数列的行列式

可以用下述代码进行:

//***************************************************?

//函数功能:?

//单片机驱动4*4键盘,读入键盘值并使用数码管静态?

//显示按键键值,若没有数码管用8421码显示LED灯也可以的?

//读入原理:先令单片机端口输出11110000读一次 ,然后?

//再令单片机输出00001111读一次把两次的值相加 ,最后?

//获取一个高位和低位分别有0的值即可判断键值,?

//如11101110?

//***************************************************?

#include<reg52.h>?

#define?uchar?unsigned?char

#define?uint?unsigned?int

unsigned?char?code?smg_d[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};?

//************************************************?

//延时函数,在12MHz的晶振频率下?

//大约50us的延时?

//************************************************?

void?delay_50us(uint?t)?

{?

uchar?j;?

for(;t>0;t--)?

for(j=19;j>0;j--);?

}?

void?main()?

{?

uchar?key_l,key_h;?

uchar?key;?

while(1)?

{?

P1=0xf0;?

key_l=P1;?//读P1端口的值?

key_l=key_l&0xf0;?//令低4位置位为0?

if(key_l!=0xf0)//判断是否有按键按下?

{?

delay_50us(100);?

if(key_l!=0xf0)?

{?//若有按键按下 ,则切换高低4位判断键值?

key_l=P1&0xf0;//11100000?获取第一次键值?

key_l=key_l|0x0f;//11101111?

P1=key_l;//反过来再读一次,由于人手按下按键的时间虽然短暂,但是?

key_h=P1;//对于单片机来说 ,已经足够长,因此可以正反读取两次值?

key_h=key_h&0x0f;//00001110?

key_l=key_l&0xf0;//11100000?

key=key_h+key_l;?//11101110?

}?

}?

switch?(key)?

{?

case?0xee:P2=smg_d[0];break;?

case?0xde:P2=smg_d[1];break;?

case?0xbe:P2=smg_d[2];break;?

case?0x7e:P2=smg_d[3];break;?

case?0xed:P2=smg_d[4];break;?

case?0xdd:P2=smg_d[5];break;?

case?0xbd:P2=smg_d[6];break;?

case?0x7d:P2=smg_d[7];break;?

case?0xeb:P2=smg_d[8];break;?

case?0xdb:P2=smg_d[9];break;?

case?0xbb:P2=smg_d[10];break;?

case?0x7b:P2=smg_d[11];break;?

case?0xe7:P2=smg_d[12];break;?

case?0xd7:P2=smg_d[13];break;?

case?0xb7:P2=smg_d[14];break;?

case?0x77:P2=smg_d[15];break;?

}?

}?

}

关于行列式键盘的探讨就到这里,您是否还有其他想了解的内容?欢迎在评论区留言告诉我们 ,同时别忘了点击关注哦!

(3)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • admin的头像
    admin 2026年08月08日

    我是博瑞号的签约作者“admin”

  • admin
    admin 2026年08月08日

    本文概览:近期关于行列式键盘的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。∵一个36键的行列式键盘,可以...

  • admin
    用户080801 2026年08月08日

    文章不错《行列式键盘》内容很有帮助

联系我们:

邮件:博瑞号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信