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

📄 复件 xin.c

📁 网络工程原理与实践教程
💻 C
字号:
/******************************************************************************************/
/*****************************心  型  流  水  灯******************************************/
/****************************************************************************************/
// 林芸
// 修改版
//如 有 不 足 之 处 请 多 多 指 教
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={  0xFE,/*0*/0xFD,/*1*/0xFB,/*2*/0xF7,/*3*/0xEF,/*4*/0xDF,/*5*/0xBF,/*6*/0x7F,/*7*/  }; //单个亮
uchar code tab0[]={	0x7F,/*8*/0x3F,/*7*/0x1F,/*6*/0x0F,/*5*/0x07,/*4*/0x03,/*3*/0x01,/*2*/0x00,/*1*/ };//从第8个亮,逐个+1
uchar code tab1[]={ 0x7E,0x7D,0x7B,0x77,0x6F,0x5F,0x3F,	 		 //第8灯亮并循环
					0x3E,0x3D,0x3B,0x37,0x2F,0x1F,			    //第78个灯亮并循环
					0x1E,0x1D,0x1B,0x17,0x0F,     			   //第678个灯亮并循环
					0x0E,0x0D,0x0B,0x07,	         		  //第5678个灯亮并循环
					0x06,0x05,0x03,				    		 //第345678个灯亮并循环
					0x02,0x01,
				  };
sbit HX=P0^0;
void delay(uint z);
void main()
{
	uchar aa,ss,dd,ff,qq,ww,ee,rr,q,w,e,t,u,i,o,p,c,v,b,k,n,m,js0,js1,js2,js3,a,s,d,f,g,h,j;
	 while(1)
	{
	/*	s=3;
		while(s) //呼吸灯
		{
			s--;
			delay(50);
			k=0;
			for(i=0;i<=252;i++)
			{	
				if(0==(i%5)) 
					k++;
				for(t=0;t<=16;t++)
				{
					P1=P0=P2=P3=0x00;
					for(j=0;j<=64;j++)
					{	
						if(j==k)
						 	P1=P0=P2=P3=0xff;
					}
				}
			}
			k=51;
			for(i=0;i<=252;i++)
			{	
				if(0==(i%5)) 
					k--;
				for(t=0;t<=16;t++)
				{
					P1=P0=P2=P3=0x00;
					for(j=0;j<=64;j++)
					if(j==k)
						 P1=P0=P2=P3=0xff;
				}
				if(k==0)
				{
					P1=P0=P2=P3=0xff;
					i=253;
				}
			}
		}		
		s=3;
		while(s)				//一个灯呼吸
		{	
			s--;
			k=0;
			for(i=0;i<=252;i++)
			{	
				if(0==(i%5)) 
					k++;
				for(t=0;t<=16;t++)
				{
					HX=0x00;
					for(j=0;j<=64;j++)
					{	
						if(j==k)
						 	HX=0xff;
					}
				}
			}
		}	
		delay(650);			 
		for(v=0;v<4;v++)	 //心形中点闪烁
		{
			HX=0;
			delay(500);
			HX=1;
		}*/	  
		aa=ss=dd=ff=0xfe;		
		for(q=0;q<8;q++)	  //一个灯循环
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);
		}
		aa=ss=dd=ff=0xfc;	   //两个灯循环
		for(w=0;w<6;w++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);
	
		}
		aa=ss=dd=ff=0xf8;		  //三个灯循环
		for(e=0;e<5;e++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);					
		}
		aa=ss=dd=ff=0xf8;		 //四个灯循环
		for(t=0;t<4;t++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);						
		}
		aa=ss=dd=ff=0xf0;		 //四个灯循环
		for(u=0;u<8;u++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);						
		}
		P1=P2=P0=P3=0xe0;		 //五个灯循环
		for(i=0;i<8;i++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);						
		}
		P1=P2=P0=P3=0xc0;		 //六个灯循环
		for(o=0;o<8;o++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);						
		}
		P1=P2=P0=P3=0x80;		 //七个灯循环
		for(p=0;p<8;p++)
		{
			P0=aa;
			P1=ss;
			P2=dd;
			P3=ff;
			delay(50);
			aa=_crol_(aa,1);
			ss=_crol_(aa,1);
			dd=_crol_(aa,1);
			ff=_crol_(aa,1);						
		}
		P1=P2=P0=P3=0xff;		   //全部灯闪烁
		delay(300);
		P1=P2=P3=P0=0;
		delay(300);
		P1=P2=P0=P3=0xff;		   
		delay(300);
		P1=P2=P3=P0=0;
		delay(300);
		P1=P2=P3=P0=0xff;
		g=b=h=n=js0=js1=js2=js3=0;
		m=40;
		while(m)
		{
			if(js0<24)	
			{
				for(c=0;c<8;c++)
				{
					P0=tab[c];
					delay(30);
				 }
				 js0++;
				 P0=0xff;			
			}
			if(js0>23&&js0<52)
			{
				P0=tab1[b];
				delay(30);
				b++;
				if(b==15)
				{
					js0=52;
					d=16;
				}				
			}
			if(js1<16)	
			{
				for(v=0;v<8;v++)
				{
					P1=tab[v];
					delay(30);
				 }
				 js1++;
				 P1=0xff;
			}
			if(js1>15)
			{
				if(m==24)
				{	
					for(v=0;v<8;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-24];
				}
				if(m==23)
				{	
					for(v=0;v<7;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-22];
				}
				if(m==22)
				{	
					for(v=0;v<6;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-20];			
				}
				if(m==21)
				{	
					for(v=0;v<5;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-18];
				}
				if(m==20)
				{	
					for(v=0;v<4;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-16];			
				}
				if(m==18)
				{	
					for(v=0;v<3;v++)	
					{	
						P1=tab1[n];
						n++;
					}
					P1=tab0[m-13];		
				}
				if(m==17)
				{
					 for(v=0;v<2;v++)
					 {
					 	P1=tab1[n];
						n++;
					  }	
					  P1=tab0[m-11];
				}
				if(m==16)
				{	
					P1=0;
				}
			}
			if(js2<8)
			{
				for(v=0;v<8;v++)
				{
					P2=tab[v];
					delay(30);
				 }
				 js2++;
				 P2=0xff;
			}
			if(js2>7)
			{
				if(m==32)
				{	
					for(v=0;v<8;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-32];
				}
				if(m==31)
				{	
					for(v=0;v<7;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-30];			
				}
				if(m==30)
				{	
					for(v=0;v<6;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-28];	
				}
				if(m==29)
				{	
					for(v=0;v<5;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-26];			
				}
				if(m==28)
				{	
					for(v=0;v<4;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-24];			
				}
				if(m==27)
				{	
					for(v=0;v<3;v++)	
					{	
						P2=tab1[j];
						j++;
					}
					P2=tab0[m-22];		
				}
				if(m==26)
				{	
					for(v=0;v<2;v++)
					{	
						P2=tab1[j];
						j++;			
					}
					P2=tab0[m-20];
				}	
				if(m==25)
				{	
					P2=0;			
				}	
			}
			if(m==40)					 //P3循环
			{	
				for(v=0;v<8;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-40];
			}
			if(m==39)
			{	
				for(v=0;v<7;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-38];			
			}
			if(m==38)
			{	
				for(v=0;v<6;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-36];	
			}
			if(m==37)
			{	
				for(v=0;v<5;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-34];			
			}
			if(m==36)
			{	
				for(v=0;v<4;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-32];			
			}
			if(m==35)
			{	
				for(v=0;v<3;v++)	
				{	
					P3=tab1[h];
					h++;
				}
				P3=tab0[m-30];		
			}
			if(m==34)
			{	
				for(v=0;v<2;v++)
				{
					P3=tab1[h];
					h++;
				}
			}	
	
			if(m==33)
			{	
				P3=0x00;			
			}	
			m--;
			delay(30);
		}
		if(m==0&&d<28)
			for(v=0;v<11;v++)
			{
				delay(30);
				P0=tab1[d];
				d++;
			}
		delay(30);
		P0=0x01;
		delay(30);
		P0=0x00;
		delay(600);
		P1=P2=P3=P0=0xff;
		delay(300);
		a=0x7f;
		for(v=0;v<8;v++)
		{
			P3=a;
			delay(50);
			a=a>>1;	
		}
		P3=0xff;
		a=0x7f;
		for(v=0;v<8;v++)
		{
			P2=a;
			delay(50);
			a=a>>1;	
		}
		P2=0xff;
		a=0x7f;
		for(v=0;v<8;v++)
		{
			P1=a;
			delay(50);
			a=a>>1;	
		}
		P1=0xff;
		a=0x7f;
		for(v=0;v<8;v++)
		{
			P0=a;
			delay(50);
			a=a>>1;	
		}
		P0=0xff;
		a=3;
		while(a)
		{
			P1=~P1;
			P3=~P3;
			delay(300);					
			P1=~P1;
			P3=~P3;
			delay(300);					
			P0=~P0;
			P2=~P2;
			delay(300);					
			P0=~P0;
			P2=~P2;
			delay(300);
			a--;
			f=1;					
	
		}
		 while(f)
		{
			delay(80);
			f--;
			qq=0xfe;
			ee=0x7f;
			for(v=0;v<8;v++)
			{
				P0=qq;
				P3=ee;
				delay(80);
				ee=ee>>1;
				qq=qq<<1;
			}
			ww=0xfe;
			rr=0x7f;
			delay(80);
			for(v=0;v<8;v++)
			{
				P1=ww;
				P2=rr;
				delay(80);
				ww=ww<<1;
				rr=rr>>1;
			}
			P0=P1=P2=P3=0xff;
			delay(80);
			qq=0xfe;
			ee=0x7f;
			for(v=0;v<8;v++)
			{
				P1=ee;
				P2=qq;
				delay(80);
				ee=ee>>1;
				qq=qq<<1;			
					
			}
			ww=0xfe;
			rr=0x7f;
			for(v=0;v<8;v++)
			{
				P0=rr;
				P3=ww;
				delay(80);
				rr=rr>>1;
				ww=ww<<1;			
			}
			P0=P1=P2=P3=0xff;
			delay(80);
		}
			P1=P2=P0=P3=0xaa;
			delay(1000);
			P1=P2=P0=P3=0x55;
			delay(800);
			P1=P2=P0=P3=0xaa;
			delay(600);
			P1=P2=P0=P3=0x55;
			delay(400);
			
	}
}


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

⌨️ 快捷键说明

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