久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

感覺(jué)比較好的矩陣鍵盤(pán)掃描程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年11月11日   【字體:

   這個(gè)程序是我在寫(xiě)一個(gè)計(jì)算器的程序的時(shí)候想出來(lái)的,總感覺(jué)常用的鍵盤(pán)掃描程序用起來(lái)很麻煩,總是要一行一行的進(jìn)行掃描,看起來(lái)也很繁瑣,于是自己想了一個(gè)矩陣鍵盤(pán)的掃描程序,原理很簡(jiǎn)單的!

    這個(gè)程序的基本思路是兩條相交直線只有一個(gè)交點(diǎn)的原理,說(shuō)白了就是先檢測(cè)行,再檢測(cè)列,或者倒過(guò)來(lái)也可以。
 
    這個(gè)鍵盤(pán)掃描子程序是一個(gè)有返回值的無(wú)參函數(shù),需要之前計(jì)算好一個(gè)數(shù)組就OK了!
 

 
    下面是子函數(shù)的實(shí)現(xiàn),我在這里只用一個(gè)3*4的矩陣鍵盤(pán)為例,原理都是一樣的!
=================================================================
uchar code key_table[]=
{
0x77,
0x7b,
0x7d,
0xb7,
0xbb,
0xbd,
0xd7,
0xdb,
0xdd,
0xe7,
0xeb,
0xed
};
/*上面的數(shù)組要自己事先計(jì)算好,只要把行和列的值連接在一起就可以得到相應(yīng)按鍵對(duì)應(yīng)的值了*/

unsigned char key_scan(void )
{
unsigned char i, key_code;                     /*變量的聲明*/
key_port = 0x0f;                                      /*這里的key_port是在前面宏定義的一個(gè)GPIO口,先將行(或者列)置位*/                 
if(key_port != 0x0f)                                 /*如果有按鍵按下則GPIO的初值就會(huì)變化,就會(huì)執(zhí)行下面的語(yǔ)句*/
{
delay(5);                                                 /*這里是的延時(shí)實(shí)現(xiàn)的是消抖,這里就不作介紹了*/
if(key_port != 0x0f)                                 /*確定真的有按鍵按下*/
{
key_code = key_port;                             /*把行(或者列)的值賦給key_code*/
key_port = 0xf0;                                      /*再把列(或者行置位)*/
key_code |= key_port;                             /*把行和列的值組合起來(lái)并賦值給key_code*/
for(i = 0; i < 12; i++)                                /*因?yàn)槊恳粋(gè)按鍵按下對(duì)應(yīng)的key_code只有一個(gè),所以根據(jù)矩陣鍵盤(pán)的按鍵個(gè)數(shù)用相應(yīng)的FOR循環(huán)就可以確定到底是哪一個(gè)按鍵被按下*/
{
if(key_table[i] == key_code) 
{
key = i+1; 
break;
}
}
}
}
else key = 0;
return key;                                                 /*返回的KEY值就是,相應(yīng)位置的按鍵了*/
}

=========================================================
程序到這里結(jié)束了,如果有什么建議或者不明白的地方可以給我留言^_^!
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 欧美成人午夜 | 精品欧美黑人一区二区三区 | 国产高清视频在线播放 | 国产一区二区在线播放 | 精品国产区一区二 | 日日夜夜狠狠操 | 欧美a级成人淫片免费看 | 国产欧美成人 | 国产精品美女在线观看 | 午夜视频一区 | 日日不卡av | 午夜黄视频| 在线观看日韩欧美 | 91成人精品一区在线播放 | 欧美黄色精品 | 在线观看二区 | 爱爱短视频 | 婷久久 | 亚洲一级特黄 | 日韩三级精品 | 国产成人精品免费视频 | 亚洲午夜18毛片在线看 | 久久精品中文 | 91久久国产综合久久 | 黄色三级免费 | 黄色a一级片 | 国产一区二区三区视频在线 | 激情久久五月天 | 日本中文字幕在线视频 | 精品国产乱码久久久久 | 精品1区2区3区 | 青草国产 | 日韩精品少妇 | 日韩一级视频 | 成人久久av | 男女啪啪免费视频 | 久久精品一区二区国产 | 九九精品视频在线观看 | 黄视频免费看网站 | 欧美国产精品一区二区 | 国产精品一区在线观看 |