[DemoCode下载] 实现横排流水灯和竖排流水灯效果的C51程序

[复制链接]
 楼主| 芙蓉洞 发表于 2015-12-5 20:50 | 显示全部楼层 |阅读模式
任务:1、横排流水2、竖排流水3、斜排流水1、横排流水  源程序:/*******************************************************************************作者:刘海涛版本:第一次日期:2010年7月23日描叙:流水灯 顺序P0、P1、P2、P3先后从0到7bit*******************************************************************************/
  1. /**********************************头文件**************************************/
  2. #include"reg52.h"
  3. /******************************************************************************/


  4. /*******************************************************************************
  5. 函数名:delay(),延时函数。
  6. 宏定义:无
  7. 输  入:无
  8. 输  出:无
  9. *******************************************************************************/
  10. delay(unsigned int dat)   //函数定义
  11. {
  12. unsigned int i,j;
  13. for(i=0;i<=dat;i++)
  14.    {
  15.     for(j=0;j<=20000;j++);
  16.    }
  17. }

  18. void main(void)     //主函数
  19. {
  20. unsigned char i;
  21. while(1)     //循环
  22. {
  23.   for(i=0;i<8;i++)
  24.   {  
  25.    P0=0x01<<i;
  26.    delay(100);
  27.   }
  28.       for(i=0;i<8;i++)
  29.   {  
  30.    P1=0x01<<i;
  31.    delay(100);
  32.   }      
  33.   for(i=0;i<8;i++)
  34.   {  
  35.    P2=0x01<<i;
  36.    delay(100);
  37.   }      
  38.   for(i=0;i<8;i++)
  39.   {  
  40.    P3=0x01<<i;
  41.    delay(100);
  42.   }      
  43. }
  44. }





 楼主| 芙蓉洞 发表于 2015-12-5 20:51 | 显示全部楼层
2、竖排流水  源程序:/*******************************************************************************作者:刘海涛版本:第一次日期:2010年7月23日描叙:流水灯,竖着走,即P0到P3循环依次走1 bit******************************************************************************/
  1. /******************************************************************************/
  2. #include"reg52.h"
  3. /******************************************************************************/
  4. /*******************************************************************************
  5. 函数名:delay(),延时函数
  6. 宏定义:无
  7. 输入:无
  8. 输出:无
  9. ******************************************************************************/
  10. delay(unsigned int dat)   //延时函数定义
  11. {
  12. unsigned int i,j;
  13. for(i=0;i<=dat;i++)
  14. {
  15.   for(j=0;j<=20000;j++);
  16. }

  17. }
  18. void main(void)     //主函数
  19. {
  20. unsigned char i;
  21. while(1)
  22. {
  23.   for(i=0;i<=7;i++)
  24.   {
  25.   P0=0x01<<i;
  26.   delay(100);

  27.   P1=0x01<<i;
  28.   delay(100);

  29.   P2=0x01<<i;
  30.   delay(100);

  31.   P3=0x01<<i;
  32.   delay(100);
  33.   }
  34. }
  35. }





 楼主| 芙蓉洞 发表于 2015-12-5 20:53 | 显示全部楼层
3、斜流水 源程序:

/*******************************************************************************
作者:刘海涛
版本:第一次
日期:2010年7月23日
描叙:流水灯,斜着走
*******************************************************************************/
  1. /**********************************头文件**************************************/
  2. #include"reg52.h"
  3. /******************************************************************************/

  4. /*******************************************************************************
  5. 函数名:delay(),延时函数。
  6. 输入:无
  7. 输出:无
  8. 宏定义:无
  9. *******************************************************************************/
  10. delay(unsigned int dat)
  11. {
  12. unsigned int i,j;
  13. for(i=0;i<dat;i++)
  14. {
  15.   for(j=0;j<20000;j++);
  16. }
  17. }

  18. void main(void)
  19. {
  20. unsigned int i,a,b,c;

  21. while(1)
  22. {
  23. for(i=0;i<=7;i++)
  24.   {
  25.    
  26.    P0=0x01<<i;
  27.    delay(100);
  28.    a=i+1;
  29.    if(a>=8)
  30.     {
  31.         a=i-8;
  32.    }
  33.    
  34.    P1=0x01<<a;
  35.    delay(100);
  36.    b=i+2;
  37.    if(b>=8)
  38.     {
  39.    b=b-8;
  40.    }
  41.       P2=0x01<<b;
  42.    delay(100);
  43.    c=i+3;
  44.       if(c>=8)
  45.     {
  46.    c=c-8;
  47.    }
  48.    P3=0x01<<c;
  49.    delay(100);
  50.   }
  51.      }
  52.   
  53. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

398

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

42

主题

398

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部