|
用一個(gè)IO口就可以識(shí)別多個(gè)按鍵,這里以兩個(gè)按鍵為例。
1.可以識(shí)別S1和S2單擊
2.識(shí)別S1和S2同時(shí)按下
3.S1和S2同時(shí)長(zhǎng)按
電路圖:
P2外接串聯(lián)led燈,用來(lái)調(diào)試按鍵效果
電路圖.png (192.09 KB, 下載次數(shù): 68)
下載附件
2019-5-29 15:22 上傳
按鍵程序代碼如下:
void keyscan()
{
if(AD_value>100) //如果有任意按下
{
if(key1&&!key_lock)
{
pre_kvalue=1; //保存鍵值
}
else if(key2&&!key_lock)
{
pre_kvalue=2; //保存鍵值
}
if(key12&&pre_kvalue!=4) //雙鍵按下。完成長(zhǎng)按操作視為判斷結(jié)束
{
key_lock=1; //當(dāng)按下雙鍵時(shí),不再判斷單鍵是否按下
pre_kvalue=3; //保存雙鍵按下鍵值
if(key_count>150) //長(zhǎng)按1.5秒
{
pre_kvalue=4; //保存雙鍵長(zhǎng)按鍵值
key_count=0; //長(zhǎng)按計(jì)數(shù)清零
}
}
}
else if(AD_value<100) //等待全部按鍵彈起,執(zhí)行相關(guān)按鍵指令
{
mode_choice(); //執(zhí)行對(duì)應(yīng)按鍵的指令
key_lock=0; //雙鍵標(biāo)志位清零
key_count=0; //長(zhǎng)按計(jì)數(shù)清零
}
}
完整程序代碼和電路圖已經(jīng)打包好。大家一起學(xué)習(xí)交流
全部資料51hei下載地址:
AD按鍵掃描.zip
(221.62 KB, 下載次數(shù): 109)
2019-5-29 15:24 上傳
點(diǎn)擊文件名下載附件
一個(gè)IO口,理論可以識(shí)別幾百個(gè)按鍵 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|