楼主把矩阵按键扫描程序改这样试试 void Key_scan(void) { static bit a=0; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f) { Delay10ms(); if(GPIO_KEY!=0x0f && a==0) { a=1; //测试列 switch(GPIO_KEY) { case(0X07):KEY=1;break; case(0X0b):KEY=2;break; case(0X0d):KEY=3;break; case(0X0e):KEY=4;break; } //测试行 GPIO_KEY=0XF0; switch(GPIO_KEY) { case(0X70):KEY=KEY;break; case(0Xb0):KEY=KEY+4;break; case(0Xd0):KEY=KEY+8;break; case(0Xe0):KEY=KEY+12;break; } } } else a=0;//键抬起 } |