⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 c语言编译渐变流水灯
💻 C
字号:
#include<reg52.h>
#define uint unsigned  int
#define uchar unsigned char
sbit p00=P0^0;  //将各个led位操作方便写
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
sbit p04=P0^4;
sbit p05=P0^5;
sbit p06=P0^6;
sbit p07=P0^7;
sbit k1=P3^2;	//向左移动
sbit k2=P3^3;	//向右移动
sbit k3=P3^4;	//慢速
sbit k4=P3^5;	//快速
uchar flag,v=20;
void delay(uint t)
{
	uint i;
	while(t--)
	for(i=10;i>0;i--);
}
void delayms(uchar t)
{
	uint i;
	while(t--)
	{
		for(i=500;i>0;i--);
	}
}
void main()
{
	uint i,j;
	EA=1;
	TH0=1000/256;
	TL0=1000%256;
	ET0=1;
	TR0=1;
	while(1)
	{
		
		 

		for(j=0;j<v;j++){
		for(i=100;i>0;i--)
		{	
		if(flag==0)
			{ 
				if(i%3==0)
				{
					p00=0;
				}
				else
				{
					p00=1;
				}
				if(i%20==0)
				{
					p07=0;
				}
				else 
				{
					p07=1;
				}
				p01=0;
			}
			else
			{
				p00=0;
			  if(i%3==0)
				{
					p01=0;
				}
				else
				{
					p01=1;
				}
				if(i%20==0)
				{
					p02=0;
				}
				else 
				{
					p02=1;
				}				
			}

		}
		}
		delay(5);

		for(j=0;j<v;j++){
		for(i=100;i>0;i--)
		{	
			if(flag==0)
			{
				if(i%3==0)
				{
					p01=0;
				}
				else
				{
					p01=1;
				}
				if(i%20==0)
				{
					p00=0;
				}
				else
				{
					p00=1;
				}
				 p02=0;
			}
			else
			{
			if(i%3==0)
				{
					p00=0;
				}
				else
				{
					p00=1;
				}
				if(i%20==0)
				{
					p01=0;
				}
				else
				{
					p01=1;
				}
				 p07=0;
			}

		}
		}
		delay(5);


		for(j=0;j<v;j++){
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p02=0;
				}
				else
				{
					p02=1;
				}
				if(i%20==0)
				{
					p01=0;
				}
				else
				{
					p01=1;
				}
				p03=0;
			}
			else
			{
				p06=0;
				if(i%3==0)
				{
					p07=0;
				}
				else
				{
					p07=1;
				}
				if(i%20==0)
				{
					p00=0;
				}
				else
				{
					p00=1;
				}
			}

		}
		}
		delay(5);


		for(j=0;j<v;j++) {
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p03=0;
				}
				else
				{
					p03=1;
				}
				if(i%20==0)
				{
					p02=0;
				}
				else
				{
					p02=1;
				}
				p04=0;
			}
			else
			{
				p05=0;
				if(i%3==0)
				{
					p06=0;
				}
				else
				{
					p06=1;
				}
				if(i%20==0)
				{
					p07=0;
				}
				else
				{
					p07=1;
				}
			}

		}
		}
		 delay(5); 
		 
		for(j=0;j<v;j++) {
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p04=0;
				}
				else
				{
					p04=1;
				}
				if(i%20==0)
				{
					p03=0;
				}
				else
				{
					p03=1;
				}
				p05=0;
			}
			else
			{
				p04=0;
				if(i%3==0)
				{
					p05=0;
				}
				else
				{
					p05=1;
				}
				if(i%20==0)
				{
					p06=0;
				}
				else
				{
					p06=1;
				}
			}

		}
		}
		 delay(5);
		 
		 
		for(j=0;j<v;j++) {
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p05=0;
				}
				else
				{
					p05=1;
				}
				if(i%20==0)
				{
					p04=0;
				}
				else
				{
					p04=1;
				}
				p06=0;
			}
			else
			{
				p03=0;
				if(i%3==0)
				{
					p04=0;
				}
				else
				{
					p04=1;
				}
				if(i%20==0)
				{
					p05=0;
				}
				else
				{
					p05=1;
				}
			}


		}
		}
		 delay(5); 


		for(j=0;j<v;j++) 
		{
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p06=0;
				}
				else
				{
					p06=1;
				}
				if(i%20==0)
				{
					p05=0;
				}
				else
				{
					p05=1;
				}
				p07=0;
			}
			else
			{
				p02=0;
				if(i%3==0)
				{
					p03=0;
				}
				else
				{
					p03=1;
				}
				if(i%20==0)
				{
					p04=0;
				}
				else
				{
					p04=1;
				}
			}

		}
		}
		 delay(5);
		 P0=0xff;
		 
		 for(j=0;j<v;j++) 
		{
		for(i=100;i>0;i--)
		{	 
			if(flag==0)
			{
				if(i%3==0)
				{
					p07=0;
				}
				else
				{
					p07=1;
				}
				if(i%20==0)
				{
					p06=0;
				}
				else
				{
					p06=1;
				}
				p00=0;
			}
			else
			{
				p01=0;
				if(i%3==0)
				{
					p02=0;
				}
				else
				{
					p02=1;
				}
				if(i%20==0)
				{
					p03=0;
				}
				else
				{
					p03=1;
				}				
			}


		}
		}
		delay(5);

 	
	}
}
void t() interrupt 1
{
	TH0=1000/256;
	TL0=1000%256;
	if(k1==0)
		 {
		 	delayms(10);
			if(k1==1)
			{
		 		flag=0;
			}
			while(k1==1);
		 }

		 if(k2==0)
		 {
		 	delayms(10);
			if(k2==0)
			{
		 		flag=1;
			}
			while(k2==0);
		 }

		 if(k3==0)
		 {
		 	delayms(10);
		 	if(k3==0)
			{
				v=v+3;
				if(v>200||v<0)	//限制v不要超过uchar最大值 此处取200 就够了
					{v=200;}
			}
			while(k3==0);
		 }
		 if(k4==0)
		 {
		 	delayms(10);
			if(k4==0)
			{
				v=v-3;
				if(v<0||v>200)
				{v=3;}
			}
			while(k4==0);
		 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -