单片机:求大神!!!!

单片机:求大神!!!!单片机:
初始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);
  }
  }
 }
 /***************************************************************************/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-16
是仿真,还是做实物,还只是画原理图?还只是写程序?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网