單機片矩陣鍵盤程式
在大學時很多程式課都要求實現單機片矩陣鍵盤,那麼小編在這通過計演算法來實現微控制器的4*4矩陣鍵盤,程式比較簡捷,供大家學習。
unsigned char Keycan***void*** //按鍵掃描程式 P1.0--P1.3為行線 P1.4--P1.7為列線
{
unsigned char rcode, ccode;
P1 = 0xF0; // 發全0行掃描碼,列線輸入
if******P1&0xF0*** != 0xF0*** // 若有鍵按下
{
delay******;// 延時去抖動
if******P1&0xF0*** != 0xF0***
{ rcode = 0xFE; // 逐行掃描初值
while******rcode&0x10*** != 0***
{
P1 = rcode; // 輸出行掃描碼
if******P1&0xF0*** != 0xF0*** // 本行有鍵按下
{
ccode = ***P1&0xF0***|0x0F;
do{;}while******P1&0xF0*** != 0xF0***; //等待鍵釋放
return ******~rcode*** + ***~ccode******; // 返回鍵編碼
}
else
rcode = ***rcode<<1***|0x01; // 行掃描碼左移一位
}
}
}
return 0; // 無鍵按下,返回值為0
}
void KeyDispaly***unsigned char key***
{
switch***key***
{
case 0x11: display***0***; break;
case 0x21: display***1***; break;
case 0x41: display***2***; break;
case 0x81: display***3***; break;
case 0x12: display***4***; break;
case 0x22: display***5***; break;
case 0x42: display***6***; break;
case 0x82: display***7***; break;
case 0x14: display***8***; break;
case 0x24: display***9***; break;
case 0x44: display***10***; break;
case 0x84: display***11***; break;
case 0x18: display***12***; break;
case 0x28: display***13***; break;
case 0x48: display***14***; break;
case 0x88: display***15***; break;
default: break;
}
}
如果Keyscan放在主函式裡,得到按鍵編碼的變數,必須也放在主函式裡。
- 單機片矩陣鍵盤程式
- 簡短優美的英文詩短篇欣賞帶翻譯
- 給運動員鼓勵的句子
- 小學語文教師代表家長會上的講話
- 小學音樂綜合教學中存在的問題及對策研究論文
- 安全主題黑板報內容資料
- 惡意欠薪的司法解釋是什麼
- 授權委託書模板4篇
- 英語美文摘抄勵志勇敢摘抄
- 火龍果有什麼功效與作用
- 上海市中考化學試卷及答案
- 手機的實體地址怎麼看
- 如何高考複習計劃
- 產婦吃什麼中藥能最快下奶
- 公司註冊資金最新規定
- 寶寶臉色發黃該怎麼辦
- 部隊節假日喝酒檢討書範文3篇
- 電腦突然卡機重啟怎麼回事
- 有云有太陽有個謊字打一成語
- 火電廠認識實習心得
- 康熙字典五行屬金的字
- 康熙字典五行屬木的字
- 康熙字典五行屬水的字
- 康熙字典五行屬火的字
- 康熙字典五行屬土的字