51单片机led流水灯

首先是代码

#include     
#include

void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}



void main(){
while(1){
	P2=0xfe;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xfd;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xfb;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xf7;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xef;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xdf;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0xbf;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
		P2=0x7f;
	Delay500ms();
	P2=0xff;
	Delay500ms();
	
	}
	
}

解释说明:
  首先那个Delay500ms可以在烧录软件stc-isp中直接创造出来,

51单片机led流水灯_第1张图片

51单片机led流水灯_第2张图片 

这里选择 频率,定时长度(微秒,毫秒),之后可以直接复制代码到keil中

接下来就是每一个灯开,关,并在其中实现延时,

	P2=0xfe;
	Delay500ms();
	P2=0xff;
	Delay500ms();

 那么这个就是D1灯实现一次闪烁,

fe或者大写FE就是二进制1111 1110,

51单片机led流水灯_第3张图片

 那么之后依次让

D2,D3...D8都重复这个代码即可,即(1111 1101,1111 1011,1111 0111,1110 1111,1101 1111,1011 1111,0111 1111    同样在计算器中查看即可)

 这样就实现了功能

你可能感兴趣的:(stc89c52简单操作,51单片机)