1.任务书
接线如图所示
1.1 以3个灯亮从左到右流动,然后一直循环流动。
1.2循环使用不同流水灯,做出你喜欢的样子
2.分析
其实很简单的,无非就是点亮led的先后顺序在加点延时罢了。当我们点亮D0D1D3时关闭其他延时一会又打开D3D4D5关闭D0D1D3,就这样一直循环就可以了,接下来看代码部分
#include#define led P1 //定义led io口 #define uint unsigned int void delay(uint i){while(i--);} //延时函数 void main() { while(1) { led=0x1f;delay(30000); led=0x8f;delay(30000); led=0xc7;delay(30000); led=0xe3;delay(30000); led=0xf1;delay(30000); led=0xf8;delay(30000); led=0x7c;delay(30000); led=0x3e;delay(30000); } }
当然肯定不只有这一种办法接下来我们试一下另一种办法位移动
#include#include //这个头文件里面有我们需要的函数 _cror_() #define led P1 //定义led io口 #define uint unsigned int #define uchar unsigned char void delay(uint i){while(i--);} //延时函数 const uchar d=0x1f; //定义常数 const是常数说明 常数必须先给值 void main() { while(1) { led=_cror_(d,0);delay(30000); led=_cror_(d,1);delay(30000); led=_cror_(d,2);delay(30000); led=_cror_(d,3);delay(30000); led=_cror_(d,4);delay(30000); led=_cror_(d,5);delay(30000); led=_cror_(d,6);delay(30000); led=_cror_(d,7);delay(30000); } }
当然还可以使用for循环啦
#include#include //这个头文件里面有我们需要的函数 _cror_() #define led P1 //定义led io口 #define uint unsigned int #define uchar unsigned char void delay(uint i){while(i--);} //延时函数 const uchar d=0x1f; //定义常数 const是常数说明 常数必须先给值 void main() { uchar i; while(1) { for(i=0;i<8;i++) { led=_cror_(d,i);delay(30000); } } }
当然接下来还有百变流水灯效果,反正就是你想怎么来就怎么来,就看你们表演了



