求你89C52单片机流水灯移动的程序 第一次一个LED左移8次,第二次二个LED

求你89C52单片机流水灯移动的程序
第一次一个LED左移8次,第二次二个LED右移8次,第三次三个LED左移8次,以此类推....第八次LED闪烁8次。求程序,谢谢。

#include<reg52.h>
#include<intrins.h>
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();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-06
2
相似回答