任务: 1、横排流水 2、竖排流水 3、斜排流水 1、横排流水 源程序: /******************************************************************************* 作者:刘海涛 版本:第一次 日期:2010年7月23日 描叙:流水灯 顺序P0、P1、P2、P3先后从0到7bit *******************************************************************************/ /**********************************头文件**************************************/ #include"reg52.h" /******************************************************************************/ /******************************************************************************* 函数名:delay(),延时函数。 宏定义:无 输 入:无 输 出:无 *******************************************************************************/ delay(unsigned int dat) //函数定义 { unsigned int i,j; for(i=0;i<=dat;i++) { for(j=0;j<=20000;j++); } } void main(void) //主函数 { unsigned char i; while(1) //循环 { for(i=0;i<8;i++) { P0=0x01<<i; delay(100); } for(i=0;i<8;i++) { P1=0x01<<i; delay(100); } for(i=0;i<8;i++) { P2=0x01<<i; delay(100); } for(i=0;i<8;i++) { P3=0x01<<i; delay(100); } } } 2、竖排流水 源程序: /******************************************************************************* 作者:刘海涛 版本:第一次 日期:2010年7月23日 描叙:流水灯,竖着走,即P0到P3循环依次走1 bit ******************************************************************************/ /******************************************************************************/ #include"reg52.h" /******************************************************************************/ /******************************************************************************* 函数名:delay(),延时函数 宏定义:无 输入:无 输出:无 ******************************************************************************/ delay(unsigned int dat) //延时函数定义 { unsigned int i,j; for(i=0;i<=dat;i++) { for(j=0;j<=20000;j++); } } void main(void) //主函数 { unsigned char i; while(1) { for(i=0;i<=7;i++) { P0=0x01<<i; delay(100); P1=0x01<<i; delay(100); P2=0x01<<i; delay(100); P3=0x01<<i; delay(100); } } } 3、斜流水 源程序: /******************************************************************************* 作者:刘海涛 版本:第一次 日期:2010年7月23日 描叙:流水灯,斜着走 *******************************************************************************/ /**********************************头文件**************************************/ #include"reg52.h" /******************************************************************************/ /******************************************************************************* 函数名:delay(),延时函数。 输入:无 输出:无 宏定义:无 *******************************************************************************/ delay(unsigned int dat) { unsigned int i,j; for(i=0;i<dat;i++) { for(j=0;j<20000;j++); } } void main(void) { unsigned int i,a,b,c; while(1) { for(i=0;i<=7;i++) { P0=0x01<<i; delay(100); a=i+1; if(a>=8) { a=i-8; } P1=0x01<<a; delay(100); b=i+2; if(b>=8) { b=b-8; } P2=0x01<<b; delay(100); c=i+3; if(c>=8) { c=c-8; } P3=0x01<<c; delay(100); } } }