/*
* 让四个7段LED显示数字 =》让一个7段LED显示数字(本代码),四个分别显示数字即可
* 一个7段LED显示一个数字,这包含8个二极管的控制,每个二极管状态只需要“两”
*和“不亮”两个状态,是数字信号输入高低电平即可
* 所以逻辑就是如下:
* 一个二极管0/1状态 =》 循环8次,实现八个二极管的0/1状态,即一个数字
* = 》循环4次,实现四个数字(纠正:不需要,可以四个并行,不用循环结构)
*/
void setup()//一个数字的实现
{
pinMode(2, OUTPUT);//设置为输出模式
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
int delayTime = 1000;
void loop()
{
//数字1亮00110000
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, LOW);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, LOW);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, LOW);//f,6 , 0
digitalWrite(9, LOW);//g,7 , 1
delay(delayTime);
//数字1灭
set0(delayTime);//全归0
//数字2亮01101101
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, LOW);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, HIGH);//e,5 , 0
digitalWrite(8, LOW);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字2灭
set0(delayTime);
//数字3 abcdg亮
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, LOW);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//其实这里就可以用011110010这串数组来表示数字“3”
//数字3灭
/*digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(delayTime);
*/
set0(delayTime);
//数字4亮00110011
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, LOW);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, LOW);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字4灭
set0(delayTime);
//数字5亮01011011
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, LOW);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字5灭
set0(delayTime);
//数字6亮01011111
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, LOW);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, HIGH);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字6灭
set0(delayTime);
//数字7亮01110000
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, LOW);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, LOW);//f,6 , 0
digitalWrite(9, LOW);//g,7 , 1
delay(delayTime);
//数字7灭
set0(delayTime);
//数字8亮01111111
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, HIGH);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字8灭
set0(delayTime);
//数字9亮01111011
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, LOW);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, HIGH);//g,7 , 1
delay(delayTime);
//数字9灭
set0(delayTime);
//数字0亮
digitalWrite(2, LOW);//dp,a接在0引脚,状态是0
digitalWrite(3, HIGH);//a,1 ,1
digitalWrite(4, HIGH);//b,2 , 1
digitalWrite(5, HIGH);//c,3 , 1
digitalWrite(6, HIGH);//d,4 , 1
digitalWrite(7, HIGH);//e,5 , 0
digitalWrite(8, HIGH);//f,6 , 0
digitalWrite(9, LOW);//g,7 , 1
delay(delayTime);
//数字0灭
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(delayTime);
}
void set0(int Time)//全部电平归0
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(Time);
}
/*
int num1[8] = {0,0,1,1,0,0,0,0};
int num2[8] = {0,1,1,0,1,1,0,1};
int num3[8] = {0,1,1,1,1,0,0,1};
int num4[8] = {0,0,1,1,0,0,1,1};
int num5[8] = {0,1,0,1,1,0,1,1};
int num6[8] = {0,1,0,1,1,1,1,1};
int num7[8] = {0,1,1,1,0,0,0,0};
int num8[8] = {0,1,1,1,1,1,1,1};
int num9[8] = {0,1,1,1,0,0,1,1};
int num0[8] = {0,1,1,1,1,1,1,0};//各个数字的编码
*/