This commit is contained in:
huxi
2025-12-03 11:12:34 +08:00
parent c23ae4f24c
commit bc195654bf
8163 changed files with 3799544 additions and 92 deletions
@@ -0,0 +1,306 @@
#ifndef __SPI_LCD_DRIVER_H
#define __SPI_LCD_DRIVER_H
//#include "asm/spi.h"
#ifdef Reset
#undef Reset
#endif
#ifndef SPI_LCD_DEBUG_ENABLE
#define SPI_LCD_DEBUG_ENABLE 0
#endif
#if (SPI_LCD_DEBUG_ENABLE == 0)
#define lcd_d(...)
#define lcd_w(...)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#elif (SPI_LCD_DEBUG_ENABLE == 1)
#define lcd_d(...)
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#else
#define lcd_d(fmt, ...) printf("[LCD DEBUG]: "fmt, ##__VA_ARGS__)
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#endif
// 注意:以下配置组合为固定搭配,不可随意更改
// 切换配置使用上面的宏选择
#if defined(CONFIG_CPU_BR28) || defined(CONFIG_CPU_BR35)||1
#include "app_config.h"
#define SPI_SUBMODE(config) (((config)>>16)&0xf0)
#define SPI_WIRE(config) (((config)>>16)&0x0f)
#define PIXEL_nPnT(config) (((config))&0xe0)
#define PIXEL_nTnB(config) (((config))&0x1f)
#define SPI_IF_MODE(config) (((config)>>16)&0xff)
#define OUT_FORMAT(config) (((config)>>8)&0xff)
#define PIXEL_TYPE(config) (((config))&0xff)
#define LCD_CONFIG(mode, format, type) (((mode)<<16) | ((format)<<8) | (type))
/////////////////////////////////////////////spi 3wire///////////////////////////////////////////////
#define SPI_3WIRE_RGB888_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_3WIRE_RGB888_1T24B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T24B)
#define SPI_3WIRE_RGB666_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_3WIRE_RGB666_1T18B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T18B)
#define SPI_3WIRE_RGB565_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define SPI_3WIRE_RGB565_1T16B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T16B)
/////////////////////////////////////////////spi 4wire///////////////////////////////////////////////
#define SPI_4WIRE_RGB888_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_4WIRE_RGB888_1T24B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T24B)
#define SPI_4WIRE_RGB666_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_4WIRE_RGB666_1T18B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T18B)
#define SPI_4WIRE_RGB565_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define SPI_4WIRE_RGB565_1T16B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T16B)
////////////////////////////////////////////dspi 3wire///////////////////////////////////////////////
#define DSPI_3WIRE_RGB565_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T8B)
#define DSPI_3WIRE_RGB666_1T9B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T9B)
#define DSPI_3WIRE_RGB666_1T6B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_2P3T|PIXEL_1T6B)
#define DSPI_3WIRE_RGB888_1T12B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T12B)
#define DSPI_3WIRE_RGB888_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_2P3T|PIXEL_1T8B)
////////////////////////////////////////////dspi 4wire///////////////////////////////////////////////
#define DSPI_4WIRE_RGB565_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T8B)
#define DSPI_4WIRE_RGB666_1T9B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T9B)
#define DSPI_4WIRE_RGB666_1T6B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_2P3T|PIXEL_1T6B)
#define DSPI_4WIRE_RGB888_1T12B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T12B)
#define DSPI_4WIRE_RGB888_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_2P3T|PIXEL_1T8B)
///////////////////////////////////////////////qspi//////////////////////////////////////////////////
#define QSPI_RGB565_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define QSPI_RGB666_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T8B)
#define QSPI_RGB888_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define QSPI_RGB565_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_ST77903_1T2B LCD_CONFIG(QSPI_MODE|QSPI_ST77903, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_ST77903_1T2B LCD_CONFIG(QSPI_MODE|QSPI_ST77903, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_ST77903_1T2B LCD_CONFIG(QSPI_MODE|QSPI_ST77903, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define RGB_SPI_3WIRE_RGB565 LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, 0)
#define MCU_8BITS_RGB565 LCD_CONFIG(0, FORMAT_RGB565, 0)
#define MCU_8BITS_RGB666 LCD_CONFIG(0, FORMAT_RGB666, 0)
#define MCU_8BITS_RGB888 LCD_CONFIG(0, FORMAT_RGB888, 0)
#endif // #if defined(CONFIG_CPU_BR28)
//////////////////////////////lcd mode end///////////////////////////
//~~~~~~~~~~~~~~~~~~~~~~~屏驱相关的参数和结构体~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
#ifndef REGFLAG_DELAY
#define REGFLAG_DELAY_FLAG 0xff5aa5ff
#define REGFLAG_DELAY ((REGFLAG_DELAY_FLAG>>24)&0xff),((REGFLAG_DELAY_FLAG>>16)&0xff),((REGFLAG_DELAY_FLAG>>8)&0xff),(REGFLAG_DELAY_FLAG&0xff)
#endif
#ifndef REGFLAG_CONFIRM
#define REGFLAG_CONFIRM_FLAG 0xff5bb5ff
#define REGFLAG_CONFIRM ((REGFLAG_CONFIRM_FLAG>>24)&0xff),((REGFLAG_CONFIRM_FLAG>>16)&0xff),((REGFLAG_CONFIRM_FLAG>>8)&0xff),(REGFLAG_CONFIRM_FLAG&0xff)
#endif
// 区分屏幕初始化代码开始和结束的标志
#define BEGIN_FLAG 0x12345678
#define END_FLAG 0x87654321
#define _BEGIN_ ((BEGIN_FLAG>>24)&0xff),((BEGIN_FLAG>>16)&0xff),((BEGIN_FLAG>>8)&0xff),(BEGIN_FLAG&0xff)
#define _END_ ((END_FLAG>>24)&0xff),((END_FLAG>>16)&0xff),((END_FLAG>>8)&0xff),(END_FLAG&0xff)
// 初始化代码结构体
struct lcd_cmd {
u8 addr; // 地址
u8 param_cnt; // 参数个数
u8 param[64]; // 参数
};
/* 定义初始化数据结构体 */
typedef struct {
u8 cmd; // 地址
u8 cnt; // 数据个数
u8 dat[64]; // 数据
} InitCode;
struct spi_lcd_init {
char *name; // 名称
u8 spi_pending;
u8 soft_spi;
u16 lcd_width;
u16 lcd_height;
u8 color_format;
u8 interface;
u8 column_addr_align;
u8 row_addr_align;
u8 backlight_status;
u8 *dispbuf;
u32 bufsize;
InitCode *initcode; // 初始化代码
u16 initcode_cnt; // 初始化代码条数
void (*Init)(void);
void (*WriteComm)(u16 cmd); // 写命令
void (*WriteData)(u16 dat); // 写数据
void (*WriteMap)(char *map, int size); // 写整个buf
void (*WritePAGE)(char *map, u8 page_star, u8 page_len); // 写page
void (*SetDrawArea)(int, int, int, int);
void (*Reset)(void);
void (*BackLightCtrl)(u8);
void (*EnterSleep)();
void (*ExitSleep)();
};
struct lcd_drive {
char *logo;
u8 column_addr_align;
u8 row_addr_align;
// 初始化寄存器
u8 *lcd_cmd;
int cmd_cnt;
//显存
u8 *lcd_buf;
u8 *lcd_dbuf[2];
u8 lcd_dbuf_index;
u8 lcd_buf_num;
u32 lcd_buf_size;
u8 lcd_busy;
u8 lcd_exit;
u8 lcd_enter;
u8 lcd_switch_mode;
// 显示形状描述
u16 radius; // 圆角半径
u32 fill_argb; // 不显示区域填充色
// 配置参数
void *param;
// 应用层函数
void (*reset)(void); /* 复位函数 */
int (*backlight_ctrl)(u8);
int (*power_ctrl)(u8);
void (*entersleep)(void);
void (*exitsleep)(void);
u32(*read_id)(void);
u32 lcd_id; //屏幕id
};
#define REGISTER_LCD_DEVICE(lcd) \
struct lcd_drive lcd sec(.lcd_device_info) __attribute__((used))
extern struct lcd_drive lcd_device_begin[];
extern struct lcd_drive lcd_device_end[];
struct lcd_platform_data {
u32 pin_reset;
u32 pin_cs;
u32 pin_dc;
u32 pin_en;
u32 pin_en_ex;
u32 pin_bl;
u32 pin_te;
};
// LCD 初始化接口
#define REGISTER_LCD_DRIVE() \
const struct spi_lcd_init dev_drive
enum LCD_COLOR {
LCD_COLOR_RGB888,
LCD_COLOR_RGB565,
LCD_COLOR_MONO,
};
enum LCD_IF {
LCD_SPI,
LCD_MCU,
LCD_RGB,
LCD_EMI,
};
struct lcd_info {
u16 width;
u16 height;
u16 stride;
u16 radius;
u32 fill_argb;
u8 fps;
u8 color_format;
u8 interface;
u8 col_align;
u8 row_align;
u8 buf_num;
u8 bl_status;
u8 *buffer;
int buffer_size;
};
struct lcd_interface {
void (*init)(void *);
void (*get_screen_info)(struct lcd_info *info);
void (*buffer_malloc)(u8 **buf, u32 *size);
void (*buffer_free)(u8 *buf);
void (*draw)(u8 *buf, int xstart, int xend, int ystart, int yend);
void (*draw_continue)(u8 *buf, int xstart, int xend, int ystart, int yend);
void (*set_draw_area)(u16 xs, u16 xe, u16 ys, u16 ye);
void (*clear_screen)(u32 color, int xstart, int xend, int ystart, int yend);
int (*backlight_ctrl)(u8 on);
int (*power_ctrl)(u8 on);
void (*draw_page)(u8 *buf, u8 page_star, u8 page_len);//刷新页(点阵屏)
};
extern struct lcd_interface lcd_interface_begin[];
extern struct lcd_interface lcd_interface_end[];
#define REGISTER_LCD_INTERFACE(lcd) \
static const struct lcd_interface lcd sec(.lcd_if_info) __attribute__((used))
struct lcd_interface *lcd_get_hdl();
#define LCD_SPI_PLATFORM_DATA_BEGIN(data) \
const struct lcd_platform_data data = {
#define LCD_SPI_PLATFORM_DATA_END() \
};
extern struct pwm_platform_data lcd_pwm_p_data;
void lcd_reset_l();
void lcd_reset_h();
void lcd_cs_l();
void lcd_cs_h();
void lcd_rs_l();
void lcd_rs_h();
void lcd_bl_l();
void lcd_bl_h();
u8 lcd_bl_io();
void lcd_bl_ctrl(u8 val);
void lcd_en_ctrl(u8 val);
int lcd_backlight_status();
int lcd_sleep_status();
int lcd_drv_backlight_ctrl(u8 percent);
int lcd_drv_power_ctrl(u8 on);
void lcd_drv_cmd_list(u8 *cmd_list, int cmd_cnt);
// 两毫秒延时
extern void delay_2ms(int cnt);
#endif
+478
View File
@@ -0,0 +1,478 @@
#ifndef TEXT_MATRIX
#define TEXT_MATRIX
#include "typedef.h"
struct matrix {
u16 code;
u8 width;
u8 height;
u16 offset;
};
static const u8 osd_str_matrix[] __attribute__((aligned(64))) = {
// ' '(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '0'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x06,0x20,
0x0c,0x30,0x18,0x18,0x18,0x18,0x18,0x08,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,
0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x18,0x08,0x18,0x18,
0x18,0x18,0x0c,0x30,0x06,0x20,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '1'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,
0x1f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x03,0xc0,0x1f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '2'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x08,0x38,
0x10,0x18,0x20,0x0c,0x20,0x0c,0x30,0x0c,0x30,0x0c,0x00,0x0c,0x00,0x18,0x00,0x18,
0x00,0x30,0x00,0x60,0x00,0xc0,0x01,0x80,0x03,0x00,0x02,0x00,0x04,0x04,0x08,0x04,
0x10,0x04,0x20,0x0c,0x3f,0xf8,0x3f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '3'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xc0,0x18,0x60,
0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x60,
0x03,0xc0,0x00,0x70,0x00,0x18,0x00,0x08,0x00,0x0c,0x00,0x0c,0x30,0x0c,0x30,0x0c,
0x30,0x08,0x30,0x18,0x18,0x30,0x07,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '4'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,
0x00,0xe0,0x00,0xe0,0x01,0x60,0x01,0x60,0x02,0x60,0x04,0x60,0x04,0x60,0x08,0x60,
0x08,0x60,0x10,0x60,0x30,0x60,0x20,0x60,0x40,0x60,0x7f,0xfc,0x00,0x60,0x00,0x60,
0x00,0x60,0x00,0x60,0x00,0x60,0x03,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '5'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xfc,0x0f,0xfc,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x13,0xe0,0x14,0x30,
0x18,0x18,0x10,0x08,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x30,0x0c,0x30,0x0c,
0x20,0x18,0x20,0x18,0x18,0x30,0x07,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '6'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x06,0x18,
0x0c,0x18,0x08,0x18,0x18,0x00,0x10,0x00,0x10,0x00,0x30,0x00,0x33,0xe0,0x36,0x30,
0x38,0x18,0x38,0x08,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x18,0x0c,
0x18,0x08,0x0c,0x18,0x0e,0x30,0x03,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '7'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xfc,0x1f,0xfc,
0x10,0x08,0x30,0x10,0x20,0x10,0x20,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,
0x00,0x80,0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x03,0x00,
0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '8'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x0c,0x30,
0x18,0x18,0x30,0x0c,0x30,0x0c,0x30,0x0c,0x38,0x0c,0x38,0x08,0x1e,0x18,0x0f,0x20,
0x07,0xc0,0x18,0xf0,0x30,0x78,0x30,0x38,0x60,0x1c,0x60,0x0c,0x60,0x0c,0x60,0x0c,
0x60,0x0c,0x30,0x18,0x18,0x30,0x07,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '9'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xc0,0x18,0x20,
0x30,0x10,0x30,0x18,0x60,0x08,0x60,0x0c,0x60,0x0c,0x60,0x0c,0x60,0x0c,0x60,0x0c,
0x70,0x1c,0x30,0x2c,0x18,0x6c,0x0f,0x8c,0x00,0x0c,0x00,0x18,0x00,0x18,0x00,0x10,
0x30,0x30,0x30,0x60,0x30,0xc0,0x0f,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '%'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x10,0x6c,0x10,
0x44,0x20,0xc6,0x20,0xc6,0x40,0xc6,0x40,0xc6,0x40,0xc6,0x80,0xc6,0x80,0x44,0x80,
0x6d,0x38,0x39,0x6c,0x02,0x44,0x02,0xc6,0x02,0xc6,0x04,0xc6,0x04,0xc6,0x08,0xc6,
0x08,0xc6,0x08,0x44,0x10,0x6c,0x10,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '升'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x03,0xc6,0x00,
0x00,0x0f,0xc6,0x00,0x00,0xf8,0x06,0x00,0x1f,0x10,0x06,0x00,0x00,0x10,0x06,0x00,
0x00,0x10,0x06,0x00,0x00,0x10,0x06,0x00,0x00,0x10,0x06,0x00,0x00,0x10,0x06,0x00,
0x00,0x10,0x06,0x00,0x00,0x10,0x06,0x18,0x3f,0xff,0xff,0xfc,0x00,0x10,0x06,0x00,
0x00,0x10,0x06,0x00,0x00,0x30,0x06,0x00,0x00,0x30,0x06,0x00,0x00,0x30,0x06,0x00,
0x00,0x30,0x06,0x00,0x00,0x20,0x06,0x00,0x00,0x60,0x06,0x00,0x00,0x60,0x06,0x00,
0x00,0xc0,0x06,0x00,0x00,0x80,0x06,0x00,0x01,0x80,0x06,0x00,0x03,0x00,0x06,0x00,
0x04,0x00,0x06,0x00,0x18,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
// '级'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0xe0,0x00,0x00,
0x01,0x80,0x00,0x40,0x01,0x87,0xff,0xe0,0x03,0x00,0x40,0xe0,0x02,0x00,0x40,0xc0,
0x06,0x08,0x41,0x80,0x04,0x1c,0x41,0x80,0x08,0x18,0xc3,0x00,0x10,0x30,0xc3,0x00,
0x3f,0xe0,0xc6,0x10,0x3c,0x40,0xcf,0xf8,0x00,0xc0,0xc4,0x30,0x01,0x80,0xe0,0x20,
0x03,0x00,0xe0,0x60,0x02,0x00,0xa0,0x60,0x04,0x00,0x90,0x40,0x08,0x79,0x90,0xc0,
0x3f,0x81,0x98,0xc0,0x1c,0x01,0x09,0x80,0x10,0x03,0x0d,0x80,0x00,0x03,0x07,0x00,
0x00,0x32,0x07,0x00,0x01,0xc4,0x0f,0x80,0x1f,0x0c,0x19,0xc0,0x3c,0x18,0x30,0xe0,
0x10,0x20,0x60,0x7c,0x00,0x41,0x80,0x30,0x00,0x86,0x00,0x00,0x00,0x00,0x00,0x00,
// '中'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x08,0x01,0x80,0x20,0x0f,0xff,0xff,0xf0,0x0c,0x01,0x80,0x20,0x0c,0x01,0x80,0x20,
0x0c,0x01,0x80,0x20,0x0c,0x01,0x80,0x20,0x0c,0x01,0x80,0x20,0x0c,0x01,0x80,0x20,
0x0c,0x01,0x80,0x20,0x0c,0x01,0x80,0x20,0x0f,0xff,0xff,0xe0,0x0c,0x01,0x80,0x20,
0x0c,0x01,0x80,0x30,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
// '完'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x04,0x00,0x80,0x10,0x07,0xff,0xff,0xf8,
0x0c,0x00,0x00,0x38,0x0c,0x00,0x00,0x20,0x1c,0x00,0x00,0x40,0x00,0x00,0x06,0x00,
0x03,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x1f,0xff,0xff,0xf0,0x00,0x18,0x60,0x00,0x00,0x18,0x60,0x00,
0x00,0x18,0x60,0x00,0x00,0x10,0x60,0x00,0x00,0x30,0x60,0x08,0x00,0x30,0x60,0x08,
0x00,0x30,0x60,0x08,0x00,0x60,0x60,0x08,0x00,0xc0,0x60,0x08,0x01,0x80,0x20,0x08,
0x03,0x00,0x3f,0xfc,0x0c,0x00,0x1f,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '毕'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x60,0x00,
0x03,0x00,0x60,0x00,0x03,0x00,0x60,0x60,0x03,0x00,0x60,0xf0,0x03,0x04,0x63,0x80,
0x03,0xfe,0x6e,0x00,0x03,0x00,0x70,0x00,0x03,0x00,0x60,0x00,0x03,0x00,0x60,0x10,
0x03,0x00,0x60,0x10,0x03,0x02,0x60,0x10,0x03,0x1c,0x60,0x10,0x03,0xe0,0x7f,0xf8,
0x07,0x80,0x7f,0xf0,0x03,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x10,
0x00,0x01,0x80,0x38,0x3f,0xff,0xff,0xfc,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
// '进'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x04,0x01,0xc3,0x80,
0x06,0x01,0x83,0x00,0x03,0x01,0x83,0x00,0x01,0x81,0x83,0x00,0x01,0x01,0x83,0x30,
0x00,0x3f,0xff,0xf8,0x00,0x01,0x83,0x00,0x00,0x01,0x83,0x00,0x00,0x01,0x83,0x00,
0x01,0x01,0x83,0x00,0x7f,0x81,0x83,0x00,0x03,0x01,0x83,0x00,0x03,0x01,0x83,0x18,
0x03,0x3f,0xff,0xfc,0x03,0x01,0x83,0x00,0x03,0x01,0x83,0x00,0x03,0x01,0x83,0x00,
0x03,0x01,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x02,0x03,0x00,0x03,0x04,0x03,0x00,
0x03,0x08,0x03,0x00,0x04,0x90,0x03,0x00,0x18,0x60,0x02,0x00,0x30,0x38,0x00,0x02,
0x30,0x0f,0xff,0xfc,0x00,0x01,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '度'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xc0,0x00,
0x00,0x00,0xe0,0x10,0x04,0x00,0x40,0x38,0x07,0xff,0xff,0xfc,0x06,0x04,0x04,0x00,
0x06,0x07,0x07,0x00,0x06,0x06,0x06,0x00,0x06,0x06,0x06,0x30,0x07,0xff,0xff,0xf8,
0x06,0x06,0x06,0x00,0x06,0x06,0x06,0x00,0x06,0x06,0x06,0x00,0x06,0x06,0x06,0x00,
0x06,0x07,0xfe,0x00,0x06,0x06,0x06,0x00,0x04,0x00,0x01,0x00,0x04,0x3f,0xff,0x80,
0x0c,0x04,0x03,0x80,0x0c,0x02,0x07,0x00,0x0c,0x03,0x06,0x00,0x08,0x01,0x0c,0x00,
0x08,0x00,0xd8,0x00,0x18,0x00,0x70,0x00,0x10,0x00,0xf8,0x00,0x10,0x03,0x9e,0x00,
0x20,0x0e,0x07,0xf8,0x20,0x70,0x00,0xf8,0x47,0x80,0x00,0x10,0x00,0x00,0x00,0x00,
// '机'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x80,0x00,0x00,
0x01,0x81,0x01,0x00,0x01,0x81,0xff,0xc0,0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,
0x01,0x81,0x81,0x80,0x01,0x91,0x81,0x80,0x3f,0xf9,0x81,0x80,0x01,0x81,0x81,0x80,
0x03,0x81,0x81,0x80,0x03,0x81,0x81,0x80,0x03,0x81,0x81,0x80,0x03,0xf1,0x81,0x80,
0x07,0x99,0x81,0x80,0x05,0x99,0x81,0x80,0x0d,0x89,0x81,0x80,0x09,0x81,0x81,0x80,
0x09,0x81,0x81,0x80,0x11,0x81,0x01,0x80,0x11,0x83,0x01,0x80,0x21,0x83,0x01,0x88,
0x41,0x82,0x01,0x88,0x01,0x86,0x01,0x88,0x01,0x84,0x01,0x8c,0x01,0x88,0x01,0xfe,
0x01,0x90,0x01,0xfc,0x01,0xa0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '器'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x40,
0x03,0xfe,0x3f,0xe0,0x02,0x0c,0x30,0xc0,0x02,0x0c,0x30,0xc0,0x02,0x0c,0x30,0xc0,
0x02,0x0c,0x30,0xc0,0x03,0xfc,0x3f,0xc0,0x02,0x0c,0x30,0xc0,0x02,0x03,0x0c,0x00,
0x00,0x03,0x07,0x10,0x00,0x06,0x03,0x38,0x3f,0xff,0xff,0xfc,0x00,0x0c,0x20,0x00,
0x00,0x18,0x18,0x00,0x00,0x30,0x0c,0x00,0x00,0x60,0x07,0x00,0x01,0xc0,0x03,0xe0,
0x07,0x04,0x00,0xfc,0x1b,0xfe,0x7f,0xf8,0x63,0x04,0x60,0xc0,0x03,0x04,0x60,0xc0,
0x03,0x04,0x60,0xc0,0x03,0x04,0x60,0xc0,0x03,0x04,0x60,0xc0,0x03,0xfc,0x7f,0xc0,
0x03,0x04,0x60,0xc0,0x02,0x00,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '即'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x20,0x00,
0x0f,0xfe,0x3f,0xf0,0x0c,0x0c,0x30,0x30,0x0c,0x0c,0x30,0x30,0x0c,0x0c,0x30,0x30,
0x0c,0x0c,0x30,0x30,0x0f,0xfc,0x30,0x30,0x0c,0x0c,0x30,0x30,0x0c,0x0c,0x30,0x30,
0x0c,0x0c,0x30,0x30,0x0c,0x0c,0x30,0x30,0x0c,0x0c,0x30,0x30,0x0f,0xfc,0x30,0x30,
0x0c,0x0c,0x30,0x30,0x0c,0x08,0x30,0x30,0x0c,0x40,0x30,0x30,0x0c,0x20,0x30,0x30,
0x0c,0x18,0x30,0x30,0x0c,0x0c,0x30,0x30,0x0c,0x0e,0x33,0xe0,0x0c,0x3f,0x30,0xe0,
0x0d,0xc3,0x30,0x00,0x0f,0x02,0x30,0x00,0x0c,0x00,0x30,0x00,0x00,0x00,0x30,0x00,
0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
// '将'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0xc0,0x70,0x00,
0x00,0xc0,0x60,0x00,0x00,0xc0,0xc0,0x20,0x00,0xc1,0xff,0xf0,0x00,0xc1,0x00,0x60,
0x30,0xc3,0x00,0xe0,0x18,0xc6,0x80,0xc0,0x1c,0xc4,0xc1,0x80,0x0c,0xc8,0x63,0x00,
0x0c,0xd0,0x46,0x00,0x0c,0xc0,0x18,0x00,0x00,0xc0,0x31,0x80,0x00,0xc0,0xc1,0xc0,
0x00,0xc3,0x01,0x80,0x01,0xcc,0x01,0x80,0x02,0xc0,0x01,0x98,0x06,0xff,0xff,0xfc,
0x0c,0xc0,0x01,0x80,0x18,0xc1,0x01,0x80,0x70,0xc1,0x81,0x80,0x20,0xc0,0xc1,0x80,
0x00,0xc0,0xc1,0x80,0x00,0xc0,0xc1,0x80,0x00,0xc0,0x01,0x80,0x00,0xc0,0x01,0x80,
0x00,0xc0,0x3f,0x80,0x00,0xc0,0x07,0x80,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,
// '重'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x1f,0x80,
0x00,0x1f,0xf8,0x00,0x03,0xe1,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x30,
0x1f,0xff,0xff,0xf8,0x00,0x01,0x80,0x00,0x00,0x01,0x81,0x00,0x01,0xff,0xff,0xc0,
0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,0x01,0xff,0xff,0x80,
0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,0x01,0xff,0xff,0x80,
0x01,0x81,0x81,0x80,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0xc0,
0x07,0xff,0xff,0xe0,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x18,
0x3f,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '启'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x80,0x00,
0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0x01,0x00,0x80,0x40,0x01,0xff,0xff,0xe0,
0x01,0x80,0x00,0x40,0x01,0x80,0x00,0x40,0x01,0x80,0x00,0x40,0x01,0x80,0x00,0x40,
0x01,0x80,0x00,0x40,0x01,0xff,0xff,0xc0,0x01,0x80,0x00,0x40,0x01,0x80,0x00,0x00,
0x01,0x80,0x00,0x00,0x01,0x90,0x00,0x00,0x01,0x1f,0xff,0xe0,0x03,0x18,0x00,0xc0,
0x03,0x18,0x00,0xc0,0x03,0x18,0x00,0xc0,0x03,0x18,0x00,0xc0,0x02,0x18,0x00,0xc0,
0x06,0x18,0x00,0xc0,0x06,0x18,0x00,0xc0,0x04,0x18,0x00,0xc0,0x08,0x1f,0xff,0xc0,
0x18,0x18,0x00,0xc0,0x10,0x18,0x00,0xc0,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// ''(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0x00,0x00,0x00,0x0f,0x80,0x00,0x00,0x0f,0x80,0x00,0x00,0x07,0x80,0x00,0x00,
0x01,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '请'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x18,0x00,
0x06,0x00,0x18,0x00,0x07,0x00,0x18,0x10,0x03,0x1f,0xff,0xf8,0x03,0x00,0x18,0x00,
0x00,0x00,0x18,0x60,0x00,0x07,0xff,0xf0,0x00,0x00,0x18,0x00,0x02,0x00,0x18,0x00,
0x7f,0x00,0x18,0x18,0x03,0x3f,0xff,0xfc,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x40,
0x03,0x03,0xff,0xe0,0x03,0x02,0x00,0x60,0x03,0x02,0x00,0x60,0x03,0x02,0x00,0x60,
0x03,0x03,0xff,0xe0,0x03,0x12,0x00,0x60,0x03,0x22,0x00,0x60,0x03,0x43,0xff,0xe0,
0x03,0xc2,0x00,0x60,0x03,0x82,0x00,0x60,0x07,0x02,0x00,0x60,0x03,0x02,0x00,0x60,
0x00,0x02,0x0f,0xc0,0x00,0x02,0x01,0xc0,0x00,0x02,0x00,0x80,0x00,0x00,0x00,0x00,
// '不'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x38,
0x3f,0xff,0xff,0xfc,0x00,0x00,0xc0,0x00,0x00,0x01,0xc0,0x00,0x00,0x01,0x80,0x00,
0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0xc0,0x00,
0x00,0x0d,0x80,0x00,0x00,0x1d,0x8c,0x00,0x00,0x19,0x82,0x00,0x00,0x31,0x81,0x80,
0x00,0x61,0x80,0xc0,0x00,0xc1,0x80,0x60,0x01,0x81,0x80,0x70,0x03,0x01,0x80,0x38,
0x06,0x01,0x80,0x18,0x0c,0x01,0x80,0x18,0x10,0x01,0x80,0x08,0x20,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
// '要'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x30,
0x1f,0xff,0xff,0xf8,0x00,0x08,0x30,0x00,0x00,0x08,0x30,0x00,0x00,0x08,0x30,0x40,
0x03,0xff,0xff,0xe0,0x02,0x08,0x30,0xc0,0x02,0x08,0x30,0xc0,0x02,0x08,0x30,0xc0,
0x02,0x08,0x30,0xc0,0x02,0x08,0x30,0xc0,0x03,0xff,0xff,0xc0,0x02,0x08,0x00,0xc0,
0x00,0x0e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x38,0x3f,0xff,0xff,0xfc,
0x00,0x30,0x0c,0x00,0x00,0x30,0x0c,0x00,0x00,0x60,0x18,0x00,0x00,0xc0,0x30,0x00,
0x00,0x3f,0x70,0x00,0x00,0x01,0xf0,0x00,0x00,0x01,0xff,0x00,0x00,0x07,0x07,0xc0,
0x00,0x3c,0x00,0xe0,0x03,0xe0,0x00,0x70,0x3c,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
// '断'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x18,0x18,0x00,0x30,
0x1c,0x10,0x01,0xf8,0x18,0x11,0x1e,0x00,0x1a,0x11,0x90,0x00,0x19,0x93,0x10,0x00,
0x18,0x92,0x10,0x00,0x18,0xd2,0x10,0x00,0x18,0x94,0x10,0x00,0x18,0x11,0x90,0x00,
0x1f,0xff,0xd0,0x08,0x18,0x30,0x1f,0xfc,0x18,0x78,0x10,0x60,0x18,0x74,0x10,0x60,
0x18,0x52,0x10,0x60,0x18,0xd3,0x90,0x60,0x18,0x91,0x90,0x60,0x18,0x91,0x90,0x60,
0x19,0x10,0xb0,0x60,0x1a,0x10,0x30,0x60,0x1e,0x10,0x30,0x60,0x18,0x10,0x30,0x60,
0x18,0x10,0x20,0x60,0x18,0x06,0x60,0x60,0x3f,0xff,0x40,0x60,0x08,0x00,0x80,0x60,
0x00,0x01,0x00,0x60,0x00,0x02,0x00,0x60,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
// '电'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x80,0x00,
0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x04,0x03,0x00,0x80,
0x07,0xff,0xff,0xc0,0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,
0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,0x07,0xff,0xff,0xc0,0x06,0x03,0x00,0xc0,
0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0xc0,
0x06,0x03,0x00,0xc0,0x07,0xff,0xff,0xc0,0x06,0x03,0x00,0xc0,0x06,0x03,0x00,0x08,
0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x18,
0x00,0x03,0xff,0xfc,0x00,0x01,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '!'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x03,0xc0,
0x03,0xc0,0x03,0xc0,0x03,0xc0,0x03,0xc0,0x01,0xc0,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x80,0x03,0xc0,0x03,0xc0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// ':'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0xc0,0x03,0xc0,
0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x80,0x03,0xc0,0x03,0xc0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '.'(16x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x18,0x00,0x3c,0x00,0x3c,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '等'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x01,0xc0,0x0e,0x00,
0x01,0xc0,0x1c,0x00,0x03,0x83,0x18,0x08,0x03,0xff,0x9f,0xfc,0x06,0x40,0x32,0x00,
0x04,0x20,0x21,0x80,0x0c,0x30,0x41,0x80,0x18,0x30,0x81,0x80,0x20,0x10,0xc0,0x80,
0x40,0x00,0x80,0x40,0x03,0xff,0xff,0xe0,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x80,0x08,0x3f,0xff,0xff,0xfc,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,
0x00,0x00,0x06,0x18,0x0f,0xff,0xff,0xfc,0x00,0x20,0x06,0x00,0x00,0x30,0x06,0x00,
0x00,0x18,0x06,0x00,0x00,0x0c,0x06,0x00,0x00,0x0c,0x06,0x00,0x00,0x0c,0x06,0x00,
0x00,0x00,0x7e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,
// '待'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x30,0x00,0x00,0xe0,0x38,0x00,
0x01,0xc0,0x30,0x00,0x01,0x80,0x30,0x00,0x03,0x00,0x30,0x40,0x02,0x0f,0xff,0xe0,
0x06,0x00,0x30,0x00,0x0c,0x60,0x30,0x00,0x08,0xe0,0x30,0x00,0x10,0xc0,0x30,0x00,
0x21,0x80,0x30,0x18,0x01,0xbf,0xff,0xfc,0x03,0x00,0x02,0x00,0x03,0x00,0x01,0x80,
0x05,0x00,0x01,0x80,0x09,0x00,0x01,0x98,0x11,0x1f,0xff,0xfc,0x21,0x00,0x01,0x80,
0x01,0x02,0x01,0x80,0x01,0x01,0x81,0x80,0x01,0x00,0xc1,0x80,0x01,0x00,0xc1,0x80,
0x01,0x00,0x41,0x80,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x80,
0x01,0x00,0x3f,0x80,0x01,0x00,0x07,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
// '连'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x30,0x00,
0x0c,0x00,0x60,0x00,0x06,0x00,0x60,0x00,0x07,0x00,0xc0,0x30,0x03,0x3f,0xff,0xf8,
0x02,0x00,0xc0,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x03,0x1c,0x00,
0x01,0x03,0x18,0x00,0x3f,0x86,0x18,0x00,0x03,0x0e,0x18,0x40,0x03,0x1f,0xff,0xe0,
0x03,0x0c,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x18,
0x03,0x3f,0xff,0xfc,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,
0x03,0x00,0x18,0x00,0x0c,0xc0,0x18,0x00,0x18,0x60,0x18,0x00,0x30,0x1e,0x00,0x06,
0x10,0x0f,0xff,0xf8,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '接'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x80,0x30,0x00,
0x01,0x00,0x18,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x30,0x01,0x07,0xff,0xf8,
0x01,0x11,0x01,0x80,0x3f,0xf8,0x81,0x80,0x01,0x00,0xc3,0x00,0x01,0x00,0x62,0x00,
0x01,0x00,0x42,0x18,0x01,0x1f,0xff,0xfc,0x01,0x00,0x20,0x00,0x01,0x20,0x38,0x00,
0x01,0xc0,0x70,0x00,0x07,0x00,0x60,0x00,0x3d,0x00,0x60,0x08,0x39,0x3f,0xff,0xfc,
0x21,0x00,0xc1,0x80,0x01,0x01,0x81,0x80,0x01,0x01,0x03,0x00,0x01,0x03,0x03,0x00,
0x01,0x01,0xe6,0x00,0x01,0x00,0x1e,0x00,0x01,0x00,0x1b,0x80,0x01,0x00,0x30,0xe0,
0x1f,0x00,0xc0,0x78,0x07,0x07,0x00,0x18,0x00,0x78,0x00,0x08,0x00,0x00,0x00,0x00,
// '尝'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0xc0,0x00,
0x00,0x81,0x81,0x00,0x00,0xc1,0x83,0x80,0x00,0x61,0x83,0x00,0x00,0x71,0x86,0x00,
0x00,0x31,0x8c,0x00,0x04,0x21,0x88,0x08,0x07,0xff,0xff,0xfc,0x0c,0x00,0x00,0x18,
0x1c,0x00,0x00,0x30,0x38,0x00,0x00,0x20,0x10,0x00,0x03,0x00,0x01,0xff,0xff,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x70,
0x1f,0xff,0xff,0xf8,0x00,0x04,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x1c,0x00,0x00,
0x00,0x18,0x08,0x00,0x00,0x20,0x06,0x00,0x00,0x40,0x03,0x00,0x01,0x80,0x01,0x80,
0x03,0xff,0xff,0xc0,0x01,0xf0,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
// '试'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0xc0,
0x0c,0x00,0x06,0x70,0x06,0x00,0x06,0x30,0x03,0x00,0x06,0x10,0x03,0x00,0x06,0x18,
0x03,0x00,0x06,0x08,0x00,0x3f,0xff,0xfc,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,
0x00,0x00,0x06,0x00,0x01,0x00,0x06,0x00,0x7f,0x80,0x16,0x00,0x03,0x1f,0xfa,0x00,
0x03,0x01,0x82,0x00,0x03,0x01,0x83,0x00,0x03,0x01,0x83,0x00,0x03,0x01,0x83,0x00,
0x03,0x01,0x81,0x00,0x03,0x01,0x81,0x80,0x03,0x09,0x81,0x80,0x03,0x11,0x8c,0xc4,
0x03,0x21,0xf0,0xc4,0x03,0x43,0xc0,0x64,0x03,0xde,0x00,0x74,0x03,0x88,0x00,0x3c,
0x03,0x80,0x00,0x1c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
// '使'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x10,0x00,0x00,0x60,0x18,0x00,
0x00,0xc0,0x18,0x00,0x00,0xc0,0x18,0x00,0x00,0xc0,0x18,0x18,0x01,0x9f,0xff,0xfc,
0x01,0x80,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x20,0x07,0x87,0xff,0xf0,
0x05,0x04,0x18,0x20,0x0d,0x04,0x18,0x20,0x09,0x04,0x18,0x20,0x11,0x04,0x18,0x20,
0x11,0x04,0x18,0x20,0x21,0x07,0xff,0xe0,0x01,0x04,0x18,0x20,0x01,0x02,0x18,0x00,
0x01,0x01,0x18,0x00,0x01,0x01,0x10,0x00,0x01,0x00,0xb0,0x00,0x01,0x00,0xf0,0x00,
0x01,0x00,0x60,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0xdc,0x00,0x01,0x01,0x87,0x80,
0x01,0x06,0x03,0xfc,0x01,0x18,0x00,0xf8,0x00,0x60,0x00,0x10,0x00,0x00,0x00,0x00,
// '用'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x20,0x03,0xff,0xff,0xf0,
0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,
0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x03,0xff,0xff,0xe0,
0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,0x02,0x01,0x80,0x60,
0x06,0x01,0x80,0x60,0x06,0x01,0x80,0x60,0x07,0xff,0xff,0xe0,0x06,0x01,0x80,0x60,
0x06,0x01,0x80,0x60,0x06,0x01,0x80,0x60,0x04,0x01,0x80,0x60,0x04,0x01,0x80,0x60,
0x0c,0x01,0x80,0x60,0x08,0x01,0x80,0x60,0x08,0x01,0x80,0x60,0x10,0x01,0x8e,0xe0,
0x10,0x01,0x83,0xe0,0x20,0x00,0x00,0xc0,0x40,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
// '软'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xe0,0x1c,0x00,
0x01,0x80,0x18,0x00,0x01,0x80,0x18,0x00,0x01,0x82,0x10,0x00,0x3f,0xff,0x30,0x00,
0x03,0x00,0x20,0x10,0x03,0x00,0x3f,0xf8,0x02,0x00,0x60,0x18,0x06,0x60,0x40,0x30,
0x06,0x60,0x8c,0x20,0x04,0x61,0x0e,0x40,0x0c,0x61,0x0c,0x00,0x0c,0x62,0x0c,0x00,
0x0f,0xff,0x0e,0x00,0x08,0x60,0x0a,0x00,0x00,0x60,0x0a,0x00,0x00,0x60,0x1a,0x00,
0x00,0x66,0x1b,0x00,0x00,0x78,0x19,0x00,0x03,0xe0,0x31,0x00,0x3e,0x60,0x31,0x80,
0x18,0x60,0x20,0x80,0x10,0x60,0x60,0xc0,0x00,0x60,0xc0,0x60,0x00,0x61,0x80,0x70,
0x00,0x63,0x00,0x3c,0x00,0x66,0x00,0x18,0x00,0x48,0x00,0x00,0x00,0x00,0x00,0x00,
// '件'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x08,0x00,0x00,0x70,0x0e,0x00,
0x00,0xe0,0x0c,0x00,0x00,0xc3,0x0c,0x00,0x00,0xc3,0x0c,0x00,0x01,0x83,0x0c,0x00,
0x01,0x82,0x0c,0x00,0x03,0x06,0x0c,0x30,0x03,0x87,0xff,0xf8,0x07,0x84,0x0c,0x00,
0x05,0x0c,0x0c,0x00,0x0d,0x08,0x0c,0x00,0x09,0x08,0x0c,0x00,0x11,0x10,0x0c,0x00,
0x21,0x00,0x0c,0x00,0x21,0x00,0x0c,0x08,0x41,0x3f,0xff,0xfc,0x01,0x00,0x0c,0x00,
0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,
0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,
0x01,0x00,0x0c,0x00,0x01,0x00,0x0c,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
// '手'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x0f,0xc0,
0x00,0x01,0xff,0xe0,0x0f,0xff,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0xc0,0x0f,0xff,0xff,0xe0,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x18,0x7f,0xff,0xff,0xfc,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x03,0x80,0x00,
0x00,0x3f,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
// '动'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0e,0x00,
0x00,0x00,0x0c,0x00,0x00,0x0c,0x0c,0x00,0x1f,0xfe,0x0c,0x00,0x00,0x00,0x0c,0x00,
0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xff,0xfc,0x00,0x02,0x0c,0x18,
0x3f,0xff,0x0c,0x18,0x00,0x80,0x0c,0x18,0x01,0xe0,0x0c,0x18,0x01,0x80,0x0c,0x18,
0x03,0x00,0x08,0x18,0x03,0x00,0x08,0x18,0x06,0x10,0x18,0x18,0x04,0x08,0x18,0x18,
0x0c,0x0c,0x10,0x18,0x08,0x06,0x10,0x18,0x10,0x7f,0x30,0x10,0x3f,0x83,0x20,0x10,
0x38,0x02,0x60,0x10,0x00,0x00,0xc0,0x30,0x00,0x01,0x80,0x30,0x00,0x01,0x0c,0x30,
0x00,0x06,0x03,0xe0,0x00,0x08,0x01,0xe0,0x00,0x10,0x00,0x80,0x00,0x00,0x00,0x00,
// '触'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0xc0,0x03,0x00,
0x01,0x80,0x03,0x00,0x03,0x08,0x03,0x00,0x03,0xfc,0x03,0x00,0x02,0x18,0x03,0x00,
0x06,0x10,0x03,0x00,0x0c,0x20,0x03,0x00,0x08,0x24,0x7f,0xf8,0x1f,0xfe,0x63,0x18,
0x2c,0x46,0x63,0x18,0x4c,0x46,0x63,0x18,0x0c,0x46,0x63,0x18,0x0f,0xfe,0x63,0x18,
0x0c,0x46,0x63,0x18,0x0c,0x46,0x63,0x18,0x0c,0x46,0x63,0x18,0x0c,0x46,0x7f,0xf8,
0x0f,0xfe,0x63,0x18,0x0c,0x46,0x03,0x00,0x0c,0x46,0x03,0x00,0x08,0x46,0x03,0x20,
0x08,0x46,0x03,0x10,0x08,0x46,0x03,0x18,0x10,0x46,0x03,0xfc,0x10,0x47,0xff,0x0c,
0x20,0x66,0xe0,0x04,0x20,0x1c,0x80,0x00,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
// '发'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x08,0x00,
0x03,0x06,0x06,0x00,0x03,0x04,0x03,0x00,0x03,0x0c,0x03,0x80,0x06,0x0c,0x01,0x80,
0x06,0x0c,0x00,0x80,0x0c,0x0c,0x00,0x18,0x1f,0xff,0xff,0xfc,0x08,0x08,0x00,0x00,
0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x80,0x00,0x3f,0xff,0xc0,
0x00,0x34,0x01,0x80,0x00,0x32,0x03,0x80,0x00,0x62,0x03,0x00,0x00,0x61,0x06,0x00,
0x00,0x41,0x86,0x00,0x00,0xc0,0xcc,0x00,0x00,0x80,0x58,0x00,0x01,0x80,0x70,0x00,
0x03,0x00,0x78,0x00,0x02,0x00,0xfc,0x00,0x04,0x01,0x8f,0x00,0x08,0x07,0x03,0xc0,
0x10,0x0c,0x01,0xfc,0x20,0x70,0x00,0x78,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
// '地'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,
0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x02,0x18,0x00,0x03,0x03,0x18,0x00,
0x03,0x03,0x18,0x00,0x03,0x03,0x18,0x20,0x03,0x03,0x18,0xf0,0x03,0x03,0x1f,0x60,
0x03,0x23,0x18,0x60,0x3f,0xf3,0xf8,0x60,0x03,0x07,0x18,0x60,0x03,0x1b,0x18,0x60,
0x03,0x23,0x18,0x60,0x03,0x03,0x18,0x60,0x03,0x03,0x18,0x60,0x03,0x03,0x18,0x60,
0x03,0x03,0x18,0x60,0x03,0x03,0x19,0xe0,0x03,0x03,0x18,0xc8,0x03,0x1b,0x18,0x08,
0x03,0xe3,0x18,0x08,0x07,0x83,0x00,0x08,0x3e,0x03,0x00,0x08,0x38,0x03,0x00,0x0c,
0x20,0x03,0xff,0xfc,0x00,0x01,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '址'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x03,0x80,0x0e,0x00,
0x03,0x00,0x0c,0x00,0x03,0x00,0x0c,0x00,0x03,0x00,0x0c,0x00,0x03,0x00,0x0c,0x00,
0x03,0x00,0x0c,0x00,0x03,0x00,0x0c,0x00,0x03,0x03,0x0c,0x00,0x03,0x13,0x8c,0x00,
0x3f,0xfb,0x0c,0x00,0x03,0x03,0x0c,0x18,0x03,0x03,0x0f,0xfc,0x03,0x03,0x0c,0x00,
0x03,0x03,0x0c,0x00,0x03,0x03,0x0c,0x00,0x03,0x03,0x0c,0x00,0x03,0x03,0x0c,0x00,
0x03,0x03,0x0c,0x00,0x03,0x03,0x0c,0x00,0x03,0x0b,0x0c,0x00,0x03,0x73,0x0c,0x00,
0x03,0x83,0x0c,0x00,0x1e,0x03,0x0c,0x00,0x38,0x03,0x0c,0x00,0x30,0x03,0x0c,0x18,
0x00,0x7f,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '强'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x20,
0x00,0x21,0xff,0xf0,0x3f,0xf1,0x80,0x60,0x00,0x21,0x80,0x60,0x00,0x21,0x80,0x60,
0x00,0x21,0x80,0x60,0x00,0x21,0xff,0xe0,0x00,0x21,0x88,0x60,0x00,0x21,0x0e,0x00,
0x0f,0xe0,0x0c,0x00,0x08,0x20,0x0c,0x00,0x08,0x02,0x0c,0x10,0x08,0x03,0xff,0xf8,
0x18,0x03,0x0c,0x10,0x18,0x23,0x0c,0x10,0x1f,0xf3,0x0c,0x10,0x10,0x63,0x0c,0x10,
0x00,0x63,0x0c,0x10,0x00,0x63,0xff,0xf0,0x00,0x63,0x0c,0x10,0x00,0x62,0x0c,0x00,
0x00,0x60,0x0c,0x20,0x00,0x40,0x0c,0x30,0x00,0xc0,0x0c,0x18,0x00,0xc0,0x0c,0x7c,
0x0f,0x8f,0xff,0x8c,0x07,0x8f,0x80,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// '制'(32x32)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x10,0x00,0x30,0x00,0x18,
0x00,0x20,0x00,0x10,0x06,0x20,0x00,0x10,0x0c,0x20,0x00,0x10,0x0c,0x21,0x06,0x10,
0x0f,0xff,0x86,0x10,0x08,0x20,0x06,0x10,0x10,0x20,0x06,0x10,0x10,0x20,0x06,0x10,
0x20,0x20,0xc6,0x10,0x3f,0xff,0xe6,0x10,0x00,0x20,0x06,0x10,0x00,0x20,0x06,0x10,
0x00,0x20,0x86,0x10,0x0f,0xff,0xc6,0x10,0x08,0x21,0x86,0x10,0x08,0x21,0x86,0x10,
0x08,0x21,0x86,0x10,0x08,0x21,0x86,0x10,0x08,0x21,0x86,0x10,0x08,0x21,0x80,0x10,
0x08,0x21,0x80,0x10,0x08,0x27,0x80,0x10,0x08,0x23,0x00,0x10,0x00,0x20,0x00,0x10,
0x00,0x20,0x03,0xf0,0x00,0x20,0x00,0x70,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,
};
// 0123456789%升级中完毕进度机器即将重启,请不要断电!:.等待连接尝试使用软件手动触发地址强制
static const struct matrix text_matrix[] = {
{0x0020,0x10,0x20,0x0000},//' '
{0x0030,0x10,0x20,0x0040},//'0'
{0x0031,0x10,0x20,0x0080},//'1'
{0x0032,0x10,0x20,0x00c0},//'2'
{0x0033,0x10,0x20,0x0100},//'3'
{0x0034,0x10,0x20,0x0140},//'4'
{0x0035,0x10,0x20,0x0180},//'5'
{0x0036,0x10,0x20,0x01c0},//'6'
{0x0037,0x10,0x20,0x0200},//'7'
{0x0038,0x10,0x20,0x0240},//'8'
{0x0039,0x10,0x20,0x0280},//'9'
{0x0025,0x10,0x20,0x02c0},//'%'
{0xc9fd,0x20,0x20,0x0300},//'升'
{0xbcb6,0x20,0x20,0x0380},//'级'
{0xd6d0,0x20,0x20,0x0400},//'中'
{0xcdea,0x20,0x20,0x0480},//'完'
{0xb1cf,0x20,0x20,0x0500},//'毕'
{0xbdf8,0x20,0x20,0x0580},//'进'
{0xb6c8,0x20,0x20,0x0600},//'度'
{0xbbfa,0x20,0x20,0x0680},//'机'
{0xc6f7,0x20,0x20,0x0700},//'器'
{0xbcb4,0x20,0x20,0x0780},//'即'
{0xbdab,0x20,0x20,0x0800},//'将'
{0xd6d8,0x20,0x20,0x0880},//'重'
{0xc6f4,0x20,0x20,0x0900},//'启'
{0xa3ac,0x20,0x20,0x0980},//''
{0xc7eb,0x20,0x20,0x0a00},//'请'
{0xb2bb,0x20,0x20,0x0a80},//'不'
{0xd2aa,0x20,0x20,0x0b00},//'要'
{0xb6cf,0x20,0x20,0x0b80},//'断'
{0xb5e7,0x20,0x20,0x0c00},//'电'
{0x0021,0x10,0x20,0x0c80},//'!'
{0x003a,0x10,0x20,0x0cc0},//':'
{0x002e,0x10,0x20,0x0d00},//'.'
{0xb5c8,0x20,0x20,0x0d40},//'等'
{0xb4fd,0x20,0x20,0x0dc0},//'待'
{0xc1ac,0x20,0x20,0x0e40},//'连'
{0xbdd3,0x20,0x20,0x0ec0},//'接'
{0xb3a2,0x20,0x20,0x0f40},//'尝'
{0xcad4,0x20,0x20,0x0fc0},//'试'
{0xcab9,0x20,0x20,0x1040},//'使'
{0xd3c3,0x20,0x20,0x10c0},//'用'
{0xc8ed,0x20,0x20,0x1140},//'软'
{0xbcfe,0x20,0x20,0x11c0},//'件'
{0xcad6,0x20,0x20,0x1240},//'手'
{0xb6af,0x20,0x20,0x12c0},//'动'
{0xb4a5,0x20,0x20,0x1340},//'触'
{0xb7a2,0x20,0x20,0x13c0},//'发'
{0xb5d8,0x20,0x20,0x1440},//'地'
{0xd6b7,0x20,0x20,0x14c0},//'址'
{0xc7bf,0x20,0x20,0x1540},//'强'
{0xd6c6,0x20,0x20,0x15c0},//'制'
};
#endif
+19
View File
@@ -0,0 +1,19 @@
#ifndef _UI_API_H_
#define _UI_API_H_
enum ui_devices_type {
LED_7,
LCD_SEG3X9,
TFT_LCD,//彩屏
DOT_LCD,//点阵屏
};
//板级配置数据结构
struct ui_devices_cfg {
enum ui_devices_type type;
void *private_data;
};
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef __BASIC_H__
#define __BASIC_H__
#include "typedef.h"
void _memset(void *dst, u8 v, u32 len);
void _memset_ff(void *dst, u32 len);
void _memset_00(void *dst, u32 len);
#define ALIGN_MASK 0x3
#endif
+85
View File
@@ -0,0 +1,85 @@
#ifndef __DRAW_ARC_H__
#define __DRAW_ARC_H__
#include "typedef.h"
#include "ui/ui_mask.h"
#include "ui/ui_basic.h"
#define COLOR_16_SWAP 0
typedef union {
struct {
#if COLOR_16_SWAP == 0
u16 blue : 5;
u16 green : 6;
u16 red : 5;
#else
u16 green_h : 3;
u16 red : 5;
u16 blue : 5;
u16 green_l : 3;
#endif
} ch;
u16 full;
} color16_t;
typedef color16_t color_t;
enum {
BORDER_SIDE_NONE = 0x00,
BORDER_SIDE_BOTTOM = 0x01,
BORDER_SIDE_TOP = 0x02,
BORDER_SIDE_LEFT = 0x04,
BORDER_SIDE_RIGHT = 0x08,
BORDER_SIDE_FULL = 0x0F,
BORDER_SIDE_INTERNAL = 0x10,
_BORDER_SIDE_LAST
};
enum {
OPA_TRANSP = 0,
OPA_COVER = 255,
};
#define RADIUS_CIRCLE (0x7FFF)
#define COLOR_BLACK 0x0000
#define SPLIT_RADIUS_LIMIT 10
#define SPLIT_ANGLE_GAP_LIMIT 60
typedef struct {
int radius;
color_t bg_color;
u8 bg_opa;
color_t border_color;
int border_width;
int border_side;
u8 border_opa;
} draw_rect_dsc_t;
typedef struct {
color_t color;
int width;
u8 opa;
u8 round_start : 1;
u8 round_end : 1;
} draw_line_dsc_t;
typedef struct {
int center_x;
int center_y;
int radius;
u16 start_angle;
u16 end_angle;
u16 start_quarter;
u16 end_quarter;
int width;
draw_rect_dsc_t *draw_dsc;
const area_t *draw_area;
const area_t *clip_area;
} quarter_draw_dsc_t;
#endif
+143
View File
@@ -0,0 +1,143 @@
#ifndef __MASK_H__
#define __MASK_H__
#include "typedef.h"
#include "ui/ui_type.h"
#include "ui/ui_math.h"
typedef u8(*mask_cb)(u8 *mask_buf, int abs_x, int abs_y, int len, void *p);
typedef struct {
void *param;
void *custom_id;
} _mask_saved_t;
#define MASK_ID_INV (-1)
#define _MASK_MAX_NUM 16
typedef _mask_saved_t _mask_saved_arr_t[_MASK_MAX_NUM];
enum {
MASK_TYPE_LINE,
MASK_TYPE_ANGLE,
MASK_TYPE_RADIUS,
MASK_TYPE_FADE,
MASK_TYPE_MAP,
};
enum {
MASK_LINE_SIDE_LEFT = 0,
MASK_LINE_SIDE_RIGHT,
MASK_LINE_SIDE_TOP,
MASK_LINE_SIDE_BOTTOM,
};
enum {
MASK_RES_TRANSP,
MASK_RES_FULL_COVER,
MASK_RES_CHANGED,
MASK_RES_UNKNOWN
};
typedef struct {
mask_cb cb;
u8 type;
} mask_common_dsc_t;
typedef struct {
mask_common_dsc_t dsc;
struct {
area_t rect;
int radius;
u8 outer: 1;
} cfg;
int y_prev;
sqrt_res_t y_prev_x;
} mask_radius_param_t;
typedef struct {
mask_common_dsc_t dsc;
struct {
point_t p1;
point_t p2;
u8 side : 2;
} cfg;
point_t origo;
int xy_steep;
int yx_steep;
int steep;
int spx;
u8 flat : 1;
u8 inv: 1;
} mask_line_param_t;
typedef struct {
mask_common_dsc_t dsc;
struct {
point_t vertex_p;
int start_angle;
int end_angle;
} cfg;
mask_line_param_t start_line;
mask_line_param_t end_line;
u16 delta_deg;
} mask_angle_param_t;
void mask_angle_init(mask_angle_param_t *param, int vertex_x, int vertex_y, int start_angle, int end_angle);
void mask_radius_init(mask_radius_param_t *param, const area_t *rect, int radius, bool inv);
void mask_line_points_init(mask_line_param_t *param, int p1x, int p1y, int p2x, int p2y, u8 side);
void mask_line_angle_init(mask_line_param_t *param, int p1x, int py, int angle, u8 side);
u8 mask_get_cnt(void);
int mask_add(void *param, void *custom_id);
void *mask_remove_id(int id);
u8 mask_apply(u8 *mask_buf, int abs_x, int abs_y, int len);
#define OPA_MIN 2
#define OPA_MAX 253
#define MATH_UDIV255(x) ((u32)((u32) (x) * 0x8081) >> 0x17)
static inline u8 mask_mix(u8 mask_act, u8 mask_new)
{
if (mask_new >= OPA_MAX) {
return mask_act;
}
if (mask_new <= OPA_MIN) {
return 0;
}
return MATH_UDIV255(mask_act * mask_new);// >> 8);
}
static inline void *_memcpy_small(void *dst, const void *src, u32 len)
{
u8 *d8 = (u8 *)dst;
const u8 *s8 = (const u8 *)src;
while (len) {
*d8 = *s8;
d8++;
s8++;
len--;
}
return dst;
}
inline static void area_copy(area_t *dest, const area_t *src)
{
_memcpy_small(dest, src, sizeof(area_t));
}
static inline int area_get_width(const area_t *area_p)
{
return (int)(area_p->x2 - area_p->x1 + 1);
}
static inline int area_get_height(const area_t *area_p)
{
return (int)(area_p->y2 - area_p->y1 + 1);
}
#endif
+35
View File
@@ -0,0 +1,35 @@
#ifndef __MATH_H__
#define __MATH_H__
#include "typedef.h"
typedef struct {
u16 i;
u16 f;
} sqrt_res_t;
#define MATH_MIN(a, b) ((a) < (b) ? (a) : (b))
#define MATH_MAX(a, b) ((a) > (b) ? (a) : (b))
#define MATH_ABS(x) ((x) > 0 ? (x) : (-(x)))
#define TRIGO_SHIFT 15
int _trigo_sin(int angle);
void _sqrt(u32 x, sqrt_res_t *q, u32 mask);
static inline void sqrt_approx(sqrt_res_t *q, sqrt_res_t *ref, u32 x)
{
x = x << 8;
u32 raw = (ref->i << 4) + (ref->f >> 4);
u32 raw2 = raw * raw;
int d = x - raw2;
d = (int)d / (int)(2 * raw) + raw;
q->i = d >> 4;
q->f = (d & 0xF) << 4;
}
#endif
+32
View File
@@ -0,0 +1,32 @@
#ifndef __TYPE_H__
#define __TYPE_H__
#include "typedef.h"
#define INT32_MAX 2147483647
#define INT32_MIN (-INT32_MAX - 1)
struct rect {
int left;
int top;
int width;
int height;
};
typedef struct {
int x1;
int y1;
int x2;
int y2;
} area_t;
typedef struct {
int x;
int y;
} point_t;
#define AT_UI_SIM_RAM //AT(.volatile_ram_code)
#endif