想按键控制 delay()的延时时间。数码管显示 数字
刚开始是0 按一下 数码管显示1 延时1秒 LED灯延时也对。可是在按就没反映了。数码也不显示2、延时还是1秒。去掉
Z=M*1000;这句 数码管又显示正常。。。实在搞不懂了。。先谢谢过
int display[10][9] = {
0,0,0,0,0,0,0,0,1, //0
0,0,1,0,0,1,1,1,1, //1
0,0,0,0,1,0,0,1,0, //2
0,0,0,0,0,0,1,1,0, //3
0,0,1,0,0,1,1,0,0, //4
0,0,0,1,0,0,1,0,0, //5
0,0,0,1,0,0,0,0,0, //6
0,0,0,0,0,1,1,1,1, //7
0,0,0,0,0,0,0,0,0, //8
0,0,0,0,0,0,1,0,0 //9
};
int m=0;
int z=m;
void setup()
{
pinMode(9,OUTPUT);
pinMode(10,INPUT);
pinMode(11,OUTPUT);
for(int z=2;z<9;z++)
{
pinMode(z,OUTPUT);
}
}
void loop()
{
int key=digitalRead(10);
digitalWrite(key,LOW);
if(key==HIGH)
{
delay(30);
if(key==HIGH)
{
key=digitalRead(10);
if(key==LOW)
{
m++;
z=m*2000;
if(m==10)
{
m=0;
}
}
}
}
digitalWrite(9,HIGH);
for(int j=2;j<9;j++)
digitalWrite(j,display[m][j]);
digitalWrite(11,HIGH);
delay(z);
digitalWrite(11,LOW);
delay(z);
}
|