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

📄 52.c

📁 LED静态屏测试程序。通过隔行、隔列、斜线显示
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <reg51.h>
#include <absacc.h>
sbit r1=P2^0;
sbit g1=P2^1;
sbit b1=P2^2;
sbit r2=P2^3;
sbit g2=P2^4;
sbit b2=P2^5;
sbit latch=P2^6;
sbit clk=P2^7;
sbit red=P1^0;
sbit green=P1^1;
sbit blue=P1^2;
sbit xie=P1^3;
sbit jing=P1^4;
int i,m,j,p,q,t,n;
unsigned int yanshi1,yanshi2;
//#define yanshi1 350
//#define yanshi2 300
//yanshi1=0x1ff1;
//yanshi2=0x1ff2;
 /*******************/
 void set()
{
  clk=0;
  r1=1;
  g1=1;
  b1=1;
  r2=1;
  g2=1;
  b2=1;
  clk=1;	
 }
 void clr()
{
  clk=0;
  r1=0;
  g1=0;
  b1=0;
  r2=0;
  g2=0;
  b2=0;
  clk=1;	
 }
 void setrgb(unsigned char rgb)
 { 
   clk=0;
   switch(rgb)
 {
   case 1:
   {
   	r1=1;
    g1=0;
    b1=0;
    r2=0;
    g2=0;
    b2=0;
   	}
   	break;
   case 2:
   {
   	r1=0;
    g1=1;
    b1=0;
    r2=0;
    g2=0;
    b2=0;
   	}
   	break;
   case 3:
   {
   	r1=0;
    g1=0;
    b1=1;
    r2=0;
    g2=0;
    b2=0;
   	}
   	break;
   case 4:
   {
   	r1=0;
    g1=0;
    b1=0;
    r2=1;
    g2=0;
    b2=0;
   	}
   	break;
   case 5:
   {
   	r1=0;
    g1=0;
    b1=0;
    r2=0;
    g2=1;
    b2=0;
   	}
   	break;
   case 6:	
   {
   	r1=0;
    g1=0;
    b1=0;
    r2=0;
    g2=0;
    b2=1;
   	} 
   	break;
 }
   clk=1;	
  }
 void ge(unsigned char Num)
 {
   for(n=0;n<=Num-1;n++)
   	clr();	
 }
 /*  *****清屏******     */
 void clrping()
{	latch=0;
    for(i=0;i<=71;i++)
	clr();
 	latch=1;
 }
 /*  *****全屏******     */
void setping()
{	latch=0;
 for(i=0;i<=71;i++)
      set();
	latch=1;
 }
 /*  *****全红******     */
 void pingr()
 {
   latch=0;
   for(i=0;i<=47;i++)
   { 
   	 clr();	
     set();
     clr();
   }
   latch=1;	
  }
 /*  *****全绿******     */
  void pingg()
 {
   latch=0;
   for(i=0;i<=47;i++)
   { 	
     set();
     ge(2);
   }
   latch=1;
  } 	
 /*  *****全蓝******     */
  void pingb()
 {
   latch=0;
   for(i=0;i<=47;i++)
   {
   	 clr();
   	 clr();	
     set();
   }
   latch=1;	
  }
 /*  *****全绿红******     */
  void pinggr()
 {
   latch=0;
   for(i=0;i<=47;i++)
   {
   	 set();
   	 set();	
     clr();
   }
   latch=1;	
  }
 /*  *****全绿蓝******     */
  void pinggb()
 {
   latch=0;
   for(i=0;i<=47;i++)
   {
   	 set();
   	 clr();	
     set();
   }
   latch=1;	
  }
 /*  *****全红蓝******     */
  void pingrb()
 {
   latch=0;
   for(i=0;i<=47;i++)
   {
   	 clr();
   	 set();	
     set();
   }
   latch=1;	
  }
 /*  *****显示奇数行******     */
 void rowg11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(3);
     set();
     ge(2);
     set();
     ge(5);
   }
   latch=1;
} 
void rowr11()
{
   latch=0;
   for(i=0;i<=11;i++)
  { 
 	ge(3);
    clr();
    set();
    ge(2);
    set();
    clr();
    ge(3);   
  }
    latch=1;
}
 void rowb11()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	ge(5);
    set();
    ge(2);
    set();
    ge(3);
  }
    latch=1;
}
 void rowgr11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(3);
     set();
     set();
     clr();
     set();
     set();
     clr();
     ge(3);
   }
   latch=1;
} 
 void rowgb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(3);
     set();
     clr();
     set();
     set();
     clr();
     set();
     ge(3);
   }
   latch=1;
} 
 void rowrb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(3);
     clr();
     set();
     set();
     clr();
     set();
     set();
     ge(3);
   }
   latch=1;
} 
 void rowgrb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(3);
     set();
     set();
     set();
     set();
     set();
     set();
     ge(3);
   }
   latch=1;
} 
 /*  *****显示偶数行******     */
  void rowg12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	set();
 	ge(5);
 	ge(3);
    set();
    ge(2);
    
  }
 latch=1;
}
void rowr12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 
 	clr();
 	set();
    ge(5);
    ge(3);
    set();
 	clr();
       
  }
    latch=1;
}
 void rowb12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	ge(2);
    set();
    ge(5);
    ge(3);
  	set();
  
  }
    latch=1; 
}
 void rowgr12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	set();
 	set();
    ge(5);
    ge(2);
    set();
 	set();
    clr();
    
  }
 latch=1;
}  
 void rowgb12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	set();
 	clr();
    set();
    ge(5);
    clr();
    set();
 	clr();
    set();
    
  }
 latch=1;
}
 void rowrb12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	clr();
 	set();
    set();
    ge(5);
    ge(2);
 	set();
    set();
    
  }
 latch=1;
}  
 void rowgrb12()
{
	latch=0;
for(i=0;i<=11;i++)
 { 	
 	set();
 	set();
    set();
    ge(5);
    clr();
    set();
 	set();
    set();
    
  }
 latch=1;
}             

  
  /*  *****显示奇数列******     */
 void lieg11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 set();
 	 ge(2);
     set();
     ge(5);
     ge(3);
   }
    latch=1; 
}
void lier11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 clr();
 	 set();
     ge(2);
     set();
     ge(5);
 	 ge(2);
   }
    latch=1; 
}
void lieb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(2);
     set();
     ge(2);
     set();
     ge(5);
     clr();
   }
    latch=1; 
}
 void liegr11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 set();
 	 set();
     clr();
     set();
     set();
     ge(5);
 	 ge(2);
   }
    latch=1; 
}
 void liegb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 set();
 	 clr();
     set();
     set();
     clr();
     set();
     ge(5);
     clr();
   }
    latch=1; 
}
 void lierb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 clr();
 	 set();
     set();
     clr();
     set();
     set();
     ge(5);
     clr();
   }
    latch=1; 
}
 void liegrb11()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 set();
 	 set();
     set();
     set();
     set();
     set();
     ge(5);
     clr();
   }
    latch=1; 
}
/*  *****显示偶数列******     */
 void lieg12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     clr();
     set();
     ge(2);
     set();
   	 ge(2);
   }
    latch=1; 
}
void lier12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     ge(2);
     set();
     ge(2);
 	 set();
     clr();
   }
    latch=1; 
}
void lieb12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     ge(3);
     set();
     ge(2);
     set();
   }
    latch=1; 
}
void liegr12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     clr();
     set();
     set();
     clr();
     set();
 	 set();
     clr();
   }
    latch=1; 
}
void liegb12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     clr();
     set();
     clr();
     set();
     set();
 	 clr();
     set();
   }
    latch=1; 
}
void lierb12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     ge(2);
     set();
     set();
     clr();
 	 set();
     set();
   }
    latch=1; 
}
void liegrb12()
{
   latch=0;
   for(i=0;i<=11;i++)
   { 	
 	 ge(5);
     clr();
     set();
     set();
     set();
     set();
 	 set();
     set();
   }
    latch=1; 
}

    /*  *****隔行列显示红1******     */
   void rowlier1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==0 && green==1 && blue==1)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowr11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowr12();
  	    	for (m=0;m<=yanshi1;m++)
   		    lier11();
  	        for (p=0;p<=yanshi1;p++)
  	     	lier12();
        }
     }
  }
    /*  *****隔行列显示绿1******     */
   void rowlieg1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==1 && green==0 && blue==1)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowg11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowg12();
  	    	for (m=0;m<=yanshi1;m++)
   		    lieg11();
  	        for (p=0;p<=yanshi1;p++)
  	     	lieg12();
        }
     }
  }
   /*  *****隔行列显示蓝1******     */
   void rowlieb1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==1 && green==1 && blue==0)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowb12();
  	    	for (m=0;m<=yanshi1;m++)
   		    lieb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	lieb12();
        }
     }
  }
    /*  *****隔行列显示绿红1******     */
   void rowliegr1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==0 && green==0 && blue==1)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowgr11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowgr12();
  	    	for (m=0;m<=yanshi1;m++)
   		    liegr11();
  	        for (p=0;p<=yanshi1;p++)
  	     	liegr12();
        }
     }
  }
    /*  *****隔行列显示绿蓝1******     */
   void rowliegb1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==1 && green==0 && blue==0)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowgb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowgb12();
  	    	for (m=0;m<=yanshi1;m++)
   		    liegb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	liegb12();
        }
     }
  }
    /*  *****隔行列显示红蓝1******     */
   void rowlierb1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==0 && green==1 && blue==0)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowrb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowrb12();
  	    	for (m=0;m<=yanshi1;m++)
   		    lierb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	lierb12();
        }
     }
  }
    /*  *****隔行列显示绿红蓝1******     */
   void rowliegrb1()
 { 	
 	for(j=0;j<=100;j++)
 //  	while(1)
   	{
   		if(jing==1 && xie==1 && red==0 && green==0 && blue==0)
       {	
        	for (m=0;m<=yanshi1;m++)
   		    rowgrb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	rowgrb12();
  	    	for (m=0;m<=yanshi1;m++)
   		    liegrb11();
  	        for (p=0;p<=yanshi1;p++)
  	     	liegrb12();
        }
     }
  }
   /*  *****显示斜线******     */
	/////////
void setqian(unsigned char num)
{
 if(num%2==0)
 {
 	for(q=num/2;q>=1;q--)
 	{
 	 setrgb(q);
 	 ge(5);
 	 setrgb(q);
 	 if(q!=1)
 	 ge(5);	
 	 }
  }
  else
 {
   setrgb(num/2+1);
   if(num/2+1!=1)
   ge(5);
  for(q=num/2;q>=1;q--)
   { 
   	 setrgb(q);
 	 ge(5);
 	 setrgb(q);
 	 if(q!=1)
 	 ge(5);
    }
  }	
 }
 void sethou(unsigned char num)
 {
  if(num%2==0)
  {
  	for(q=0;q<=num/2-1;q++)

⌨️ 快捷键说明

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