4x4鍵盤的設計與制作 - 免費下載

單片機編程資源 文件大?。?02 K

?? 資源詳細信息

文件格式
PDF
所屬分類
上傳用戶
上傳時間
文件大小
102 K
所需積分
2 積分
推薦指數
????? (5/5)

?? 溫馨提示:本資源由用戶 wentianliang 上傳分享,僅供學習交流使用。如有侵權,請聯系我們刪除。

資源簡介

三種方法讀取鍵值
􀂄 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。
􀂉 中斷式
􀂄 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不
同位址讀資料線上的狀態判斷哪個按鍵被按下。
􀂄 本實驗採用中斷式實現使用者鍵盤介面。
􀂉 掃描法
􀂄 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值
中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一
行。
􀂉 反轉法
􀂄 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵
按下;接著所有列掃描線輸出低電位,再讀行值。
􀂄 根據讀到的值組合就可以查表得到鍵碼。
4x4鍵盤按4行4列組成如圖電路結構。按鍵按
下將會使行列連成通路,這也是見的使用者鍵
盤設計電路。

//-----------4X4鍵盤程序--------------//
uchar keboard(void)
{ uchar xxa,yyb,i,key;
if((PINC&0x0f)!=0x0f) //是否有按鍵按下
{delayms(1); //延時去抖動
if((PINC&0x0f)!=0x0f) //有按下則判斷
{ xxa=~(PINC|0xf0); //0000xxxx
DDRC=0x0f;
PORTC=0xf0;
delay_1ms();
yyb=~(PINC|0x0f); //xxxx0000
DDRC=0xf0; //復位
PORTC=0x0f;
while((PINC&0x0f)!=0x0f) //按鍵是否放開
{ display(data); }
i=4; //計算返回碼
while(xxa!=0)
{ xxa=xxa>>1;
i--; }
if(yyb==0x80)
key=i;
else if(yyb==0x40)
key=4+i;
else if(yyb==0x20)
key=8+i;
else if(yyb==0x10)
key=12+i;
return key; //返回按下的鍵盤碼
}
}
else return 17; //沒有按鍵按下
}

立即下載此資源

提示:下載后請用壓縮軟件解壓,推薦使用 WinRAR 或 7-Zip

資源說明

?? 下載說明

  • 下載需消耗 2積分
  • 24小時內重復下載不扣分
  • 支持斷點續傳
  • 資源永久有效

?? 使用說明

  • 下載后用解壓軟件解壓
  • 推薦 WinRAR 或 7-Zip
  • 如有密碼請查看說明
  • 解壓后即可使用

?? 積分獲取

  • 上傳資源獲得積分
  • 每日簽到免費領取
  • 邀請好友注冊獎勵
  • 查看詳情 →

相關標簽

點擊標簽查看更多相關資源:

相關資源推薦