看似簡單的鍵掃描:有點像標題黨吧。嘿嘿
這里主要講的不是鍵掃描是如何實現的,而是鍵散轉,亦即鍵處理函數的調用。
函數指針數組是這篇資料的唯一看點了吧。沒有看錯,的確是函數指針數組,這看起來很奇怪,看過后就可能要大呼過癮了。
另外,看了要頂!!!!
P.S.使用Adobe Acrobat Pro 9處理文檔,如果下載回去打不開。試試升級一下PDF閱讀器,推薦 Adobe Reader 9。
####################################################################
作點小小修改,編寫代碼的時候有點大意了。
主要是鍵掃描函數出現了一點邏輯問題,修改后代碼體積變小了4B,結構也合理了一些。哈哈~~
現改進如下
uchar _key_scan(void)
{
uchar temp_row;//行狀態暫存
uchar _key_no;//鍵值暫存
_ROW_INPUT;//置行輸入
temp_row=_KEY_STATUE;//讀行狀態
if((temp_row&0x0F)!=0x0F)//無按鍵
{
_key_delay(100);
temp_row=_KEY_STATUE;//再次讀行狀態
if((temp_row&0x0F)!=0x0F)//抖動
{
_COL_INPUT;//置列輸入
for(_key_no=0;_key_no<16;_key_no++)//出錯
if(_key_table[_key_no]==temp_row+(_KEY_STATUE&0xF0))
{
return _key_no+0x30;//鍵值已查找正確
}
}
}
else
return _ERROR;//無按鍵或抖動或出錯
}
[ 此貼被wookongbun在2009-11-09 23:52重新編輯 ]