SKY-20210407USB\Administrator 2 years ago
parent
commit
ff33d4d73a
15 changed files with 1084 additions and 560 deletions
  1. 0 517
      096OLED_FONT_MZ.h
  2. 1 1
      ALGO_AlgorithmBase_ATY.c
  3. 7 0
      ALGO_AlgorithmBase_ATY.h
  4. 6 6
      GP22_ATY.c
  5. 5 3
      GP22_ATY.h
  6. 98 23
      HW_I2C_ATY.c
  7. 2 1
      HW_I2C_ATY.h
  8. 1 1
      HW_TIMER_ATY.c
  9. 14 2
      MOTOR_STEP_ATY.h
  10. 4 4
      NoPublic/096OLED_I2C_MZ.h
  11. 536 0
      OLED_FONT_ATY.c
  12. 77 0
      OLED_FONT_ATY.h
  13. 252 0
      OLED_SSD1306_ATY.c
  14. 78 0
      OLED_SSD1306_ATY.h
  15. 3 2
      Web/PROG_Base.js

+ 0 - 517
096OLED_FONT_MZ.h

@@ -1,517 +0,0 @@
-#ifndef __OLEDFONT_H
-#define __OLEDFONT_H
-
-
-
-// #define YouYuan6x8
-// #define YouYuan8x16
-#define SongTi8x16
-
-#define TemHumSymbol
-
-
-const uint8_t code SysIcons[] = {
-    0x00, 0x60, 0x38, 0x0C, 0x06, 0x06, 0x03, 0x03,
-    0x03, 0x03, 0x02, 0x26, 0x6C, 0xF8, 0x60, 0x20,
-    0x04, 0x06, 0x1F, 0x36, 0x64, 0x40, 0xC0, 0xC0,
-    0xC0, 0xC0, 0x60, 0x60, 0x30, 0x1C, 0x06, 0x00,/*UpdateThin*/
-
-    0x20, 0x60, 0xF8, 0xFC, 0x6E, 0x26, 0x07, 0x03,
-    0x03, 0x07, 0x06, 0x8E, 0xDC, 0xC0, 0x80, 0x00,
-    0x00, 0x00, 0x00, 0x0E, 0x1C, 0x38, 0x30, 0x30,
-    0x30, 0x30, 0x39, 0x1D, 0x0F, 0x07, 0x01, 0x01,/*UpdateHeavy*/
-
-    0x30, 0x38, 0x98, 0xCC, 0xCC, 0x6E, 0x66, 0x76,
-    0x76, 0x66, 0x6E, 0xCC, 0xDC, 0x98, 0x38, 0x30,
-    0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x07, 0x1B,
-    0x1B, 0x07, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,/*Wifi*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-    0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x0D, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F,/*Bat!*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x90, 0x50, 0xD0,
-    0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x0A, 0x09, 0x08, 0x08, 0x08,
-    0x09, 0x0B, 0x0A, 0x09, 0x08, 0x08, 0x08, 0x0F,/*BatCharge*/
-
-    0xC0, 0xF0, 0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0,
-    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B,
-    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat4*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xD0, 0xD0,
-    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x0B, 0x0B,
-    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat3*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat2*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-    0x10, 0x10, 0x10, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x08, 0x08, 0x08, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat1*/
-
-    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-    0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0,
-    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F,/*Bat0*/
-
-};
-
-#ifdef TemHumSymbol
-uint8_t code CelsiusCharZh[32] = {
-    0x06, 0x09, 0x09, 0xE6, 0xF8, 0x0C, 0x04, 0x02,
-    0x02, 0x02, 0x02, 0x02, 0x04, 0x1E, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x07, 0x1F, 0x30, 0x20, 0x40,
-    0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x00, 0x00,
-};/*"℃",0*/
-
-uint8_t code FahrenheitCharZh[32] = {
-    0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00,
-    0x24, 0x00, 0x18, 0x00, 0x02, 0x20, 0xFE, 0x3F,
-    0x82, 0x20, 0x82, 0x00, 0x82, 0x00, 0xE2, 0x03,
-    0x06, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
-};/*"℉",0*/
-
-
-uint8_t code DegreeCharZh[32] = {
-    0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x12, 0x00,
-    0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};/*"°",0*/
-
-#endif
-
-
-
-
-//  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
-// ASCII 32-126
-
-// ASCII + 32
-// Size:12*6
-// Font YouYuan
-
-# ifdef YouYuan6x8
-/***********************************6*8****************************************/
-const unsigned char code Font6x8[] = {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
-    0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
-    0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
-    0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
-    0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
-    0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
-    0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
-    0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
-    0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
-    0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
-    0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
-    0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
-    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
-    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
-    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
-    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
-    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
-    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
-    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
-    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
-    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
-    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
-    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
-    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
-    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
-    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
-    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
-    0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
-    0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
-    0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
-    0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
-    0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
-    0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
-    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
-    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
-    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
-    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
-    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
-    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
-    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
-    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
-    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
-    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
-    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
-    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
-    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
-    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
-    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
-    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
-    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
-    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
-    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
-    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
-    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
-    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
-    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
-    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
-    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
-    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
-    0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
-    0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
-    0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
-    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
-    0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
-    0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
-    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
-    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
-    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
-    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
-    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
-    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
-    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
-    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
-    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
-    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
-    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
-    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
-    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
-    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
-    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
-    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
-    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
-    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
-    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
-    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
-    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
-    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
-    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
-    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
-    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
-    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
-    0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
-};
-#endif
-
-# ifdef YouYuan8x16
-/**************************************8*16************************************/
-const unsigned char code Font8x16[] = {
-    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
-    0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
-    0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
-    0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
-    0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
-    0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
-    0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
-    0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
-    0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
-    0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
-    0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
-    0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
-    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
-    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
-    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
-    0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
-    0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
-    0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
-    0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
-    0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
-    0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
-    0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
-    0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
-    0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
-    0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
-    0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
-    0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
-    0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
-    0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
-    0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
-    0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
-    0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
-    0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
-    0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
-    0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
-    0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
-    0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
-    0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
-    0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
-    0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
-    0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
-    0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
-    0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
-    0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
-    0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
-    0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
-    0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
-    0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
-    0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
-    0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
-    0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
-    0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
-    0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
-    0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
-    0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
-    0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
-    0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
-    0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
-    0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
-    0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
-    0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
-    0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
-    0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
-    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
-    0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
-    0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
-    0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
-    0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
-    0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
-    0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
-    0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
-    0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
-    0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
-    0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
-    0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
-    0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
-    0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
-    0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
-    0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
-    0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
-    0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
-    0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
-    0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
-    0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
-    0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
-    0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
-    0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
-    0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
-    0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
-    0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
-    0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
-    0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
-    0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
-    0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
-    0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
-};
-#endif
-
-# ifdef SongTi8x16
-/*******************************8*16 SongTi************************************/
-const uint8_t code FontSongTi8x16[] = {
-    //  (0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8) )(9) *(10) +(11) ,(12) -(13) .(14)
-    // /(15) 0(16) 1(17) 2(18) 3(19) 4(20) 5(21) 6(22) 7(23) 8(24) 9(25) :(26) ;(27) <(28)
-    // =(29) >(30) ?(31) @(32) A(33) B(34) C(35) D(36) E(37) F(38) G(39) H(40) I(41) J(42)
-    // K(43) L(44) M(45) N(46) O(47) P(48) Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56)
-    // Y(57) Z(58) [(59) \(60) ](61) ^(62) _(63) `(64) a(65) b(66) c(67) d(68) e(69) f(70)
-    // g(71) h(72) i(73) j(74) k(75) l(76) m(77) n(78) o(79) p(80) q(81) r(82) s(83) t(84)
-    // u(85) v(86) w(87) x(88) y(89) z(90) {(91) |(92) }(93) ~(94)
-
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*" ",0*/
-    0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00,/*"!",1*/
-    0x00, 0x10, 0x0C, 0x02, 0x10, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*""",2*/
-    0x00, 0x40, 0xC0, 0x78, 0x40, 0xC0, 0x78, 0x00, 0x00, 0x04, 0x3F, 0x04, 0x04, 0x3F, 0x04, 0x00,/*"#",3*/
-    0x00, 0x70, 0x88, 0x88, 0xFC, 0x08, 0x30, 0x00, 0x00, 0x18, 0x20, 0x20, 0xFF, 0x21, 0x1E, 0x00,/*"$",4*/
-    0xF0, 0x08, 0xF0, 0x80, 0x60, 0x18, 0x00, 0x00, 0x00, 0x31, 0x0C, 0x03, 0x1E, 0x21, 0x1E, 0x00,/*"%",5*/
-    0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00, 0x1E, 0x21, 0x23, 0x2C, 0x19, 0x27, 0x21, 0x10,/*"&",6*/
-    0x00, 0x12, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"'",7*/
-    0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x00,/*"(",8*/
-    0x00, 0x02, 0x04, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00,/*")",9*/
-    0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00, 0x02, 0x02, 0x01, 0x0F, 0x01, 0x02, 0x02, 0x00,/*"*",10*/
-    0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01,/*"+",11*/
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,/*",",12*/
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,/*"-",13*/
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,/*".",14*/
-    0x00, 0x00, 0x00, 0x00, 0xC0, 0x38, 0x04, 0x00, 0x00, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,/*"/",15*/
-    0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"0",16*/
-    0x00, 0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00,/*"1",17*/
-    0x00, 0x70, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00,/*"2",18*/
-    0x00, 0x30, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x18, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"3",19*/
-    0x00, 0x00, 0x80, 0x40, 0x30, 0xF8, 0x00, 0x00, 0x00, 0x06, 0x05, 0x24, 0x24, 0x3F, 0x24, 0x24,/*"4",20*/
-    0x00, 0xF8, 0x88, 0x88, 0x88, 0x08, 0x08, 0x00, 0x00, 0x19, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"5",21*/
-    0x00, 0xE0, 0x10, 0x88, 0x88, 0x90, 0x00, 0x00, 0x00, 0x0F, 0x11, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"6",22*/
-    0x00, 0x18, 0x08, 0x08, 0x88, 0x68, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x00,/*"7",23*/
-    0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"8",24*/
-    0x00, 0xF0, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x01, 0x12, 0x22, 0x22, 0x11, 0x0F, 0x00,/*"9",25*/
-    0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,/*":",26*/
-    0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,/*";",27*/
-    0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,/*"<",28*/
-    0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,/*"=",29*/
-    0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,/*">",30*/
-    0x00, 0x70, 0x48, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x37, 0x00, 0x00, 0x00,/*"?",31*/
-    0xC0, 0x30, 0xC8, 0x28, 0xE8, 0x10, 0xE0, 0x00, 0x07, 0x18, 0x27, 0x28, 0x2F, 0x28, 0x17, 0x00,/*"@",32*/
-    0x00, 0x00, 0xC0, 0x38, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x23, 0x02, 0x02, 0x27, 0x38, 0x20,/*"A",33*/
-    0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"B",34*/
-    0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x07, 0x18, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00,/*"C",35*/
-    0x08, 0xF8, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"D",36*/
-    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x23, 0x20, 0x18, 0x00,/*"E",37*/
-    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00,/*"F",38*/
-    0xC0, 0x30, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x07, 0x18, 0x20, 0x20, 0x22, 0x1E, 0x02, 0x00,/*"G",39*/
-    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x21, 0x3F, 0x20,/*"H",40*/
-    0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"I",41*/
-    0x00, 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, 0x00,/*"J",42*/
-    0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x00, 0x20, 0x3F, 0x20, 0x01, 0x26, 0x38, 0x20, 0x00,/*"K",43*/
-    0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x30, 0x00,/*"L",44*/
-    0x08, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x08, 0x00, 0x20, 0x3F, 0x01, 0x3E, 0x01, 0x3F, 0x20, 0x00,/*"M",45*/
-    0x08, 0xF8, 0x30, 0xC0, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x20, 0x00, 0x07, 0x18, 0x3F, 0x00,/*"N",46*/
-    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"O",47*/
-    0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x01, 0x00, 0x00,/*"P",48*/
-    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x28, 0x28, 0x30, 0x50, 0x4F, 0x00,/*"Q",49*/
-    0x08, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x0C, 0x30, 0x20,/*"R",50*/
-    0x00, 0x70, 0x88, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x38, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"S",51*/
-    0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,/*"T",52*/
-    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"U",53*/
-    0x08, 0x78, 0x88, 0x00, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x07, 0x38, 0x0E, 0x01, 0x00, 0x00,/*"V",54*/
-    0x08, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x08, 0x00, 0x00, 0x03, 0x3E, 0x01, 0x3E, 0x03, 0x00, 0x00,/*"W",55*/
-    0x08, 0x18, 0x68, 0x80, 0x80, 0x68, 0x18, 0x08, 0x20, 0x30, 0x2C, 0x03, 0x03, 0x2C, 0x30, 0x20,/*"X",56*/
-    0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,/*"Y",57*/
-    0x10, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x20, 0x38, 0x26, 0x21, 0x20, 0x20, 0x18, 0x00,/*"Z",58*/
-    0x00, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x00,/*"[",59*/
-    0x00, 0x04, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x38, 0xC0, 0x00,/*"\",60*/
-    0x00, 0x02, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x00, 0x00,/*"]",61*/
-    0x00, 0x00, 0x04, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"^",62*/
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,/*"_",63*/
-    0x00, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"`",64*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x24, 0x24, 0x12, 0x3F, 0x20, 0x00,/*"a",65*/
-    0x10, 0xF0, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"b",66*/
-    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00,/*"c",67*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x90, 0xF0, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20,/*"d",68*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x24, 0x24, 0x24, 0x24, 0x17, 0x00,/*"e",69*/
-    0x00, 0x80, 0x80, 0xE0, 0x90, 0x90, 0x20, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"f",70*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x6B, 0x94, 0x94, 0x94, 0x93, 0x60, 0x00,/*"g",71*/
-    0x10, 0xF0, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,/*"h",72*/
-    0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"i",73*/
-    0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00,/*"j",74*/
-    0x10, 0xF0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x24, 0x06, 0x29, 0x30, 0x20, 0x00,/*"k",75*/
-    0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"l",76*/
-    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x3F, 0x20, 0x00, 0x3F,/*"m",77*/
-    0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,/*"n",78*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"o",79*/
-    0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x91, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"p",80*/
-    0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x91, 0xFF, 0x80,/*"q",81*/
-    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x20, 0x3F, 0x21, 0x20, 0x00, 0x01, 0x00,/*"r",82*/
-    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00,/*"s",83*/
-    0x00, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x10, 0x00,/*"t",84*/
-    0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20,/*"u",85*/
-    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x03, 0x0C, 0x30, 0x0C, 0x03, 0x00, 0x00,/*"v",86*/
-    0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x01, 0x0E, 0x30, 0x0C, 0x07, 0x38, 0x06, 0x01,/*"w",87*/
-    0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x20, 0x31, 0x0E, 0x2E, 0x31, 0x20, 0x00,/*"x",88*/
-    0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x81, 0x86, 0x78, 0x18, 0x06, 0x01, 0x00,/*"y",89*/
-    0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x21, 0x30, 0x2C, 0x22, 0x21, 0x30, 0x00,/*"z",90*/
-    0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x40, 0x40,/*"{",91*/
-    0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,/*"|",92*/
-    0x02, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x3E, 0x01, 0x00, 0x00, 0x00, 0x00,/*"}",93*/
-    0x00, 0x02, 0x01, 0x02, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"~",94*/
-};
-#endif
-
-# ifdef SongTiY8x16
-const unsigned char code FontSongTiY8x16[] = {
-//   (0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8) )(9) *(10) +(11) ,(12) -(13) .(14) /(15) 0(16) 1(17) 2(18) 3(19)
-//  4(20) 5(21) 6(22) 7(23) 8(24) 9(25) :(26) ;(27) <(28) =(29) >(30) ?(31) @(32) A(33) B(34) C(35) D(36) E(37) F(38) G(39)
-//  H(40) I(41) J(42) K(43) L(44) M(45) N(46) O(47) P(48) Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56) Y(57) Z(58) [(59)
-//  \(60) ](61) ^(62) _(63) `(64) a(65) b(66) c(67) d(68) e(69) f(70) g(71) h(72) i(73) j(74) k(75) l(76) m(77) n(78) o(79)
-//  p(80) q(81) r(82) s(83) t(84) u(85) v(86) w(87) x(88) y(89) z(90) {(91) |(92) }(93) ~(94)
-
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*" ",0*/
-0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF,/*"!",1*/
-0xFF, 0xEF, 0xF3, 0xFD, 0xEF, 0xF3, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*""",2*/
-0xFF, 0xBF, 0x3F, 0x87, 0xBF, 0x3F, 0x87, 0xFF, 0xFF, 0xFB, 0xC0, 0xFB, 0xFB, 0xC0, 0xFB, 0xFF,/*"#",3*/
-0xFF, 0x8F, 0x77, 0x77, 0x03, 0xF7, 0xCF, 0xFF, 0xFF, 0xE7, 0xDF, 0xDF, 0x00, 0xDE, 0xE1, 0xFF,/*"$",4*/
-0x0F, 0xF7, 0x0F, 0x7F, 0x9F, 0xE7, 0xFF, 0xFF, 0xFF, 0xCE, 0xF3, 0xFC, 0xE1, 0xDE, 0xE1, 0xFF,/*"%",5*/
-0xFF, 0x0F, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xDC, 0xD3, 0xE6, 0xD8, 0xDE, 0xEF,/*"&",6*/
-0xFF, 0xED, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"'",7*/
-0xFF, 0xFF, 0xFF, 0x1F, 0xE7, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xE7, 0xDF, 0xBF, 0xFF,/*"(",8*/
-0xFF, 0xFD, 0xFB, 0xE7, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xDF, 0xE7, 0xF8, 0xFF, 0xFF, 0xFF,/*")",9*/
-0xBF, 0xBF, 0x7F, 0x0F, 0x7F, 0xBF, 0xBF, 0xFF, 0xFD, 0xFD, 0xFE, 0xF0, 0xFE, 0xFD, 0xFD, 0xFF,/*"*",10*/
-0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xF0, 0xFE, 0xFE, 0xFE,/*"+",11*/
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*",",12*/
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF,/*"-",13*/
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*".",14*/
-0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xC7, 0xFB, 0xFF, 0xFF, 0x9F, 0xE7, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,/*"/",15*/
-0xFF, 0x1F, 0xEF, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xFF, 0xF0, 0xEF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"0",16*/
-0xFF, 0xFF, 0xEF, 0xEF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF,/*"1",17*/
-0xFF, 0x8F, 0xF7, 0xF7, 0xF7, 0xF7, 0x0F, 0xFF, 0xFF, 0xCF, 0xD7, 0xDB, 0xDD, 0xDE, 0xCF, 0xFF,/*"2",18*/
-0xFF, 0xCF, 0xF7, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xE7, 0xDF, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"3",19*/
-0xFF, 0xFF, 0x7F, 0xBF, 0xCF, 0x07, 0xFF, 0xFF, 0xFF, 0xF9, 0xFA, 0xDB, 0xDB, 0xC0, 0xDB, 0xDB,/*"4",20*/
-0xFF, 0x07, 0x77, 0x77, 0x77, 0xF7, 0xF7, 0xFF, 0xFF, 0xE6, 0xDF, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"5",21*/
-0xFF, 0x1F, 0xEF, 0x77, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xF0, 0xEE, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"6",22*/
-0xFF, 0xE7, 0xF7, 0xF7, 0x77, 0x97, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFE, 0xFF, 0xFF, 0xFF,/*"7",23*/
-0xFF, 0x8F, 0x77, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xE3, 0xDD, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"8",24*/
-0xFF, 0x0F, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xFF, 0xFE, 0xED, 0xDD, 0xDD, 0xEE, 0xF0, 0xFF,/*"9",25*/
-0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF,/*":",26*/
-0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,/*";",27*/
-0xFF, 0xFF, 0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFF, 0xFF, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xFF,/*"<",28*/
-0xFF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF,/*"=",29*/
-0xFF, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE, 0xFF,/*">",30*/
-0xFF, 0x8F, 0xB7, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xC8, 0xFF, 0xFF, 0xFF,/*"?",31*/
-0x3F, 0xCF, 0x37, 0xD7, 0x17, 0xEF, 0x1F, 0xFF, 0xF8, 0xE7, 0xD8, 0xD7, 0xD0, 0xD7, 0xE8, 0xFF,/*"@",32*/
-0xFF, 0xFF, 0x3F, 0xC7, 0x1F, 0xFF, 0xFF, 0xFF, 0xDF, 0xC3, 0xDC, 0xFD, 0xFD, 0xD8, 0xC7, 0xDF,/*"A",33*/
-0xF7, 0x07, 0x77, 0x77, 0x77, 0x8F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"B",34*/
-0x3F, 0xCF, 0xF7, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xF8, 0xE7, 0xDF, 0xDF, 0xDF, 0xEF, 0xF7, 0xFF,/*"C",35*/
-0xF7, 0x07, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"D",36*/
-0xF7, 0x07, 0x77, 0x77, 0x17, 0xF7, 0xEF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDC, 0xDF, 0xE7, 0xFF,/*"E",37*/
-0xF7, 0x07, 0x77, 0x77, 0x17, 0xF7, 0xEF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF,/*"F",38*/
-0x3F, 0xCF, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xFF, 0xF8, 0xE7, 0xDF, 0xDF, 0xDD, 0xE1, 0xFD, 0xFF,/*"G",39*/
-0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xF7, 0x07, 0xF7, 0xDF, 0xC0, 0xDE, 0xFE, 0xFE, 0xDE, 0xC0, 0xDF,/*"H",40*/
-0xFF, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"I",41*/
-0xFF, 0xFF, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xFF, 0x3F, 0x7F, 0x7F, 0x7F, 0x80, 0xFF, 0xFF, 0xFF,/*"J",42*/
-0xF7, 0x07, 0x77, 0x3F, 0xD7, 0xE7, 0xF7, 0xFF, 0xDF, 0xC0, 0xDF, 0xFE, 0xD9, 0xC7, 0xDF, 0xFF,/*"K",43*/
-0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xDF, 0xCF, 0xFF,/*"L",44*/
-0xF7, 0x07, 0x07, 0xFF, 0x07, 0x07, 0xF7, 0xFF, 0xDF, 0xC0, 0xFE, 0xC1, 0xFE, 0xC0, 0xDF, 0xFF,/*"M",45*/
-0xF7, 0x07, 0xCF, 0x3F, 0xFF, 0xF7, 0x07, 0xF7, 0xDF, 0xC0, 0xDF, 0xFF, 0xF8, 0xE7, 0xC0, 0xFF,/*"N",46*/
-0x1F, 0xEF, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xF0, 0xEF, 0xDF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"O",47*/
-0xF7, 0x07, 0xF7, 0xF7, 0xF7, 0xF7, 0x0F, 0xFF, 0xDF, 0xC0, 0xDE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF,/*"P",48*/
-0x1F, 0xEF, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xF0, 0xEF, 0xD7, 0xD7, 0xCF, 0xAF, 0xB0, 0xFF,/*"Q",49*/
-0xF7, 0x07, 0x77, 0x77, 0x77, 0x77, 0x8F, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFC, 0xF3, 0xCF, 0xDF,/*"R",50*/
-0xFF, 0x8F, 0x77, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xFF, 0xC7, 0xDF, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"S",51*/
-0xE7, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xE7, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFF, 0xFF,/*"T",52*/
-0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xF7, 0x07, 0xF7, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"U",53*/
-0xF7, 0x87, 0x77, 0xFF, 0xFF, 0x37, 0xC7, 0xF7, 0xFF, 0xFF, 0xF8, 0xC7, 0xF1, 0xFE, 0xFF, 0xFF,/*"V",54*/
-0xF7, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xF7, 0xFF, 0xFF, 0xFC, 0xC1, 0xFE, 0xC1, 0xFC, 0xFF, 0xFF,/*"W",55*/
-0xF7, 0xE7, 0x97, 0x7F, 0x7F, 0x97, 0xE7, 0xF7, 0xDF, 0xCF, 0xD3, 0xFC, 0xFC, 0xD3, 0xCF, 0xDF,/*"X",56*/
-0xF7, 0xC7, 0x37, 0xFF, 0x37, 0xC7, 0xF7, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFF, 0xFF,/*"Y",57*/
-0xEF, 0xF7, 0xF7, 0xF7, 0x37, 0xC7, 0xF7, 0xFF, 0xDF, 0xC7, 0xD9, 0xDE, 0xDF, 0xDF, 0xE7, 0xFF,/*"Z",58*/
-0xFF, 0xFF, 0xFF, 0x01, 0xFD, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBF, 0xBF, 0xBF, 0xFF,/*"[",59*/
-0xFF, 0xFB, 0xC7, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF9, 0xC7, 0x3F, 0xFF,/*"\",60*/
-0xFF, 0xFD, 0xFD, 0xFD, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, 0xBF, 0x80, 0xFF, 0xFF, 0xFF,/*"]",61*/
-0xFF, 0xFF, 0xFB, 0xFD, 0xFD, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"^",62*/
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,/*"_",63*/
-0xFF, 0xFD, 0xFD, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"`",64*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xDB, 0xDB, 0xED, 0xC0, 0xDF, 0xFF,/*"a",65*/
-0xEF, 0x0F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xEE, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"b",66*/
-0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xF1, 0xEE, 0xDF, 0xDF, 0xDF, 0xEE, 0xFF,/*"c",67*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x6F, 0x0F, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xEF, 0xC0, 0xDF,/*"d",68*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xDB, 0xDB, 0xDB, 0xE8, 0xFF,/*"e",69*/
-0xFF, 0x7F, 0x7F, 0x1F, 0x6F, 0x6F, 0xDF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"f",70*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0x94, 0x6B, 0x6B, 0x6B, 0x6C, 0x9F, 0xFF,/*"g",71*/
-0xEF, 0x0F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDE, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF,/*"h",72*/
-0xFF, 0x7F, 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"i",73*/
-0xFF, 0xFF, 0xFF, 0x7F, 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0x3F, 0x7F, 0x7F, 0x7F, 0x80, 0xFF, 0xFF,/*"j",74*/
-0xEF, 0x0F, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xC0, 0xDB, 0xF9, 0xD6, 0xCF, 0xDF, 0xFF,/*"k",75*/
-0xFF, 0xEF, 0xEF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"l",76*/
-0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xC0, 0xDF, 0xFF, 0xC0,/*"m",77*/
-0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDE, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF,/*"n",78*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"o",79*/
-0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x6E, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"p",80*/
-0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xF1, 0xEE, 0xDF, 0xDF, 0x6E, 0x00, 0x7F,/*"q",81*/
-0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xDF, 0xC0, 0xDE, 0xDF, 0xFF, 0xFE, 0xFF,/*"r",82*/
-0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xCC, 0xDB, 0xDB, 0xDB, 0xDB, 0xE6, 0xFF,/*"s",83*/
-0xFF, 0x7F, 0x7F, 0x1F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xEF, 0xFF,/*"t",84*/
-0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xEF, 0xC0, 0xDF,/*"u",85*/
-0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFC, 0xF3, 0xCF, 0xF3, 0xFC, 0xFF, 0xFF,/*"v",86*/
-0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFE, 0xF1, 0xCF, 0xF3, 0xF8, 0xC7, 0xF9, 0xFE,/*"w",87*/
-0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xCE, 0xF1, 0xD1, 0xCE, 0xDF, 0xFF,/*"x",88*/
-0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0x7E, 0x79, 0x87, 0xE7, 0xF9, 0xFE, 0xFF,/*"y",89*/
-0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDE, 0xCF, 0xD3, 0xDD, 0xDE, 0xCF, 0xFF,/*"z",90*/
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xC1, 0xBF, 0xBF,/*"{",91*/
-0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,/*"|",92*/
-0xFD, 0xFD, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, 0xC1, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,/*"}",93*/
-0xFF, 0xFD, 0xFE, 0xFD, 0xFD, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"~",94*/
-};
-#endif
-
-#endif
-
-

+ 1 - 1
ALGO_AlgorithmBase_ATY.c

@@ -247,7 +247,7 @@ float ALGO_GetRms(uint16_t currentValue, uint16_t currentNum, float sumValue, ui
     value += (currentValue * currentValue);
     if(currentNum >= wholeNum){
         value /= currentNum;
-        value = ALGO_Sqrt(value);
+        value = ALGO_Sqrt_NewtonNumber(value);
         return value;
     }
     return 0;

+ 7 - 0
ALGO_AlgorithmBase_ATY.h

@@ -50,6 +50,13 @@
 | **Max storage space** | 2^16                | 2^32                | 2^64                |
 */
 
+/**
+ * @brief   Change num to str
+ * @param   num number to change
+ */
+#define ALGO_STR_DEF(num) #num
+#define ALGO_NUM_TO_STR(num) ALGO_STR_DEF(num)
+
 /**
  * @brief   Allocate memory space
  * @param   name variate name

+ 6 - 6
GP22_ATY.c

@@ -99,7 +99,7 @@ uint8_t GP22_WaitInt(uint8_t step)
     while(GP22_READ_INT_H)
     {
         errTimeCount++;
-        if(errTimeCount > 24000)     // 24000 About 36ms at 64M HCLK, 1.25MIPS/Mhz for arm
+        if(errTimeCount > 12000)     // 24000 About 36ms at 64M HCLK, 1.25MIPS/Mhz for arm
         {
             errTimeCount = 0;
 #ifdef __DEBUG_GP22_ATY
@@ -365,7 +365,7 @@ void GP22_RegInit_UsWave1MHz(void)
 {
     // 630BE800
     GP22_REG[0] = GP22_CFG_KEEP_DEFAULT0
-        | GP22_CFG0_ANZ_FIRE_0 * 2          // 3-6 pulse
+        | GP22_CFG0_ANZ_FIRE_0 * 3          // 3-6 pulse
         | GP22_CFG0_DIV_FIRE_0 * 3          // 0CLK | 3FIRE 1MHz pulse
         | GP22_CFG0_ANZ_PER_CALRES_0 * GP22_CLKHS_PERIOD
         | GP22_CFG0_DIV_CLKHS_0 * GP22_CLKHS_DIV
@@ -388,6 +388,7 @@ void GP22_RegInit_UsWave1MHz(void)
         | GP22_CFG1_SEL_START_FIRE * 1
         | GP22_CFG1_SEL_TSTO2_0 * 2
         | GP22_CFG1_SEL_TSTO1_0 * 6
+        // | GP22_CFG1_EN_FAST_INIT * 1
         | GP22_Ids[1];
     // A00000F2
     GP22_REG[2] = GP22_CFG_KEEP_DEFAULT2
@@ -513,13 +514,12 @@ uint8_t GP22_Process_UsWave1MHz(uint8_t cmdCode)
     if(cmdCode & GP22_STEP_SPI_TEST)
         if(GP22_SpiTest(0x68)) return GP22_STEP_SPI_TEST;
     if(cmdCode & GP22_STEP_REG_INIT
-        || cmdCode & GP22_STEP_READ_ID)
-    {
+        || cmdCode & GP22_STEP_READ_ID){
         GP22_RegInit_UsWave1MHz();
         if(GP22_ReadId()) return GP22_STEP_READ_ID;
     }
-    if(cmdCode & GP22_STEP_COMPARE_E2)
-        if(GP22_CompareE2()) return GP22_STEP_COMPARE_E2;
+    // if(cmdCode & GP22_STEP_COMPARE_E2)
+    //     if(GP22_CompareE2()) return GP22_STEP_COMPARE_E2;
     if(cmdCode & GP22_STEP_CALC_HSC)
         if(GP22_CalcHSC()) return GP22_STEP_CALC_HSC;
     if(cmdCode & GP22_STEP_START_TEMP)

+ 5 - 3
GP22_ATY.h

@@ -116,21 +116,23 @@ uint8_t GP22_Process_Run(uint8_t cmdCode);
 #define GP22_WAKE \
 do{ \
     GPIO_SET_H(GP22_EN_PORT, GP22_EN_PIN); \
-    GPIO_SET_H(GP22_INT_PORT, GP22_INT_PIN); /* GP22_INT input */ \
+    GPIO_SET_H(GP22_INT_PORT, GP22_INT_PIN); \
 } while(0)
 
 #define GP22_SLEEP \
 do{ \
     SPCTL = 0x00; \
-    GPIO_SET_L(GP22_EN_PORT, GP22_EN_PIN); \
-    GPIO_SET_L(GP22_INT_PORT, GP22_INT_PIN); \
     GPIO_SET_L(GP22_RST_PORT, GP22_RST_PIN); \
     GPIO_SET_L(GP22_CSN_PORT, GP22_CSN_PIN); \
     GPIO_SET_L(GP22_SCLK_PORT, GP22_SCLK_PIN); \
     GPIO_SET_L(GP22_MOSI_PORT, GP22_MOSI_PIN); \
+    GPIO_SET_L(GP22_EN_PORT, GP22_EN_PIN); \
     GPIO_SET_L(GP22_MISO_PORT, GP22_MISO_PIN); \
+    GPIO_SET_L(GP22_INT_PORT, GP22_INT_PIN); \
 } while(0)
 
+
+
 /* Opcode define **************************************************************/
 #define GP22_OPCODE_INIT                0x70
 #define GP22_OPCODE_RESET               0x50

+ 98 - 23
HW_I2C_ATY.c

@@ -35,7 +35,10 @@
 #include "HW_I2C_ATY.h"
 
 /******************************* For user *************************************/
-
+void OLED_Delay(uint8_t t)
+{
+    while(t--);
+}
 /******************************************************************************/
 
 #ifndef __I2C_HARDWARE_ATY
@@ -74,12 +77,12 @@ void I2C_SDA_SetIn(void)
 void I2C_Start(void)
 {
     I2C_SDA_SET_OUT;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SDA_SET_H;
     I2C_SCL_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SDA_SET_L;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
 }
 
@@ -90,12 +93,12 @@ void I2C_Start(void)
 void I2C_Stop(void)
 {
     I2C_SDA_SET_OUT;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
     I2C_SDA_SET_L;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SDA_SET_H;
 }
 
@@ -105,12 +108,12 @@ void I2C_Stop(void)
 void I2C_Ack(void)
 {
     I2C_SDA_SET_OUT;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
     I2C_SDA_SET_L;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
 }
 
@@ -120,12 +123,12 @@ void I2C_Ack(void)
 void I2C_NoAck(void)
 {
     I2C_SDA_SET_OUT;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
     I2C_SDA_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_L;
 }
 
@@ -139,13 +142,13 @@ uint8_t I2C_WaitAck(uint16_t maxErrTime)
     uint16_t errTime = 0;
 
     I2C_SDA_SET_IN;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     I2C_SCL_SET_H;
-    DelayUs(4);
+    OLED_Delay(SHORT_DELAY);
     while(I2C_SDA_GET_H)
     {
         errTime++;
-        DelayUs(2);
+        OLED_Delay(2);
         if(errTime > maxErrTime)
         {
             I2C_Stop();
@@ -166,20 +169,27 @@ void I2C_WriteByte(uint8_t byte)
     uint8_t isb_i;
 
     I2C_SDA_SET_OUT;
-    DelayUs(8);
+    OLED_Delay(LONG_DELAY);
     I2C_SCL_SET_L;
     for(isb_i = 0; isb_i < 8; isb_i++)
     {
-        DelayUs(4);
+        OLED_Delay(SHORT_DELAY);
         if((byte & 0x80) >> 7)
             I2C_SDA_SET_H;
         else
             I2C_SDA_SET_L;
-        byte <<= 1;
+        OLED_Delay(SHORT_DELAY);
         I2C_SCL_SET_H;
-        DelayUs(4);
+        OLED_Delay(SHORT_DELAY);
         I2C_SCL_SET_L;
+        byte <<= 1;
     }
+    OLED_Delay(SHORT_DELAY);
+    I2C_SDA_SET_H;
+    OLED_Delay(SHORT_DELAY);
+    I2C_SCL_SET_H;
+    OLED_Delay(SHORT_DELAY);
+    I2C_SCL_SET_L;
 }
 
 /**
@@ -192,13 +202,13 @@ uint8_t I2C_ReadByte(uint8_t ack)
     uint8_t irb_i, byte = 0;
 
     I2C_SDA_SET_IN;
-    DelayUs(8);
+    OLED_Delay(LONG_DELAY);
     for(irb_i = 0; irb_i < 8; irb_i++)
     {
         I2C_SCL_SET_L;
-        DelayUs(4);
+        OLED_Delay(SHORT_DELAY);
         I2C_SCL_SET_H;
-        DelayUs(4);
+        OLED_Delay(SHORT_DELAY);
         byte <<= 1;
         if(I2C_SDA_GET_H) byte++;
     }
@@ -512,6 +522,71 @@ uint8_t I2C_Read(uint8_t addr, uint8_t* data_t, uint8_t len)
 
     return ret;
 }
+
+// void Wait()
+// {
+//     while(!(I2CMSST & 0x40));
+//     I2CMSST &= ~0x40;
+// }
+
+// void Start()
+// {
+//     I2CMSCR = 0x01;                             //发送START命令
+//     Wait();
+// }
+
+// void SendData(char dat)
+// {
+//     I2CTXD = dat;                               //写数据到数据缓冲区
+//     I2CMSCR = 0x02;                             //发送SEND命令
+//     Wait();
+// }
+
+// void RecvACK()
+// {
+//     I2CMSCR = 0x03;                             //发送读ACK命令
+//     Wait();
+// }
+
+// char RecvData()
+// {
+//     I2CMSCR = 0x04;                             //发送RECV命令
+//     Wait();
+//     return I2CRXD;
+// }
+
+// void SendACK()
+// {
+//     I2CMSST = 0x00;                             //设置ACK信号
+//     I2CMSCR = 0x05;                             //发送ACK命令
+//     Wait();
+// }
+
+// void SendNAK()
+// {
+//     I2CMSST = 0x01;                             //设置NAK信号
+//     I2CMSCR = 0x05;                             //发送ACK命令
+//     Wait();
+// }
+
+// void Stop()
+// {
+//     I2CMSCR = 0x06;                             //发送STOP命令
+//     Wait();
+// }
+
+// void Delay()
+// {
+//     int i;
+
+//     for(i = 0; i < 3000; i++)
+//     {
+//         _nop_();
+//         _nop_();
+//         _nop_();
+//         _nop_();
+//     }
+// }
 #endif /* PLATFORM */
 
 #endif /* __I2C_HARDWARE_ATY */

+ 2 - 1
HW_I2C_ATY.h

@@ -34,7 +34,8 @@
 
 /******************************* For user *************************************/
 #define I2C_WAIT_ACK_TIME       250 // us
-
+#define SHORT_DELAY             1
+#define LONG_DELAY              1
 /******************************************************************************/
 
 #ifndef __I2C_HARDWARE_ATY

+ 1 - 1
HW_TIMER_ATY.c

@@ -51,7 +51,7 @@ __WEAK_ATY void DelayUs(uint32_t us)
 {
     // uint32_t i = 2 + 4 * us; // for 12MHz
     uint32_t i = 6 + 8 * us; // for 12MHz
-    while(--i);
+    // while(--i);
 }
 /**
  * @brief   ms delay

+ 14 - 2
MOTOR_STEP_ATY.h

@@ -64,9 +64,21 @@ extern uint8_t motorSetState;           // 0: stop, 1: start hold, 2: start soft
 #define MOTOR_DIR_OUT       0
 #define MOTOR_DIR_IN        1
 #define MOTOR_DIR_SET_IN \
-    do{GPIO_SET_H(MOTOR_DIR_PORT, MOTOR_DIR_PIN); motorDir = MOTOR_DIR_IN;}while(0)
+    do{ \
+        if(MOTOR_DIR_IN) \
+            GPIO_SET_H(MOTOR_DIR_PORT, MOTOR_DIR_PIN); \
+        else \
+            GPIO_SET_L(MOTOR_DIR_PORT, MOTOR_DIR_PIN); \
+        motorDir = MOTOR_DIR_IN; \
+    }while(0)
 #define MOTOR_DIR_SET_OUT \
-    do{GPIO_SET_L(MOTOR_DIR_PORT, MOTOR_DIR_PIN); motorDir = MOTOR_DIR_OUT;}while(0)
+    do{ \
+        if(MOTOR_DIR_OUT) \
+            GPIO_SET_H(MOTOR_DIR_PORT, MOTOR_DIR_PIN); \
+        else \
+            GPIO_SET_L(MOTOR_DIR_PORT, MOTOR_DIR_PIN); \
+        motorDir = MOTOR_DIR_OUT; \
+    }while(0)
 
 #define MOTOR_STEP_SET_H \
     (GPIO_SET_H(MOTOR_STEP_PORT, MOTOR_STEP_PIN))

+ 4 - 4
096OLED_I2C_MZ.h → NoPublic/096OLED_I2C_MZ.h

@@ -1,4 +1,4 @@
-#include "HEADER_MZ.h"
+// #include "HEADER_MZ.h"
 #include "096OLED_FONT_MZ.h"
 
 
@@ -510,7 +510,7 @@ void OLED_Dis_Menu(void)
                         if(detectTime > 99)
                             detectTime = detectTime % 100;
                     }
-                    
+
                 }
                 else if(positionNum == 1)
                 {
@@ -602,7 +602,7 @@ void OLED_Dis_Menu(void)
                         if(sleepTime > 99)
                             sleepTime = sleepTime % 100;
                     }
-                    
+
                 }
                 else if(positionNum == 1)
                 {
@@ -716,7 +716,7 @@ void OLED_Dis_Menu(void)
                     if(uploadTime > 99)
                         uploadTime = uploadTime % 100;
                 }
-                
+
             }
             else if(positionNum == 1)
             {

+ 536 - 0
OLED_FONT_ATY.c

@@ -0,0 +1,536 @@
+/**
+* @file OLED_FONT_ATY.c
+*
+* @param Project DEVICE_GENERAL_ATY_LIB
+*
+* @author ATY
+*
+* @copyright
+*       - Copyright 2017 - 2023 MZ-ATY
+*       - This code follows:
+*           - MZ-ATY Various Contents Joint Statement -
+*               <a href="https://mengze.top/MZ-ATY_VCJS">
+*                        https://mengze.top/MZ-ATY_VCJS</a>
+*           - CC 4.0 BY-NC-SA -
+*               <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
+*                        https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
+*       - Your use will be deemed to have accepted the terms of this statement.
+*
+* @brief Base functions of GP22 for all embedded device
+*
+* @version
+*       - 1_01_220901 > ATY
+*           -# Preliminary version, first Release
+********************************************************************************
+*/
+
+#ifndef __OLED_FONT_ATY_C
+#define __OLED_FONT_ATY_C
+
+#include "OLED_FONT_ATY.h"
+
+unsigned char __CODE SysIcons[] = {
+    0x00, 0x60, 0x38, 0x0C, 0x06, 0x06, 0x03, 0x03,
+    0x03, 0x03, 0x02, 0x26, 0x6C, 0xF8, 0x60, 0x20,
+    0x04, 0x06, 0x1F, 0x36, 0x64, 0x40, 0xC0, 0xC0,
+    0xC0, 0xC0, 0x60, 0x60, 0x30, 0x1C, 0x06, 0x00,/*UpdateThin*/
+
+    0x20, 0x60, 0xF8, 0xFC, 0x6E, 0x26, 0x07, 0x03,
+    0x03, 0x07, 0x06, 0x8E, 0xDC, 0xC0, 0x80, 0x00,
+    0x00, 0x00, 0x00, 0x0E, 0x1C, 0x38, 0x30, 0x30,
+    0x30, 0x30, 0x39, 0x1D, 0x0F, 0x07, 0x01, 0x01,/*UpdateHeavy*/
+
+    0x30, 0x38, 0x98, 0xCC, 0xCC, 0x6E, 0x66, 0x76,
+    0x76, 0x66, 0x6E, 0xCC, 0xDC, 0x98, 0x38, 0x30,
+    0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x07, 0x1B,
+    0x1B, 0x07, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,/*Wifi*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+    0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+    0x0D, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F,/*Bat!*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x90, 0x50, 0xD0,
+    0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x0A, 0x09, 0x08, 0x08, 0x08,
+    0x09, 0x0B, 0x0A, 0x09, 0x08, 0x08, 0x08, 0x0F,/*BatCharge*/
+
+    0xC0, 0xF0, 0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0,
+    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B,
+    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat4*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xD0, 0xD0,
+    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x0B, 0x0B,
+    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat3*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+    0x10, 0xD0, 0xD0, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+    0x08, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat2*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+    0x10, 0x10, 0x10, 0x10, 0xD0, 0xD0, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+    0x08, 0x08, 0x08, 0x08, 0x0B, 0x0B, 0x08, 0x0F,/*Bat1*/
+
+    0xC0, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+    0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0,
+    0x03, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+    0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F,/*Bat0*/
+
+};
+
+#ifdef TemHumSymbol
+unsigned char __CODE CelsiusCharZh[32] = {
+    0x06, 0x09, 0x09, 0xE6, 0xF8, 0x0C, 0x04, 0x02,
+    0x02, 0x02, 0x02, 0x02, 0x04, 0x1E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x07, 0x1F, 0x30, 0x20, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x00, 0x00,
+};/*"℃",0*/
+
+unsigned char __CODE FahrenheitCharZh[32] = {
+    0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00,
+    0x24, 0x00, 0x18, 0x00, 0x02, 0x20, 0xFE, 0x3F,
+    0x82, 0x20, 0x82, 0x00, 0x82, 0x00, 0xE2, 0x03,
+    0x06, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
+};/*"℉",0*/
+
+
+unsigned char __CODE DegreeCharZh[32] = {
+    0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x12, 0x00,
+    0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};/*"°",0*/
+
+#endif
+
+
+
+
+//  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+// ASCII 32-126
+
+// ASCII + 32
+// Size:12*6
+// Font YouYuan
+
+# ifdef YouYuan6x8
+/***********************************6*8****************************************/
+unsigned char __CODE Font6x8[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
+    0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
+    0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
+    0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
+    0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
+    0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
+    0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
+    0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
+    0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
+    0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
+    0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
+    0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
+    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
+    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
+    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
+    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
+    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
+    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
+    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
+    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
+    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
+    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
+    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
+    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
+    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
+    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
+    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
+    0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
+    0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
+    0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
+    0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
+    0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
+    0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
+    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
+    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
+    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
+    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
+    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
+    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
+    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
+    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
+    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
+    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
+    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
+    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
+    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
+    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
+    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
+    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
+    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
+    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
+    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
+    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
+    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
+    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
+    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
+    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
+    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
+    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
+    0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
+    0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
+    0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
+    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
+    0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
+    0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
+    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
+    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
+    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
+    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
+    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
+    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
+    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
+    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
+    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
+    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
+    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
+    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
+    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
+    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
+    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
+    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
+    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
+    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
+    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
+    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
+    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
+    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
+    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
+    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
+    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
+    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
+    0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
+};
+#endif
+
+# ifdef YouYuan8x16
+/**************************************8*16************************************/
+unsigned char __CODE Font8x16[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// 0
+    0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x30, 0x00, 0x00, 0x00,//! 1
+    0x00, 0x10, 0x0C, 0x06, 0x10, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//" 2
+    0x40, 0xC0, 0x78, 0x40, 0xC0, 0x78, 0x40, 0x00, 0x04, 0x3F, 0x04, 0x04, 0x3F, 0x04, 0x04, 0x00,//# 3
+    0x00, 0x70, 0x88, 0xFC, 0x08, 0x30, 0x00, 0x00, 0x00, 0x18, 0x20, 0xFF, 0x21, 0x1E, 0x00, 0x00,//$ 4
+    0xF0, 0x08, 0xF0, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x00, 0x21, 0x1C, 0x03, 0x1E, 0x21, 0x1E, 0x00,//% 5
+    0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00, 0x1E, 0x21, 0x23, 0x24, 0x19, 0x27, 0x21, 0x10,//& 6
+    0x10, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//' 7
+    0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x00,//( 8
+    0x00, 0x02, 0x04, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00,//) 9
+    0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00, 0x02, 0x02, 0x01, 0x0F, 0x01, 0x02, 0x02, 0x00,//* 10
+    0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x1F, 0x01, 0x01, 0x01, 0x00,//+ 11
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xB0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,//, 12
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,//- 13
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,//. 14
+    0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x04, 0x00, 0x60, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00,/// 15
+    0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00,//0 16
+    0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,//1 17
+    0x00, 0x70, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00,//2 18
+    0x00, 0x30, 0x08, 0x88, 0x88, 0x48, 0x30, 0x00, 0x00, 0x18, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,//3 19
+    0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x07, 0x04, 0x24, 0x24, 0x3F, 0x24, 0x00,//4 20
+    0x00, 0xF8, 0x08, 0x88, 0x88, 0x08, 0x08, 0x00, 0x00, 0x19, 0x21, 0x20, 0x20, 0x11, 0x0E, 0x00,//5 21
+    0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00,//6 22
+    0x00, 0x38, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00,//7 23
+    0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00,//8 24
+    0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x31, 0x22, 0x22, 0x11, 0x0F, 0x00,//9 25
+    0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,//: 26
+    0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00,//; 27
+    0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,//< 28
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00,//= 29
+    0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,//> 30
+    0x00, 0x70, 0x48, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x30, 0x36, 0x01, 0x00, 0x00,//? 31
+    0xC0, 0x30, 0xC8, 0x28, 0xE8, 0x10, 0xE0, 0x00, 0x07, 0x18, 0x27, 0x24, 0x23, 0x14, 0x0B, 0x00,//@ 32
+    0x00, 0x00, 0xC0, 0x38, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x23, 0x02, 0x02, 0x27, 0x38, 0x20,//A 33
+    0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,//B 34
+    0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x07, 0x18, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00,//C 35
+    0x08, 0xF8, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,//D 36
+    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x23, 0x20, 0x18, 0x00,//E 37
+    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00,//F 38
+    0xC0, 0x30, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x07, 0x18, 0x20, 0x20, 0x22, 0x1E, 0x02, 0x00,//G 39
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x21, 0x3F, 0x20,//H 40
+    0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,//I 41
+    0x00, 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, 0x00,//J 42
+    0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x00, 0x20, 0x3F, 0x20, 0x01, 0x26, 0x38, 0x20, 0x00,//K 43
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x30, 0x00,//L 44
+    0x08, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x08, 0x00, 0x20, 0x3F, 0x00, 0x3F, 0x00, 0x3F, 0x20, 0x00,//M 45
+    0x08, 0xF8, 0x30, 0xC0, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x20, 0x00, 0x07, 0x18, 0x3F, 0x00,//N 46
+    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,//O 47
+    0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x01, 0x00, 0x00,//P 48
+    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x18, 0x24, 0x24, 0x38, 0x50, 0x4F, 0x00,//Q 49
+    0x08, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x0C, 0x30, 0x20,//R 50
+    0x00, 0x70, 0x88, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x38, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00,//S 51
+    0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,//T 52
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,//U 53
+    0x08, 0x78, 0x88, 0x00, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x07, 0x38, 0x0E, 0x01, 0x00, 0x00,//V 54
+    0xF8, 0x08, 0x00, 0xF8, 0x00, 0x08, 0xF8, 0x00, 0x03, 0x3C, 0x07, 0x00, 0x07, 0x3C, 0x03, 0x00,//W 55
+    0x08, 0x18, 0x68, 0x80, 0x80, 0x68, 0x18, 0x08, 0x20, 0x30, 0x2C, 0x03, 0x03, 0x2C, 0x30, 0x20,//X 56
+    0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,//Y 57
+    0x10, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x20, 0x38, 0x26, 0x21, 0x20, 0x20, 0x18, 0x00,//Z 58
+    0x00, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x00,//[ 59
+    0x00, 0x0C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x38, 0xC0, 0x00,//\ 60
+    0x00, 0x02, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x00, 0x00,//] 61
+    0x00, 0x00, 0x04, 0x02, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//^ 62
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,//_ 63
+    0x00, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//` 64
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x19, 0x24, 0x22, 0x22, 0x22, 0x3F, 0x20,//a 65
+    0x08, 0xF8, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00,//b 66
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00,//c 67
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x88, 0xF8, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x10, 0x3F, 0x20,//d 68
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x13, 0x00,//e 69
+    0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0x18, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,//f 70
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x6B, 0x94, 0x94, 0x94, 0x93, 0x60, 0x00,//g 71
+    0x08, 0xF8, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,//h 72
+    0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,//i 73
+    0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00,//j 74
+    0x08, 0xF8, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x24, 0x02, 0x2D, 0x30, 0x20, 0x00,//k 75
+    0x00, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,//l 76
+    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x3F, 0x20, 0x00, 0x3F,//m 77
+    0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,//n 78
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,//o 79
+    0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xA1, 0x20, 0x20, 0x11, 0x0E, 0x00,//p 80
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0xA0, 0xFF, 0x80,//q 81
+    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x20, 0x3F, 0x21, 0x20, 0x00, 0x01, 0x00,//r 82
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00,//s 83
+    0x00, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x00, 0x00,//t 84
+    0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20,//u 85
+    0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x01, 0x0E, 0x30, 0x08, 0x06, 0x01, 0x00,//v 86
+    0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x0F, 0x30, 0x0C, 0x03, 0x0C, 0x30, 0x0F, 0x00,//w 87
+    0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x31, 0x2E, 0x0E, 0x31, 0x20, 0x00,//x 88
+    0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x81, 0x8E, 0x70, 0x18, 0x06, 0x01, 0x00,//y 89
+    0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x21, 0x30, 0x2C, 0x22, 0x21, 0x30, 0x00,//z 90
+    0x00, 0x00, 0x00, 0x00, 0x80, 0x7C, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x40,//{ 91
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,//| 92
+    0x00, 0x02, 0x02, 0x7C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x3F, 0x00, 0x00, 0x00, 0x00,//} 93
+    0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//~ 94
+};
+#endif
+
+# ifdef SongTi8x16
+/*******************************8*16 SongTi************************************/
+unsigned char __CODE FontSongTi8x16[] = {
+    //  (0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8) )(9) *(10) +(11) ,(12) -(13) .(14)
+    // /(15) 0(16) 1(17) 2(18) 3(19) 4(20) 5(21) 6(22) 7(23) 8(24) 9(25) :(26) ;(27) <(28)
+    // =(29) >(30) ?(31) @(32) A(33) B(34) C(35) D(36) E(37) F(38) G(39) H(40) I(41) J(42)
+    // K(43) L(44) M(45) N(46) O(47) P(48) Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56)
+    // Y(57) Z(58) [(59) \(60) ](61) ^(62) _(63) `(64) a(65) b(66) c(67) d(68) e(69) f(70)
+    // g(71) h(72) i(73) j(74) k(75) l(76) m(77) n(78) o(79) p(80) q(81) r(82) s(83) t(84)
+    // u(85) v(86) w(87) x(88) y(89) z(90) {(91) |(92) }(93) ~(94)
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*" ",0*/
+    0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00,/*"!",1*/
+    0x00, 0x10, 0x0C, 0x02, 0x10, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*""",2*/
+    0x00, 0x40, 0xC0, 0x78, 0x40, 0xC0, 0x78, 0x00, 0x00, 0x04, 0x3F, 0x04, 0x04, 0x3F, 0x04, 0x00,/*"#",3*/
+    0x00, 0x70, 0x88, 0x88, 0xFC, 0x08, 0x30, 0x00, 0x00, 0x18, 0x20, 0x20, 0xFF, 0x21, 0x1E, 0x00,/*"$",4*/
+    0xF0, 0x08, 0xF0, 0x80, 0x60, 0x18, 0x00, 0x00, 0x00, 0x31, 0x0C, 0x03, 0x1E, 0x21, 0x1E, 0x00,/*"%",5*/
+    0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00, 0x1E, 0x21, 0x23, 0x2C, 0x19, 0x27, 0x21, 0x10,/*"&",6*/
+    0x00, 0x12, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"'",7*/
+    0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x00,/*"(",8*/
+    0x00, 0x02, 0x04, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00,/*")",9*/
+    0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00, 0x02, 0x02, 0x01, 0x0F, 0x01, 0x02, 0x02, 0x00,/*"*",10*/
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01,/*"+",11*/
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,/*",",12*/
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,/*"-",13*/
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,/*".",14*/
+    0x00, 0x00, 0x00, 0x00, 0xC0, 0x38, 0x04, 0x00, 0x00, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,/*"/",15*/
+    0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"0",16*/
+    0x00, 0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00,/*"1",17*/
+    0x00, 0x70, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00,/*"2",18*/
+    0x00, 0x30, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x18, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"3",19*/
+    0x00, 0x00, 0x80, 0x40, 0x30, 0xF8, 0x00, 0x00, 0x00, 0x06, 0x05, 0x24, 0x24, 0x3F, 0x24, 0x24,/*"4",20*/
+    0x00, 0xF8, 0x88, 0x88, 0x88, 0x08, 0x08, 0x00, 0x00, 0x19, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"5",21*/
+    0x00, 0xE0, 0x10, 0x88, 0x88, 0x90, 0x00, 0x00, 0x00, 0x0F, 0x11, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"6",22*/
+    0x00, 0x18, 0x08, 0x08, 0x88, 0x68, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x00,/*"7",23*/
+    0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"8",24*/
+    0x00, 0xF0, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x01, 0x12, 0x22, 0x22, 0x11, 0x0F, 0x00,/*"9",25*/
+    0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,/*":",26*/
+    0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,/*";",27*/
+    0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,/*"<",28*/
+    0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,/*"=",29*/
+    0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,/*">",30*/
+    0x00, 0x70, 0x48, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x37, 0x00, 0x00, 0x00,/*"?",31*/
+    0xC0, 0x30, 0xC8, 0x28, 0xE8, 0x10, 0xE0, 0x00, 0x07, 0x18, 0x27, 0x28, 0x2F, 0x28, 0x17, 0x00,/*"@",32*/
+    0x00, 0x00, 0xC0, 0x38, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x23, 0x02, 0x02, 0x27, 0x38, 0x20,/*"A",33*/
+    0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"B",34*/
+    0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x07, 0x18, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00,/*"C",35*/
+    0x08, 0xF8, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"D",36*/
+    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x23, 0x20, 0x18, 0x00,/*"E",37*/
+    0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00,/*"F",38*/
+    0xC0, 0x30, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x07, 0x18, 0x20, 0x20, 0x22, 0x1E, 0x02, 0x00,/*"G",39*/
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x21, 0x3F, 0x20,/*"H",40*/
+    0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"I",41*/
+    0x00, 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, 0x00,/*"J",42*/
+    0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x00, 0x20, 0x3F, 0x20, 0x01, 0x26, 0x38, 0x20, 0x00,/*"K",43*/
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x30, 0x00,/*"L",44*/
+    0x08, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x08, 0x00, 0x20, 0x3F, 0x01, 0x3E, 0x01, 0x3F, 0x20, 0x00,/*"M",45*/
+    0x08, 0xF8, 0x30, 0xC0, 0x00, 0x08, 0xF8, 0x08, 0x20, 0x3F, 0x20, 0x00, 0x07, 0x18, 0x3F, 0x00,/*"N",46*/
+    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00,/*"O",47*/
+    0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x20, 0x3F, 0x21, 0x01, 0x01, 0x01, 0x00, 0x00,/*"P",48*/
+    0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x28, 0x28, 0x30, 0x50, 0x4F, 0x00,/*"Q",49*/
+    0x08, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x03, 0x0C, 0x30, 0x20,/*"R",50*/
+    0x00, 0x70, 0x88, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x38, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00,/*"S",51*/
+    0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,/*"T",52*/
+    0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"U",53*/
+    0x08, 0x78, 0x88, 0x00, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x07, 0x38, 0x0E, 0x01, 0x00, 0x00,/*"V",54*/
+    0x08, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x08, 0x00, 0x00, 0x03, 0x3E, 0x01, 0x3E, 0x03, 0x00, 0x00,/*"W",55*/
+    0x08, 0x18, 0x68, 0x80, 0x80, 0x68, 0x18, 0x08, 0x20, 0x30, 0x2C, 0x03, 0x03, 0x2C, 0x30, 0x20,/*"X",56*/
+    0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00,/*"Y",57*/
+    0x10, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x20, 0x38, 0x26, 0x21, 0x20, 0x20, 0x18, 0x00,/*"Z",58*/
+    0x00, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x00,/*"[",59*/
+    0x00, 0x04, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x38, 0xC0, 0x00,/*"\",60*/
+    0x00, 0x02, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x00, 0x00,/*"]",61*/
+    0x00, 0x00, 0x04, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"^",62*/
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,/*"_",63*/
+    0x00, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"`",64*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x24, 0x24, 0x12, 0x3F, 0x20, 0x00,/*"a",65*/
+    0x10, 0xF0, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"b",66*/
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00,/*"c",67*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x90, 0xF0, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20,/*"d",68*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x24, 0x24, 0x24, 0x24, 0x17, 0x00,/*"e",69*/
+    0x00, 0x80, 0x80, 0xE0, 0x90, 0x90, 0x20, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"f",70*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x6B, 0x94, 0x94, 0x94, 0x93, 0x60, 0x00,/*"g",71*/
+    0x10, 0xF0, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,/*"h",72*/
+    0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"i",73*/
+    0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00,/*"j",74*/
+    0x10, 0xF0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x24, 0x06, 0x29, 0x30, 0x20, 0x00,/*"k",75*/
+    0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00,/*"l",76*/
+    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x3F, 0x20, 0x00, 0x3F,/*"m",77*/
+    0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20,/*"n",78*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,/*"o",79*/
+    0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x91, 0x20, 0x20, 0x11, 0x0E, 0x00,/*"p",80*/
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x91, 0xFF, 0x80,/*"q",81*/
+    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x20, 0x20, 0x3F, 0x21, 0x20, 0x00, 0x01, 0x00,/*"r",82*/
+    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00,/*"s",83*/
+    0x00, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x10, 0x00,/*"t",84*/
+    0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20,/*"u",85*/
+    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x03, 0x0C, 0x30, 0x0C, 0x03, 0x00, 0x00,/*"v",86*/
+    0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x01, 0x0E, 0x30, 0x0C, 0x07, 0x38, 0x06, 0x01,/*"w",87*/
+    0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x20, 0x31, 0x0E, 0x2E, 0x31, 0x20, 0x00,/*"x",88*/
+    0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x81, 0x86, 0x78, 0x18, 0x06, 0x01, 0x00,/*"y",89*/
+    0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x21, 0x30, 0x2C, 0x22, 0x21, 0x30, 0x00,/*"z",90*/
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x40, 0x40,/*"{",91*/
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,/*"|",92*/
+    0x02, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x3E, 0x01, 0x00, 0x00, 0x00, 0x00,/*"}",93*/
+    0x00, 0x02, 0x01, 0x02, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*"~",94*/
+};
+#endif
+
+# ifdef SongTiY8x16
+unsigned char __CODE FontSongTiY8x16[] = {
+//   (0) !(1) "(2) #(3) $(4) %(5) &(6) '(7) ((8) )(9) *(10) +(11) ,(12) -(13) .(14) /(15) 0(16) 1(17) 2(18) 3(19)
+//  4(20) 5(21) 6(22) 7(23) 8(24) 9(25) :(26) ;(27) <(28) =(29) >(30) ?(31) @(32) A(33) B(34) C(35) D(36) E(37) F(38) G(39)
+//  H(40) I(41) J(42) K(43) L(44) M(45) N(46) O(47) P(48) Q(49) R(50) S(51) T(52) U(53) V(54) W(55) X(56) Y(57) Z(58) [(59)
+//  \(60) ](61) ^(62) _(63) `(64) a(65) b(66) c(67) d(68) e(69) f(70) g(71) h(72) i(73) j(74) k(75) l(76) m(77) n(78) o(79)
+//  p(80) q(81) r(82) s(83) t(84) u(85) v(86) w(87) x(88) y(89) z(90) {(91) |(92) }(93) ~(94)
+
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*" ",0*/
+    0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF,/*"!",1*/
+    0xFF, 0xEF, 0xF3, 0xFD, 0xEF, 0xF3, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*""",2*/
+    0xFF, 0xBF, 0x3F, 0x87, 0xBF, 0x3F, 0x87, 0xFF, 0xFF, 0xFB, 0xC0, 0xFB, 0xFB, 0xC0, 0xFB, 0xFF,/*"#",3*/
+    0xFF, 0x8F, 0x77, 0x77, 0x03, 0xF7, 0xCF, 0xFF, 0xFF, 0xE7, 0xDF, 0xDF, 0x00, 0xDE, 0xE1, 0xFF,/*"$",4*/
+    0x0F, 0xF7, 0x0F, 0x7F, 0x9F, 0xE7, 0xFF, 0xFF, 0xFF, 0xCE, 0xF3, 0xFC, 0xE1, 0xDE, 0xE1, 0xFF,/*"%",5*/
+    0xFF, 0x0F, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xDC, 0xD3, 0xE6, 0xD8, 0xDE, 0xEF,/*"&",6*/
+    0xFF, 0xED, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"'",7*/
+    0xFF, 0xFF, 0xFF, 0x1F, 0xE7, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xE7, 0xDF, 0xBF, 0xFF,/*"(",8*/
+    0xFF, 0xFD, 0xFB, 0xE7, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xDF, 0xE7, 0xF8, 0xFF, 0xFF, 0xFF,/*")",9*/
+    0xBF, 0xBF, 0x7F, 0x0F, 0x7F, 0xBF, 0xBF, 0xFF, 0xFD, 0xFD, 0xFE, 0xF0, 0xFE, 0xFD, 0xFD, 0xFF,/*"*",10*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xF0, 0xFE, 0xFE, 0xFE,/*"+",11*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*",",12*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF,/*"-",13*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*".",14*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xC7, 0xFB, 0xFF, 0xFF, 0x9F, 0xE7, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,/*"/",15*/
+    0xFF, 0x1F, 0xEF, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xFF, 0xF0, 0xEF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"0",16*/
+    0xFF, 0xFF, 0xEF, 0xEF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF,/*"1",17*/
+    0xFF, 0x8F, 0xF7, 0xF7, 0xF7, 0xF7, 0x0F, 0xFF, 0xFF, 0xCF, 0xD7, 0xDB, 0xDD, 0xDE, 0xCF, 0xFF,/*"2",18*/
+    0xFF, 0xCF, 0xF7, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xE7, 0xDF, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"3",19*/
+    0xFF, 0xFF, 0x7F, 0xBF, 0xCF, 0x07, 0xFF, 0xFF, 0xFF, 0xF9, 0xFA, 0xDB, 0xDB, 0xC0, 0xDB, 0xDB,/*"4",20*/
+    0xFF, 0x07, 0x77, 0x77, 0x77, 0xF7, 0xF7, 0xFF, 0xFF, 0xE6, 0xDF, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"5",21*/
+    0xFF, 0x1F, 0xEF, 0x77, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xF0, 0xEE, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"6",22*/
+    0xFF, 0xE7, 0xF7, 0xF7, 0x77, 0x97, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFE, 0xFF, 0xFF, 0xFF,/*"7",23*/
+    0xFF, 0x8F, 0x77, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xE3, 0xDD, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"8",24*/
+    0xFF, 0x0F, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xFF, 0xFE, 0xED, 0xDD, 0xDD, 0xEE, 0xF0, 0xFF,/*"9",25*/
+    0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF,/*":",26*/
+    0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,/*";",27*/
+    0xFF, 0xFF, 0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFF, 0xFF, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xFF,/*"<",28*/
+    0xFF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF,/*"=",29*/
+    0xFF, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE, 0xFF,/*">",30*/
+    0xFF, 0x8F, 0xB7, 0xF7, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xC8, 0xFF, 0xFF, 0xFF,/*"?",31*/
+    0x3F, 0xCF, 0x37, 0xD7, 0x17, 0xEF, 0x1F, 0xFF, 0xF8, 0xE7, 0xD8, 0xD7, 0xD0, 0xD7, 0xE8, 0xFF,/*"@",32*/
+    0xFF, 0xFF, 0x3F, 0xC7, 0x1F, 0xFF, 0xFF, 0xFF, 0xDF, 0xC3, 0xDC, 0xFD, 0xFD, 0xD8, 0xC7, 0xDF,/*"A",33*/
+    0xF7, 0x07, 0x77, 0x77, 0x77, 0x8F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"B",34*/
+    0x3F, 0xCF, 0xF7, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xF8, 0xE7, 0xDF, 0xDF, 0xDF, 0xEF, 0xF7, 0xFF,/*"C",35*/
+    0xF7, 0x07, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"D",36*/
+    0xF7, 0x07, 0x77, 0x77, 0x17, 0xF7, 0xEF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDC, 0xDF, 0xE7, 0xFF,/*"E",37*/
+    0xF7, 0x07, 0x77, 0x77, 0x17, 0xF7, 0xEF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF,/*"F",38*/
+    0x3F, 0xCF, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xFF, 0xF8, 0xE7, 0xDF, 0xDF, 0xDD, 0xE1, 0xFD, 0xFF,/*"G",39*/
+    0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xF7, 0x07, 0xF7, 0xDF, 0xC0, 0xDE, 0xFE, 0xFE, 0xDE, 0xC0, 0xDF,/*"H",40*/
+    0xFF, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"I",41*/
+    0xFF, 0xFF, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xFF, 0x3F, 0x7F, 0x7F, 0x7F, 0x80, 0xFF, 0xFF, 0xFF,/*"J",42*/
+    0xF7, 0x07, 0x77, 0x3F, 0xD7, 0xE7, 0xF7, 0xFF, 0xDF, 0xC0, 0xDF, 0xFE, 0xD9, 0xC7, 0xDF, 0xFF,/*"K",43*/
+    0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xDF, 0xDF, 0xDF, 0xCF, 0xFF,/*"L",44*/
+    0xF7, 0x07, 0x07, 0xFF, 0x07, 0x07, 0xF7, 0xFF, 0xDF, 0xC0, 0xFE, 0xC1, 0xFE, 0xC0, 0xDF, 0xFF,/*"M",45*/
+    0xF7, 0x07, 0xCF, 0x3F, 0xFF, 0xF7, 0x07, 0xF7, 0xDF, 0xC0, 0xDF, 0xFF, 0xF8, 0xE7, 0xC0, 0xFF,/*"N",46*/
+    0x1F, 0xEF, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xF0, 0xEF, 0xDF, 0xDF, 0xDF, 0xEF, 0xF0, 0xFF,/*"O",47*/
+    0xF7, 0x07, 0xF7, 0xF7, 0xF7, 0xF7, 0x0F, 0xFF, 0xDF, 0xC0, 0xDE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF,/*"P",48*/
+    0x1F, 0xEF, 0xF7, 0xF7, 0xF7, 0xEF, 0x1F, 0xFF, 0xF0, 0xEF, 0xD7, 0xD7, 0xCF, 0xAF, 0xB0, 0xFF,/*"Q",49*/
+    0xF7, 0x07, 0x77, 0x77, 0x77, 0x77, 0x8F, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFC, 0xF3, 0xCF, 0xDF,/*"R",50*/
+    0xFF, 0x8F, 0x77, 0xF7, 0xF7, 0xF7, 0xC7, 0xFF, 0xFF, 0xC7, 0xDF, 0xDE, 0xDE, 0xDD, 0xE3, 0xFF,/*"S",51*/
+    0xE7, 0xF7, 0xF7, 0x07, 0xF7, 0xF7, 0xE7, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFF, 0xFF,/*"T",52*/
+    0xF7, 0x07, 0xF7, 0xFF, 0xFF, 0xF7, 0x07, 0xF7, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"U",53*/
+    0xF7, 0x87, 0x77, 0xFF, 0xFF, 0x37, 0xC7, 0xF7, 0xFF, 0xFF, 0xF8, 0xC7, 0xF1, 0xFE, 0xFF, 0xFF,/*"V",54*/
+    0xF7, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xF7, 0xFF, 0xFF, 0xFC, 0xC1, 0xFE, 0xC1, 0xFC, 0xFF, 0xFF,/*"W",55*/
+    0xF7, 0xE7, 0x97, 0x7F, 0x7F, 0x97, 0xE7, 0xF7, 0xDF, 0xCF, 0xD3, 0xFC, 0xFC, 0xD3, 0xCF, 0xDF,/*"X",56*/
+    0xF7, 0xC7, 0x37, 0xFF, 0x37, 0xC7, 0xF7, 0xFF, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xFF, 0xFF,/*"Y",57*/
+    0xEF, 0xF7, 0xF7, 0xF7, 0x37, 0xC7, 0xF7, 0xFF, 0xDF, 0xC7, 0xD9, 0xDE, 0xDF, 0xDF, 0xE7, 0xFF,/*"Z",58*/
+    0xFF, 0xFF, 0xFF, 0x01, 0xFD, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBF, 0xBF, 0xBF, 0xFF,/*"[",59*/
+    0xFF, 0xFB, 0xC7, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF9, 0xC7, 0x3F, 0xFF,/*"\",60*/
+    0xFF, 0xFD, 0xFD, 0xFD, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, 0xBF, 0x80, 0xFF, 0xFF, 0xFF,/*"]",61*/
+    0xFF, 0xFF, 0xFB, 0xFD, 0xFD, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"^",62*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,/*"_",63*/
+    0xFF, 0xFD, 0xFD, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"`",64*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xDB, 0xDB, 0xED, 0xC0, 0xDF, 0xFF,/*"a",65*/
+    0xEF, 0x0F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xEE, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"b",66*/
+    0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xF1, 0xEE, 0xDF, 0xDF, 0xDF, 0xEE, 0xFF,/*"c",67*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x6F, 0x0F, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xEF, 0xC0, 0xDF,/*"d",68*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xDB, 0xDB, 0xDB, 0xE8, 0xFF,/*"e",69*/
+    0xFF, 0x7F, 0x7F, 0x1F, 0x6F, 0x6F, 0xDF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"f",70*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0x94, 0x6B, 0x6B, 0x6B, 0x6C, 0x9F, 0xFF,/*"g",71*/
+    0xEF, 0x0F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDE, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF,/*"h",72*/
+    0xFF, 0x7F, 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"i",73*/
+    0xFF, 0xFF, 0xFF, 0x7F, 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0x3F, 0x7F, 0x7F, 0x7F, 0x80, 0xFF, 0xFF,/*"j",74*/
+    0xEF, 0x0F, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xC0, 0xDB, 0xF9, 0xD6, 0xCF, 0xDF, 0xFF,/*"k",75*/
+    0xFF, 0xEF, 0xEF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0xC0, 0xDF, 0xDF, 0xFF, 0xFF,/*"l",76*/
+    0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xC0, 0xDF, 0xFF, 0xC0, 0xDF, 0xFF, 0xC0,/*"m",77*/
+    0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xC0, 0xDE, 0xFF, 0xFF, 0xDF, 0xC0, 0xDF,/*"n",78*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xFF,/*"o",79*/
+    0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x6E, 0xDF, 0xDF, 0xEE, 0xF1, 0xFF,/*"p",80*/
+    0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xF1, 0xEE, 0xDF, 0xDF, 0x6E, 0x00, 0x7F,/*"q",81*/
+    0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xDF, 0xDF, 0xC0, 0xDE, 0xDF, 0xFF, 0xFE, 0xFF,/*"r",82*/
+    0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xCC, 0xDB, 0xDB, 0xDB, 0xDB, 0xE6, 0xFF,/*"s",83*/
+    0xFF, 0x7F, 0x7F, 0x1F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xEF, 0xFF,/*"t",84*/
+    0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0xDF, 0xEF, 0xC0, 0xDF,/*"u",85*/
+    0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFC, 0xF3, 0xCF, 0xF3, 0xFC, 0xFF, 0xFF,/*"v",86*/
+    0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFE, 0xF1, 0xCF, 0xF3, 0xF8, 0xC7, 0xF9, 0xFE,/*"w",87*/
+    0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0x7F, 0x7F, 0xFF, 0xFF, 0xDF, 0xCE, 0xF1, 0xD1, 0xCE, 0xDF, 0xFF,/*"x",88*/
+    0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, 0x7E, 0x79, 0x87, 0xE7, 0xF9, 0xFE, 0xFF,/*"y",89*/
+    0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xDE, 0xCF, 0xD3, 0xDD, 0xDE, 0xCF, 0xFF,/*"z",90*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xC1, 0xBF, 0xBF,/*"{",91*/
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,/*"|",92*/
+    0xFD, 0xFD, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, 0xC1, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,/*"}",93*/
+    0xFF, 0xFD, 0xFE, 0xFD, 0xFD, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*"~",94*/
+};
+#endif
+
+#endif /* __OLED_FONT_ATY_C */
+
+

+ 77 - 0
OLED_FONT_ATY.h

@@ -0,0 +1,77 @@
+/**
+* @file OLED_FONT_ATY.h
+*
+* @param Project DEVICE_GENERAL_ATY_LIB
+*
+* @author ATY
+*
+* @copyright
+*       - Copyright 2017 - 2023 MZ-ATY
+*       - This code follows:
+*           - MZ-ATY Various Contents Joint Statement -
+*               <a href="https://mengze.top/MZ-ATY_VCJS">
+*                        https://mengze.top/MZ-ATY_VCJS</a>
+*           - CC 4.0 BY-NC-SA -
+*               <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
+*                        https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
+*       - Your use will be deemed to have accepted the terms of this statement.
+*
+* @brief Base functions of GP22 for all embedded device
+*
+* @version
+*       - 1_01_220901 > ATY
+*           -# Preliminary version, first Release
+********************************************************************************
+*/
+
+#ifndef __OLED_FONT_ATY_H
+#define __OLED_FONT_ATY_H
+
+#include "INCLUDE_ATY.h"
+
+// #define YouYuan6x8
+// #define YouYuan8x16
+#define SongTi8x16
+#define SongTiY8x16
+
+// #define TemHumSymbol
+
+
+extern unsigned char __CODE SysIcons[];
+
+#ifdef TemHumSymbol
+extern unsigned char __CODE CelsiusCharZh[];/*"℃",0*/
+extern unsigned char __CODE FahrenheitCharZh[];/*"℉",0*/
+extern unsigned char __CODE DegreeCharZh[];/*"°",0*/
+#endif
+
+
+//  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+// ASCII 32-126
+
+// ASCII + 32
+// Size:12*6
+// Font YouYuan
+
+# ifdef YouYuan6x8
+/***********************************6*8****************************************/
+extern unsigned char __CODE Font6x8[];
+#endif
+
+# ifdef YouYuan8x16
+/**************************************8*16************************************/
+extern unsigned char __CODE Font8x16[];
+#endif
+
+# ifdef SongTi8x16
+/*******************************8*16 SongTi************************************/
+extern unsigned char __CODE FontSongTi8x16[];
+#endif
+
+# ifdef SongTiY8x16
+extern unsigned char __CODE FontSongTiY8x16[];
+#endif
+
+#endif /* __OLED_FONT_ATY_H */
+
+

+ 252 - 0
OLED_SSD1306_ATY.c

@@ -0,0 +1,252 @@
+/**
+* @file OLED_SSD1306_ATY.h
+*
+* @param Project DEVICE_GENERAL_ATY_LIB
+*
+* @author ATY
+*
+* @copyright
+*       - Copyright 2017 - 2023 MZ-ATY
+*       - This code follows:
+*           - MZ-ATY Various Contents Joint Statement -
+*               <a href="https://mengze.top/MZ-ATY_VCJS">
+*                        https://mengze.top/MZ-ATY_VCJS</a>
+*           - CC 4.0 BY-NC-SA -
+*               <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
+*                        https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
+*       - Your use will be deemed to have accepted the terms of this statement.
+*
+* @brief Base functions of GP22 for all embedded device
+*
+* @version
+*       - 1_01_220901 > ATY
+*           -# Preliminary version, first Release
+********************************************************************************
+*/
+
+#ifndef __OLED_SSD1306_ATY_C
+#define __OLED_SSD1306_ATY_C
+
+#include "OLED_SSD1306_ATY.h"
+
+void OLED_WriteData(uint8_t oledData)
+{
+    I2C_Start();
+    I2C_WriteByte(0x78);    //Slave address,SA0=0
+    I2C_WriteByte(0x40);
+    I2C_WriteByte(oledData);
+    I2C_Stop();
+}
+
+void OLED_WriteCmd(uint8_t oledCmd)
+{
+    I2C_Start();
+    I2C_WriteByte(0x78);    //Slave address,SA0=0
+    I2C_WriteByte(0x00);
+    I2C_WriteByte(oledCmd);
+    I2C_Stop();
+}
+
+void OLED_SetPos(uint8_t x, uint8_t y)
+{
+    OLED_WriteCmd(0xb0 + y);
+    OLED_WriteCmd(((x & 0xf0) >> 4) | 0x10);
+    OLED_WriteCmd((x & 0x0f) | 0x01);
+}
+
+
+void OLED_FillScreen(uint8_t fillData)
+{
+    uint8_t y, x;
+    for(y = 0; y < 8; y++)
+    {
+        OLED_WriteCmd(0xb0 + y);
+        OLED_WriteCmd(0x01);
+        OLED_WriteCmd(0x10);
+        for(x = 0; x < X_WIDTH; x++)
+            OLED_WriteData(fillData);
+    }
+}
+
+
+void OLED_Init(void)
+{
+    // uint16_t i = 0;
+    // for(i = 0; i < 5000; i++){}
+    // DelayNms(50);
+    // OLED_WriteCmd(0xae);        // Turn off oled panel
+    // OLED_WriteCmd(0x00);        // Set low column address
+    // OLED_WriteCmd(0x10);        // Set high column address
+    // OLED_WriteCmd(0x40);        // Set start line address, Set Mapping RAM Display Start Line (0x00~0x3F)
+    // OLED_WriteCmd(0x81);        // Set contrast control register
+    // OLED_WriteCmd(BRIGHTNESS);  // Set SEG Output Current Brightness
+    // OLED_WriteCmd(0xa1);        // Set SEG/Column Mapping, 0xa0 reverse x, 0xa1 normal x
+    // OLED_WriteCmd(0xc8);        // Set COM/Row Scan Direction, 0xc0 reverse y, 0xc8 normal y
+    // OLED_WriteCmd(0xa6);        // Set normal display
+    // OLED_WriteCmd(0xa8);        // Set multiplex ratio(1 to 64)
+    // OLED_WriteCmd(0x3f);        // 1/64 duty
+    // OLED_WriteCmd(0xd3);        // Set display offset   Shift Mapping RAM Counter (0x00~0x3F)
+    // OLED_WriteCmd(0x00);        // Not offset
+    // OLED_WriteCmd(0xd5);        // Set display clock divide ratio/oscillator frequency
+    // OLED_WriteCmd(0x80);        // Set divide ratio, Set Clock as 100 Frames/Sec
+    // OLED_WriteCmd(0xd9);        // Set pre-charge period
+    // OLED_WriteCmd(0xf1);        // Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
+    // OLED_WriteCmd(0xda);        // Set com pins hardware configuration
+    // OLED_WriteCmd(0x12);
+    // OLED_WriteCmd(0xdb);        // Set vcomh
+    // OLED_WriteCmd(0x40);        // Set VCOM Deselect Level
+    // OLED_WriteCmd(0x20);        // Set Page Addressing Mode (0x00/0x01/0x02)
+    // OLED_WriteCmd(0x02);        //
+    // OLED_WriteCmd(0x8d);        // Set Charge Pump enable/disable
+    // OLED_WriteCmd(0x14);        // Set(0x10) disable
+    // OLED_WriteCmd(0xa4);        // Disable Entire Display On (0xa4/0xa5)
+    // OLED_WriteCmd(0xa6);        // Disable Inverse Display On (0xa6/a7)
+    // OLED_WriteCmd(0xaf);        // Turn on oled panel
+    // OLED_FillScreen(0x00);      // Clear screen
+    // OLED_SetPos(0, 0);          // Reset origin
+
+    // 0.91
+    OLED_WriteCmd(0xAE);
+    OLED_WriteCmd(0x20);
+    OLED_WriteCmd(0x00);
+    OLED_WriteCmd(0xb0);
+    OLED_WriteCmd(0xc8);
+    OLED_WriteCmd(0x00);
+    OLED_WriteCmd(0x10);
+    OLED_WriteCmd(0x40);
+    OLED_WriteCmd(0x81);
+    OLED_WriteCmd(0xdf);
+    OLED_WriteCmd(0xa1);
+    OLED_WriteCmd(0xa6);
+    OLED_WriteCmd(0xa8);
+    OLED_WriteCmd(0x1F);
+    OLED_WriteCmd(0xa4);
+    OLED_WriteCmd(0xd3);
+    OLED_WriteCmd(0x00);
+    OLED_WriteCmd(0xd5);
+    OLED_WriteCmd(0xf0);
+    OLED_WriteCmd(0xd9);
+    OLED_WriteCmd(0x22);
+    OLED_WriteCmd(0xda);
+    OLED_WriteCmd(0x12);
+    OLED_WriteCmd(0xdb);
+    OLED_WriteCmd(0x20);
+    OLED_WriteCmd(0x8d);
+    OLED_WriteCmd(0x14);
+    OLED_WriteCmd(0xDA);
+    OLED_WriteCmd(0x02);
+    OLED_WriteCmd(0xaf);
+    OLED_FillScreen(0x00);      // Clear screen
+    OLED_SetPos(0, 0);          // Reset origin
+}
+
+
+
+
+void OLED_DrawChar8x16(uint8_t x, uint8_t y, uint8_t symbol[])
+{
+    uint8_t i = 0;
+    if(x > 120) // If x large than max width, then move to next line begining
+    {
+        x = 0;
+        y += 2;
+    }
+
+    OLED_SetPos(x, y);
+
+    for(i = 0; i < 8; i++)
+    {
+        OLED_WriteData(symbol[i]);
+    }
+
+    OLED_SetPos(x, y + 1);
+
+    for(i = 0; i < 8; i++)
+    {
+        OLED_WriteData(symbol[i + 8]);
+    }
+}
+
+
+void OLED_DrawChar16x16(uint8_t x, uint8_t y, uint8_t symbol[])
+{
+    uint8_t i = 0;
+    if(x > 120) // If x large than max width, then move to next line begining
+    {
+        x = 0;
+        y += 2;
+    }
+
+    OLED_SetPos(x, y);
+
+    for(i = 0; i < 16; i++)
+    {
+        OLED_WriteData(symbol[i]);
+    }
+
+    OLED_SetPos(x, y + 1);
+
+    for(i = 0; i < 16; i++)
+    {
+        OLED_WriteData(symbol[i + 16]);
+    }
+}
+
+// void OLED_DrawString8x16(uint8_t x, uint8_t y, uint8_t* str, uint8_t len, uint8_t* font)
+// {
+//     uint8_t i = 0;
+//     for(i = 0; i < len; i++)
+//     {
+//         if(x > 120)
+//         {
+//             x = 0;
+//             y += 2;
+//         }
+//         if(y > 6)
+//             break;
+//         OLED_DrawChar8x16(x, y, font + ((str[i] - 32) * 16));
+//         x += 8;
+//     }
+// }
+
+
+
+
+uint8_t NumToChar(uint8_t num)
+{
+    if(num >= 0 && num <= 9)
+        return num + 32 + 16;
+    return num;                 // Not a number between 0-9
+}
+
+void OLED_DisNumber(uint8_t x, uint8_t y, uint8_t disData)
+{
+    OLED_SetPos(x, y);
+    OLED_DrawChar8x16(x, y, FontSongTi8x16 + ((NumToChar(disData) - 32) * 16));
+}
+
+void OLED_DisValue(uint8_t x, uint8_t y, uint8_t* disData, uint8_t disLength)
+{
+    uint8_t i = 0;
+
+    for(i = 0; i < disLength; i++)
+    {
+        OLED_SetPos(x, y);
+        OLED_DrawChar8x16(x, y, FontSongTi8x16 + ((NumToChar(disData[i]) - 32) * 16));
+        x += 8;
+    }
+}
+
+
+
+
+void OLED_Dis_Welcom(void)
+{
+    uint8_t beginX = 28, beginY = 2;
+
+    OLED_DrawString8x16(0, 0, "I. Astrol", FontSongTi8x16);
+    // OLED_DrawString8x16(0, 16, "HT", 2, FontSongTi8x16);
+}
+
+
+#endif /* __OLED_SSD1306_ATY_C */

+ 78 - 0
OLED_SSD1306_ATY.h

@@ -0,0 +1,78 @@
+/**
+* @file OLED_SSD1306_ATY.h
+*
+* @param Project DEVICE_GENERAL_ATY_LIB
+*
+* @author ATY
+*
+* @copyright
+*       - Copyright 2017 - 2023 MZ-ATY
+*       - This code follows:
+*           - MZ-ATY Various Contents Joint Statement -
+*               <a href="https://mengze.top/MZ-ATY_VCJS">
+*                        https://mengze.top/MZ-ATY_VCJS</a>
+*           - CC 4.0 BY-NC-SA -
+*               <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
+*                        https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
+*       - Your use will be deemed to have accepted the terms of this statement.
+*
+* @brief Base functions of GP22 for all embedded device
+*
+* @version
+*       - 1_01_220901 > ATY
+*           -# Preliminary version, first Release
+********************************************************************************
+*/
+
+#ifndef __OLED_SSD1306_ATY_H
+#define __OLED_SSD1306_ATY_H
+
+#include "INCLUDE_ATY.h"
+#include "HW_GPIO_ATY.h"
+#include "HW_I2C_ATY.h"
+#include "OLED_FONT_ATY.h"
+
+/******************************* For user *************************************/
+// #define __DEBUG_OLED_SSD1306_ATY
+
+/******************************************************************************/
+
+#define BRIGHTNESS 0xCF
+#define X_WIDTH 128
+// #define X_WIDTH 128
+#define Y_WIDTH 32
+// #define Y_WIDTH 64
+
+#define MENU_IN  0
+#define MENU_OUT 1
+
+void OLED_WriteData(uint8_t oledData);
+void OLED_WriteCmd(uint8_t oledCmd);
+void OLED_SetPos(uint8_t x, uint8_t y);
+void OLED_FillScreen(uint8_t fillData);
+
+void OLED_Init(void);
+void OLED_DrawChar8x16(uint8_t x, uint8_t y, uint8_t symbol[]);
+void OLED_DrawChar16x16(uint8_t x, uint8_t y, uint8_t symbol[]);
+// void OLED_DrawString8x16(uint8_t x, uint8_t y, uint8_t* str, uint8_t len, uint8_t* font);
+#define OLED_DrawString8x16(x, y, str, font) \
+do{ \
+    uint8_t i = 0, xi = x, yi = y; \
+    for(i = 0; i < (sizeof(str) - 1); i++) { \
+        if(xi > 120) { \
+            xi = 0; \
+            yi += 2; \
+        } \
+        if(yi > 6) \
+            break; \
+        OLED_DrawChar8x16(xi, yi, font + (((str)[i] - 32) * 16)); \
+        xi += 8; \
+    } \
+}while(0)
+
+uint8_t NumToChar(uint8_t num);
+
+void OLED_Dis_Welcom(void);
+
+
+#endif /* __OLED_SSD1306_ATY_H */

+ 3 - 2
Web/PROG_Base.js

@@ -46,7 +46,8 @@ function float2hex(num) {
 }
 
 function roundFun(value, n) {
-    if (value == 0 || value == undefined || value == null || value < 1e-10) {
+    // if (value == 0 || value == undefined || value == null || value < 1e-10) {
+    if (value == 0 || value == undefined || value == null || (value < 1e-10 && value > -1e-10)) {
         let num = "0.";
         num = num.padEnd(n + 2, "0");
         return num;
@@ -257,7 +258,7 @@ function StringToFloatArray(str) {
     return tempArray;
 }
 
-function NumberSuitScop(valueIn, scopMin, scopMax, step) {
+function ALGO_NumberSuitScop(valueIn, scopMin, scopMax, step) {
     while (valueIn < scopMin || valueIn > scopMax) {
         if (valueIn < scopMin)
             valueIn += step;