近期关于行列式键盘的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯 ,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸 。
∵一个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条)
我是博瑞号的签约作者“admin”
本文概览:近期关于行列式键盘的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。∵一个36键的行列式键盘,可以...
文章不错《行列式键盘》内容很有帮助