//kb44.h模組函式 //功能: :4×4鍵盤掃描輸入模組程式 #ifndef _KB44_H_ #define _KB44_H_ #include #define KBINP P1 //定義鍵盤輸入使用P1埠 void delay1ms(int count); // 宣告時間延遲函式 unsigned char kbscan() { unsigned char kbp; // 鍵盤輸入值 unsigned char scanln[]={0xfe,0xfd,0xfb,0xf7}; //掃描線 unsigned char row, col,kbtemp; // 宣告行, 列變數 kbp=0xff; // 設定鍵盤狀態初始值 for(row=0;row < 4;row++){ KBINP=scanln[row]; // 輸出掃描線 kbtemp=KBINP& 0xf0; // 讀取偵測線 if(kbtemp !=0xf0){ delay1ms(20); // 延遲時間 消除彈跳入 for(col=0;col<4;col++){ if(kbtemp==((scanln[col]&0x0f)*16)){ kbp=row*4+col; while((KBINP&0xf0)!=0xf0); // 等待按鍵放開 } // end if kbtemp } // end for col }// end if kbtemp } // end for row return kbp; //傳回按鍵值 } // end kbscan void delay1ms(int count) { int i,j; for(i=0;i