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

📄 字符字串显示函数库.c

📁 S3C44B0X内置LCD的应用
💻 C
📖 第 1 页 / 共 2 页
字号:
  0x06,0x06,0x06,0x06,0x66,0x66,0x3c,0x00,
  0x00,0x00,0xe0,0x60,0x60,0x66,0x6c,0x78,
  0x78,0x6c,0x66,0xe6,0x00,0x00,0x00,0x00,
  0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,
  0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xec,0xfe,0xd6,
  0xd6,0xd6,0xd6,0xd6,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,
  0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,
  0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,
  0x66,0x66,0x66,0x7c,0x60,0x60,0xf0,0x00,
  0x00,0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,
  0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x1e,0x00,
  0x00,0x00,0x00,0x00,0x00,0xdc,0x76,0x62,
  0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0x60,
  0x38,0x0c,0xc6,0x7c,0x00,0x00,0x00,0x00,
  0x00,0x00,0x10,0x30,0x30,0xfc,0x30,0x30,
  0x30,0x30,0x36,0x1c,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,
  0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,
  0x66,0x66,0x3c,0x18,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,
  0xd6,0xd6,0xfe,0x6c,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,
  0x38,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,
  0xc6,0xc6,0xc6,0x7e,0x06,0x0c,0xf8,0x00,
  0x00,0x00,0x00,0x00,0x00,0xfe,0xcc,0x18,
  0x30,0x60,0xc6,0xfe,0x00,0x00,0x00,0x00,
  0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,
  0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,
  0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
  0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
  0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
  0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe
}; 


U16	Cursor=0;//定义光标 0~~600 以字符为单位

/************************************************************
*函数名:Slib_Init
*功能:初始化光标位置为:第0行(0~14)第0列(0~39)    
*入口参数:无
*出口参数:无
************************************************************/
void Slib_Init(void)
{
	Cursor=0;//第0行(0~14)第0列(0~39)
}



/************************************************************
*函数名:Slib_SetCursor
*功能:设置光标位置  
*入口参数:y---第y行,取值范围是:0-14,即总共15行
           x---第x列,取值范围是:0-39,即总共40列
*出口参数:无
************************************************************/
void Slib_SetCursor(U8 y,U8 x)
{
	Cursor=y*40+x;//总共可以显示15行,每行40个字符	
}


/************************************************************
*函数名:Slib_PutChar
*功能:把字符送入指定显存单元
*入口参数:y---第y行,取值范围是:0-14,即总共15行
           x---第x列,取值范围是:0-39,即总共40列
           pchar---要送入的字符的地址
*出口参数:无
************************************************************/
void Slib_PutChar(U8 y,U8 x,char *pchar)
{
	U8 temp_char;
	U8 i;
	
	temp_char=(unsigned char)*pchar;
    //temp_char=0x30;
	
	for (i=0;i<16;i++)
	{
		frameBuffer1[y*16+i][(unsigned char)(x/4)] &= ~((U32)(0xff<<(8*(3-(x%4)))));
		frameBuffer1[y*16+i][(unsigned char)(x/4)] |= (Ascii[temp_char*16+i])<<(8*(3-(x%4)));
	}
}



/************************************************************
*函数名:Slib_Putstr
*功能:把字符串送二级显示缓冲区,不是显示屏
       
*入口参数:pstr---字符串地址
*出口参数:无
************************************************************/
void Slib_PutStr(char *pstr)
{
	U8 xx,yy;

  	while(*pstr)
  	{
  	    if(*pstr=='\n')
  	    {
  		   Cursor=((U8)(Cursor/40)+1)*40;
  		   pstr++;
  	    }
  	    xx=(U8)(Cursor%40);
  	    yy=(U8)(Cursor/40);
  	
        Slib_PutChar(yy,xx,pstr);
        pstr++;
        Cursor++;
        if(Cursor == 600)			//超出屏幕范围:15行*40个字符=600
    	Cursor=0;	
  	}
}

/************************************************************
*函数名:Slib_Printf
*功能:在LCD屏幕上显示字符串,但不能显示汉字,
       功能及用法都类似于标准C中的printf函数!
*入口参数:format---要输出的字符串及指定的格式字符串
*出口参数:无
************************************************************/
void Slib_Printf(char *format,...) 
{
  va_list ap;
  char string[256];

  va_start(ap,format);
  vsprintf(string,format,ap);
  Slib_PutStr(string);
  va_end(ap);
}

/************************************************************
*函数名:Slib_ClearScr
*功能:清除LCD屏幕上显示的内容,也相当于清空显示缓冲区
*入口参数:无
*出口参数:无
************************************************************/
void Slib_ClearScr(void)
{
    int i,j;

    for(j=0;j<(320);j++)//LCD屏幕的高度位320个像素
    {
        for(i=0;i<(240*8/32);i++)//LCD屏幕的宽度是240个像素,ARM7的地址是4B(32位)对齐,所以要除以32
        {
            
			frameBuffer1[j][i]=0x00000000;//frameBuffer1是U32(unsigned int)类型数组指针变量

        }
    }
}





/*
void Slib_PutChar_Color(U8 y,U8 x,char *pchar,U8 C)
{
	U8 temp_char;
	U8 i,j;

	temp_char=(unsigned char)*pchar;
//	temp_char=0x30;
	
	for (i=0;i<16;i++)
	{
        for(j=0;j<8;j++)
        {
		   frameBuffer1[y*16+i][(unsigned char)((x+j)/4)] &= ~((U32)(0xff << (8*(3-(x%4)))));
		   if((Ascii[temp_char*16+i]&(0x80>>j))!=0)
		   frameBuffer1[y*16+i][(unsigned char)((x+j)/4)] |= (C) << (8*(3-(x%4)));
		}
	}
}
*/


//void Slib_PutStr_Color(char *pstr,U8 color)
//{
//	U8 xx,yy;
//	//U8 str;
//  	while(*pstr)
//  	{
//  	//str=(unsigned char)*pstr;
//  	if(*pstr=='\n')
//  	{
//  		Cursor=((U8)(Cursor/40)+1)*40;
//  		pstr++;
// 	}
//  	xx=(U8)(Cursor%40);
//  	yy=(U8)(Cursor/40);
//  	
//    Slib_PutChar_Color(yy,xx,/*str*/pstr,color);
//    pstr++;
//    Cursor++;
//    if(Cursor == 600)			//超出屏幕范围 15行 X 40个字符=600
//    	Cursor=0;	
//  	}
//}


/*
//显示字符串
void Slib_Printf_Color(char *fmt,...) 
{
  va_list ap;
  char string[256];

  va_start(ap,fmt);
  vsprintf(string,fmt,ap);
  Slib_PutStr(string);
  va_end(ap);
  //Reflash_LCD();
}



//清显示缓冲区
void Slib_ClearScr_Color(void)
{
    int i,j;

    for(j=0;j<320;j++)
        for(i=0;i<(240/32);i++)
        {
            
			frameBuffer1[j][i]=0x00000000;

        }
}
*/

⌨️ 快捷键说明

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