关于按键、矩阵键盘的相关知识
1 普通按键 第一种接线方法(带电源) 当不触碰按键时,单片机的I/O口通过电阻接至正电源,此时线路无电流通过,I/O口为高电平。 当触碰按键时,正电源通过电阻接至地,此时有电流通过,电压全部压在电阻上,电阻下端电压为0,即I/O口为低电平。 1 if(!K) 2 { 3 delay(50); 4 if(!K) 5 { 6 run(); 7 } 8 } 第二种接线方法(无电源) 当不触碰按键时,单片机的I/O口悬空,但不为0(也有可能不为1),即非低电平状态。 当触碰按键时,单片机的I/O口与地接通,此时I/O口为低电平。 1 if(!K) 2 { 3 delay(50); 4 if(!K) 5 { 6 run(); 7 } 8 } 2 矩阵键盘 第一种接线方法(带电源) 先进行键盘列扫描,如P2循环输出{0xef,0xdf,0xbf,0x7f},利用(P2 & 0x0f)判断有无按键压下,然后确定键值。 1 char key_scan[]={0xef,0xdf,0xbf,0x7f}; 2 char key_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; 3 char getKey() 4 { 5 char i=0,j=0; 6 for(i=0;i<4