哪个帮个忙说下怎么写程序

img


#include<reg51.h>
unsigned char code table[]={//共阴数码管段码"0~f-."
                0x3f,0x06,0x5b,0x4f,
                0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,
                0x39,0x5e,0x79,0x71,0x40,0x80};
unsigned char code wela[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位码
unsigned char data dis_buf[8];//显示缓存
unsigned int i,j,k,l;//计数变量
void main()
{
        P1=0xfe;//流水灯初始化
        while(1)
        {
                //i,j,k计数
                i++;
                if(i>=1000)
                {
                        i=0;
                        j++;
                        if(j>9999)
                        {
                                j=0;
                                k++;
                                if(k>9999)
                                        k=0;
                        }
                        //流水灯
                        P1=P1<<1|0x01;
                        if(P1==0xff)
                                P1=0xfe;
                }
                //分解数据
                dis_buf[0]=table[k/1000%10];
                dis_buf[1]=table[k/100%10];
                dis_buf[2]=table[k/10%10];
                dis_buf[3]=table[k%10];
                dis_buf[4]=table[j/1000%10];
                dis_buf[5]=table[j/100%10];
                dis_buf[6]=table[j/10%10];
                dis_buf[7]=table[j%10];
                //数码管动态显示
                P0=0x00;//消隐段码
                P2=wela[l];//位码
                P0=dis_buf[l];//段码
                l++;//数码管动态计数
                if(l>=8)
                        l=0;
        }
}

img