单片机八个led 从左到右依次单个点亮,从右到左再依次点亮;然后从左到右每次增加一个led 点亮

2024年12月03日 01:57
有1个网友回答
网友(1):

#include
#include
#define uchar unsigned char
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchar i,led;
while(1)
    {
    led=0xfe;
    for(i=0;i<8;i++)
        {
        P1=led;
        delay(200);
        led=_crol_(led,1);
        }
    led=0x7f;
    for(i=0;i<8;i++)
        {
        P1=led;
        delay(200);
        led=_cror_(led,1);
        }
        led=0xfe;
    for(i=0;i<8;i++)
        {
        P1=led;
        led=led<<1;
        delay(200);
        }
        led=0x00;
    for(i=0;i<8;i++)
        {
        P1=led;
        led=(led>>1)|0x80;
        delay(200);
        }
    P1=0x7e;delay(200);
    P1=0x3c;delay(200);
    P1=0x18;delay(200);
    P1=0x00;delay(200);
    P1=0x18;delay(200);
    P1=0x3c;delay(200);
    P1=0x7e;delay(200);
    P1=0xff;delay(200);
    }
}