void setup()
{
volatile char *dirf,*outf;
volatile char *dirk,*outk;
volatile char *dira,*outa;
volatile char *dirc,*outc;
dirf=0x30; outf=0x31;
dirk=0x107; outk=0x108;
dira=0x21; outa=0x22;
dirc=0x27; outc=0x28;
*dirf=0xFF; *dirk=0xFF;
*dira=0xFF; *dirc=0xFF;
volatile long arr[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
volatile long i,j,k,l,m;
loop:while(1)
{
for(i=9;i>=0;i--)
{
for(j=9;j>=0;j--)
{
for(k=9;k>=0;k--)
{
for(l=9;l>=0;l--)
{
if(i>0)//to display from 9999 to 1000
{
*outf=arr[i];
*outk=arr[j];
*outa=arr[k];
*outc=arr[l];
for(m=0;m<=1000;m++);
}
else if(j>0)// to display from 999 to 100
{
*outf=0;
*outk=arr[j];
*outa=arr[k];
*outc=arr[l];
for(m=0;m<=10000;m++);
}
else if(k>0)// to display from 99 to 10
{
*outk=0;
*outa=arr[k];
*outc=arr[l];
for(m=0;m<=10000;m++);
}
else//to display from 9 to 0
{
*outa=0;
*outc=arr[l];
for(m=0;m<=100000;m++);
}
if(i==0 && j==0 && k==0 && l==0)
goto loop;
}
}
}
}
}
}
void loop()
{
}