新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)矩陣按鍵的設(shè)計(jì)

單片機(jī)矩陣按鍵的設(shè)計(jì)

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
一、矩陣按鍵的原理

矩陣鍵盤一般是4*4的按鍵組成,當(dāng)然也有其他的按鍵組合,這里我們分析4*4的按鍵,其他組合原理類似。4*4的按鍵采用的行列掃描方式,也就是先預(yù)設(shè)端口的狀態(tài),然后掃描行的狀態(tài),檢測(cè)到掃描行的狀態(tài)以后,再次檢測(cè)掃描列的狀態(tài)。

本文引用地址:http://butianyuan.cn/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)論


技術(shù)專區(qū)

關(guān)閉