一、矩陣按鍵的原理矩陣鍵盤一般是4*4的按鍵組成,當(dāng)然也有其他的按鍵組合,這里我們分析4*4的按鍵,其他組合原理類似。4*4的按鍵采用的行列掃描方式,也就是先預(yù)設(shè)端口的狀態(tài),然后掃描行的狀態(tài),檢測(cè)到掃描行的狀態(tài)以后,再次檢測(cè)掃描列的狀態(tài)。
本文引用地址:http://cafeforensic.com/article/201611/322006.htm下面這段程序是4*4的行列按鍵的掃描程序
void scankey(void)//16路熱鍵掃描
{char a=0;
P1=0x0F;
if(P1!=0x0F)//讀取按鍵是否按下
{
delay_ms(150);//延時(shí)150ms進(jìn)行消抖
if(P1!=0x0F)//再次檢測(cè)鍵盤是否按下
{
switch(P1)//測(cè)試列
{
case(0X07):Keynum=0;break;
case(0X0b):Keynum=1;break;
case(0X0d): Keynum=2;break;
case(0X0e):Keynum=3;break;
}
P1=0XF0;//測(cè)試行
switch(P1)
{
case(0X70):Keynum=Keynum;break;
case(0Xb0):Keynum=Keynum+4;break;
case(0Xd0): Keynum=Keynum+8;break;
case(0Xe0):Keynum=Keynum+12;break;
}
while((a<200)&&(P1!=0xF0))//檢測(cè)按鍵松手檢測(cè)
{
delay_ms(100);
a++;
}
}
}
}
評(píng)論