📄 hz24.c
字号:
/****************************************************************************************
* 文件名:hz24.C
* 功能:24*24 ASCII码字体及显示函数。
* 作者:路涛
* 日期:2006.10.13
* 备注:使用GUI_SetColor()函数设置前景颜色及背景色。
****************************************************************************************/
#include "config.h"
/* 24*24字体定义 */
const uint8 hz24[][72] = {
//欢[24*24]横排
{ 0x00, 0x08, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x0C, 0x00, 0x01, 0x8C, 0x00, 0x7F,
0x0D8, 0x0C, 0x01, 0x9F, 0x0FE, 0x01, 0x90, 0x0C,
0x01, 0x0A2, 0x18, 0x21, 0x0A3, 0x90, 0x13, 0x43,
0x00, 0x1B, 0x03, 0x00, 0x0B, 0x03, 0x00, 0x06,
0x03, 0x00, 0x06, 0x06, 0x80, 0x07, 0x06, 0x80,
0x0D, 0x86, 0x80, 0x19, 0x8C, 0x40, 0x10, 0x0CC,
0x60, 0x20, 0x98, 0x30, 0x40, 0x30, 0x38, 0x00,
0x60, 0x1E, 0x01, 0x80, 0x08, 0x02, 0x00, 0x00
},
//迎[24*24]横排
{
0x00, 0x00, 0x00, 0x30, 0x08, 0x00, 0x18, 0x5E,
0x18, 0x0C, 0x63, 0x0FC, 0x0C, 0x63, 0x18, 0x04,
0x63, 0x18, 0x00, 0x63, 0x18, 0x00, 0x63, 0x18,
0x0C, 0x63, 0x18, 0x7E, 0x63, 0x18, 0x0C, 0x63,
0x18, 0x0C, 0x63, 0x18, 0x0C, 0x67, 0x18, 0x0C,
0x7B, 0x18, 0x0C, 0x73, 0x18, 0x0C, 0x0E3, 0x78,
0x0C, 0x43, 0x30, 0x0C, 0x03, 0x00, 0x0C, 0x03,
0x00, 0x0E, 0x02, 0x00, 0x19, 0x00, 0x00, 0x70,
0x0FF, 0x0FE, 0x20, 0x7F, 0x0F8, 0x00, 0x00, 0x00
},
//进[24*24]横排
{ 0x00, 0x10, 0x80, 0x10, 0x1C, 0x0E0, 0x18, 0x18,
0x0C0, 0x0C, 0x18, 0x0C0, 0x06, 0x18, 0x0C8, 0x06,
0x0FF, 0x0FC, 0x04, 0x18, 0x0C0, 0x00, 0x18, 0x0C0,
0x00, 0x18, 0x0C0, 0x0C, 0x18, 0x0C0, 0x7E, 0x18,
0x0CC, 0x0D, 0x0FF, 0x0FE, 0x0C, 0x18, 0x0C0, 0x0C,
0x18, 0x0C0, 0x0C, 0x30, 0x0C0, 0x0C, 0x30, 0x0C0,
0x0C, 0x60, 0x0C0, 0x0C, 0x0C0, 0x0C0, 0x0D, 0x00,
0x0C0, 0x0C, 0x00, 0x80, 0x32, 0x00, 0x00, 0x61,
0x0FF, 0x0FE, 0x20, 0x0FF, 0x0F8, 0x00, 0x00, 0x00
},
//入[24*24]横排
{ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0C0,
0x00, 0x00, 0x30, 0x00, 0x00, 0x10, 0x00, 0x00,
0x08, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1C, 0x00,
0x00, 0x1C, 0x00, 0x00, 0x34, 0x00, 0x00, 0x32,
0x00, 0x00, 0x62, 0x00, 0x00, 0x63, 0x00, 0x00,
0x0C1, 0x00, 0x00, 0x0C1, 0x80, 0x01, 0x81, 0x80,
0x03, 0x00, 0x0C0, 0x06, 0x00, 0x0E0, 0x0C, 0x00,
0x60, 0x08, 0x00, 0x78, 0x10, 0x00, 0x3E, 0x20,
0x00, 0x18, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
},
//指[24*24]横排
{ 0x04, 0x10, 0x00, 0x07, 0x1C, 0x00, 0x06, 0x18,
0x18, 0x06, 0x18, 0x0FC, 0x06, 0x1F, 0x00, 0x06,
0x98, 0x04, 0x7F, 0x0D8, 0x04, 0x06, 0x18, 0x06,
0x06, 0x1F, 0x0FE, 0x06, 0x0F, 0x0FC, 0x06, 0x0C0,
0x00, 0x07, 0x10, 0x18, 0x1E, 0x1F, 0x0FC, 0x7E,
0x18, 0x18, 0x36, 0x18, 0x18, 0x06, 0x18, 0x18,
0x06, 0x1F, 0x0F8, 0x06, 0x18, 0x18, 0x06, 0x18,
0x18, 0x06, 0x18, 0x18, 0x7E, 0x1F, 0x0F8, 0x1C,
0x18, 0x18, 0x08, 0x10, 0x10, 0x00, 0x00, 0x00
},
//纹[24*24]横排
{ 0x04, 0x02, 0x00, 0x07, 0x01, 0x00, 0x06, 0x01,
0x80, 0x0C, 0x01, 0x80, 0x0C, 0x01, 0x04, 0x08,
0x7F, 0x0FE, 0x19, 0x08, 0x30, 0x11, 0x0C8, 0x30,
0x23, 0x88, 0x30, 0x7F, 0x08, 0x30, 0x23, 0x04,
0x60, 0x06, 0x04, 0x60, 0x04, 0x04, 0x60, 0x0C,
0x02, 0x60, 0x18, 0x0E2, 0x0C0, 0x3F, 0x03, 0x0C0,
0x10, 0x01, 0x80, 0x00, 0x03, 0x80, 0x01, 0x0E6,
0x0C0, 0x7F, 0x0C, 0x60, 0x38, 0x18, 0x38, 0x20,
0x30, 0x1E, 0x00, 0x0C0, 0x08, 0x01, 0x00, 0x00
},
//识[24*24]横排
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x20,
0x30, 0x0C, 0x3F, 0x0F8, 0x06, 0x30, 0x30, 0x06,
0x30, 0x30, 0x04, 0x30, 0x30, 0x00, 0x30, 0x30,
0x0C, 0x30, 0x30, 0x7E, 0x30, 0x30, 0x0C, 0x30,
0x30, 0x0C, 0x3F, 0x0F0, 0x0C, 0x30, 0x30, 0x0C,
0x20, 0x20, 0x0C, 0x08, 0x80, 0x0C, 0x4E, 0x40,
0x0C, 0x8C, 0x20, 0x0D, 0x18, 0x30, 0x0E, 0x10,
0x18, 0x0E, 0x30, 0x0C, 0x1C, 0x60, 0x0E, 0x08,
0x80, 0x06, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00
},
//别[24*24]横排
{ 0x00, 0x00, 0x08, 0x10, 0x18, 0x0E, 0x1F, 0x0FC,
0x0C, 0x18, 0x18, 0x8C, 0x18, 0x18, 0x0EC, 0x18,
0x18, 0x0CC, 0x18, 0x18, 0x0CC, 0x18, 0x18, 0x0CC,
0x1F, 0x0F8, 0x0CC, 0x18, 0x18, 0x0CC, 0x12, 0x10,
0x0CC, 0x03, 0x80, 0x0CC, 0x03, 0x18, 0x0CC, 0x3F,
0x0FC, 0x0CC, 0x03, 0x18, 0x0CC, 0x03, 0x18, 0x0CC,
0x03, 0x18, 0x8C, 0x06, 0x18, 0x0C, 0x06, 0x18,
0x0C, 0x0C, 0x38, 0x0C, 0x19, 0x0F0, 0x0C, 0x30,
0x60, 0x7C, 0x40, 0x40, 0x38, 0x00, 0x00, 0x10
},
//系[24*24]横排
{ 0x00, 0x00, 0x20, 0x00, 0x0F, 0x0F0, 0x00, 0x7F,
0x0F8, 0x3F, 0x0F0, 0x00, 0x00, 0x20, 0x00, 0x00,
0x70, 0x80, 0x00, 0x0C1, 0x0E0, 0x01, 0x03, 0x80,
0x0F, 0x0FE, 0x00, 0x06, 0x18, 0x00, 0x00, 0x63,
0x00, 0x01, 0x81, 0x0C0, 0x06, 0x00, 0x0F0, 0x3F,
0x0FF, 0x0F8, 0x1C, 0x18, 0x1C, 0x01, 0x18, 0x08,
0x03, 0x0DB, 0x80, 0x03, 0x18, 0x0E0, 0x06, 0x18,
0x38, 0x0C, 0x18, 0x1C, 0x18, 0x18, 0x0C, 0x21,
0x0F8, 0x08, 0x40, 0x70, 0x00, 0x00, 0x20, 0x00
},
//统[24*24]横排
{ 0x04, 0x06, 0x00, 0x07, 0x03, 0x00, 0x0E, 0x03,
0x80, 0x0C, 0x01, 0x0C, 0x18, 0x0FF, 0x0FE, 0x18,
0x02, 0x00, 0x31, 0x07, 0x00, 0x21, 0x0CC, 0x40,
0x7F, 0x98, 0x30, 0x23, 0x20, 0x18, 0x06, 0x7F,
0x0FC, 0x0C, 0x30, 0x08, 0x18, 0x08, 0x80, 0x20,
0x0E, 0x0E0, 0x7F, 0x0CC, 0x0C0, 0x38, 0x0C, 0x0C0,
0x00, 0x0C, 0x0C0, 0x00, 0x0C, 0x0C4, 0x07, 0x0D8,
0x0C4, 0x7C, 0x18, 0x0C4, 0x30, 0x30, 0x0C6, 0x00,
0x60, 0x0FE, 0x01, 0x80, 0x7C, 0x06, 0x00, 0x00
}
};
const char hz24_tab[]={"欢迎进入指纹识别系统"};
const uint8 dcb2dex_tab[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
/****************************************************************************
* 名称:GUI_PutChar24()
* 功能:显示ASCII码(24*24字体),显示值为20H-7FH(若为其它值,则显示' ')。
* 入口参数: x 指定显示位置,x坐标
* y 指定显示位置,y坐标
* ch 要显示的ASCII码值。
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
uint8 GUI_PutChar24(uint32 x, uint32 y,char ch)
{ uint8 font_dat;
uint8 i, j, k;
TCOLOR bakc;
/* 参数过滤 */
if( x>(GUI_LCM_XMAX-24) ) return(0);
if( y>(GUI_LCM_YMAX-32) ) return(0);
for(i=0;i<10;i++)
{
if(ch==hz24_tab[i])break;
i++;
}
k=i;
for(i=0; i<24; i++) // 显示共24行
{ for(j=0; j<24; j++) // 每行共24点
{ // 若当前点为0、8、16点,读取点阵数据
if((j==0)|(j==8)|(j==16)) font_dat = hz24[k][i*3+j/8];
// 设置相应的点为color或为back_color
if( (font_dat&dcb2dex_tab[j%8])==0 ) GUI_Point(x, y, RED);
else GUI_Point(x, y, GREEN);
x++;
}
y++; // 指向下一行
x -= 24; // 恢复x值
}
return(1);
}
/****************************************************************************
* 名称:GUI_PutString24()
* 功能:输出显示字符串((24*24字体,没有自动换行功能)。
* 入口参数: x 指定显示位置,x坐标
* y 指定显示位置,y坐标
* str 要显示的ASCII码字符串
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
void GUI_PutString24(uint32 x, uint32 y, char *str)
{ while(1)
{ if( (*str)=='\0' ) break;
if( GUI_PutChar24(x, y, *str++)==0 ) break;
x += 24; // 下一个字符显示位置,y不变(即不换行)
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -