动态管

来源:互联网 发布:linux双网卡同时激活 编辑:程序博客网 时间:2024/05/16 00:59

 #include<reg52.h>

 

void delay(unsigned char cnt);

 

unsigned char code LedChar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char code LedBuff[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

unsigned char Led[8]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

 

sbit Latch_seg = P2^0;

sbit Latch_bit = P2^1;

 

void main()

{

    int i;

unsigned long num = 0;

    while(1)

{

/////////////////////////////////// 点亮一个数码管

   /*P0 = 0x6D;

   Latch_seg = 1;

   Latch_seg = 0;

   P0 = 0xFE;    

   Latch_bit = 1;

   Latch_bit = 0;*/

///////////////////////////////////点亮所有数码管

   /*for(i=0;i<8;i++)

   {

       P0 = LedChar[i];

       Latch_seg = 1;

       Latch_seg = 0;

       P0 = LedBuff[i];

       Latch_bit = 1;

       Latch_bit = 0;

       delay(1);

   }*/

   Led[7] = LedChar[num%10];

   Led[6] = LedChar[num/10%10];

   Led[5] = LedChar[num/100%10];

   Led[4] = LedChar[num/1000%10];

   Led[3] = LedChar[num/10000%10];

   Led[2] = LedChar[num/100000%10];

   Led[1] = LedChar[num/1000000%10];

   Led[0] = LedChar[num/10000000%10];

   for(i=0;i<8;i++)

   {

       P0 = Led[i];

       Latch_seg = 1;

       Latch_seg = 0;

       P0 = LedBuff[i];

       Latch_bit = 1;

       Latch_bit = 0;

       delay(1);

   }

   num++;  

}

}

 

void delay(unsigned char cnt)

{

    unsigned char i,j;

    for(i=0;i<125;i++)

{

       for(j=0;j<cnt;j++);

    }

}

0 0
原创粉丝点击