int A=0; int B=1; int C=2; int D=3; int E=4; int F=5; int G=6; int H=7; //DP int hour1 = A0; //D1 int hour2 = A1; //D2 int min1 = A2; //D3 int min2 = A3; //D4 int hh1,hh2,mm1,mm2,check_h,check_m = 0; int new_hh1 = hh1; int new_hh2 = hh2; int new_mm1 = mm1; int new_mm2 = mm2; int btn_Hour = 9; int btn_Mins = 10; int btn_StPa = 11; int btn_StPa_State,btn_Hour_State,btn_Mins_State; void lightDigit1(byte); void lightDigit2(byte); void lightDigit3(byte); void lightDigit4(byte); void lightSegments(byte); const int segs[8] = { A, B, C, D, E, F, G, H}; const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000 }; void setup() { pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(H, OUTPUT); pinMode(hour1, OUTPUT); pinMode(hour2, OUTPUT); pinMode(min1, OUTPUT); pinMode(min2, OUTPUT); pinMode(btn_Hour,INPUT); pinMode(btn_Mins,INPUT); pinMode(btn_StPa,INPUT); pinMode(13,OUTPUT); } void loop() { btn_StPa_State = digitalRead(btn_StPa); btn_Hour_State = digitalRead(btn_Hour); btn_Mins_State = digitalRead(btn_Mins); check_h = 1 ; check_m = 1; if(btn_Hour_State==HIGH) { delay(100); if(new_hh1 == 2) { new_hh2++; if(new_hh2 == 4) { check_h = 0; new_hh1 = 0; new_hh2 = 0; } } else if(new_hh1 == 1) { new_hh2++; if(new_hh2 >9 ) { new_hh1 = 2; new_hh2 = 0; } } else if(new_hh1 == 0) { if(check_h==1) { new_hh2++; } if(new_hh2 > 9) { new_hh1 = 1; new_hh2 = 0; } } } if(btn_Mins_State == HIGH) { delay(100); if(new_mm1==5) { new_mm2++; if(new_mm2>9) { check_m=0; new_mm1=0; new_mm2=0; } } if(new_mm1==4) { new_mm2++; if(new_mm2>9) { new_mm1=5; new_mm2=0; } } if(new_mm1==3) { new_mm2++; if(new_mm2>9) { new_mm1=4; new_mm2=0; } } if(new_mm1==2) { new_mm2++; if(new_mm2>9) { new_mm1=3; new_mm2=0; } } if(new_mm1==1) { new_mm2++; if(new_mm2>9) { new_mm1=2; new_mm2=0; } } if(new_mm1==0) { if(check_m==1) { new_mm2++; } if(new_mm2>9) { new_mm1=1; new_mm2=0; } } } unsigned long startTime = millis(); for (unsigned long elapsed=0; elapsed < 1; elapsed = millis() - startTime) { lightDigit1(numbers[new_mm2]); delay(1); lightDigit2(numbers[new_mm1]); delay(1); lightDigit3(numbers[new_hh2]); delay(1); lightDigit4(numbers[new_hh1]); delay(1); } if(btn_StPa_State == HIGH) { back: for (int hh1=new_hh1; hh1 < 3; hh1++) { for (int hh2=new_hh2; hh2 < 10; hh2++) { for (int mm1=new_mm1; mm1 < 6; mm1++) { for (int mm2=new_mm2; mm2 < 10; mm2++) { for(int sec = 0; sec < 60 ; sec++) { unsigned long startTime = millis(); for (unsigned long elapsed=0; elapsed < 1000; elapsed = millis() - startTime) { if(elapsed==0) { digitalWrite(13,HIGH); } else if(elapsed<=1000) { digitalWrite(13,LOW); } lightDigit1(numbers[mm2]); delay(1); lightDigit2(numbers[mm1]); delay(1); lightDigit3(numbers[hh2]); delay(1); lightDigit4(numbers[hh1]); delay(1); if(hh1==2&&hh2==4) { goto back; } } } new_mm2 = 0; } new_mm1 = 0; } new_hh2 = 0; } new_hh1 = 0; } } } void lightDigit1(byte number) { digitalWrite(min1, LOW); digitalWrite(min2, HIGH); digitalWrite(hour1, LOW); digitalWrite(hour2,LOW); lightSegments(number); } void lightDigit2(byte number) { digitalWrite(min1, HIGH); digitalWrite(min2, LOW); digitalWrite(hour1, LOW); digitalWrite(hour2,LOW); lightSegments(number); } void lightDigit3(byte number) { digitalWrite(hour1, LOW); digitalWrite(hour2, HIGH); digitalWrite(min1, LOW); digitalWrite(min2, LOW); lightSegments(number); } void lightDigit4(byte number) { digitalWrite(hour1, HIGH); digitalWrite(hour2, LOW); digitalWrite(min1, LOW); digitalWrite(min2, LOW); lightSegments(number); } void lightSegments(byte number) { for (int i = 0; i < 7; i++) { int bit = bitRead(number, i); digitalWrite(segs[i], bit); } } //By Muhammad Saad Saeed (UET Taxila)