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

📄 led.c

📁 led显示屏测试程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	    if(*(++tx_pointer)!='\0')
			           
			    SBUF=* tx_pointer;		   		       
		     			 
	    else    tx_complete=1;		 //发送完毕后,置发送完成标志位!
		   
	 }
} 

///////////////////////////////
//	   发送命令子函数		 //
//							 //
///////////////////////////////

 void tx_string(uchar * buff)
  {	  
	 uint i=0; 
	        
	   tx_pointer=buff;       
       SBUF=buff[0];	
	   while(tx_complete!=1){delay(1);	++i;	 //等待命令字节发送完毕!	
	                         if(i>500)break;
							 }	  
  }	

 			  
/**************************************************/
/*	读数据到显示缓存
/**************************************************/
 void DATA_TO_dispBUF(uchar number)
{
 uchar i,j;
 for(i=0;i<16;i++)
 for(j=0;j<number;j++)
 	{
	 dispBUF[i*(number*2)+j*2]=MY_DATA[(number-j-1)*32+(i*2)+1];
	 dispBUF[i*(number*2)+j*2+1]=MY_DATA[(number-j-1)*32+(i*2)];
	 }
}
/***************************************************/
/* 主函数
/***************************************************/
main()
{ uchar i,j,t=0;
  uchar a,b,c,d,e,f;		   //'L''E''D''N''R'':'
  uchar L_R=1;
  uchar time=0;
  uchar N=0,M=0;
  uchar x=0; 
//  init_com();
 // I_write(0,34);
//  lager=I_read(0);  
//  L_R=I_read(1);
 // for(i=0;i<(lager*32);i++)
//	 rx_buff[i]=I_read(i+2);
 


  P0=time;
  DATA_TO_dispBUF(3);  //装载
/* for(i=0;i<16;i++) 
    { 
	  dispBUF[i*4]=rx_buf[i*2+65];
	  dispBUF[i*4+1]=rx_buf[i*2+64];
	  dispBUF[i*4+2]=rx_buf[i*2+33];
	  dispBUF[i*4+3]=rx_buf[i*2+32];
	  dispBUF[i*4+4]=rx_buf[i*2+1];
	  dispBUF[i*4+5]=rx_buf[i*2];	   
	 }	   	*/
  while(1)
      					    
	 {  	       
		   if(rx_over==1)
		         {tx_string(OK);
		          I_write(0,lager);
				  if(LEFT==1)I_write(1,1);
				  else if(RIGHT==1)I_write(1,0);
				  lager=I_read(0);
				  L_R=I_read(1);
				//  for(i=0;i<(lager*32);i++)
				//	  I_write(i+2,rx_buff[i]);
				  rx_over=0;
				  }

		 /******************************************/
		 /*	 显示部分
		 /******************************************/	    		   
		   
		 
		      {time=15;		     
	           for(i=15;i>0;i--)
		        {
				 a=i*6;			  		
			     SCLK=0;				  
				 send_8bit(dispBUF[a+2],8);
				 send_8bit(dispBUF[a+3],8);
				 send_8bit(dispBUF[a+4],8);
				 send_8bit(dispBUF[a+5],8); 				 			  				  	 				 	    
			     SCLK=1;
			     P0=time;		  
			     time--;		   			  			
		         }
				time=0;
				SCLK=0;				  
				 send_8bit(dispBUF[0+2],8);
				 send_8bit(dispBUF[0+3],8);
				 send_8bit(dispBUF[0+4],8);
				 send_8bit(dispBUF[0+5],8); 				 			  				  	 				 	    
			    SCLK=1;

				P0=time;


		 /*********************************************/
		 /*  消阴部分:关闭底部一行显示
		 /*********************************************/
			     SCLK=0;		  
				 send_8bit(0XFF,8);
				 send_8bit(0XFF,8);
				 send_8bit(0XFF,8);
				 send_8bit(0XFF,8);
			     SCLK=1;

			  }
		 /***********************************************/
		 /*	 向左移动
		 /***********************************************/
			   for(i=0;i<16;i++)
		        { if(L_R==1)
				       {
					    a=i*6;
				        dispBUF[a+5]<<=1; dispBUF[a+5]=dispBUF[a+5]|(dispBUF[a+4]>>7);				  
				        dispBUF[a+4]<<=1; dispBUF[a+4]=dispBUF[a+4]|(dispBUF[a+3]>>7);		  
		  		        dispBUF[a+3]<<=1; dispBUF[a+3]=dispBUF[a+3]|(dispBUF[a+2]>>7);				  
				        dispBUF[a+2]<<=1; dispBUF[a+2]=dispBUF[a+2]|(dispBUF[a+1]>>7);		          
		                dispBUF[a+1]<<=1; dispBUF[a+1]=dispBUF[a+1]|(dispBUF[a]>>7);
		                dispBUF[a]<<=1;   dispBUF[a]=dispBUF[a]|(dispBUF[a+5]>>7);
						}
				  else
					  {	dispBUF[i*6]>>=1;   dispBUF[i*6]=dispBUF[i*6]|(dispBUF[i*6+1]<<7);
				        dispBUF[i*6+1]>>=1; dispBUF[i*6+1]=dispBUF[i*6+1]|(dispBUF[i*6+2]<<7);
				        dispBUF[i*6+2]>>=1; dispBUF[i*6+2]=dispBUF[i*6+2]|(dispBUF[i*6+3]<<7);
		      	        dispBUF[i*6+3]>>=1; dispBUF[i*6+3]=dispBUF[i*6+3]|(dispBUF[i*6+4]<<7);
				        dispBUF[i*6+4]>>=1; dispBUF[i*6+4]=dispBUF[i*6+4]|(dispBUF[i*6+5]<<7);
		      	        dispBUF[i*6+5]>>=1; dispBUF[i*6+5]=dispBUF[i*6+5]|(dispBUF[i*6]<<7);
					   }
				 }
		 /************************************************************/
		 /* 功能:  每移动16位送一组汉字码,
		 /* 说明:  把要显示的汉字码解码后送入显示缓存的第3个字中
		 /************************************************************/			
				N++;
			    if(N%16==0){M++;
						    if(M==lager){N=0;M=0;}
			     	        for(i=0;i<16;i++){
						     //  dispBUF[i*6]=  rx_buff[i*2+65+(M*32)];
	                         //  dispBUF[i*6+1]=rx_buff[i*2+64+(M*32)];
							   dispBUF[i*6]=  MY_DATA[i*2+65+(M*32)];
	                           dispBUF[i*6+1]=MY_DATA[i*2+64+(M*32)];

							  }
					        }


		  /******************************************************/
		  if(N==0)
		  for(x=0;x<3;x++)

		  {	for(j=0;j<50;j++)
			 {  time=0;		     
	           for(i=0;i<16;i++)
		        {
				 			  		
			     SCLK=0;				  
				 send_8bit(xin1[i*4+3],8);
				 send_8bit(xin1[i*4+2],8);
				 send_8bit(xin1[i*4+1],8);
				 send_8bit(xin1[i*4+0],8); 				 			  				  	 				 	    
			     SCLK=1;
			     P0=time;		  
			     time++;		   			  			
		         }
			  }

			for(j=0;j<50;j++)
			{time=0;			     
	           for(i=0;i<16;i++)
		        {
				 			  		
			     SCLK=0;				  
				 send_8bit(xin2[i*4+3],8);
				 send_8bit(xin2[i*4+2],8);
				 send_8bit(xin2[i*4+1],8);
				 send_8bit(xin2[i*4+0],8); 				 			  				  	 				 	    
			     SCLK=1;
			     P0=time;		  
			     time++;		   			  			
		         }
			 }

			for(j=0;j<50;j++)
			{time=0;			     
	           for(i=0;i<16;i++)
		        {
				 			  		
			     SCLK=0;				  
				 send_8bit(xin3[i*4+3],8);
				 send_8bit(xin3[i*4+2],8);
				 send_8bit(xin3[i*4+1],8);
				 send_8bit(xin3[i*4+0],8); 				 			  				  	 				 	    
			     SCLK=1;
			     P0=time;		  
			     time++;		   			  			
		         }

			 }	
		   }
		   /*********************************************************/

				delay2(1200);


		       }
		  
	      /*for(i=0;i<16;i++)
		        {  
				/***********************************************/
			    /*	 向左移动
			    /***********************************************/			

		/*		  dispBUF[i*6+5]<<=1; dispBUF[i*6+5]=dispBUF[i*6+5]|(dispBUF[i*6+4]>>7);				  
				  dispBUF[i*6+4]<<=1; dispBUF[i*6+4]=dispBUF[i*6+4]|(dispBUF[i*6+3]>>7);
		  
		  		  dispBUF[i*6+3]<<=1; dispBUF[i*6+3]=dispBUF[i*6+3]|(dispBUF[i*6+2]>>7);				  
				  dispBUF[i*6+2]<<=1; dispBUF[i*6+2]=dispBUF[i*6+2]|(dispBUF[i*6+1]>>7);		          
		          dispBUF[i*6+1]<<=1; dispBUF[i*6+1]=dispBUF[i*6+1]|(dispBUF[i*6]>>7);
		          dispBUF[i*6]<<=1;   dispBUF[i*6]=dispBUF[i*6]|(dispBUF[i*6+5]>>7);
				 }
				  	 
			    /***********************************************/
			    /*	 向右移动
			    /***********************************************/

		        /*  dispBUF[i*6]>>=1;   dispBUF[i*6]=dispBUF[i*6]|(dispBUF[i*6+1]<<7);
				  dispBUF[i*6+1]>>=1; dispBUF[i*6+1]=dispBUF[i*6+1]|(dispBUF[i*6+2]<<7);
				  dispBUF[i*6+2]>>=1; dispBUF[i*6+2]=dispBUF[i*6+2]|(dispBUF[i*6+3]<<7);
		      	  dispBUF[i*6+3]>>=1; dispBUF[i*6+3]=dispBUF[i*6+3]|(dispBUF[i*6+4]<<7);

				  dispBUF[i*6+4]>>=1; dispBUF[i*6+4]=dispBUF[i*6+4]|(dispBUF[i*6+5]<<7);
		      	  dispBUF[i*6+5]>>=1; dispBUF[i*6+5]=dispBUF[i*6+5]|(dispBUF[i*6]<<7);
				  	  

			    /*************************************************/
			    /*	 向上移动  
			    /*************************************************/

			/*	 if(i==0)
				   {
					a=dispBUF[i*6+5];
				    b=dispBUF[i*6+4];
				    c=dispBUF[i*6+3];
				    d=dispBUF[i*6+2];
				    e=dispBUF[i*6+1];
				    f=dispBUF[i*6];
				    }
				 if(i<15)
				   {dispBUF[i*6+5]=dispBUF[(i+1)*6+5];
				    dispBUF[i*6+4]=dispBUF[(i+1)*6+4];
				    dispBUF[i*6+3]=dispBUF[(i+1)*6+3];
				    dispBUF[i*6+2]=dispBUF[(i+1)*6+2];
				    dispBUF[i*6+1]=dispBUF[(i+1)*6+1];
				    dispBUF[i*6]=dispBUF[(i+1)*6];
				    }
				 if(i==15)	          													 
		           {
				   	dispBUF[i*6+5]=a;
				    dispBUF[i*6+4]=b;
				    dispBUF[i*6+3]=c;
		            dispBUF[i*6+2]=d;
				    dispBUF[i*6+1]=e;
				    dispBUF[i*6]=f;
				    }
				 
		      /****************************************************/	
			
		   
	   
} 

⌨️ 快捷键说明

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