uchar key_scan(void)
{
if(P3^1==0) //当按键按下是低电平时
{
delay_ms(12);//消抖
if(P3^1==0) return 1;
}
return 0;
}
void main()
{
uchar cnt=0,key;
uchar led[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
while(1)
{
key=key_scan();
if(key==1) //按键按下了
{
if(cnt++>=8)cnt=0;
}
P1=led[cnt];
}
}
纯手打,没有编译,思路大概这样