早就从朋友那里得到了一个薄膜4×4矩阵键盘,不会用,或者说是不敢用,因为不知道内部电路,一直也懒得上网查,因为这种键盘的类型很多,我怕查到不能用,浪费了时间。
今天晚上闲来无事就专门研究了一下。
4×4矩阵键盘的标准连接方法都是这样:
所以我只需要找到这个薄膜矩阵键盘的八根线分别对应的是什么地方就可以了。
在实验板上先下载好试验程序,就是用P2.0~P2.3做行检测,P2.4~P2.7做列检测,连上键盘,发现完全不对,唯一的规律是1和F是对调的。这两个的键码值分别是11101110和01110111,正好反着。于是我又把键盘的接口反过来插,这次一试,就对了。我这才明白这个键盘的内部电路原来是最普遍的那种布线方式。。。画出电路图,以后就可以随便用了!
引脚的编号是自己编的,当键盘在下,连线在上时从左到右排的,不知道这个有没有规定,不过即使有也没什么太大价值哈。
拍一下实物:
顺便附上键盘的测试程序。返回的键码值我在数码管上显示了,数码管那块的程序就不贴了。
void keyscan()
{
uchar scan1,scan2,keycode,j;
P2=0xf0;
scan1=P2;
if((scan1&0xf0)!=0xf0) //判键是否按下
{
delayms(30); //延时30ms
scan1=P2;
if((scan1&0xf0)!=0xf0) //二次判键是否按下
{
P2=0x0f;
scan2=P2;
keycode=scan1|scan2; //组合成键编码
for(j=0;j<=15;j++)
{
if(keycode== key_code[j]) //查表得键值
{
key=j;
return(key);
}
}
}
}
else P2=0xff;
}