两位数码管从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);
}
}