關(guān)于矩陣鍵盤行列掃描的測試實驗

關(guān)于矩陣鍵盤行列掃描的測試實驗

ID:8910011

大小:48.73 KB

頁數(shù):3頁

時間:2018-04-11

關(guān)于矩陣鍵盤行列掃描的測試實驗_第1頁
關(guān)于矩陣鍵盤行列掃描的測試實驗_第2頁
關(guān)于矩陣鍵盤行列掃描的測試實驗_第3頁
資源描述:

《關(guān)于矩陣鍵盤行列掃描的測試實驗》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、關(guān)于矩陣鍵盤行列掃描的測試實驗  我會時常分享一些51的程序編寫方法,有一定基礎(chǔ)的可以來看看。如有不當(dāng)之處,歡迎大家指正,一同進(jìn)步?! 【仃囨I盤無非就是兩種掃描方式,一為逐行掃描,二為行列一起掃描讀取鍵值。先確定行后確定列的讀取方法沒有什么可講的,我針對行列一起掃描來總結(jié)一下我常用的一些方法?! W(xué)習(xí)嵌入式或者說硬件一定是從硬件原理開始,因為矩陣鍵盤電路原理簡單,網(wǎng)上講解較多,我只附上原理圖,重點跟大家交流一下程序部分?! ∠聢D就是矩陣鍵盤由P1口控制,P10~P13為列P14~P17為行?! 【仃?/p>

2、鍵盤電路原理圖  高四位輸出低電平,低四位輸出高電平,檢測低四位不全為高可確定列;反過來高四位輸出高電平,低四位輸出高電平,高四位不全為高確定行,行列交叉即可獲得按鍵鍵值。廢話不多說,直接上程序,我已經(jīng)詳細(xì)注解過了,不懂多看看哈?! ?*******************************************************************************  *函數(shù)名:KeyDown  *函數(shù)功能:檢測有按鍵按下并讀取鍵值  *輸入:無  *輸出:無  *作者:I

3、NK  *日期地點:NANKING  *******************************************************************************/  voidKeyDown(void)  {  chara=0;  GPIO_KEY=0x0f;//位定義的引腳  if(GPIO_KEY!=0x0f)//讀取按鍵是否按下  {  Delay10ms();//延時10ms進(jìn)行消抖  if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下  {  /

4、/測試列  GPIO_KEY=0X0F;  switch(GPIO_KEY)  {//此段程序只是為了確定列的值方便在后面進(jìn)行測試行的時候加減運算獲得具體案件的行列值從而轉(zhuǎn)換為按鍵值  case(0X07):KeyValue=0;break;//掃描第一列  case(0X0b):KeyValue=1;break;//按鍵第二列是keyValue=1  case(0X0d):KeyValue=2;break;//按鍵第三列  case(0X0e):KeyValue=3;break;//按鍵第四列  

5、}  //測試行確定了列以后需要翻轉(zhuǎn)確定行交叉確定鍵值  GPIO_KEY=0XF0;//屏蔽高四位  switch(GPIO_KEY)  {//已經(jīng)進(jìn)行過  case(0X70):KeyValue=KeyValue;break;//自己去看為什么是0X70列的時候又為什么是0X07硬件相結(jié)合  case(0Xb0):KeyValue=KeyValue+4;break;//鍵值是5掃描第二行  case(0Xd0):KeyValue=KeyValue+8;break;//鍵值是9掃描第三行  cas

6、e(0Xe0):KeyValue=KeyValue+12;break;//鍵值13掃描第四行  }//其實最終返回的鍵值就是進(jìn)行過加法運算的  while((a<50)&&(GPIO_KEY!=0xf0))//檢測按鍵松手檢測松手按鍵就是f0  {  Delay10ms();  a++;//防止程序死在while循環(huán)里利用a的值跳出循環(huán),比較不錯的雙重保險辦法  }  }  }  }

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。