歡迎來到天天文庫
瀏覽記錄
ID:58615823
大?。?5.55 KB
頁數:2頁
時間:2020-10-17
《經典的矩陣鍵盤掃描程序.pdf》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、鍵盤是單片機常用輸入設備,在按鍵數量較多時,為了節(jié)省I/O口等單片機資源,一般采取掃描的方式來識別到底是哪一個鍵被按下。即通過確定被按下的鍵處在哪一行哪一列來確定該鍵的位置,獲取鍵值以啟動相應的功能程序。4*4矩陣鍵盤的結構如圖1(實物參考見萬用板矩陣鍵盤制作技巧)。在本例中,矩陣鍵盤的四列依次接到單片機的P1.0~P1.3,四行依次接到單片機的P1.4~P1.7;同時,將列線上拉,通過10K電阻接電源。查找哪個按鍵被按下的方法為:一個一個地查找。先第一行輸出0,檢查列線是否非全高;否則第二行輸出0,檢查列線是否非全高;否則第三
2、行輸出0,檢查列線是否非全高;如果某行輸出0時,查到列線非全高,則該行有按鍵按下;根據第幾行線輸出0與第幾列線讀入為0,即可判斷在具體什么位置的按鍵按下。下面是具體程序:voidCheck_Key(void){unsignedcharrow,col,tmp1,tmp2;tmp1=0x10;//tmp1用來設置P1口的輸出,取反后使P1.4~P1.7中有一個為0for(row=0;row<4;row++)//行檢測{P1=0x0f;//先將p1.4~P1.7置高P1=~tmp1;//使P1.4~p1.7中有一個為0tmp1*=2;
3、//tmp1左移一位if((P1&0x0f)<0x0f)//檢測P1.0~P1.3中是否有一位為0,只要有,則說明此行有鍵按下,進入列檢測{tmp2=0x01;//tmp2用于檢測出哪一列為0for(col=0;col<4;col++)//列檢測{if((P1&tmp2)==0x00)//該列如果為低電平則可以判定為該列{key_val=key_Map[row*4+col];//獲取鍵值,識別按鍵;key_Map為按鍵的定義表return;//退出循環(huán)}tmp2*=2;//tmp2左移一位}}}}//結束這是一種比較經典的矩陣鍵
4、盤識別方法,實現起來較為簡單,程序短小精煉。(注:專業(yè)文檔是經驗性極強的領域,無法思考和涵蓋全面,素材和資料部分來自網絡,供參考。可復制、編制,期待你的好評與關注)
此文檔下載收益歸作者所有