This repository has been archived on 2025-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
controller-hd/User/lib/font/font.h

344 lines
8.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/***
* @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