1.首先使用矩阵键盘时,先将跳帽J5换到1和2,也就是KBD模式,如图:
2.使用矩阵键盘的原理
我只采用一种方法来使用矩阵键盘,方法是线反法
原理:先将P37-P34拉高,P30-P34拉低若P30-P34有按键按下,则对应的io口为0;
(被短接,P37-P34为低电平)
再将,P30-P34拉高,P37-P34拉低,若P37-P34有按键按下,则对应的io口为0;
注意:1.我们使用的开发板stc15F2k61s2 ,没有P36和P37两个io口,P37为P44,P36为P421
而是用P44代替P37, P42代替P36
2.下方程序按键的值没有对应开发板上按键的编号
void keyscanf()
{
P3 = 0xf0;P44=1;P42=1;
if(P3 != 0xf0 || P44 != 1 || P42 != 1)
{
Delay10ms();
if(P3 != 0xf0 || P44 != 1 || P42 != 1)
{
P3 = 0xf0;P44=1;P42=1;
if(P44==0) key_num=1;
else if(P42==0) key_num=2;
else if((P3&0x20) ==0) key_num=3;
else if((P3&0x10) ==0) key_num=4;
P3 = 0x0f;P44=0;P42=0;
if((P3&0x08)== 0) key_num=key_num;
else if((P3&0x04) == 0) key_num=key_num+4;
else if((P3&0x02) == 0) key_num=key_num+8;
else if((P3&0x01) == 0) key_num=key_num+12;
while(P3 != 0x0f);
}
}
}