int latchPin=12;
int clockPin=13;
int dataPin=11;
unsigned char smgduan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char bitMa[] = {0x01,0x02,0x04,0x08};
unsigned int cnt = 0;
void setup() {
pinMode(latchPin,OUTPUT);
pinMode(clockPin,OUTPUT);
pinMode(dataPin,OUTPUT);
}
void display(unsigned char duan,unsigned char ch)
{
unsigned char temp;
digitalWrite(latchPin,LOW);
temp = ~smgduan[duan];
shiftOut(dataPin,clockPin,MSBFIRST,temp);
shiftOut(dataPin,clockPin,MSBFIRST,bitMa[ch]);
digitalWrite(latchPin,HIGH);
}
void loop()
{
unsigned char weibuff[4],i;
weibuff[0] = (cnt%100)%10;
weibuff[1] = (cnt%100)/10;
weibuff[2] = (cnt%1000)/100;
weibuff[3] = cnt/1000;
for(i=0;i<4;i++)
{
display(weibuff[i],i);
}
}