求你89C52单片机流水灯移动的程序

2025-03-13 15:06:27
推荐回答(1个)
回答1:

是我想的这个意思?

#include

#include

typedef unsigned int u16;

typedef unsigned char u8;


sbit led=P2;//这里填你LED连接的端口(引脚),不一定是P2,也有可能是P3、P0


void delay(u16 i)

{

   while(i--);

}


void shan1()

{

   u8 i;

  led=0x01;//我默认led输入高电平1是亮,具体按照你实际情况,低电平亮就0xfe;

   for(i=0;i<7;i++)//已经点亮一个了,所以剩7个。

   {

     led=_crol_(led,1);//左移1位

    }

   led=0x00;

}


void shan2()

{

     u8 i;

   led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况

   for(i=0;i<6;i++)已经点亮两个个了,所以剩6个。

   {

     led=_cror_(led,1);//右移一位

     delay(1000);

    }

   led=0x00;  

}

void shan2()

{

     u8 i;

   led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况

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

   {

     led=_cror_(led,1);

     delay(1000);

    }

   led=0x00;  

}



void main()

{

  while(1)

 {

    shan1();

    delay(1000);

    shan2();

  }

}