test
Dependencies: mbed-STM32F103C8T6 SHT21_ncleee
Revision 1:0fe432e5dfc4, committed 2020-04-15
- Comitter:
- bbw
- Date:
- Wed Apr 15 11:36:03 2020 +0000
- Parent:
- 0:217105958c2d
- Commit message:
- Test_bob_0415
Changed in this revision
--- /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