void delay(void);
void setup() {
volatile char *dirf, *outf, *dirk,*outk,*dira,*outa,*dirc,*outc,a,b,c,d;
dirf = 0x30; dirk = 0x107; dira = 0x21; dirc = 0x27; *dirf = 0xFF; *dirk = 0xFF; *dira = 0xFF; *dirc = 0xFF;
outf = 0x31; outk = 0x108; outa = 0x22; outc = 0x28;
unsigned char digit[] = {0x3F,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7F,0x6F};
unsigned char digit_dp[] = {0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
while(1){
for(int m=0;m<3;m++){
for(a=0;a<10;a++){
*outf = (m==0) ? digit_dp[a] : digit[a];
for(b=0;b<10;b++){
*outk = (m==1) ? digit_dp[b] : digit[b];
for(c=0;c<10;c++){
*outa = (m==2) ? digit_dp[c] : digit[c];
for(d=0;d<10;d++){
*outc = digit[d];
delay();
}
}
}
}
}
}
}
void delay(void){
volatile long i;
for(i=0;i<200000;i++);
}