/**************************************************************************** * 名称: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); }
/**************************************************************************** * 名称:GUI_ExchangeColor() * 功能:交换前景色与背景色。用于反相显示。 * 入口参数:无 * 出口参数:无 * 说明: ****************************************************************************/ void GUI_ExchangeColor(void) { TCOLOR bakc; GUI_CopyColor(&bakc, disp_color); GUI_CopyColor(&disp_color, back_color); GUI_CopyColor(&back_color, bakc); }
/**************************************************************************** * 名称: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); }
/**************************************************************************** * 名称: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); }
/**************************************************************************** * 名称:GUI_GetDispColor() * 功能:最得当前前景色。 * 入口参数:bakc 保存颜色的变量地址 * 出口参数:无 * 说明: ****************************************************************************/ void GUI_GetDispColor(TCOLOR *bakc) { GUI_CopyColor(bakc, disp_color); }
/**************************************************************************** * 名称:GUI_GetBackColor() * 功能:最得当前背景色。 * 入口参数:bakc 保存颜色的变量地址 * 出口参数:无 * 说明: ****************************************************************************/ void GUI_GetBackColor(TCOLOR *bakc) { GUI_CopyColor(bakc, back_color); }
/**************************************************************************** * 名称:GUI_SetColor() * 功能:设置显示色及背景色。用于ASCII字符显示及汉字显示。 * 入口参数:color1 显示色的值 * color2 背景色的值 * 出口参数:无 * 说明: ****************************************************************************/ void GUI_SetColor(TCOLOR color1, TCOLOR color2) { GUI_CopyColor(&disp_color, color1); GUI_CopyColor(&back_color, color2); }