单片机数码管倒计时30秒后LED灯闪烁

两位数码管从60开始倒计时显示,当显示到00的时候停止计时,停止计时时LED灯开始闪烁


// 定义数码管的引脚  
#define decimal_point 7  
#define colon 6  
#define units 5  
#define tens 4  
  
// 定义LED的引脚  
#define led 3  
  
void setup() {  
  // 将数码管和LED的引脚设为输出模式  
  pinMode(decimal_point, OUTPUT);  
  pinMode(colon, OUTPUT);  
  pinMode(units, OUTPUT);  
  pinMode(tens, OUTPUT);  
  pinMode(led, OUTPUT);  
}  
  
void loop() {  
  // 定义倒计时的时间  
  int time = 30;  
  
  // 倒计时显示  
  while (time > 0) {  
    // 显示数字0-9  
    switch (time % 10) {  
      case 0:  
        digitalWrite(tens, LOW);  
        digitalWrite(units, HIGH);  
        break;  
      case 1:  
        digitalWrite(tens, LOW);  
        digitalWrite(units, LOW);  
        break;  
      case 2:  
        digitalWrite(tens, HIGH);  
        digitalWrite(units, LOW);  
        break;  
      case 3:  
        digitalWrite(tens, HIGH);  
        digitalWrite(units, LOW);  
        digitalWrite(colon, HIGH);  
        break;  
      case 4:  
        digitalWrite(tens, HIGH);  
        digitalWrite(units, LOW);  
        digitalWrite(colon, LOW);  
        break;  
      case 5:  
        digitalWrite(tens, LOW);  
        digitalWrite(units, HIGH);  
        digitalWrite(colon, HIGH);  
        break;  
      case 6:  
        digitalWrite(tens, LOW);  
        digitalWrite(units, HIGH);  
        digitalWrite(colon, LOW);  
        break;  
      case 7:  
        digitalWrite(tens, LOW);  
        digitalWrite(colon, HIGH);  
        digitalWrite(units, LOW);  
        break;  
      case 8:  
        digitalWrite(tens, HIGH);  
        digitalWrite(colon, HIGH);  
        digitalWrite(units, LOW);  
        break;  
      case 9:  
        digitalWrite(tens, HIGH);  
        digitalWrite(colon, LOW);  
        digitalWrite(units, LOW);  
        break;  
    }  
    // 显示小数点  
    if (time >= 10) {  
      digitalWrite(decimal_point, HIGH);  
    } else {  
      digitalWrite(decimal_point, LOW);  
    }  
    // 延时1秒  
    delay(1000);  
    // 递减倒计时时间  
    time--;  
  }  
  // 停止计时并开始闪烁LED灯  
  digitalWrite(decimal_point, LOW);  
  while (true) {  
    digitalWrite(led, HIGH);  
    delay(500);  
    digitalWrite(led, LOW);  
    delay(500);  
  }  
}