📄 20822e8adfcc001d1b149b113a8ef8e7
字号:
/* 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)
****************************************************************************/
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<12; 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);
}
/*----------------------------------------------------------------*/
/*在屏幕的制定位置,显示汉字码的一行。
* ch1是该汉字的第一个字节,ch2是第二个字节
*
*******************************************************************/
void oneline_DIS_HZ(uint32 x, uint32 y, uint8 ch1, uint8 ch2)
{
unsigned short ch;
uint32 curx,j;
/* 参数过滤 */
if(y>127) return;
if( x>=(GUI_LCM_XMAX-12) ) return;
ch=0x0000;
ch|=ch1; ch<<=8; ch |=ch2;
curx=x;
for(j=0;j<12;j++)
{
if(ch&0x8000)
GUI_Point(curx, y, disp_color);
curx++;
ch <<=1;
}
}
#define WORDSTOCK 0x40000
/*----------------------------------------------------------*/
/*
* 汉字显示函数,由它调用oneLine_DIS_HZ,oneLine_DIS_HZ函数显示一个汉字的一行。
* 每个汉字12行,a是输入汉字的地址
*/
/*-----------------------------------------------------------*/
void DIS_HZ(uint32 cur_x,uint32 cur_y, uint8 *a) //显示汉字
{
uint8 i;
uint32 k;
uint8 *p;
uint32 x,y;
k=(*a-161)*94+(*(a+1))-161; //依据公式从汉字机内码换算出其所在地址(库内地址)
k=k*24+WORDSTOCK; //从0x8000开始放字库,算出其绝对地址
//由机内码换算为库内地址的公式为
//k=[(*a-161)*94+(*(a+1))-161]*32
p=(uint8 *)k; //指针首地址赋值
x=cur_x;y=cur_y;
for(i=0;i<12;i++)
{
oneline_DIS_HZ(x,y,*p,*(p+1));
p+=2;
y++;
}
}
/****************************************************************************
* 名称:GUI_PutString()
* 功能:输出显示字符串(没有自动换行功能)。
* 入口参数: x 指定显示位置,x坐标
* y 指定显示位置,y坐标
* str 要显示的ASCII码字符串
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
void GUI_PutString(uint32 x, uint32 y, uint8 *str,uint8 len)
{
uint8 i;
for(i=0;i<len;)
{
if(x>119) {x=0;y=y+12;} //换行操作
if(*str>0x80)
{
clear_Chars(x,y,2);
DIS_HZ(x,y,str);
str+=2;
x+=12;
i+=2;
}
else
{
clear_Chars(x,y,1);
if( GUI_PutChar(x, y, *str++)==0 ) break;
x+=6;
i++;
//if(x>119) {x=0;y=+12;} // 下一个字符显示位置,y不变(即不换行)
}
}
}
void clear_Chars(uint32 x,uint32 y,uint8 num)
{
uint8 i;
for(i=0;i<12;i++)
{
GUI_HLine(x,y+i,x+num*6,0);
}
}
/****************************************************************************
* 名称:GUI_PutNoStr()
* 功能:输出显示字符串(没有自动换行功能),若显示的字符个数大于指定个数,则直接退出。
* 入口参数: x 指定显示位置,x坐标
* y 指定显示位置,y坐标
* str 要显示的ASCII码字符串。
* no 最大显示字符的个数
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
void GUI_PutNoStr(uint32 x, uint32 y, char *str, uint8 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -