#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitkey=P3^3;//位定义与P3^3口相连的独立按键ucharnum;voiddelay(uintz){uinti,j;for(i=z;i0;i--)for(j=110;j0;j--);}voidkey_scan(){if(key==0)//判断是否按键被按下{delay(1);//延时用以消除抖动if(key==0)//再次判断按键是否依然是按下状态{while(!key);//等待按键松手num++;if(num==16)num=0;}}}voidmain(){while(1){key_scan();//调用按键扫描程序P1=~num;//将结果通过P1口小灯显示}}/*按键检测流程:判断按下,延时消抖再判断,等待按键松手再操作注:此处可以将按键结果通过数码管显示,程序自己调整*/