// L1-014 3位二进制计数灯 教师完整版
// 位权定义:D13高位4,D12中位2,D11低位1
int led_H = 13;
int led_M = 12;
int led_L = 11;
int count = 0; // 计数变量
void setup()
{
pinMode(led_H, OUTPUT);
pinMode(led_M, OUTPUT);
pinMode(led_L, OUTPUT);
}
void loop()
{
// 解码低位:对2取余
digitalWrite(led_L, (count % 2 == 1) ? HIGH : LOW);
// 解码中位:右移1位后对2取余
digitalWrite(led_M, ((count / 2) % 2 == 1) ? HIGH : LOW);
// 解码高位:右移2位后对2取余
digitalWrite(led_H, ((count / 4) % 2 == 1) ? HIGH : LOW);
delay(600); // 计数间隔延时
count++; // 数值自增
if(count > 7) // 3位二进制最大值为7,溢出归零
{
count = 0;
}
}