單機片矩陣鍵盤程式

General 更新 2024年03月28日

  在大學時很多程式課都要求實現單機片矩陣鍵盤,那麼小編在這通過計演算法來實現微控制器的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放在主函式裡,得到按鍵編碼的變數,必須也放在主函式裡。

誰發明了滑鼠
電腦鍵盤失靈怎麼辦
相關知識
單機片矩陣鍵盤程式
矩陣鍵盤是什麼
滑鼠怎麼開啟軟鍵盤程式
桌上型電腦開機顯示器鍵盤沒反應怎麼辦
電腦待機後滑鼠鍵盤沒反應怎麼解決
電腦開機後滑鼠鍵盤沒反應怎麼辦
電腦宕機後滑鼠鍵盤都用不了怎麼解決
電腦宕機後滑鼠鍵盤都用不了了該怎麼處理
怎麼回事電腦開機滑鼠亮鍵盤顯示器不亮
怎麼設定開機後數字鍵盤預設開啟