新手请大侠指教啊 数码管

2019-07-15 23:13发布

怎样让8个数码管这样亮:像在墙上钉订一样,从这边到那边一排,不同的数字以下哪个程序该怎么改啊,我实在弄不出来现在,求指教。
#include<at89x51.h>
#define uchar unsigned char
#define  uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
        while(1)
        {
                wei=1;
                P0=0x7f;
                wei=0;
                duan=1;
                P0=table[7];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xbf;
                wei=0;
                duan=1;
                P0=table[6];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xdf;
                wei=0;
                duan=1;
                P0=table[5];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xef;
                wei=0;
                duan=1;
                P0=table[4];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xf7;
                wei=0;
                duan=1;
                P0=table[3];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfb;
                wei=0;
                duan=1;
                P0=table[2];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfd;
                wei=0;
                duan=1;
                P0=table[1];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfe;
                wei=0;
                duan=1;
                P0=table[0];
                duan=0;
                delay(300);
                P0=0x00;
               
        }
}
        void delay(uint xms)
        {
                uint i,j;
        for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。