test

Dependencies:   mbed-STM32F103C8T6 SHT21_ncleee

Files at this revision

API Documentation at this revision

Comitter:
bbw
Date:
Wed Apr 15 11:36:03 2020 +0000
Parent:
0:217105958c2d
Commit message:
Test_bob_0415

Changed in this revision

SHT21_ncleee.lib Show annotated file Show diff for this revision Revisions of this file
eeprom.cpp Show annotated file Show diff for this revision Revisions of this file
eeprom.h Show annotated file Show diff for this revision Revisions of this file
lcd_driver.cpp Show diff for this revision Revisions of this file
lcd_driver.h Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
mbed-STM32F103C8T6.lib Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show diff for this revision Revisions of this file
st7789v.cpp Show annotated file Show diff for this revision Revisions of this file
st7789v.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SHT21_ncleee.lib	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/graeme88/code/SHT21_ncleee/#03bbabb7b0b0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeprom.cpp	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,42 @@
+#include "eeprom.h"
+#include "main.h"
+
+void readID(int addy){
+  char ucdata_write[1];
+  char ucdata_read[1];
+  ucdata_write[0] = addy; //MCP24AA02_DID, Address here for Device ID
+  while (i2c.write((MCP24AA02_ADDR|WRITE), ucdata_write, 1, 0)){;}//Wait for ACK if EEPROM is in 'write' cycle
+  i2c.read((MCP24AA02_ADDR|READ),ucdata_read,1,0);
+  if(ucdata_read[0]==0x29){
+    debug_uart.printf("Code=%#x (Microchip Technology ltd.(c))\r\n",ucdata_read[0]);
+  }
+  if(ucdata_read[0]==0x41){
+    debug_uart.printf("Code=%#x (2K EEPROM Using i2c)\r\n",ucdata_read[0]);
+  }else{
+    debug_uart.printf("Unknown eeprom device %x\r\n", ucdata_read[0]);
+  }   
+}
+
+void readEE(int addy){
+  char ucdata_write[1];
+  char ucdata_read[1];
+  ucdata_write[0] = addy; //Address here to read
+  while (i2c.write((MCP24AA02_ADDR|WRITE), ucdata_write, 1, 0)){} //Wait for ACK if EEPROM is in 'write' cycle
+  i2c.read((MCP24AA02_ADDR|READ),ucdata_read,1,0); //Note 'OR' Address with Read bit
+  debug_uart.printf("%c",ucdata_read[0]);
+}
+
+void writeEE(int addy,int data){
+  char ucdata_write[2];
+  ucdata_write[0] = addy;
+  ucdata_write[1] = data;
+  while (i2c.write((MCP24AA02_ADDR|WRITE), ucdata_write, 1, 0)){} //Wait for ACK if EEPROM is in 'write' cycle
+  i2c.write((MCP24AA02_ADDR|WRITE),ucdata_write,2,0); //Note 'OR' Adress with Write bit
+  debug_uart.printf("%04d %c\t",addy,data);
+}
+
+void eraseEE(void){
+  for (int i=0;i<0xFA;i++){ //0xFA to 0xFF are read only with Manufacture/Hardware ID and a Unique Serial Number
+    writeEE(i,0xFF);
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeprom.h	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,18 @@
+#ifndef EEPROM_H
+#define EEPROM_H
+
+#define MCP24AA02_ADDR     (0xA0) // 24AA02 2K EEPROM using i2c Address
+#define WRITE              (0x00) // 24AA02 2K EEPROM using i2c Write bit
+#define READ               (0x01) // 24AA02 2K EEPROM using i2c Read bit
+#define MCP24AA02_MID      (0xFA) // Manufacturer ID Address (Read Only 0x29==Microchip)
+#define MCP24AA02_DID      (0xFB) // Device ID Adress (Read Only 0x41==4 is i2c family and 1 is 2K device)
+
+void readID(int addy);
+
+void readEE(int addy);
+
+void writeEE(int addy,int data);
+
+void eraseEE(void);
+
+#endif
\ No newline at end of file
--- a/lcd_driver.cpp	Wed Feb 20 15:13:20 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-#include "lcd_driver.h"
-
-
-#define LCD_DRIVER_C
-
-#include "mbed.h"
-
-//lsb .. msb
-BusOut LCD_DataBus(p13,p14,p15,p16,p17,p18,p19,p20);
-
-
-DigitalOut RS(p21);
-DigitalOut WR(p22);
-DigitalOut RD(p23);
-DigitalOut CS(p24);
-DigitalOut RST(p25);
-
-
-void Write_Command(unsigned int c)
-{
-  RS = 0;
-  Write(c);
-}
-
-void Write_Data(unsigned int c)
-{
-  RS = 1;
-  Write(c);
-}
-
-void Write(unsigned int c)
-{
-  LCD_DataBus = c >> 8;
-  WR = 0;
-    WR = 1;
-
-  LCD_DataBus = c;
-  WR = 0;
-  WR = 1;
- 
-}
-
-void Write_Command_Data(unsigned int cmd,unsigned int dat)
-{
-    Write_Command(cmd);
-    Write_Data(dat);
-}
-
-
-void Lcd_Init()
-{
-
-    digitalWrite(RD,HIGH);
-    digitalWrite(CS,HIGH);
-  digitalWrite(WR,HIGH);
-    
-    digitalWrite(RST,HIGH);
-  delay(1);   
-  digitalWrite(RST,LOW);
-  delay(10);  
-  delay(1);
-    digitalWrite(RST,HIGH);    
-
-    CS = 0;
-    
-      Write_Command_Data(0x0011,0x2004);        
-    Write_Command_Data(0x0013,0xCC00);        
-    Write_Command_Data(0x0015,0x2600);    
-    Write_Command_Data(0x0014,0x252A);    
-//    Write_Command_Data(0x14,0x002A);        
-    Write_Command_Data(0x0012,0x0033);        
-    Write_Command_Data(0x0013,0xCC04);        
-    //delayms(1); 
-    Write_Command_Data(0x0013,0xCC06);        
-    //delayms(1); 
-    Write_Command_Data(0x0013,0xCC4F);        
-    //delayms(1); 
-    Write_Command_Data(0x0013,0x674F);
-    Write_Command_Data(0x0011,0x2003);
-    //delayms(1);     
-    Write_Command_Data(0x0030,0x2609);        
-    Write_Command_Data(0x0031,0x242C);        
-    Write_Command_Data(0x0032,0x1F23);        
-    Write_Command_Data(0x0033,0x2425);        
-    Write_Command_Data(0x0034,0x2226);        
-    Write_Command_Data(0x0035,0x2523);        
-    Write_Command_Data(0x0036,0x1C1A);        
-    Write_Command_Data(0x0037,0x131D);        
-    Write_Command_Data(0x0038,0x0B11);        
-    Write_Command_Data(0x0039,0x1210);        
-    Write_Command_Data(0x003A,0x1315);        
-    Write_Command_Data(0x003B,0x3619);        
-    Write_Command_Data(0x003C,0x0D00);        
-    Write_Command_Data(0x003D,0x000D);        
-    Write_Command_Data(0x0016,0x0007);        
-    Write_Command_Data(0x0002,0x0013);        
-    Write_Command_Data(0x0003,0x0003);        
-    Write_Command_Data(0x0001,0x0127);        
-    //delayms(1); 
-    Write_Command_Data(0x0008,0x0303);        
-    Write_Command_Data(0x000A,0x000B);        
-    Write_Command_Data(0x000B,0x0003);   
-    Write_Command_Data(0x000C,0x0000);   
-    Write_Command_Data(0x0041,0x0000);    
-    Write_Command_Data(0x0050,0x0000);   
-    Write_Command_Data(0x0060,0x0005);    
-    Write_Command_Data(0x0070,0x000B);    
-    Write_Command_Data(0x0071,0x0000);    
-    Write_Command_Data(0x0078,0x0000);    
-    Write_Command_Data(0x007A,0x0000);   
-    Write_Command_Data(0x0079,0x0007);        
-    Write_Command_Data(0x0007,0x0051);   
-    //delayms(1);     
-    Write_Command_Data(0x0007,0x0053);        
-    Write_Command_Data(0x0079,0x0000);
-
-    Write_Command(0x0022);
-
-    
-}
-
-void SetXY(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1)
-{
-  Write_Command_Data(0x0046,(x1 << 8)| x0);
-  //Write_Command_Data(0x0047,x1);
-  Write_Command_Data(0x0047,y1);
-  Write_Command_Data(0x0048,y0);
-  Write_Command_Data(0x0020,x0);
-  Write_Command_Data(0x0021,y0);
-  Write_Command (0x0022);//LCD_WriteCMD(GRAMWR);
-}
-void Pant(unsigned int color)
-{
-    int i,j;
-    int color_test;
-    color_test = 0;
-    SetXY(0,239,0,319);
-        //SetXY(0,120,0,120);
-
-    for(i=0;i<320;i++)
-     {
-      for (j=0;j<240;j++)
-        {
-         Write_Data(color_test);
-                    color_test+=10;
-        }
-
-      }     
-}
-void LCD_clear()
-{
-    unsigned int i,j;
-    SetXY(0,239,0,319);
-    for(i=0;i<X_CONST;i++)
-    {
-        for(j=0;j<Y_CONST;j++)
-        {    
-            Write_Data(0x0000);
-        }
-    }
-}
-
-
-#undef LCD_DRIVER_C
--- a/lcd_driver.h	Wed Feb 20 15:13:20 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#ifndef LCD_DRIVER_H
-#define LCD_DRIVER_H
-
-//#include "mbed.h"
-
-
-#ifdef LCD_DRIVER_C
-    #define EXTERN_PFX 
-#else
-    #define EXTERN_PFX extern
-#endif
-
-#define HIGH 1
-#define LOW 0
-
-#define digitalWrite(x,y)   x=y
-
-#define delay(x)    wait_ms(x)
-
-#define X_CONST 240
-#define Y_CONST 320
-
-
-
-
-EXTERN_PFX void Write(unsigned int c);
-EXTERN_PFX void Write_Command(unsigned int c);
-EXTERN_PFX void Write_Data(unsigned int c);
-EXTERN_PFX void Write_Command_Data(unsigned int cmd,unsigned int dat);
-
-
-EXTERN_PFX void Lcd_Init();
-EXTERN_PFX void LCD_clear();
-EXTERN_PFX void SetXY(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1);
-EXTERN_PFX void Pant(unsigned int color);
-
-
-
-
-
-#endif
--- a/main.cpp	Wed Feb 20 15:13:20 2013 +0000
+++ b/main.cpp	Wed Apr 15 11:36:03 2020 +0000
@@ -1,37 +1,357 @@
 #include "mbed.h"
-#include "lcd_driver.h"
+//#include "rtos.h"
+#include "stm32f103c8t6.h"
+#include "ATCmdParser.h"
+#include "UARTSerial.h"
+//#include "Thread.h"
+
+DigitalOut MOTOA1(PB_4);
+DigitalOut MOTOB1(PB_5);
+
+DigitalOut MOTOA2(PB_8);
+DigitalOut MOTOB2(PB_9);
+
+Serial debug_uart(PB_10, PB_11);
+
+AnalogIn SensorCurrent(PA_0);
+
+AnalogIn BatteryVoltage(PA_1);
+
+void motor1_move(uint8_t dir);
+void motor2_move(uint8_t dir);
+
+void system_init();
+
+UARTSerial *_serial;
+
+//Thread  thread1,thread2,thread3;
+
+#if 1
+
+uint8_t sensor_cnt,cal_cnt;
+uint8_t dir;
+float sense_value;
+uint8_t ov_flag, init_flag, motor1_ready_flag, motor2_ready_flag, sensor_flag;
+
+#endif
+
+void sensor_capture_cb(void){
+    sensor_cnt++;
+}
+
+#define MAX_LENGTH_STEPS 55
+#define MIN_LENGTH_STEPS 10
+#define MOVING_UP 1
+#define MOVING_DOWN 2
+#define MOVING_FORWARD 1
+#define MOVING_BACKWARD 2
+#define STOP 0
+
+#if 1
+
+void Power_thread(void const *argument){/*detect current*/
+  uint8_t i = 0;
+  while(true){
+    Thread::wait(500); /*unit millisec*/
+    //debug_uart.printf("Power_thread 11111111111111\r\n");
+    //debug_uart.printf("sensor_cnt = %d\r\n", sensor_cnt);
+    sense_value = SensorCurrent.read(); 
+    //debug_uart.printf("current sense_value2 =%0.4f \r\n", sense_value);
+    if((sense_value>0.8)&&sensor_flag){
+        debug_uart.printf("sense_value = %0.4f > 0.4 \r\n", sense_value);
+        ov_flag = 1;
+        //if(motor2_ready_flag){
+            //motor2_ready_flag = 0;
+            //while(1){motor1_move(STOP);}
+        //}
+    }   
+  }
+}
 
-DigitalOut myled(LED1);
+void Motor1_thread(void const *argument){/*detect current*/
+    uint8_t i;
+  while(true){
+    Thread::wait(300); /*unit millisec*/
+    if(motor2_ready_flag){   
+        sensor_cnt = 0;
+        motor1_move(MOVING_FORWARD);
+        wait(1);
+        sensor_flag = 1;
+        while(!ov_flag){debug_uart.printf("xxxxxxxxxxxxxxxxx \r\n"); wait(1);}
+        motor1_move(STOP);
+        debug_uart.printf("overcurrent detected \r\n");     
+        ov_flag = 0;
+        motor2_ready_flag = 0;
+        cal_cnt = sensor_cnt;
+        debug_uart.printf("calibration done \r\n");     
+        debug_uart.printf("calibrated cnt is %d \r\n", cal_cnt);  
+        wait(2);
+        debug_uart.printf("back to origianl position, motor1_ready_flag = 1\r\n"); 
+        motor1_ready_flag = 1;
+        while(1){
+            if(motor2_ready_flag){break;}else{
+                wait(1);
+                debug_uart.printf("thread2----wait for motor2 ready\r\n"); //wait(1);
+            }
+        }
+        motor2_ready_flag = 0;
+        sensor_cnt = 0;
+        sensor_flag = 0;
+        motor1_move(MOVING_BACKWARD);
+        debug_uart.printf("current cal_cnt is %d\r\n", cal_cnt);
+        //while(sensor_cnt<(cal_cnt-10)){debug_uart.printf("sensor cnt is %d\r\n", sensor_cnt);}
+        while(1){
+            if(sensor_cnt>(cal_cnt-10)){break;}else{
+                wait_ms(10);
+                //debug_uart.printf("sensor cnt is %d \r\n", sensor_cnt); 
+            }
+        }
+        debug_uart.printf("xxxxxxxxxx----------sensor cnt is %d \r\n", sensor_cnt); 
+        //debug_uart.printf("sensor cnt is higher than equal cal_cnt - 10 \r\n"); 
+        motor1_move(STOP);
+        wait(2);
+        motor1_ready_flag = 1;
+        //if(ov_flag){ov_flag = 0;}
+    }
+  }
+}
+
+void Motor2_thread(void const *argument){/*detect current*/
+  uint8_t sta1,sta2;
+  DigitalIn Stopper1(PA_13);
+  DigitalIn Stopper2(PA_15);
+
+  while(true){
+    Thread::wait(300); /*unit millisec*/
+    if(!init_flag){
+        #if 1
+        wait(1);
+        debug_uart.printf("thread 2 start \r\n");    
+        motor2_move(MOVING_UP);
+        while(Stopper1){;}
+        motor2_move(STOP);
+        debug_uart.printf("up stopper1 triggered \r\n");        
+        //init_flag = 1;
+        motor2_ready_flag = 1;
+        wait(1);
+        //while(!motor1_ready_flag){debug_uart.printf("wait for motor1 ready\r\n");wait(1);}
+        while(1){
+            if(motor1_ready_flag){break;}else{
+                wait(1);
+                debug_uart.printf("thread2----wait for motor1 ready \r\n"); 
+            }
+        }
+        debug_uart.printf("motor1 is ready\r\n");   
+        motor1_ready_flag = 0;
+        motor2_move(MOVING_DOWN);
+        while(Stopper2){;}
+        motor2_move(STOP);
+        debug_uart.printf("down stopper1 triggered \r\n");      
+        motor2_ready_flag = 1;
+        init_flag = 1;  
+        //while(!motor1_ready_flag){debug_uart.printf("wait for finish\r\n");wait(1);}
+        while(1){
+            if(motor1_ready_flag){break;}else{
+                wait(1);
+                debug_uart.printf("thread2----wait for motor1 ready \r\n"); 
+            }
+        }
+        debug_uart.printf("move motor2 to center\r\n"); 
+        motor2_move(MOVING_UP);
+        wait(1.5);
+        motor2_move(STOP);
+        debug_uart.printf("motor2 thread done\r\n");
+        #endif        
+    }
+  }
+}
 
 
-int main() {
+#endif
+
+int main(){ 
+    wait(2);
     
-    Serial pc(USBTX, USBRX); // tx, rx
+    system_init();  
+    
+    InterruptIn Hall1(PA_14);
+    //InterruptIn Hall2(PB_3);    
+    Hall1.fall(callback(sensor_capture_cb)); // Attach ISR to handle button press event
+    //Hall2.fall(callback(sensor_capture_cb)); // Attach ISR to handle button press event
+    debug_uart.printf("Hall1 init done\r\n");
 
-    Lcd_Init();
-      pc.printf("Hello mbed\n");
-  LCD_clear();
-    pc.printf("clear \n");
-    Pant(0xf800);
-    Pant(0x07e0);
-   Pant(0x001f);
-        Pant(0xffff);
-    Pant(0x0000);
-
-    while(1) {
-                Pant(0xf800);
-    Pant(0x07e0);
-   Pant(0x001f);
-        Pant(0xffff);
-    Pant(0x0000);
-#if 0
-        myled = 1;
-        wait(0.5);
-        myled = 0;
-        wait(0.5);
-#endif 
+    //Thread thread1(osPriorityNormal,2048,Power_thread, NULL); /*check the real-time current*/
+    
+    #if 0
+    thread1.start(Power_thread);
+    debug_uart.printf("thread1~~~~~~~~~~~~~~~~\r\n");
+    thread2.start(Motor1_thread);
+    debug_uart.printf("thread2~~~~~~~~~~~~~~~~\r\n");
+    thread3.start(Motor2_thread);
+    debug_uart.printf("thread3~~~~~~~~~~~~~~~~\r\n");
+    #endif
+    
+    #if 1
+    
+    Thread thread1(Power_thread, NULL, osPriorityNormal, 2048);
+    Thread thread2(Motor1_thread, NULL, osPriorityNormal, 2048);
+    Thread thread3(Motor1_thread, NULL, osPriorityNormal, 2048);
+    #endif
+    
+    #if 0    
+    debug_uart.printf("thread1~~~~~~~~~~~~~~~~\r\n");
+    Thread thread2(osPriorityNormal,2048,Motor1_thread, NULL); /*check the real-time current*/
+    //Thread thread2(Motor1_thread, NULL, osPriorityNormal, 512); /*check the real-time current*/
+    debug_uart.printf("thread2~~~~~~~~~~~~~~~~\r\n");
+    Thread thread3(osPriorityNormal,2048,Motor2_thread,NULL); /*check the real-time current*/
+    //Thread thread3(Motor2_thread, NULL, osPriorityNormal, 512); /*check the real-time current*/
+    debug_uart.printf("thread3~~~~~~~~~~~~~~~~\r\n");
+    #endif
+    
+    
+    
+    init_flag = 0;
+    //motor2_ready_flag = 1;
+    //motor2_move(MOVING_DOWN);
+    while(1){        
+        //debug_uart.printf("~~~~~~~~~~~~~~\r\n");
+        wait(1);  
+        //sense_value = SensorCurrent.read(); 
+        debug_uart.printf("current sense_value2 =%0.4f \r\n", sense_value);        
     }
 }
 
 
 
+
+void motor1_move(uint8_t dir){/*main motor*/
+  if(dir==1){/*forward*/
+    MOTOA1 = 0;
+    MOTOB1 = 1;
+  }else if(dir==2){/*backward*/
+    MOTOA1 = 1;
+    MOTOB1 = 0;
+  }else{ /*stop*/
+    MOTOA1 = 0;
+    MOTOB1 = 0;
+  }
+}
+
+void motor2_move(uint8_t dir){/*assistant motor*/
+  if(dir==1){/*up*/
+    MOTOA2 = 0;
+    MOTOB2 = 1;
+  }else if(dir==2){/*down*/
+    MOTOA2 = 1;
+    MOTOB2 = 0;
+  }else{ /*stop*/
+    MOTOA2 = 0;
+    MOTOB2 = 0;
+  }
+}
+
+void system_init(){
+  
+  debug_uart.baud(115200);
+  /*
+  lcdBus.write(0x00);
+  TFTRD = 0;
+  TFTWR = 0;
+  TFTDC = 0;
+  TFTCS = 0;
+  */
+  MOTOA1 = 0;
+  MOTOB1 = 0;
+  MOTOA2 = 0;
+  MOTOB2 = 0;
+  init_flag = 0;
+  motor1_ready_flag = 0;
+  motor2_ready_flag = 0;
+  sense_value = 0;
+  sensor_flag = 0;
+  
+  debug_uart.printf("system init done\r\n");
+ 
+}
+#if 0
+void wifi_debug(){
+  wifi_uart.baud(115200);
+  debug_uart.baud(115200);
+  WIFI_PWREN = 1;
+  while(1){
+    if(wifi_uart.readable()){
+      debug_uart.putc(wifi_uart.getc());
+    }
+    if(debug_uart.readable()){
+      wifi_uart.putc(debug_uart.getc());
+    }
+  }
+}
+void bt_debug(){
+  bt_uart.baud(9600);
+  debug_uart.baud(9600);
+  while(1){
+    if(bt_uart.readable()){
+       debug_uart.putc(bt_uart.getc());
+    }
+    if(debug_uart.readable()){
+       bt_uart.putc(debug_uart.getc());
+    }
+  }
+}
+void lcd_debug(){
+  char i = 0;
+  unsigned char str[] = "bob's test";
+  unsigned char str2[] = "hello world";
+  ST7789V_Init();  
+  BlockWrite(0,COL-1,0,ROW-1); 
+  LCD_block_test();  
+  //DispColor(GREEN); 
+  DispStr(str, 40, 80, BLUE, GREEN);
+  DispStr(str2, 40, 120, BLUE, GREEN);
+  //DispOneChar(0x32,60,60,BLUE,GREEN);
+  while(1){
+      ;
+  }     
+}
+
+void sht20_debug(){
+  while(1) {
+    int temperature = sht.readTemp();
+    debug_uart.printf("Temperature is: %d \t", temperature);
+    int humidity=  sht.readHumidity();
+    debug_uart.printf("Humidity: %d \r\n",humidity);
+    wait(2);
+  }
+}
+
+void eeprom_debug(){
+  char ucdata_write[1];    
+  if (!i2c.write((MCP24AA02_ADDR|WRITE), ucdata_write, 1, 0)){
+  //readID(MCP24AA02_MID);
+  //readID(MCP24AA02_DID);
+  //Uncomment the following 6 lines of code to write Data into the EEPROM
+  /*
+  writeEE(0x00,0x4D); // ASCII M
+  writeEE(0x01,0x61); // ASCII a
+  writeEE(0x02,0x72); // ASCII r
+  writeEE(0x03,0x74); // ASCII t
+  writeEE(0x04,0x69); // ASCII i
+  writeEE(0x05,0x6E); // ASCII n
+  debug_uart.printf("\n\r");
+  */
+  //Uncomment the following line to Erase the EEPROM
+  // eraseEE();
+  #if 1
+  for (int i=2;i<=0x7;i++){readEE(i);}
+  debug_uart.printf("\r\n");
+  #endif
+  }else{
+    debug_uart.printf("\n\rCannot get an ACK from the Device check connections!\n\r");
+  }
+}
+
+#endif
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.h	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,64 @@
+#ifndef MAIN_H
+#define MAIN_H
+
+#include "mbed.h"
+//#include "FastIO.h"
+#include "st7789v.h"
+#include "stm32f103c8t6.h"
+#include "SHT21_ncleee.h"
+#include "eeprom.h"
+
+static BusOut lcdBus(PB_13,PB_12,PB_2,PB_1,PB_0,PA_7,PA_6,PA_5); //Laiwu board configuration BusOut(LSB------MSB)
+
+#if 0
+/**/
+static DigitalOut TFTRD(PB_1);
+static DigitalOut TFTWR(PB_10);
+static DigitalOut TFTDC(PB_7);
+static DigitalOut TFTRST(PB_11);
+static DigitalOut TFTCS(PB_6);
+#endif
+
+#if 0
+static FastOut<PB_14> TFTRD;
+static FastOut<PB_15> TFTWR;
+static FastOut<PA_8> TFTDC;
+static FastOut<PA_11> TFTCS;
+#endif
+
+#if 1
+static DigitalOut TFTRD(PB_14);
+static DigitalOut TFTWR(PB_15);
+static DigitalOut TFTDC(PA_8);
+static DigitalOut TFTCS(PA_11);
+#endif
+
+static I2C i2c(PB_7,PB_6);
+
+static SHT21 sht(&i2c);
+
+//static DigitalIn Stopper1(PA_13);
+//static DigitalIn Stopper2(PA_15);
+
+static DigitalOut MOTOA1(PB_4);
+static DigitalOut MOTOB1(PB_5);
+
+static DigitalOut MOTOA2(PB_8);
+static DigitalOut MOTOB2(PB_9);
+
+//static DigitalIn Hall1(PA_14);
+static DigitalIn Hall2(PB_3);
+
+static Serial bt_uart(PA_9, PA_10);
+static Serial wifi_uart(PA_2, PA_3);
+static Serial debug_uart(PB_10, PB_11);
+
+static InterruptIn FrontKey(PA_4);
+static InterruptIn DebugKey(PA_12);
+
+//static DigitalOut WIFI_PWREN(PC_13);
+
+static AnalogIn SensorCurrent(PA_0);
+static AnalogIn BatteryVoltage(PA_1);
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-STM32F103C8T6.lib	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/hudakz/code/mbed-STM32F103C8T6/#09d8c2eacb4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os.lib	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/mbed-os/#c53d51fe9220728bf8ed27afe7afc1ecc3f6f5d7
--- a/mbed.bld	Wed Feb 20 15:13:20 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/3d0ef94e36ec
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/st7789v.cpp	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,390 @@
+#include "main.h"
+
+void ST7789V_CTRL_Write(unsigned char data)
+{
+    lcdBus.write(data);
+}
+
+void ST7789V_writeCommand(unsigned char command)
+{
+    TFTCS=0; 
+    TFTDC = 0;
+    ST7789V_CTRL_Write(command);
+    TFTWR = 0;
+    TFTWR = 1;
+    TFTCS=1; 
+}
+
+void ST7789V_writeData(unsigned char data)
+{
+    TFTCS=0; 
+    TFTDC = 1;
+    ST7789V_CTRL_Write(data);
+    TFTWR = 0;
+    TFTWR = 1;
+    TFTCS=1; 
+}
+
+void ST7789V_writeOneDot(unsigned int color)
+{ 
+    TFTCS=0;  
+    TFTRD=1;
+    TFTDC=1;   
+
+    ST7789V_CTRL_Write(color>>8); 
+    TFTWR=0;
+    TFTWR=1;
+
+    ST7789V_CTRL_Write(color);      
+    TFTWR=0;
+    TFTWR=1;
+        
+    TFTCS=1;
+}
+
+void ST7789V_Init(void)
+{
+    TFTDC = 0;
+    TFTRD = 1;
+    TFTWR = 0;
+    
+#if 0
+    TFTRST = 0; // reset the chip[]
+    wait_us(100);
+    TFTRST = 1; // take it out of reset
+#endif
+
+    wait_us(100);
+    ST7789V_writeCommand(0x11);    /* exit SLEEP mode*/
+    wait_us(300);  
+    ST7789V_writeCommand(0x36);
+    ST7789V_writeData(0x00);      /* MADCTL: memory data access control*/
+    ST7789V_writeCommand(0x3A);
+    ST7789V_writeData(0x05);      /* COLMOD: Interface Pixel format*/
+    ST7789V_writeCommand(0xB2);
+    ST7789V_writeData(0x0C);
+    ST7789V_writeData(0x0C);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0x33);
+    ST7789V_writeData(0x33); /*PORCTRK: Porch setting*/
+    ST7789V_writeCommand(0xB7);
+    ST7789V_writeData(0x75); /*GCTRL: Gate Control*/
+    ST7789V_writeCommand(0xBB);
+    ST7789V_writeData(0x3d); /*VCOMS: VCOM setting*/
+    //ST7789V_writeCommand(0xC0);
+    //ST7789V_writeData(0x2C); /*LCMCTRL: LCM Control*/
+    ST7789V_writeCommand(0xC2);
+    ST7789V_writeData(0x01);
+    //ST7789V_writeData(0xFF); /*VDVVRHEN: VDV and VRH Command Enable*/
+    ST7789V_writeCommand(0xC3);
+    ST7789V_writeData(0x19); /*VRHS: VRH Set*/
+    ST7789V_writeCommand(0xC4);
+    ST7789V_writeData(0x20); /*VDVS: VDV Set*/
+    ST7789V_writeCommand(0xC6);
+    ST7789V_writeData(0x0F); /*FRCTRL2: Frame Rate control in normal mode*/
+    ST7789V_writeCommand(0xD0);
+    ST7789V_writeData(0xA4);
+    ST7789V_writeData(0xA1); /*PWCTRL1: Power Control 1*/
+    ST7789V_writeCommand(0xD6);
+    ST7789V_writeData(0xA1);
+    ST7789V_writeCommand(0xE0);
+    ST7789V_writeData(0x70);
+    ST7789V_writeData(0x04);
+    ST7789V_writeData(0x08);
+    ST7789V_writeData(0x09);
+    ST7789V_writeData(0x09);
+    ST7789V_writeData(0x05);
+    ST7789V_writeData(0x2A);
+    ST7789V_writeData(0x33);
+    ST7789V_writeData(0x41);
+    ST7789V_writeData(0x07);
+    ST7789V_writeData(0x13);
+    ST7789V_writeData(0x13);
+    ST7789V_writeData(0x29);
+    ST7789V_writeData(0x0F); /*PVGAMCTRL: Positive Voltage Gamma control*/
+    ST7789V_writeCommand(0xE1);
+    ST7789V_writeData(0x70);
+    ST7789V_writeData(0x03);
+    ST7789V_writeData(0x09);
+    ST7789V_writeData(0x0A);
+    ST7789V_writeData(0x09);
+    ST7789V_writeData(0x06);
+    ST7789V_writeData(0x2B);
+    ST7789V_writeData(0x34);
+    ST7789V_writeData(0x41);
+    ST7789V_writeData(0x07);
+    ST7789V_writeData(0x12);
+    ST7789V_writeData(0x14);
+    ST7789V_writeData(0x28);
+    ST7789V_writeData(0x2E); /*NVGAMCTRL: Negative Voltage Gamma control*/
+    ST7789V_writeCommand(0x21);
+    ST7789V_writeCommand(0x29);
+    ST7789V_writeCommand(0x2A);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0xEF); /*X address set*/
+    ST7789V_writeCommand(0x2B);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0x00);
+    ST7789V_writeData(0xEF); /*Y address set*/
+    ST7789V_writeCommand(0x2C);
+    //wait_us(10);
+    //ST7789V_writeCommand(0x29); /*Enable Display*/
+}
+
+void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend)
+{
+    ST7789V_writeCommand(0x2a);   
+    ST7789V_writeData((Xstart)>>8);
+    ST7789V_writeData((Xstart)&0xff);
+    
+    ST7789V_writeData((Xend)>>8);
+    ST7789V_writeData((Xend)&0xff);
+    
+    ST7789V_writeCommand(0x2b);   
+    ST7789V_writeData((Ystart+40)>>8);
+    
+    ST7789V_writeData((Ystart+40)&0xff);
+    ST7789V_writeData((Yend+40)>>8);
+    
+    ST7789V_writeData((Yend+40)&0xff);
+    ST7789V_writeCommand(0x2c);
+}
+
+unsigned char ToOrd(unsigned char ch)
+{
+    if(ch<32)
+    {
+        ch=95;
+    }
+    else if((ch>=32)&&(ch<=47)) //(32~47)空格~/
+    {
+        ch=(ch-32)+10+62;
+    }
+    else if((ch>=48)&&(ch<=57))//(48~57)0~9
+    {
+        ch=ch-48;
+    }
+    else if((ch>=58)&&(ch<=64))//(58~64):~@
+    {
+        ch=(ch-58)+10+62+16;
+    }
+    else if((ch>=65)&&(ch<=126))//(65~126)A~~
+    {
+        ch=(ch-65)+10;
+    }
+    else if(ch>126)
+    {       
+        ch=95;
+    }
+
+    return ch;
+}
+
+void WriteOneDot(unsigned int color)
+{ 
+    ST7789V_writeOneDot(color);
+}
+
+void  DispOneChar(unsigned char ord,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor)   // ord:0~95
+{                                                     
+   unsigned char i,j;
+   unsigned char  *p;
+   unsigned char dat;
+   unsigned int index;
+
+   BlockWrite(Xstart,Xstart+(FONT_W-1),Ystart,Ystart+(FONT_H-1));
+
+   index = ord;
+
+   if(index>95)    //95:ASCII CHAR NUM
+        index=95;
+
+   index = index*((FONT_W/8)*FONT_H);    
+
+   p = ascii;
+   p = p+index;
+
+   for(i=0;i<(FONT_W/8*FONT_H);i++)
+    {
+       dat=*p++;
+       for(j=0;j<8;j++)
+        {
+           if((dat<<j)&0x80)
+             {
+                WriteOneDot(TextColor);
+             }      
+           else 
+             {
+                WriteOneDot(BackColor);   
+             }
+         }
+     }
+}
+
+void DispStr(unsigned char *str,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor)
+{
+
+    while(!(*str=='\0'))
+    {
+        DispOneChar(ToOrd(*str++),Xstart,Ystart,TextColor,BackColor);
+
+        if(Xstart>((COL-1)-FONT_W))
+        {
+            Xstart=0;
+            Ystart=Ystart+FONT_H;
+        }
+        else
+        {
+            Xstart=Xstart+FONT_W;
+        }
+
+        if(Ystart>((ROW-1)-FONT_H))
+        {
+            Ystart=0;
+        }
+    }   
+    BlockWrite(0,COL-1,0,ROW-1);
+}
+
+void DispInt(unsigned int i,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor)
+{
+    if(Xstart>((COL-1)-FONT_W*4))
+    {
+        Xstart=(COL-1)-FONT_W*4;
+    }
+    if(Ystart>((ROW-1)-FONT_H))
+    {
+        Ystart=(Ystart-1)-FONT_H;
+    }
+            
+    DispOneChar((i>>12)%16,Xstart,Ystart,TextColor,BackColor); //ID value
+    DispOneChar((i>>8)%16,Xstart+FONT_W,Ystart,TextColor,BackColor);
+    DispOneChar((i>>4)%16,Xstart+FONT_W*2,Ystart,TextColor,BackColor);
+    DispOneChar(i%16,Xstart+FONT_W*3,Ystart,TextColor,BackColor); 
+
+    BlockWrite(0,COL-1,0,ROW-1);
+}
+
+void DispColor(unsigned int color)
+{
+    unsigned int i,j;
+
+    BlockWrite(0,COL-1,0,ROW-1);
+
+    TFTCS=0; 
+    TFTDC=1;
+    TFTRD=1;
+
+    for(i=0;i<ROW;i++)
+    {
+      for(j=0;j<COL;j++)
+        {    
+            WriteOneDot(color);  
+        }
+    }
+
+    TFTCS=1; 
+}
+
+void DispBand(void)  
+{
+    unsigned int i,j,k;
+    //unsigned int color[8]={0x001f,0x07e0,0xf800,0x07ff,0xf81f,0xffe0,0x0000,0xffff};
+    unsigned int color[8]={0xf800,0xf800,0x07e0,0x07e0,0x001f,0x001f,0xffff,0xffff};//0x94B2
+    //unsigned int gray16[]={0x0000,0x1082,0x2104,0x3186,0x42,0x08,0x528a,0x630c,0x738e,0x7bcf,0x9492,0xa514,0xb596,0xc618,0xd69a,0xe71c,0xffff};
+
+  BlockWrite(0,COL-1,0,ROW-1);
+        
+    TFTCS=0;
+    TFTRD=1;
+    TFTDC=1;                                                                                                      
+
+    for(i=0;i<8;i++)
+    {
+        for(j=0;j<ROW/8;j++)
+        {
+        for(k=0;k<COL;k++)
+            {
+                WriteOneDot(color[i]); 
+            } 
+        }
+    }
+    for(j=0;j<ROW%8;j++)
+    {
+        for(k=0;k<COL;k++)
+        {
+            WriteOneDot(color[7]); 
+        } 
+    }
+    
+    TFTCS=1;
+}
+
+void DispPic(unsigned int *picture)
+{
+    unsigned int *p;
+    unsigned int  i,j; //i-row,j-col
+    unsigned char n,k; //n-row repeat count,k-col repeat count
+
+    BlockWrite(0,COL-1,0,ROW-1);
+
+    TFTCS =0;
+    TFTDC =1;
+    TFTRD =1;
+
+    for(n=0;n<ROW/PIC_HEIGHT;n++)         //n-row repeat count
+    {
+        for(i=0;i<PIC_HEIGHT;i++)
+        {
+            p=picture;
+            for(k=0;k<COL/PIC_WIDTH;k++) //k-col repeat count
+            {
+                for(j=0;j<PIC_WIDTH;j++)
+                {
+                        WriteOneDot(*(p+i*PIC_HEIGHT+j));
+                }
+            }
+
+            p=picture;
+            for(j=0;j<COL%PIC_WIDTH;j++)
+            {
+                WriteOneDot(*(p+i*PIC_HEIGHT+j));
+            }
+        }
+    }
+
+    for(i=0;i<ROW%PIC_HEIGHT;i++)
+    {
+        p=picture;
+        for(k=0;k<COL/PIC_WIDTH;k++) //k-col repeat count
+        {
+            for(j=0;j<PIC_WIDTH;j++)
+            {
+                WriteOneDot(*(p+i*PIC_HEIGHT+j));
+            }
+        }
+
+        p=picture;
+        for(j=0;j<COL%PIC_WIDTH;j++)
+        {
+            WriteOneDot(*(p+i*PIC_HEIGHT+j));
+        }
+    }
+  TFTCS=1;
+}
+
+void LCD_block_test(){
+  BlockWrite(0,COL-1,0,ROW-1);
+  DispColor(GREEN);
+  wait(2);
+  DispColor(BLUE);
+  wait(2);
+  DispColor(RED); 
+  wait(2);
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/st7789v.h	Wed Apr 15 11:36:03 2020 +0000
@@ -0,0 +1,525 @@
+#ifndef ST7789V_H
+#define ST7789V_H
+
+#define ROW  240  
+#define COL  240
+
+#define  FONT_W  16
+#define  FONT_H  21
+
+#define RED    0xF800     
+#define GREEN  0x07E0
+#define BLUE   0x001F
+#define WHITE  0xFFFF
+#define BLACK  0x0000
+
+#define PIC_WIDTH    48     //预备向LCD显示区域填充的图片的大小
+#define PIC_HEIGHT   37
+
+void ST7789V_Init(void);
+void ST7789V_writeCommand(unsigned char command);
+void ST7789V_writeOneDot(unsigned int color);
+void ST7789V_writeData(unsigned char data);
+void ST7789V_writeDataStream(unsigned char * pData, int numBytes);
+unsigned char ST7789V_readData();
+void ST7789V_readDataStream(unsigned char *data,int numItems);
+
+unsigned char ToOrd(unsigned char ch); 
+void WriteOneDot(unsigned int color);
+void DispOneChar(unsigned char ord,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor);   // ord:0~95
+void DispStr(unsigned char *str,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor);
+void DispInt(unsigned int i,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor);
+void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend);
+
+void DispColor(unsigned int color);
+void DispBand(void);
+void DispPic(unsigned int *picture);
+
+void LCD_block_test(void);
+
+static unsigned char ascii[]=
+{
+//宋体16,点阵为:宽x高=16x21 
+/*--  文字:  0  --*/  
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x31,0x80,0x60,0xC0,
+0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  1  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1E,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  2  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,
+0x60,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0xC0,
+0x60,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  3  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x61,0x80,0x61,0x80,
+0x01,0x80,0x03,0x00,0x0F,0x00,0x01,0x80,0x00,0xC0,0x00,0xC0,0x60,0xC0,0x60,0xC0,
+0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  4  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x07,0x80,0x07,0x80,0x0F,0x80,
+0x1B,0x80,0x1B,0x80,0x33,0x80,0x63,0x80,0x63,0x80,0x3F,0xC0,0x03,0x80,0x03,0x80,
+0x03,0x80,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  5  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x3F,0x00,0x39,0x80,0x30,0xC0,0x00,0xC0,0x00,0xC0,0x60,0xC0,0x60,0xC0,
+0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  6  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x18,0xC0,0x30,0xC0,0x30,0x00,
+0x60,0x00,0x7F,0x00,0x71,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x30,0xC0,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  7  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x61,0x80,0x63,0x00,0x03,0x00,
+0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
+0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  8  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,
+0x60,0xC0,0x31,0x80,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  9  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0xC0,
+0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0xC0,0x1F,0xC0,0x00,0xC0,0x01,0x80,0x61,0x80,
+0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  A  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0F,0x00,
+0x1B,0x00,0x1B,0x00,0x1B,0x00,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x60,0xC0,
+0x60,0xC0,0xF1,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  B  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x31,0x80,0x3F,0x00,0x31,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
+0x30,0xC0,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  C  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x18,0xE0,0x30,0x60,0x30,0x60,
+0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x60,0x30,0x60,
+0x38,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  D  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
+0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xC0,0x30,0xC0,
+0x31,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  E  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x30,0xC0,0x30,0x60,0x30,0x00,
+0x31,0x80,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x30,0x00,0x30,0x00,0x30,0x60,
+0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  F  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x30,0xC0,0x30,0x60,0x30,0x00,
+0x31,0x80,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  G  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x19,0xC0,0x30,0xC0,0x30,0xC0,
+0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x61,0xE0,0x60,0xC0,0x30,0xC0,0x30,0xC0,
+0x18,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  H  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x30,0xC0,0x3F,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  I  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  J  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x01,0x80,0x01,0x80,0x01,0x80,
+0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
+0x01,0x80,0x61,0x80,0x63,0x00,0x3E,0x00,0x00,0x00,
+
+/*--  文字:  K  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7B,0xE0,0x30,0xC0,0x31,0x80,0x33,0x00,
+0x36,0x00,0x3C,0x00,0x3E,0x00,0x36,0x00,0x33,0x00,0x33,0x00,0x31,0x80,0x31,0x80,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  L  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x60,
+0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  M  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x70,0xE0,0x70,0xE0,0x70,0xE0,
+0x79,0xE0,0x79,0xE0,0x79,0xE0,0x7B,0x60,0x6F,0x60,0x6F,0x60,0x6F,0x60,0x66,0x60,
+0x66,0x60,0xF6,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  N  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x38,0xC0,0x3C,0xC0,0x3C,0xC0,
+0x3C,0xC0,0x36,0xC0,0x36,0xC0,0x36,0xC0,0x33,0xC0,0x33,0xC0,0x31,0xC0,0x31,0xC0,
+0x31,0xC0,0x78,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  O  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,0x60,0x60,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,
+0x19,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  P  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x30,0xC0,0x30,0x60,0x30,0x60,
+0x30,0x60,0x30,0xC0,0x3F,0x80,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  Q  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,0x60,0x60,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x6E,0x60,0x3B,0xC0,
+0x3B,0xC0,0x0F,0x80,0x01,0xE0,0x01,0xC0,0x00,0x00,
+
+/*--  文字:  R  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x31,0x80,0x3F,0x00,0x36,0x00,0x33,0x00,0x33,0x00,0x31,0x80,0x31,0x80,
+0x30,0xC0,0x78,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  S  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,
+0x60,0x00,0x30,0x00,0x1C,0x00,0x07,0x00,0x01,0x80,0x00,0xC0,0x60,0xC0,0x60,0xC0,
+0x71,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  T  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x66,0x60,0x66,0x60,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  U  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x19,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  V  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0xF0,0x60,0x60,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,0x0F,0x00,
+0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  W  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x66,0x60,0x66,0x60,0x66,0x60,
+0x66,0xC0,0x37,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x19,0x80,
+0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  X  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,
+0x0F,0x00,0x0F,0x00,0x06,0x00,0x06,0x00,0x0F,0x00,0x0F,0x00,0x19,0x80,0x19,0x80,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  Y  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,
+0x1B,0x00,0x0F,0x00,0x0F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  Z  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x30,0xC0,0x60,0xC0,0x01,0x80,
+0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x60,
+0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  [  --*/
+0x00,0x00,0x00,0x00,0x0F,0xC0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xC0,0x00,0x00,
+
+/*--  文字:  \  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
+0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,
+0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0x00,
+
+/*--  文字:  ]  --*/
+0x00,0x00,0x00,0x00,0x7E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x7E,0x00,0x00,0x00,
+
+/*--  文字:  ^  --*/
+0x00,0x00,0x00,0x00,0x1E,0x00,0x1E,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  _  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xE0,
+
+/*--  文字:  `  --*/
+0x00,0x00,0x00,0x00,0x1C,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  a  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0x00,0x31,0x80,0x31,0x80,0x0F,0x80,0x39,0x80,0x61,0x80,0x61,0x80,
+0x63,0xE0,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  b  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x3F,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
+0x38,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  c  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xC0,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  d  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,
+0x00,0xC0,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
+0x31,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  e  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x7F,0xC0,0x60,0x00,0x60,0x00,0x60,0xC0,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  f  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x06,0x60,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x7F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  g  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0xF0,0x30,0xF0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x1F,0x80,0x30,0x00,
+0x3F,0x80,0x30,0xE0,0x60,0x60,0x70,0x60,0x3F,0xC0,
+
+/*--  文字:  h  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x3F,0x80,0x38,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  i  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  j  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,
+0x00,0x00,0x07,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
+0x01,0x80,0x01,0x80,0x01,0x80,0x33,0x00,0x3E,0x00,
+
+/*--  文字:  k  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
+0x30,0x00,0x33,0xC0,0x33,0x00,0x36,0x00,0x3C,0x00,0x3E,0x00,0x33,0x00,0x31,0x80,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  l  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  m  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0xFF,0xE0,0x77,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,
+0x66,0x60,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  n  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7F,0x80,0x38,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  o  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
+0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  p  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7F,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
+0x38,0xC0,0x3F,0x80,0x30,0x00,0x30,0x00,0x78,0x00,
+
+/*--  文字:  q  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
+0x31,0xC0,0x1F,0xC0,0x00,0xC0,0x00,0xC0,0x01,0xE0,
+
+/*--  文字:  r  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7B,0xE0,0x1E,0x60,0x1C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
+0x18,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  s  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1F,0xC0,0x31,0xC0,0x30,0xC0,0x38,0x00,0x0F,0x00,0x01,0xC0,0x30,0xC0,
+0x38,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  t  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x3F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0xC0,
+0x0C,0xC0,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  u  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x71,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
+0x31,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  v  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,
+0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  w  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0xFF,0xF0,0x66,0x60,0x66,0xE0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,
+0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  x  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x0F,0x00,0x06,0x00,0x0F,0x00,0x19,0x80,
+0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  y  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7B,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x0C,0x00,0x3C,0x00,0x38,0x00,
+
+/*--  文字:  z  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7F,0x80,0x63,0x00,0x66,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0xC0,
+0x61,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  {  --*/
+0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+0x03,0x00,0x07,0x00,0x0C,0x00,0x07,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+0x03,0x00,0x03,0x00,0x03,0x00,0x01,0xC0,0x00,0x00,
+
+/*--  文字:  |  --*/
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+
+/*--  文字:  }  --*/
+0x00,0x00,0x00,0x00,0x38,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x0E,0x00,0x03,0x00,0x0E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x0C,0x00,0x0C,0x00,0x38,0x00,0x00,0x00,
+
+/*--  文字:  ~  --*/
+0x3C,0x00,0x76,0x30,0x63,0x70,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:     --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  !  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,
+0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  "  --*/
+0x00,0x00,0x00,0x00,0x1F,0x80,0x1F,0x80,0x3F,0x00,0x36,0x00,0x6C,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  #  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xC0,0x18,0xC0,0x18,0xC0,0x7F,0xE0,
+0x18,0xC0,0x18,0xC0,0x18,0xC0,0x31,0x80,0x31,0x80,0x7F,0xE0,0x31,0x80,0x31,0x80,
+0x31,0x80,0x31,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  $  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0F,0x80,0x1E,0xC0,0x36,0xC0,0x37,0xC0,
+0x36,0x00,0x1E,0x00,0x0E,0x00,0x07,0x00,0x07,0x80,0x06,0xC0,0x3E,0xC0,0x36,0xC0,
+0x37,0x80,0x1F,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
+
+/*--  文字:  %  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xC0,0x6D,0x80,0x6D,0x80,0x6F,0x00,
+0x6F,0x00,0x6F,0x00,0x3E,0x00,0x07,0xC0,0x0F,0x60,0x0F,0x60,0x1B,0x60,0x1B,0x60,
+0x1B,0x60,0x31,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  &  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x33,0x00,
+0x36,0x00,0x3F,0xC0,0x39,0x80,0x79,0x80,0xCF,0x00,0xCF,0x00,0xC7,0x00,0xC6,0x00,
+0x67,0x60,0x3D,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  '  --*/
+0x00,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x18,0x00,0x30,0x00,0xE0,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  (  --*/
+0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x00,0x03,0x00,0x03,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,
+0x03,0x00,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x00,
+
+/*--  文字:  )  --*/
+0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,
+0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x00,0x00,
+
+/*--  文字:  *  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x66,0x60,
+0x7F,0xE0,0x1F,0x80,0x06,0x00,0x1F,0x80,0x7F,0xE0,0x66,0x60,0x06,0x00,0x06,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  +  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x06,0x00,0x06,0x00,0x7F,0xE0,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  ,  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x78,0x00,0x78,0x00,0x18,0x00,0x30,0x00,0xE0,0x00,
+
+/*--  文字:  -  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  .  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  /  --*/
+0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xC0,0x00,0xC0,0x01,0xC0,0x01,0x80,0x01,0x80,
+0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,
+0x38,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x00,0x00,
+
+/*--  文字:  :  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  ;  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
+
+/*--  文字:  <  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,
+0x18,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x03,0x00,
+0x01,0x80,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  =  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  >  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,
+0x03,0x00,0x01,0x80,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,
+0x30,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  ?  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x70,0xC0,0x70,0xC0,
+0x00,0xC0,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
+0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+/*--  文字:  @  --*/
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x19,0xC0,0x30,0xC0,0x37,0xE0,
+0x6F,0xE0,0x6D,0xE0,0x79,0xE0,0x7B,0x60,0x7B,0x60,0x7B,0xC0,0x6F,0xC0,0x30,0x60,
+0x18,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+//ord:95
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+
+};
+
+#endif