// int a = 2;
// int b = 3;
// int c = 4;
// int d = 5;
// int e = 6;
// int f = 7;
// int g = 8;
// int h = 9;
// int numPin[2][8] = {
// {1,1,1,1,1,1,0,0}, //0
// {0,1,1,0,0,0,0,0} //1
// };
// void setup() {
// // put your setup code here, to run once:
// for(int i = 2; i < 10; i++){
// pinMode(i,OUTPUT);
// }
// }
// void loop() {
// // put your main code here, to run repeatedly:
// for(int i = 0; i < 2; i++){
// digitalWrite(i,numPin[2][8]);
// delay(1000);
// }
// }
// 1. 定义引脚映射:a,b,c,d,e,f,g,dp 对应 Arduino 引脚 2-9
const byte segPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
// 2. 定义段码表:二维数组存储 0-9 的电平状态 (1=亮, 0=灭)
// 每一行代表一个数字,列对应上面的引脚顺序
const byte segCodes[10][8] = {
{1, 1, 1, 1, 1, 1, 0, 0}, // 0
{0, 1, 1, 0, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1, 0}, // 2
{1, 1, 1, 1, 0, 0, 1, 0}, // 3
{0, 1, 1, 0, 0, 1, 1, 0}, // 4
{1, 0, 1, 1, 0, 1, 1, 0}, // 5
{1, 0, 1, 1, 1, 1, 1, 0}, // 6
{1, 1, 1, 0, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1, 0}, // 8
{1, 1, 1, 1, 0, 1, 1, 0} // 9
};
void setup() {
// 批量初始化引脚为输出模式
for (int i = 0; i < 8; i++) {
pinMode(segPins[i], OUTPUT);
}
}
void loop() {
// 循环显示 0-9
for (int num = 0; num <= 9; num++) {
for(int i = 0; i < 8; i++){
digitalWrite(segPins[i],segCodes[num][i]);
}
//showDigit(num); // 调用封装好的显示函数
delay(1000); // 延时 1 秒
}
}
// // 3. 封装显示函数:只需一行核心逻辑即可点亮任意数字
// void showDigit(int num) {
// if (num < 0 || num > 9) return; // 安全校验
// for (int i = 0; i < 8; i++) {
// // 关键简化点:直接通过数组索引获取电平并写入引脚
// digitalWrite(segPins[i], segCodes[num][i]);
// }
// }