344 lines
8.4 KiB
C
344 lines
8.4 KiB
C
/***
|
||
* @Author:
|
||
* @Date: 2023-06-25 20:35:26
|
||
* @LastEditors: xxx
|
||
* @LastEditTime: 2023-06-25 20:37:04
|
||
* @Description:LCD字库
|
||
* @email:
|
||
* @Copyright (c) 2023 by xxx, All Rights Reserved.
|
||
*/
|
||
#ifndef __FONT_H__
|
||
#define __FONT_H__
|
||
#include "lib.h"
|
||
#include "font_hz.h"
|
||
|
||
#ifndef __FONT_EXT__
|
||
#define FONT_EXT extern
|
||
#else /* __FONT_EXT__ */
|
||
#define FONT_EXT
|
||
#endif /* __FONT_EXT__ */
|
||
|
||
#define _ASCII88_
|
||
#define _ASCII816_
|
||
|
||
// #define _SPC0816_
|
||
// #define _SPC1216_
|
||
// #define _SPC1416_
|
||
// #define _SPC1516_
|
||
// #define _SPC1616_
|
||
|
||
// #define _HZ1216_
|
||
// #define _HZ1416_
|
||
// #define _HZ1516_
|
||
// #define _HZ1616_
|
||
|
||
/* ASCII字符顺序
|
||
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
|
||
*/
|
||
#define _CHAR_1 0 // 空格
|
||
#define _CHAR_2 1 // !
|
||
#define _CHAR_3 2 // "
|
||
#define _CHAR_4 3 // #
|
||
#define _CHAR_5 4 // $
|
||
#define _CHAR_6 5 // %
|
||
#define _CHAR_7 6 // &
|
||
#define _CHAR_8 7 // '
|
||
#define _CHAR_9 8 // (
|
||
#define _CHAR_10 9 // )
|
||
#define _CHAR_11 10 // *
|
||
#define _CHAR_12 11 // +
|
||
#define _CHAR_13 12 // ,
|
||
#define _CHAR_14 13 // -
|
||
#define _CHAR_15 14 // .
|
||
#define _CHAR_16 15 // /
|
||
#define _CHAR_17 16 // 0
|
||
#define _CHAR_18 17 // 1
|
||
#define _CHAR_19 18 // 2
|
||
#define _CHAR_20 19 // 3
|
||
#define _CHAR_21 20 // 4
|
||
#define _CHAR_22 21 // 5
|
||
#define _CHAR_23 22 // 6
|
||
#define _CHAR_24 23 // 7
|
||
#define _CHAR_25 24 // 8
|
||
#define _CHAR_26 25 // 9
|
||
#define _CHAR_27 26 // :
|
||
#define _CHAR_28 27 // ;
|
||
#define _CHAR_29 28 // <
|
||
#define _CHAR_30 29 // =
|
||
#define _CHAR_31 30 // >
|
||
#define _CHAR_32 31 // ?
|
||
#define _CHAR_33 32 // @
|
||
#define _CHAR_34 33 // A
|
||
#define _CHAR_35 34 // B
|
||
#define _CHAR_36 35 // C
|
||
#define _CHAR_37 36 // D
|
||
#define _CHAR_38 37 // E
|
||
#define _CHAR_39 38 // F
|
||
#define _CHAR_40 39 // G
|
||
#define _CHAR_41 40 // H
|
||
#define _CHAR_42 41 // I
|
||
#define _CHAR_43 42 // J
|
||
#define _CHAR_44 43 // K
|
||
#define _CHAR_45 44 // L
|
||
#define _CHAR_46 45 // M
|
||
#define _CHAR_47 46 // N
|
||
#define _CHAR_48 47 // O
|
||
#define _CHAR_49 48 // P
|
||
#define _CHAR_50 49 // Q
|
||
#define _CHAR_51 50 // R
|
||
#define _CHAR_52 51 // S
|
||
#define _CHAR_53 52 // T
|
||
#define _CHAR_54 53 // U
|
||
#define _CHAR_55 54 // V
|
||
#define _CHAR_56 55 // W
|
||
#define _CHAR_57 56 // X
|
||
#define _CHAR_58 57 // Y
|
||
#define _CHAR_59 58 // Z
|
||
#define _CHAR_60 59 // [
|
||
#define _CHAR_61 60 // ‘\’
|
||
#define _CHAR_62 61 // ]
|
||
#define _CHAR_63 62 // ^
|
||
#define _CHAR_64 63 // _
|
||
#define _CHAR_65 64 // `
|
||
#define _CHAR_66 65 // a
|
||
#define _CHAR_67 66 // b
|
||
#define _CHAR_68 67 // c
|
||
#define _CHAR_69 68 // d
|
||
#define _CHAR_70 69 // e
|
||
#define _CHAR_71 70 // f
|
||
#define _CHAR_72 71 // g
|
||
#define _CHAR_73 72 // h
|
||
#define _CHAR_74 73 // i
|
||
#define _CHAR_75 74 // j
|
||
#define _CHAR_76 75 // k
|
||
#define _CHAR_77 76 // l
|
||
#define _CHAR_78 77 // m
|
||
#define _CHAR_79 78 // n
|
||
#define _CHAR_80 79 // o
|
||
#define _CHAR_81 80 // p
|
||
#define _CHAR_82 81 // q
|
||
#define _CHAR_83 82 // r
|
||
#define _CHAR_84 83 // s
|
||
#define _CHAR_85 84 // t
|
||
#define _CHAR_86 85 // u
|
||
#define _CHAR_87 86 // v
|
||
#define _CHAR_88 87 // w
|
||
#define _CHAR_89 88 // x
|
||
#define _CHAR_90 89 // y
|
||
#define _CHAR_91 90 // z
|
||
#define _CHAR_92 91 // {
|
||
#define _CHAR_93 92 // |
|
||
#define _CHAR_94 93 // }
|
||
#define _CHAR_95 94 // ~
|
||
|
||
/***************************************************************************************/
|
||
// 中文字符定义
|
||
#define HANZI_1 0 // 充
|
||
#define HANZI_2 1 // 退
|
||
#define HANZI_3 2 // 磁
|
||
#define HANZI_4 3 // 振
|
||
#define HANZI_5 4 // 荡
|
||
#define HANZI_6 5 // 电
|
||
#define HANZI_7 6 // 流
|
||
#define HANZI_8 7 // 时
|
||
#define HANZI_9 8 // 间
|
||
#define HANZI_10 9 // 上
|
||
#define HANZI_11 10 // 下
|
||
#define HANZI_12 11 // 限
|
||
#define HANZI_13 12 // 通
|
||
#define HANZI_14 13 // 道
|
||
#define HANZI_15 14 // 系
|
||
#define HANZI_16 15 // 统
|
||
#define HANZI_17 16 // 参
|
||
#define HANZI_18 17 // 数
|
||
#define HANZI_19 18 // 开
|
||
#define HANZI_20 19 // 关
|
||
#define HANZI_21 20 // 序
|
||
#define HANZI_22 21 // 号
|
||
#define HANZI_23 22 // 方
|
||
#define HANZI_24 23 // 式
|
||
#define HANZI_25 24 // 周
|
||
#define HANZI_26 25 // 期
|
||
#define HANZI_27 26 // 衰
|
||
#define HANZI_28 27 // 减
|
||
#define HANZI_29 28 // 脉
|
||
#define HANZI_30 29 // 冲
|
||
#define HANZI_31 30 // 宽
|
||
#define HANZI_32 31 // 占
|
||
#define HANZI_33 32 // 空
|
||
#define HANZI_34 33 // 比
|
||
#define HANZI_35 34 // 正
|
||
#define HANZI_36 35 // 反
|
||
#define HANZI_37 36 // 向
|
||
#define HANZI_38 37 // 幅
|
||
#define HANZI_39 38 // 值
|
||
#define HANZI_40 39 // 回
|
||
#define HANZI_41 40 // 扫
|
||
#define HANZI_42 41 // 重
|
||
#define HANZI_43 42 // 复
|
||
#define HANZI_44 43 // 次
|
||
#define HANZI_45 44 // 命
|
||
#define HANZI_46 45 // 令
|
||
#define HANZI_47 46 // 执
|
||
#define HANZI_48 47 // 行
|
||
#define HANZI_49 48 // 讯
|
||
#define HANZI_50 49 // 地
|
||
#define HANZI_51 50 // 址
|
||
#define HANZI_52 51 // 漏
|
||
#define HANZI_53 52 // 状
|
||
#define HANZI_54 53 // 态
|
||
#define HANZI_55 54 // 断
|
||
#define HANZI_56 55 // 恢
|
||
#define HANZI_57 56 // 输
|
||
#define HANZI_58 57 // 出
|
||
#define HANZI_59 58 // 极
|
||
#define HANZI_60 59 // 性
|
||
#define HANZI_61 60 // 面
|
||
#define HANZI_62 61 // 板
|
||
#define HANZI_63 62 // 按
|
||
#define HANZI_64 63 // 键
|
||
#define HANZI_65 64 // 连
|
||
#define HANZI_66 65 // 锁
|
||
#define HANZI_67 66 // 续
|
||
#define HANZI_68 67 // 操
|
||
#define HANZI_69 68 // 作
|
||
#define HANZI_70 69 // 延
|
||
#define HANZI_71 70 // 最
|
||
#define HANZI_72 71 // 大
|
||
#define HANZI_73 72 // 小
|
||
#define HANZI_74 73 // 隔
|
||
#define HANZI_75 74 // 器
|
||
#define HANZI_76 75 // 入
|
||
#define HANZI_77 76 // 压
|
||
#define HANZI_78 77 // 吸
|
||
#define HANZI_79 78 // 盘
|
||
#define HANZI_80 79 // 线
|
||
#define HANZI_81 80 // 圈
|
||
#define HANZI_82 81 // 阻
|
||
#define HANZI_83 82 // 外
|
||
#define HANZI_84 83 // 部
|
||
#define HANZI_85 84 // 接
|
||
#define HANZI_86 85 // 口
|
||
#define HANZI_87 86 // 信
|
||
#define HANZI_88 87 // 与
|
||
#define HANZI_89 88 // 定
|
||
#define HANZI_90 89 // 功
|
||
#define HANZI_91 90 // 能
|
||
#define HANZI_92 91 // 选
|
||
#define HANZI_93 92 // 择
|
||
#define HANZI_94 93 // 继
|
||
#define HANZI_95 94 // 初
|
||
#define HANZI_96 95 // 始
|
||
#define HANZI_97 96 // 分
|
||
#define HANZI_98 97 // 级
|
||
#define HANZI_99 98 // 度
|
||
#define HANZI_100 99 // 位
|
||
#define HANZI_101 100 // 强
|
||
#define HANZI_102 101 // 馈
|
||
#define HANZI_103 102 // 设
|
||
#define HANZI_104 103 // 置
|
||
#define HANZI_105 104 // 微
|
||
#define HANZI_106 105 // 调
|
||
#define HANZI_107 106 // 保
|
||
#define HANZI_108 107 // 持
|
||
#define HANZI_109 108 // 控
|
||
#define HANZI_110 109 // 制
|
||
#define HANZI_111 110 // 完
|
||
#define HANZI_112 111 // 成
|
||
#define HANZI_113 112 // 中
|
||
#define HANZI_114 113 // 失
|
||
#define HANZI_115 114 // 败
|
||
#define HANZI_116 115 // 单
|
||
#define HANZI_117 116 // 双
|
||
#define HANZI_118 117 // 不
|
||
#define HANZI_119 118 // 并
|
||
#define HANZI_120 119 // 解
|
||
#define HANZI_121 120 // 有
|
||
#define HANZI_122 121 // 无
|
||
#define HANZI_123 122 // 效
|
||
#define HANZI_124 123 // 备
|
||
#define HANZI_125 124 // 自
|
||
#define HANZI_126 125 // 检
|
||
#define HANZI_127 126 // 密
|
||
#define HANZI_128 127 // 码
|
||
#define HANZI_129 128 // 错
|
||
#define HANZI_130 129 // 误
|
||
#define HANZI_131 130 // 区
|
||
#define HANZI_132 131 // 报
|
||
#define HANZI_133 132 // 警
|
||
#define HANZI_134 133 // 闭
|
||
#define HANZI_135 134 // 合
|
||
#define HANZI_136 135 // 蜂
|
||
#define HANZI_137 136 // 鸣
|
||
#define HANZI_138 137 // 测
|
||
#define HANZI_139 138 // 档
|
||
#define HANZI_140 139 // 临
|
||
#define HANZI_141 140 // 界
|
||
#define HANZI_142 141 // 判
|
||
|
||
// 特殊字符定义
|
||
#define SPC816_1 0 // °
|
||
#define SPC1216_1 0 // ℃
|
||
|
||
/***************************************************************************************/
|
||
// 函数声明
|
||
FONT_EXT const uint8_t logo[];
|
||
|
||
#ifdef _ASCII88_
|
||
FONT_EXT const uint8_t ASCII88[][8];
|
||
#endif
|
||
|
||
#ifdef _ASCII816_
|
||
FONT_EXT const uint8_t ASCII816[][16];
|
||
#endif
|
||
|
||
#ifdef _HZ1216_
|
||
FONT_EXT const uint8_t HZB1216[][24];
|
||
#endif
|
||
|
||
#ifdef _HZ1416_
|
||
FONT_EXT const uint8_t HZB1416[][28];
|
||
#endif
|
||
|
||
#ifdef _HZ1516_
|
||
FONT_EXT const uint8_t HZB1516[][28];
|
||
#endif
|
||
|
||
#ifdef _HZ1616_
|
||
FONT_EXT const uint8_t HZB1616[][32];
|
||
#endif
|
||
|
||
#ifdef _SPC0816_
|
||
FONT_EXT const uint8_t SPCB0816[][16];
|
||
#endif
|
||
|
||
#ifdef _SPC1216_
|
||
FONT_EXT const uint8_t SPCB1216[][24];
|
||
#endif
|
||
|
||
#ifdef _SPC1416_
|
||
FONT_EXT const uint8_t SPCB1416[][28];
|
||
#endif
|
||
|
||
#ifdef _SPC1516_
|
||
FONT_EXT const uint8_t SPCB1516[][28];
|
||
#endif
|
||
|
||
#ifdef _SPC1616_
|
||
FONT_EXT const uint8_t SPCB1616[][32];
|
||
#endif
|
||
|
||
typedef struct
|
||
{
|
||
font_type_e type; // 字体类型
|
||
uint16_t width, height; // 字符宽度和高度
|
||
void *data;
|
||
uint16_t size; // 每个字符字节数
|
||
uint8_t offset; // 字符偏移
|
||
} font_t;
|
||
|
||
extern const font_t *font_list[FONT_MAX];
|
||
extern BOOL font_get_asc(font_type_e type, uint8_t *ch, uint8_t *buf); // 获取ASCII字符点阵
|
||
|
||
#endif // __FONT_H
|