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

📄 sed1335.c

📁 这是一整套USB2.0试验程序
💻 C
📖 第 1 页 / 共 2 页
字号:
{ 
  uchar j,m,temp;
  uchar uRow,uCol;
  uint count;
  uRow=x;
  uCol=y;
  WriteCommand( CsrDirD ); 
  Locatexy(uRow,uCol,flag);
  while(*pstr)
  {
	  if(*pstr>0xa0)//汉字
	  {
		  count=0;
		  while((HZ16_16[count]!=*pstr)||(HZ16_16[count+1]!=*(pstr+1)))
		  { 
			  //根据区码位码查找汉字库
			  count=count+0x22;
			  if(HZ16_16[count]==0)
			  { 
					//没有找到退出
					count=0xffff;
					break;
			   }      
		   }
		   pstr+=2;
		   count+=2;
		   for(m=0;m<2;m++)
		   { 
			   Locatexy(uRow+m,uCol,flag);
			   WriteCommand( mWrite );		       // 写数据(命令)
			   for(temp=0;temp<16;temp++)
			   {
				    if(inverse)
						WriteData(~HZ16_16[2*temp+count+m]);
					else
			   			WriteData(HZ16_16[2*temp+count+m]);
			   }
		   }
		   uRow+=2;
	  }//ASC码
	  else
	  { 
		  Locatexy(uRow,uCol,flag);
		  WriteCommand( mWrite );				// 写数据(命令)
		  for(j=0;j<16;j++)
		  {
		  	if(inverse)
				WriteData(~ASC_MSK[(*pstr-0x20)*16 +j ]);
			else
		  		WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
		  }
		  pstr++;
		  uRow++;
	  }//光标控制
	  if(uRow >= 40)								// 光标后移
	  {
	     uCol += 16;								// Y坐标
		 uRow = 0;					    		    // X坐标
		 if( uCol >= 240 ) uCol = 0;
	  }
	  Locatexy(uRow,uCol,flag);
 }
}
void PutBigNumber(uchar x,uchar y,uchar  *pstr,uchar flag)
{
	uchar m,temp;
	uchar uRow,uCol;
	uRow=x;
	uCol=y;
	WriteCommand( CsrDirD ); 
	Locatexy(uRow,uCol,flag);
	for(m=0;m<4;m++)
	{ 
		Locatexy(uRow+m,uCol,flag);
		WriteCommand( mWrite );				       // 写数据(命令)
		for(temp=0;temp<32;temp++)
		WriteData(Logo[4*temp+m]);
	}
}
void PutLogo(uchar x,uchar y,uchar flag)
{ 
  uchar m,temp;
  uchar uRow,uCol;
  uRow=x;
  uCol=y;
  WriteCommand( CsrDirD ); 
  Locatexy(uRow,uCol,flag);
  for(m=0;m<4;m++)
  { 
     Locatexy(uRow+m,uCol,flag);
     WriteCommand( mWrite );				       // 写数据(命令)
     for(temp=0;temp<32;temp++)
     	WriteData(Logo[4*temp+m]);
  }
}
void PutHz_32(uchar x,uchar y,uchar  *pstr,uchar flag)
{ 
  uchar j,m,temp;
  uchar uRow,uCol;
  uint count;
  uRow=x;
  uCol=y;
  WriteCommand( CsrDirD ); 
  Locatexy(uRow,uCol,flag);
  while(*pstr)
  {
	  if(*pstr>0xa0)//汉字
	  {
		  count=0;
		  while((HZ32_32[count]!=*pstr)||(HZ32_32[count+1]!=*(pstr+1)))
		  { //根据区码位码查找汉字库
		  	count=count+0x82;
			if(HZ32_32[count]==0)
			{ //没有找到退出
				count=0xffff;
				break;
			}
		      
		   }
		   pstr+=2;
		   count+=2;
		   for(m=0;m<4;m++)
		   { 
		     Locatexy(uRow+m,uCol,flag);
		     WriteCommand( mWrite );				// 写数据(命令)
		     for(temp=0;temp<32;temp++)
		     {WriteData(HZ32_32[4*temp+count+m]);}
		   }
		   uRow+=4;
	  }//ASC码
	  else
	  { 
	     Locatexy(uRow,uCol,flag);
	     WriteCommand( mWrite );				// 写数据(命令)
	     for(j=0;j<16;j++)
	     {
		 	WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
		 }
	     pstr++;
	     uRow++;
	  }//光标控制 
	  if(uRow >= 40)								// 光标后移
	  {
	     uCol += 32;								// Y坐标
		 uRow = 0;					    		    // X坐标
		 if( uCol >= 240 ) uCol = 0;
	  }
	  Locatexy(uRow,uCol,flag);
 }
}
void PutHz_24(uchar x,uchar y,uchar  *pstr,uchar flag)
{ 
  uchar j,m,temp;
  uchar uRow,uCol;
  uint count;
  uRow=x;
  uCol=y;
  WriteCommand( CsrDirD ); 
  Locatexy(uRow,uCol,flag);
  while(*pstr)
  {
	  if(*pstr>0xa0)//汉字
	  {
		  count=0;
		  while((HZ24_24[count]!=*pstr)||(HZ24_24[count+1]!=*(pstr+1)))
		  { //根据区码位码查找汉字库
		  	count=count+0x4a;
			if(HZ24_24[count]==0)
			{ //没有找到退出
				count=0xffff;
				break;
			}
		      
		   }
		   pstr+=2;
		   count+=2;
		   for(m=0;m<3;m++)
		   { 
		     Locatexy(uRow+m,uCol,flag);
		     WriteCommand( mWrite );				// 写数据(命令)
		     for(temp=0;temp<24;temp++)
		     {WriteData(HZ24_24[3*temp+count+m]);}
		   }
		   uRow+=3;
	  }//ASC码
	  else
	  { 
	     Locatexy(uRow,uCol,flag);
	     WriteCommand( mWrite );				// 写数据(命令)
	     for(j=0;j<16;j++)
	     {
		 	WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
		 }
	     pstr++;
	     uRow++;
	  }//光标控制 
	  if(uRow >= 40)								// 光标后移
	  {
	     uCol += 24;								// Y坐标
		 uRow = 0;					    		    // X坐标
		 if( uCol >= 240 ) uCol = 0;
	  }
	  Locatexy(uRow,uCol,flag);
 }
}
/*void PutHz_12(uchar x,uchar y,uchar  *pstr,uchar flag)
{ 
  uchar j,m,temp;
  uchar uRow,uCol;
  uint count;
  uRow=x;
  uCol=y;
  WriteCommand( CsrDirD ); 
  Locatexy(uRow,uCol,flag);
  while(*pstr)
  {
	  if(*pstr>0xa0)//汉字
	  {
		  count=0;
		  while((HZ12_12[count]!=*pstr)||(HZ12_12[count+1]!=*(pstr+1)))
		  { //根据区码位码查找汉字库
		  	count=count+0x1a;
			if(HZ12_12[count]==0)
			{ //没有找到退出
				count=0xffff;
				break;
			}
		      
		   }
		   pstr+=2;
		   count+=2;
		   for(m=0;m<2;m++)
		   { 
		     Locatexy(uRow+m,uCol,flag);
		     WriteCommand( mWrite );				// 写数据(命令)
		     for(temp=0;temp<12;temp++)
		     {WriteData(HZ12_12[2*temp+count+m]);}
		   }
		   uRow+=2;
	  }//ASC码
	  else
	  { 
	     Locatexy(uRow,uCol,flag);
	     WriteCommand( mWrite );				// 写数据(命令)
	     for(j=0;j<16;j++)
	     {
		 	WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
		 }
	     pstr++;
	     uRow++;
	  }//光标控制 
	  if(uRow >= 40)								// 光标后移
	  {
	     uCol += 12;								// Y坐标
		 uRow = 0;					    		    // X坐标
		 if( uCol >= 240 ) uCol = 0;
	  }
	  Locatexy(uRow,uCol,flag);
 }
}  */
/******************************************
        整数输出到字符串函数            
入口: 位数:wei; 字符串:*str  变量:ivar  
*******************************************/
void Send_int(uchar wei,uchar *str,uint shu) 
{
  data uchar i,num;
  uint intbuf;   // 整型数缓冲

  intbuf = (uint)shu;// 变整形
  str[wei] = 0;       // 字符串结束
  num = wei;
  for(i=0;i<wei;i++){
    num --;
    str[num] = intbuf % 10 + 0x30;// 送一个字符 
    intbuf = intbuf / 10;         // 上一位 
    }// for 
}
/**********************************************************
函数功能:输出整数
x:字节位置,y:点位置
attribte:0:一区显示;1:二区显示

**********************************************************/
void Put_uint(uchar x,uchar y,uchar wei,uint shu,uchar attribte,bit inverse) 
{
  uchar cbuf[20];   // 字符串缓冲区   
  Send_int(wei,cbuf,shu);
  Putstr( x, y, cbuf,attribte,inverse);;  // 送显示     
}
/************************************************
显示浮点数函数                               
 入口:format +62 显示6位数,2位小数,显示+/-号  
      fbuf 浮点数                             
   x:字节位置,y:点位置
  attribte:0:一区显示;1:二区显示
  *P:指向显示位数                     
*************************************************/
void Putf(uchar x,uchar y,uchar *p,float fbuf,uchar attribte)
{ 
  uchar cbuf[16]; // 字符串缓冲区  
  SPutf(p,cbuf,fbuf);
  Putstr( x, y, cbuf,attribte,0); // 送显示
}  
//*********************************************
// 浮点数输出到字符串                         
// 入口: 说明 *format, 字符串:*str 变量:fvar  
//***********************************************
void SPutf(uchar *format,uchar *str,float fvar)
{ 
	data uchar a,b,i,num=0;
    data unsigned long longbuf; // 整型数缓冲   

  	if (*format =='+')
  	{
    	if (fvar<0)
		{ 
      		fvar = -fvar;    // 负变量转换绝对值  
      		str[num]='-';   // 加负号            
      	}
    	else
		{ 
      		str[num]='+'; // 加正号            
      	}
    	num ++;
    	format ++;
   	}//
  	a = *format - 0x30;    // 取总长度a     
  	format ++;
  	b = *format - 0x30;    // 取小数点位数b 
  	for (i=0;i<b;i++)
	{
    	fvar = fvar * 10;    // 消除小数      
   	}//
  	fvar = fvar + 0.5;     // 四舍五入      
  	num = num + a;
  	if (b>0)
	{ 
    	num ++;                  // 有小数点  
    }//
  	longbuf = (unsigned long)fvar;// 变整形 
  	str[num] = 0;             // 字符串结束 
  	for(i=1;i<=a;i++)
	{
    	num --;
    	str[num] = longbuf % 10 + 0x30; // 送一个字符  
    	longbuf = longbuf / 10;         // 上一位      
    	if (i==b)
		{ 
	      	num --;
	      	str[num] = '.';               // 加小数点    
      	}
    }
}

void EnableCursor(uchar flag)
{
	WriteCommand( DispOn );	
	if(flag == 0)		                                   
		WriteData( 0x54 );
	else
		WriteData( 0x57 );
}

⌨️ 快捷键说明

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