//a,b,c,d,e,f,g
byte segValue[10][7] = {
{1,1,1,1,1,1,0}, //0
{0,1,1,0,0,0,0}, //1
{1,1,0,1,1,0,1}, //2
{1,1,1,1,0,0,1}, //3
{0,1,1,0,0,1,1}, //4
{1,0,1,1,0,1,1}, //5
{1,0,1,1,1,1,1}, //6
{1,1,1,0,0,0,0}, //7
{1,1,1,1,1,1,1}, //8
{1,1,1,1,0,1,1} //9
};
byte segPin[8]={9,5,6,7,8,10,11,13}; //{a,b,c,d,e,f,g,dp}
byte digitPin[2] = {A0,A3}; //segment
void setup() {
for(int i=0;i<10;i++){
pinMode(segPin[i], OUTPUT);
}
pinMode(digitPin[0], OUTPUT);
pinMode(digitPin[1], OUTPUT);
digitalWrite(digitPin[0], HIGH);
digitalWrite(digitPin[1], HIGH);
}
void loop()
{
for (int i = 0; i<100; i++)
{
display_N(i);
delay(1);
}
}
void display_N(int num)
{
int hex = num % 10;
int dec = (num % 100) / 10;
for(int i=0; i<100; i++)
{
segOutput(1, hex, 1);
segOutput(0, dec, 1);
delay(5);
}
}
//LED
void segClear(){
for(int i=0;i<8;i++){
digitalWrite(segPin[i], LOW);
}
}
//LED
void segOutput(int d, int Number, int dp){
segClear();
digitalWrite(digitPin[d], LOW);
for(int i=0;i<7;i++){
digitalWrite(segPin[i], segValue[Number][i]);
}
digitalWrite(segPin[7], dp);
delayMicroseconds(2400);
digitalWrite(digitPin[d], HIGH);
}