单片机———点亮LED灯

时间:2025-03-07 15:37:47
void main()
{
  //while(1)
    //{
    //    LED1 = 0;    
    //    DelayMs(100);
    //    LED1 = 1;
    //    DelayMs(100);
    //}
    
    unsigned char i,w;
    //unsigned char w[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    while(1)
    {        
        //会有8个灯亮
        for(i = 0,w = 0x01;i < 8;i++)
        {
            P1 = ~w;
          w <<= 1;
            DelayMs(200);
        }
        for(i = 0,w = 0x80;i < 8;i++)
        {
          P1 = ~w;
            w>>=1;
            DelayMs(200);
        }
        
        //每次会有4个灯亮
        for(i = 0,w = 0x01;i < 4;i++)
        {
            P1 = ~w;
          w <<= 2;
            DelayMs(200);
        }
        for(i = 0,w = 0x80;i<4;i++)
        {
          P1 = ~w;
            w>>=2;
            DelayMs(200);
        }
        
        //每次只有2个灯亮
        for(i = 0,w = 0x01;i < 2;i++)
        {
            P1 = ~w;
          w <<= 4;
            DelayMs(200);
        }
        for(i = 0,w = 0x80;i < 2;i++)
        {
          P1 = ~w;
            w>>=4;
            DelayMs(200);
        }
        
    //间隔亮        
        for(i = 0,w = 0x01;i < 4;i++)
        {
            P1 = ~w;
          w <<= 3;
            DelayMs(200);
        }        
        for(i = 0,w = 0x02;i < 3;i++)
        {
          P1 = ~w;
            w <<= 3;
            DelayMs(200);
        }
        
            //两个灯一起亮
        for(i = 0,w = 0x03;i < 8;i++)
        {
            P1 = ~w;
          w <<= 1;
            DelayMs(200);
        }
        
        //三那个灯一起亮
        for(i = 0,w = 0x07;i < 8;i++)
        {
            P1 = ~w;
          w <<= 1;
            DelayMs(200);
        }
        
        //四个灯一起亮
        for(i = 0,w = 0x0f;i < 8;i++)
        {
            P1 = ~w;
          w <<= 1;
            DelayMs(200);
        }
    }