单片机中实现8个LED的流水灯效果

单片机中实现8个LED的流水灯效果

左移函数_crol_(x,y)和数组实现

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;/*变量类型和赋的值最好一致,P1口为8位寄存器,选用uchar*/
void delay(uint);
void main()
{	  
	temp=0XFE;	
	P1=temp;
	while(1)
	{	
		temp=_crol_(temp,1); //循环左移
		delay(300);
		P1=temp;			
	}
}

void delay(uint z)
{
	uint x,y;
	for(x=100;x>0;x--)
		for(y=z;y>0;y--);
}
```

// 数组实现

```
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar i;
uchar  table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint z)
{
	uint x,y;
	for(x=100;x>0;x--)
		for(y=z;y>0;y--);
}

void main()
{	  

	while(1)
	{
		for(i=0;i<8;i++)
		{
			P1=table[i];
			delay(300);
		}  		
		
	}

}


```

 

你可能感兴趣的:(51单片机)