单片机:求大神!!!!单片机:
初始8个led灯熄灭,开始一个led灯依次向左流动点亮5遍,接着2个led灯从两侧往中间流动点亮五遍,最后8个led灯熄灭,时间间隔300ms
曾经编写的LED流水灯程序,无私奉献了
至于端口使用不同与功能等问题,请自行修改
程序中都有注释,很方便理解
/***************************************************************************/
#include <reg52.h>
char i=0,f=0;//变量定义,f 用作标识符
char Led_A[5]={0xff,0x7e,0xbd,0xdb,0xe7};
char LD[10]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};//单个流动编码
/***************************************************************************/
void delay(int t)//延时函数
{
int j;
for(;t>0;t--)
{for(j=100;j>0;j--);}
}
/***************************************************************************/
void main()
{
int s1=2;//各个循环的次数
int s2=100;//LED 点亮与熄灭的间隔时间
int s3=5;//LED 循环模式间隔时间的倍数
while (1)//主循环
{
for(f=s1;f>0;f--)//LED 向左流动
{
for(i=1;i<10;i++)
{
P2=LD[i];
delay(s2);
}
}
for(f=s3;f>0;f--){delay(s2);}//LED 熄灭一会
for(f=s1;f>0;f--)//LED 向右流动
{
for(i=9;i>0;i--)
{
P2=LD[i];
delay(s2);
}
P2=LD[0];
}
for(f=s3;f>0;f--){delay(s2);}//
for(f=s1;f>0;f--)//LED 从两侧向中间流动
{
for(i=1;i<5;i++)
{
P2=Led_A[i];
delay(s2);
}
P2=0xff;delay(s2);
}
for(f=s3;f>0;f--){delay(s2);}//
for(f=s1;f>0;f--)//LED 从中间向两侧流动
{
for(i=4;i>0;i--)
{
P2=Led_A[i];
delay(s2);
}
P2=0xff;delay(s2);
}
for(f=s3;f>0;f--){delay(s2);}//LED 熄灭一会
for(f=s1;f>0;f--)//LED 全部闪烁
{
P2=0x00;
delay(s2);
P2=0xff;
delay(s2);
}
}
}
/***************************************************************************/
至于端口使用不同与功能等问题,请自行修改
程序中都有注释,很方便理解
/***************************************************************************/
#include <reg52.h>
char i=0,f=0;//变量定义,f 用作标识符
char Led_A[5]={0xff,0x7e,0xbd,0xdb,0xe7};
char LD[10]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};//单个流动编码
/***************************************************************************/
void delay(int t)//延时函数
{
int j;
for(;t>0;t--)
{for(j=100;j>0;j--);}
}
/***************************************************************************/
void main()
{
int s1=2;//各个循环的次数
int s2=100;//LED 点亮与熄灭的间隔时间
int s3=5;//LED 循环模式间隔时间的倍数
while (1)//主循环
{
for(f=s1;f>0;f--)//LED 向左流动
{
for(i=1;i<10;i++)
{
P2=LD[i];
delay(s2);
}
}
for(f=s3;f>0;f--){delay(s2);}//LED 熄灭一会
for(f=s1;f>0;f--)//LED 向右流动
{
for(i=9;i>0;i--)
{
P2=LD[i];
delay(s2);
}
P2=LD[0];
}
for(f=s3;f>0;f--){delay(s2);}//
for(f=s1;f>0;f--)//LED 从两侧向中间流动
{
for(i=1;i<5;i++)
{
P2=Led_A[i];
delay(s2);
}
P2=0xff;delay(s2);
}
for(f=s3;f>0;f--){delay(s2);}//
for(f=s1;f>0;f--)//LED 从中间向两侧流动
{
for(i=4;i>0;i--)
{
P2=Led_A[i];
delay(s2);
}
P2=0xff;delay(s2);
}
for(f=s3;f>0;f--){delay(s2);}//LED 熄灭一会
for(f=s1;f>0;f--)//LED 全部闪烁
{
P2=0x00;
delay(s2);
P2=0xff;
delay(s2);
}
}
}
/***************************************************************************/
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-12-16
是仿真,还是做实物,还只是画原理图?还只是写程序?