bool common_anode = true;
bool On = !common_anode;
bool Off =  common_anode;

int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;

int ports[] = {13,12,11,10,9,8,7,6};

void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);

  attachInterrupt(0,interrupt,FALLING);
}

void Symbol(int symbol,bool isdp,int digit, int a = ports[0],int b=ports[1],int c=ports[2],int d=ports[3],int e=ports[4],int f=ports[5],int g=ports[6],int dp=ports[7]){

  switch (symbol){
    case 0:
    digitalWrite(a, On);
    digitalWrite(b, On);
    digitalWrite(c, On);
    digitalWrite(d, On);
    digitalWrite(e, On);
    digitalWrite(f, On);
    digitalWrite(g, Off);
    //digitalWrite(dp, !isdp);
    break;
    case 1:
    digitalWrite(a, Off);
    digitalWrite(b, On);
    digitalWrite(c, On);
    digitalWrite(d, Off);
    digitalWrite(e, Off);
    digitalWrite(f, Off);
    digitalWrite(g, Off);
    //digitalWrite(dp, !isdp);
    break;
    case 2:
    digitalWrite(a, On);//
    digitalWrite(b, On);//
    digitalWrite(c, Off);
    digitalWrite(d, On);
    digitalWrite(e, On);//
    digitalWrite(f, Off);
    digitalWrite(g, On);//
    //digitalWrite(dp, !isdp);
    break;
    case 3:
    digitalWrite(a, On);//
    digitalWrite(b, On);//
    digitalWrite(c, On);//
    digitalWrite(d, On);//
    digitalWrite(e, Off);
    digitalWrite(f, Off);
    digitalWrite(g, On);//
    //digitalWrite(dp, !isdp);
    break;
    case 4:
    digitalWrite(a, Off);
    digitalWrite(b, On);//
    digitalWrite(c, On);//
    digitalWrite(d, Off);
    digitalWrite(e, Off);
    digitalWrite(f, On);//
    digitalWrite(g, On);//
    //    digitalWrite(dp, !isdp);
    break;
    case 5:
    digitalWrite(a, On);//
    digitalWrite(b, Off);
    digitalWrite(c, On);//
    digitalWrite(d, On);//
    digitalWrite(e, Off);
    digitalWrite(f, On);//
    digitalWrite(g, On);//
    //digitalWrite(dp, !isdp);
    break;
    case 6:
    digitalWrite(a, On);//
    digitalWrite(b, Off);
    digitalWrite(c, On);//
    digitalWrite(d, On);//
    digitalWrite(e, On);//
    digitalWrite(f, On);//
    digitalWrite(g, On);//
    //digitalWrite(dp, !isdp);
    break;
    case 7:
    digitalWrite(a, On);
    digitalWrite(b, On);
    digitalWrite(c, On);
    digitalWrite(d, Off);
    digitalWrite(e, Off);
    digitalWrite(f, Off);
    digitalWrite(g, Off);
    //    digitalWrite(dp, !isdp);
    break;
    case 8:
    digitalWrite(a, On);
    digitalWrite(b, On);
    digitalWrite(c, On);
    digitalWrite(d, On);
    digitalWrite(e, On);
    digitalWrite(f, On);
    digitalWrite(g, On);
    //digitalWrite(dp, !isdp);
    break;
    case 9:
    digitalWrite(a, On);
    digitalWrite(b, On);
    digitalWrite(c, On);
    digitalWrite(d, On);
    digitalWrite(e, Off);
    digitalWrite(f, On);
    digitalWrite(g, On);
    //digitalWrite(dp, !isdp);
    break;
  }
  

}

void PrintText(int fist,int second,int third,int fourth,bool dp1,bool dp2,bool dp3,bool dp4){
  Symbol(fourth,dp1,5);
  digitalWrite(5, HIGH);
      digitalWrite(5, LOW);

  Symbol(third,dp2,2);

  digitalWrite(6, HIGH);
      digitalWrite(6, LOW);

  Symbol(second,dp3,3);

  digitalWrite(3, HIGH);
      digitalWrite(3, LOW);

  Symbol(fist,dp4,4);

  digitalWrite(4, HIGH);
      digitalWrite(4, LOW);

}
void loop() {
  PrintText(num4,num3,num2,num1,false,false,false,false);
}
void interrupt(){
  static unsigned long last_time=0;
  unsigned long time = millis();
  if (time-last_time>200){
    num1++;
    if (num1==10){
      num1=0;
      num2++;
      if (num2==10){
        num2=0;
        num3++;
          if (num3==10){
            num3=0;
            num4++;
            if (num4==10){
              num4=0;
            }
          }
        
      }
    }
  }
  last_time=time;
}


mega:SCL
mega:SDA
mega:AREF
mega:GND.1
mega:13
mega:12
mega:11
mega:10
mega:9
mega:8
mega:7
mega:6
mega:5
mega:4
mega:3
mega:2
mega:1
mega:0
mega:14
mega:15
mega:16
mega:17
mega:18
mega:19
mega:20
mega:21
mega:5V.1
mega:5V.2
mega:22
mega:23
mega:24
mega:25
mega:26
mega:27
mega:28
mega:29
mega:30
mega:31
mega:32
mega:33
mega:34
mega:35
mega:36
mega:37
mega:38
mega:39
mega:40
mega:41
mega:42
mega:43
mega:44
mega:45
mega:46
mega:47
mega:48
mega:49
mega:50
mega:51
mega:52
mega:53
mega:GND.4
mega:GND.5
mega:IOREF
mega:RESET
mega:3.3V
mega:5V
mega:GND.2
mega:GND.3
mega:VIN
mega:A0
mega:A1
mega:A2
mega:A3
mega:A4
mega:A5
mega:A6
mega:A7
mega:A8
mega:A9
mega:A10
mega:A11
mega:A12
mega:A13
mega:A14
mega:A15
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP
sevseg1:DIG1
sevseg1:DIG2
sevseg1:DIG3
sevseg1:DIG4
sevseg1:COM
sevseg1:CLN
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r