www.pudn.com > ZLG_GUI_spilcd.zip > font5_7.c, change:2014-10-25,size:15278b


/**************************************************************************************** 
* 文件名:FONT5_7.C 
* 功能:5*7 ASCII码字体及显示函数。 
* 作者: 
* 日期: 
* 备注:使用GUI_SetColor()函数设置前景颜色及背景色。 
****************************************************************************************/ 
#include  "config.h" 
 
#if  FONT5x7_EN==1 
 
/* 5*7字体定义 */ 
const u8 FONT5x7ASCII[][8] = { 
/* 空格 */   
  { 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
 
/*  !  */ 
 ,{ 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   ________, 
   X_______, 
   ________} 
 
 
/*  "  */ 
 ,{ 
   X_X_____, 
   X_X_____, 
   X_X_____, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
 
/* #  */ 
 ,{ 
   _X_X____, 
   _X_X____, 
   XXXXX___, 
   _X_X____, 
   XXXXX___, 
   _X_X____, 
   _X_X____, 
   ________} 
 
/*  $  */ 
 ,{ 
   __X_____, 
   _XXXX___, 
   X_X_____, 
   _XXX____, 
   __X_X___, 
   XXXX____, 
   __X_____} 
 
/*  %  */ 
 ,{ 
   XX______, 
   XX__X___, 
   ___X____, 
   __X_____, 
   _X______, 
   X__XX___, 
   ___XX___, 
   ________} 
 
/*  &  */ 
 ,{ 
   _XX_____, 
   X__X____, 
   X_X_____, 
   _X______, 
   X_X_X___, 
   X__X____, 
   _XX_X___, 
   ________} 
 
/*  '  */ 
 ,{ 
   XX______, 
   _X______, 
   X_______, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
 
/*  (  */ 
 ,{ 
   __X_____, 
   _X______, 
   X_______, 
   X_______, 
   X_______, 
   _X______, 
   __X_____, 
   ________} 
 
/*  )  */ 
 ,{ 
   X_______, 
   _X______, 
   __X_____, 
   __X_____, 
   __X_____, 
   _X______, 
   X_______, 
   ________} 
 
/*  *  */ 
 ,{ 
   ________, 
   _X_X____, 
   __X_____, 
   XXXXX___, 
   __X_____, 
   _X_X____, 
   ________, 
   ________} 
 
 ,{ 
   ________, 
   __X_____, 
   __X_____, 
   XXXXX___, 
   __X_____, 
   __X_____, 
   ________, 
   ________} 
 
 ,{ 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   XX______, 
   _X______, 
   X_______} 
 
 ,{ 
   ________, 
   ________, 
   ________, 
   XXXXX___, 
   ________, 
   ________, 
   ________, 
   ________} 
 
 ,{ 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   XX______, 
   XX______, 
   ________} 
 
 ,{ 
   ________, 
   ____X___, 
   ___X____, 
   __X_____, 
   _X______, 
   X_______, 
   ________, 
   ________} 
 
/* 0 */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X__XX___, 
   X_X_X___, 
   XX__X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* 1 */ 
 ,{ 
   __X_____, 
   _XX_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   _XXX____, 
   ________} 
 
/* 2 */ 
 ,{ 
   _XXX____, 
   X___X___, 
   ____X___, 
   __XX____, 
   _X______, 
   X_______, 
   XXXXX___, 
   ________} 
 
/* 3 */ 
 ,{ 
   _XXX____, 
   X___X___, 
   ____X___, 
   __XX____, 
   ____X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* 4 */ 
 ,{ 
   ___X____, 
   __XX____, 
   _X_X____, 
   X__X____, 
   XXXXX___, 
   ___X____, 
   ___X____, 
   ________} 
 
/* 5 */ 
 ,{ 
   XXXXX___, 
   X_______, 
   XXXX____, 
   ____X___, 
   ____X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* 6 */ 
 ,{ 
   __XX____, 
   _X______, 
   X_______, 
   XXXX____, 
   X___X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* 7 */ 
 ,{ 
   XXXXX___, 
   ____X___, 
   ___X____, 
   __X_____, 
   _X______, 
   _X______, 
   _X______, 
   ________} 
 
/* 8 */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X___X___, 
   _XXX____, 
   X___X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* 9 */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X___X___, 
   _XXXX___, 
   ____X___, 
   ___X____, 
   _XX_____, 
   ________} 
 
/* ':' 3a */ 
 ,{ 
   ________, 
   XX______, 
   XX______, 
   ________, 
   XX______, 
   XX______, 
   ________, 
   ________} 
 
/* ';' 3b */ 
 ,{ 
   ________, 
   ________, 
   XX______, 
   XX______, 
   ________, 
   XX______, 
   _X______, 
   X_______} 
 
 
/* '<' 3c */ 
 ,{ 
   ___X____, 
   __X_____, 
   _X______, 
   X_______, 
   _X______, 
   __X_____, 
   ___X____, 
   ________} 
 
/* '=' 3d */ 
 ,{ 
   ________, 
   ________, 
   XXXXX___, 
   ________, 
   XXXXX___, 
   ________, 
   ________, 
   ________} 
 
/* '>' */ 
 ,{ 
   X_______, 
   _X______, 
   __X_____, 
   ___X____, 
   __X_____, 
   _X______, 
   X_______, 
   ________} 
 
/* '?' */ 
 ,{ 
   _XXX____, 
   X___X___, 
   ____X___, 
   ___X____, 
   __X_____, 
   ________, 
   __X_____, 
   ________} 
 
/* @ */ 
 ,{ 
   _XXX____, 
   X___X___, 
   ____X___, 
   _XX_X___, 
   X_X_X___, 
   X_X_X___, 
   _XXX____, 
   ________} 
 
/* A */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X___X___, 
   XXXXX___, 
   X___X___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* B */ 
 ,{ 
   XXXX____, 
   X___X___, 
   X___X___, 
   XXXX____, 
   X___X___, 
   X___X___, 
   XXXX____, 
   ________} 
 
/* C */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X_______, 
   X_______, 
   X_______, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* D */ 
 ,{ 
   XXX_____, 
   X__X____, 
   X___X___, 
   X___X___, 
   X___X___, 
   X__X____, 
   XXX_____, 
   ________} 
 
/* E */ 
 ,{ 
   XXXXX___, 
   X_______, 
   X_______, 
   XXXX____, 
   X_______, 
   X_______, 
   XXXXX___, 
   ________} 
 
/* F */ 
 ,{ 
   XXXXX___, 
   X_______, 
   X_______, 
   XXXX____, 
   X_______, 
   X_______, 
   X_______, 
   ________} 
 
/* G */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X_______, 
   X_______, 
   X__XX___, 
   X___X___, 
   _XXXX___, 
   ________} 
 
/* H */ 
 ,{ 
   X___X___, 
   X___X___, 
   X___X___, 
   XXXXX___, 
   X___X___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* I */ 
 ,{ 
   XXX_____, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   XXX_____, 
   ________} 
 
/* J */ 
 ,{ 
   __XXX___, 
   ___X____, 
   ___X____, 
   ___X____, 
   ___X____, 
   X__X____, 
   _XX_____, 
   ________} 
 
/* K */ 
 ,{ 
   X___X___, 
   X__X____, 
   X_X_____, 
   XX______, 
   X_X_____, 
   X__X____, 
   X___X___, 
   ________} 
 
/* L */ 
 ,{ 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   XXXXX___, 
   ________} 
 
/* M */ 
 ,{ 
   X___X___, 
   XX_XX___, 
   X_X_X___, 
   X_X_X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* N */ 
 ,{ 
   X___X___, 
   X___X___, 
   XX__X___, 
   X_X_X___, 
   X__XX___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* O */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* P */ 
 ,{ 
   XXXX____, 
   X___X___, 
   X___X___, 
   XXXX____, 
   X_______, 
   X_______, 
   X_______, 
   ________} 
 
/* Q */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X___X___, 
   X___X___, 
   X_X_X___, 
   X__X____, 
   _XX_X___, 
   ________} 
 
/* R */ 
 ,{ 
   XXXX____, 
   X___X___, 
   X___X___, 
   XXXX____, 
   X_X_____, 
   X__X____, 
   X___X___, 
   ________} 
 
/* S */ 
 ,{ 
   _XXX____, 
   X___X___, 
   X_______, 
   _XXX____, 
   ____X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* T */ 
 ,{ 
   XXXXX___, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   ________} 
 
/* U */ 
 ,{ 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   _XXX____, 
   ________} 
 
/* V */ 
 ,{ 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   _X_X____, 
   __X_____, 
   ________} 
 
/* W */ 
 ,{ 
   X___X___, 
   X___X___, 
   X___X___, 
   X_X_X___, 
   X_X_X___, 
   X_X_X___, 
   _X_X____, 
   ________} 
 
/* X */ 
 ,{ 
   X___X___, 
   X___X___, 
   _X_X____, 
   __X_____, 
   _X_X____, 
   X___X___, 
   X___X___, 
   ________} 
 
/* Y */ 
 ,{ 
   X___X___, 
   X___X___, 
   _X_X____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   ________} 
 
/* Z */ 
 ,{ 
   XXXXX___, 
   ____X___, 
   ___X____, 
   __X_____, 
   _X______, 
   X_______, 
   XXXXX___, 
   ________} 
 
/* 5b */ 
 ,{ 
   XXX_____, 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   X_______, 
   XXX_____, 
   ________} 
 
/* 5c */ 
 ,{ 
   ________, 
   X_______, 
   _X______, 
   __X_____, 
   ___X____, 
   ____X___, 
   ________, 
   ________} 
 
/* 5d */ 
 ,{ 
   XXX_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   XXX_____, 
   ________} 
 
/* 5e */ 
 ,{ 
   __X_____, 
   _X_X____, 
   X___X___, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
 
/* 5f */ 
 ,{ 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   XXXXX___} 
 
/* 60 */ 
 ,{ 
   X_______, 
   _X______, 
   __X_____, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
 
/* a */ 
 ,{ 
   ________, 
   ________, 
   _XXX____, 
   ____X___, 
   _XXXX___, 
   X___X___, 
   _XXXX___, 
   ________} 
 
/* b */ 
 ,{ 
   X_______, 
   X_______, 
   X_XX____, 
   XX__X___, 
   X___X___, 
   X___X___, 
   XXXX____, 
   ________} 
 
/* c */ 
 ,{ 
   ________, 
   ________, 
   _XX_____, 
   X__X____, 
   X_______, 
   X__X____, 
   _XX_____, 
   ________} 
 
/* d */ 
 ,{ 
   ____X___, 
   ____X___, 
   _XX_X___, 
   X__XX___, 
   X___X___, 
   X___X___, 
   _XXXX___, 
   ________} 
 
/* e */ 
 ,{ 
   ________, 
   ________, 
   _XXX____, 
   X___X___, 
   XXXXX___, 
   X_______, 
   _XXX____, 
   ________} 
 
/* f */ 
 ,{ 
   __X_____, 
   _X_X____, 
   _X______, 
   XXX_____, 
   _X______, 
   _X______, 
   _X______, 
   ________} 
 
/* g */ 
 ,{ 
   ________, 
   ________, 
   _XXXX___, 
   X___X___, 
   X___X___, 
   _XXXX___, 
   ____X___, 
   _XXX____} 
 
/* h */ 
 ,{ 
   X_______, 
   X_______, 
   X_XX____, 
   XX__X___, 
   X___X___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* i */ 
 ,{ 
   _X______, 
   ________, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   ________} 
 
/* j */ 
 ,{ 
   __X_____, 
   ________, 
   _XX_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   __X_____, 
   XX______} 
 
/* k */ 
 ,{ 
   X_______, 
   X_______, 
   X__X____, 
   X_X_____, 
   XX______, 
   X_X_____, 
   X__X____, 
   ________} 
 
/* l */ 
 ,{ 
   XX______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   XXX_____, 
   ________} 
 
/* m */ 
 ,{ 
   ________, 
   ________, 
   XX_X____, 
   X_X_X___, 
   X_X_X___, 
   X___X___, 
   X___X___, 
   ________} 
 
/* n */ 
 ,{ 
   ________, 
   ________, 
   X_XX____, 
   XX_X____, 
   X__X____, 
   X__X____, 
   X__X____, 
   ________} 
 
/* o */ 
 ,{ 
   ________, 
   ________, 
   _XX_____, 
   X__X____, 
   X__X____, 
   X__X____, 
   _XX_____, 
   ________} 
 
/* p */ 
 ,{ 
   ________, 
   ________, 
   XXX_____, 
   X__X____, 
   X__X____, 
   XXX_____, 
   X_______, 
   X_______} 
 
/* q */ 
 ,{ 
   ________, 
   ________, 
   _XXX____, 
   X__X____, 
   X__X____, 
   _XXX____, 
   ___X____, 
   ___X____} 
 
/* r */ 
 ,{ 
   ________, 
   ________, 
   _X_X____, 
   _XX_____, 
   _X______, 
   _X______, 
   _X______, 
   ________} 
 
/* s */ 
 ,{ 
   ________, 
   ________, 
   _XXX____, 
   X_______, 
   _XX_____, 
   ___X____, 
   XXX_____, 
   ________} 
 
/* t */ 
 ,{ 
   _X______, 
   _X______, 
   XXX_____, 
   _X______, 
   _X______, 
   _X______, 
   _XX_____, 
   ________} 
 
/* u */ 
 ,{ 
   ________, 
   ________, 
   X__X____, 
   X__X____, 
   X__X____, 
   X__X____, 
   _XXX____, 
   ________} 
 
/* v */ 
 ,{ 
   ________, 
   ________, 
   X___X___, 
   X___X___, 
   X___X___, 
   _X_X____, 
   __X_____, 
   ________} 
 
/* w */ 
 ,{ 
   ________, 
   ________, 
   X___X___, 
   X___X___, 
   X_X_X___, 
   X_X_X___, 
   _X_X____, 
   ________} 
 
/* X */ 
 ,{ 
   ________, 
   ________, 
   X___X___, 
   _X_X____, 
   __X_____, 
   _X_X____, 
   X___X___, 
   ________} 
 
/* y */ 
 ,{ 
   ________, 
   ________, 
   X__X____, 
   X__X____, 
   X__X____, 
   _XXX____, 
   ___X____, 
   _XX_____} 
 
/* z */ 
 ,{ 
   ________, 
   ________, 
   XXXXX___, 
   ___X____, 
   __X_____, 
   _X______, 
   XXXXX___, 
   ________} 
 
/* 0x7b */ 
 ,{ 
   __X_____, 
   _X______, 
   _X______, 
   X_______, 
   _X______, 
   _X______, 
   __X_____, 
   ________} 
 
/* 0x7c */ 
 ,{ 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   _X______, 
   ________} 
 
/* 0x7d */ 
 ,{ 
   X_______, 
   _X______, 
   _X______, 
   __X_____, 
   _X______, 
   _X______, 
   X_______, 
   ________} 
 
/* 0x7e */ 
 ,{ 
   _XX_X___, 
   X__X____, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________, 
   ________} 
    
/* 0x7f */ 
 ,{ 
   XXXXX___, 
   XXXXX___, 
   XXXXX___, 
   XXXXX___, 
   XXXXX___, 
   XXXXX___, 
   XXXXX___, 
   ________} 
    
}; 
 
 
/**************************************************************************** 
* 名称:GUI_PutChar() 
* 功能:显示ASCII码,显示值为20H-7FH(若为其它值,则显示' ')。 
* 入口参数: x		指定显示位置,x坐标 
*           y		指定显示位置,y坐标 
*           ch		要显示的ASCII码值。 
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。 
* 说明:操作失败原因是指定地址超出有效范围。(显示格式为6*8) 
****************************************************************************/ 
u8  GUI_PutChar(u16 x, u16 y, u8 ch) 
{  u8   font_dat; 
   u8   i, j; 
   u16  bakc; 
 
   /* 参数过滤 */ 
   if( x>(LCD_W-8) ) return(0); 
   if( y>(LCD_H-8) ) return(0); 
   if( (ch<0x20) || (ch>0x7f) ) ch = 0x20; 
    
   ch -= 0x20;  
   for(i=0; i<8; i++) 
   {  /* 读取点阵数据 */ 
      font_dat = FONT5x7ASCII[ch][i]; 
       
      for(j=0; j<6; j++) 
      {  /* 设置相应的点为color或为back_color */ 
         if( (font_dat&DCB2HEX_TAB[j])==0 ) GUI_CopyColor(&bakc, back_color); 
            else  GUI_CopyColor(&bakc, disp_color); 
         GUI_Point(x, y, bakc);        
         x++; 
      } 
       
      y++;									// 指向下一行 
      x -= 6;								// 恢复x值 
   } 
    
   return(1); 
} 
 
 
 
/**************************************************************************** 
* 名称:GUI_PutString() 
* 功能:输出显示字符串(没有自动换行功能)。 
* 入口参数: x		指定显示位置,x坐标 
*           y		指定显示位置,y坐标 
*           str		要显示的ASCII码字符串 
* 出口参数:无 
* 说明:操作失败原因是指定地址超出有效范围。 
****************************************************************************/ 
void  GUI_PutString(u16 x, u16 y, char *str) 
{  while(1) 
   {  if( (*str)=='\0' ) break; 
      if( GUI_PutChar(x, y, *str++)==0 ) break; 
      x += 6;								// 下一个字符显示位置,y不变(即不换行) 
   } 
} 
 
 
/**************************************************************************** 
* 名称:GUI_PutNoStr() 
* 功能:输出显示字符串(没有自动换行功能),若显示的字符个数大于指定个数,则直接退出。 
* 入口参数: x		指定显示位置,x坐标 
*           y		指定显示位置,y坐标 
*           str		要显示的ASCII码字符串。 
*           no      最大显示字符的个数 
* 出口参数:无 
* 说明:操作失败原因是指定地址超出有效范围。 
****************************************************************************/ 
void  GUI_PutNoStr(u16 x, u16 y, char *str, u8 no) 
{  if(no==0) return; 
   for(; no>0; no--) 
   {  if( (*str)=='\0' ) break; 
      if( GUI_PutChar(x, y, *str++)==0 ) break; 
      x += 6;								// 下一个字符显示位置,y不变(即不换行) 
   } 
} 
 
#endif