Beispiel #1
0
/****************************************************************************
* 名称:GUI_PutChar()
* 功能:显示ASCII码,显示值为20H-7FH(若为其它值,则显示' ')。
* 入口参数: x		指定显示位置,x坐标
*           y		指定显示位置,y坐标
*           ch		要显示的ASCII码值。
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出有效范围。(显示格式为6*8)
****************************************************************************/
uint8  GUI_PutChar(uint32 x, uint32 y, uint8 ch)
{  uint8   font_dat;
   uint8   i, j;
   TCOLOR  bakc;

   /* 参数过滤 */
   if( x>=(GUI_LCM_XMAX-8) ) return(0);
   if( y>=(GUI_LCM_YMAX-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);
}
Beispiel #2
0
/****************************************************************************
* 名称:GUI_ExchangeColor()
* 功能:交换前景色与背景色。用于反相显示。
* 入口参数:无
* 出口参数:无
* 说明:
****************************************************************************/
void  GUI_ExchangeColor(void)
{  TCOLOR  bakc;

   GUI_CopyColor(&bakc, disp_color);
   GUI_CopyColor(&disp_color, back_color);
   GUI_CopyColor(&back_color, bakc);
}
Beispiel #3
0
/****************************************************************************
* 名称:GUI_PutChar24_32()
* 功能:显示ASCII码(24*32字体),显示值为'0'-'9'、'.'、'+'、'-'及':'(若为其它值,则显示' ')。
* 入口参数: x		指定显示位置,x坐标
*           y		指定显示位置,y坐标
*           ch		要显示的ASCII码值。
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
uint8  GUI_PutChar24_32(uint32 x, uint32 y, uint8 ch)
{  uint8   font_dat;
   uint8   i, j;
   TCOLOR  bakc;

   /* 参数过滤 */
   if( x>(GUI_LCM_XMAX-32) ) return(0);
   if( y>(GUI_LCM_YMAX-32) ) return(0);
   for(i=0; i<14; i++)
   {  if(FONT24x32_TAB[i]==ch) break;
   }
   ch = i;
    
   for(i=0; i<32; i++)						// 显示共32行
   {  for(j=0; j<24; j++)					// 每行共24点
      {  /* 若当前点为0、8、16点,读取点阵数据 */
         if( (j&0x07)==0 ) font_dat = FONT24x32[ch][i*3+j>>3];      
         /* 设置相应的点为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 -= 24;								// 恢复x值
   }
   
   return(1);
}
Beispiel #4
0
/****************************************************************************
* 名称:GUI_LoadLine()
* 功能:输出单色图形的一行数据。
* 入口参数: x		指定显示位置,x坐标
*           y		指定显示位置,y坐标
*           dat		要输出显示的数据。
*           no      要显示此行的点个数
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
uint8  GUI_LoadLine(uint32 x, uint32 y, uint8 *dat, uint32 no)
{  uint8   bit_dat;
   uint8   i;
   TCOLOR  bakc;

   /* 参数过滤 */
   if(x>=GUI_LCM_XMAX) return(0);
   if(y>=GUI_LCM_YMAX) return(0);
   
   for(i=0; i<no; i++)
   {  /* 判断是否要读取点阵数据 */
      if( (i%8)==0 ) bit_dat = *dat++;
     
      /* 设置相应的点为color或为back_color */
      if( (bit_dat&DCB2HEX_TAB[i&0x07])==0 ) GUI_CopyColor(&bakc, back_color); 
         else  GUI_CopyColor(&bakc, disp_color);
      GUI_Point(x, y, bakc);       
     
      if( (++x)>=GUI_LCM_XMAX ) return(0);
   }
   
   return(1);
}
Beispiel #5
0
/****************************************************************************
* 名称:GUI_GetDispColor()
* 功能:最得当前前景色。
* 入口参数:bakc		保存颜色的变量地址
* 出口参数:无
* 说明:
****************************************************************************/
void  GUI_GetDispColor(TCOLOR  *bakc)
{  GUI_CopyColor(bakc, disp_color);  
}
Beispiel #6
0
/****************************************************************************
* 名称:GUI_GetBackColor()
* 功能:最得当前背景色。
* 入口参数:bakc		保存颜色的变量地址
* 出口参数:无
* 说明:
****************************************************************************/
void  GUI_GetBackColor(TCOLOR  *bakc)
{  GUI_CopyColor(bakc, back_color);  
}
Beispiel #7
0
/****************************************************************************
* 名称:GUI_SetColor()
* 功能:设置显示色及背景色。用于ASCII字符显示及汉字显示。
* 入口参数:color1	显示色的值
*          color2	背景色的值
* 出口参数:无
* 说明:
****************************************************************************/
void  GUI_SetColor(TCOLOR color1, TCOLOR color2)
{  GUI_CopyColor(&disp_color, color1);
   GUI_CopyColor(&back_color, color2);  
}