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

📄 void putstr.txt

📁 SED1335液晶屏的程序 参考别人的程序 并自己增加了一些有用的绘图函数 程序已经通过实际测试
💻 TXT
字号:

void Putstr(Uint x,Uchar y, char code *ptr, bit DispMode)
{       
	Uchar  c1,c2, i,j,uCol,temp,tempD=0;
	Uint  k,uRow;
	uRow = x;
	uCol = y;
	Write_Instruction( CsrDirD ); 					  	     // 自动下移
	Locatexy((Uchar)(uRow/8),uCol,0);						             //光标定位
	for(i=0;(Uchar)ptr[i] >='\n';i++)
	{
		c1 = ptr[i];
		c2 = ptr[i+1];

		if(c1<0x80&&c1 >=' ')							     // ASCII
		{  
		  Write_Instruction( mWrite );		    	 
		  for(j=0;j<16;j++)
		  {   
			if(DispMode)                                     //若反显
			   Write_Data(~ASC_MSK[(c1-0x20)*16 +j ]);
			else                                             //若正显
			{
			  if(i)
			     Write_Data(ASC_MSK[(c2-0x20)*16 +j ]>>(Uchar)(uRow%8)|ASC_MSK[(c1-0x20)*16 +j ]<<(8-(Uchar)(uRow%8)));//
			  else
		         Write_Data(ASC_MSK[(c1-0x20)*16 +j ]>>(Uchar)(uRow%8));
			}
		  }  
			uRow+=8;								             // 行加8
		} 
		else if (c1>=0x80)						             // 中文
		{
			for(j=0;j<sizeof(Cdotlib)/sizeof(Cdotlib[0]);j++)// 查找定位
			{
				if((c1 == Cdotlib[j].Index[0]) && (c2 == Cdotlib[j].Index[1]))
					break;
			}
			for(k=0;k<2;k++)						        // 分16行输出
			{
				Locatexy(uRow+k,uCol,0);
				Write_Instruction( mWrite );				// 写数据(命令)

				for(temp=0;temp<16;temp++)
				{
			 	   if(DispMode)
			         Write_Data( ~Cdotlib[j].Msk[temp*2 + k]);
				   else
				     Write_Data( Cdotlib[j].Msk[temp*2 + k]);
				}
			}
			uRow +=2;								        // 光标右移一大格
			i++;
		}
		//判断是否换行
		if(uRow >= 320||c1=='\n')					        // 光标后移
		{
			uCol += 16;							  	        // Y坐标
			uRow = 0;					    		        // X坐标
			if( uCol >= 240 ) 
			  uCol = 0;
		}
		Locatexy((Uchar)(uRow/8),uCol,0);
	}
}

⌨️ 快捷键说明

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