正點原子STM32cubeide學習——TFTLCD(MCU 屏)實驗

使用的是正點原子的精英版,單片機是STM32F103ZET6,使用開發板的 MCU 屏接口連接正點原子 TFTLCD 模塊(僅限 MCU 屏模塊),實現 TFTLCD 模塊的顯示。通過把 LCD 模塊插入底板上的 TFTLCD 模塊接口,按下復位之后, 就可以看到 LCD 模塊不停的顯示一些信息并不斷切換底色。同時該實驗會顯示 LCD 驅動器 的 ID,并且會在串口打印(按復位一次,打印一次)。LED0 閃爍用于提示程序正在運行。

首先來介紹一下這個TFTLCD屏,

了解完之后我們直接復制之前做過的USART的代碼改名為14_TFTLCD,打開圖形化配置,

接 著 雙 擊 13_TFTLCD.ioc 進 入 STM32CubeMX 插 件 配 置 界 面 后 , 在 Pinout & Configuration 處,配置 LCD 的背光引腳 PB0,如下圖所示:

這個不屬于 FSMC 的內容,如果下載程序后屏幕亮不起來那么八成是這里出問題了。

配置 FSMC 參數
接著,在 Connectivity FSMC 中配置 FSMC 的參數:

? NOR Flash/PSRAM/SRAM/ROM/LCD 1 ,這里選擇這個代表我們使用的是 STM32
FSMC 存儲塊 1 Bank1 );
? Chip Select ,我們這里選擇 NE4 ,代表是 Bank1 的第四區,這部分是根據原理圖的
映射管腳進行選擇的,這里選擇不同區對應的引腳是不同的;
? Memory type ,存儲類型,這里我們驅動的是 LCD 設備,所以選擇 LCD 接口。該
選項還有其它類型的存儲設備,感興趣可自行了解;
? LCD Register Select ,這里是選擇 RS 腳,也就是命令 / 數據選擇位,同樣是根據原
理圖得知這里應該選擇 A10
? Data ,數據位,我們的 TFTLCD 使用的是 16 位數據寬度,所以這里選擇 16bits
好。
接著來到 FSMC 的參數配置,如下圖所示:

這里需要使能讀寫不同的時序,也就是使能 Write operation Extended mode ;接著由上
往下介紹這些參數,分別是:
? Address setup time in HCLK clock cycles :地址建立的時鐘周期
? Data setup time in HCLK clock cycles :數據建立的時鐘周期

?? Bus turn around time in HCLK clock cycles:總線轉階段持續時間;

? Extended address setup time :擴展地址建立時間;
? Extended data setup time :擴展數據建立時間;
? Extended bus turn around time :擴展總線建立時間;
? Access mode Extended access mode 代表的讀寫時序控制模式,我們選擇模式 A
表支持獨立的讀寫時序控制;
上述參數中,擴展屬于寫時序,其他的屬于讀時序。這些參數設置,是根據 LCD 芯片
手冊中的驅動時序填寫的,不同的芯片需要根據不同的手冊進行計算,但計算的方法都是一
樣的。

配置好之后,按下鍵盤的 “Ctrl+S” 組合鍵保存 13_TFTLCD.ioc 文件,系統開始生成初始
化代碼。然后接著我們在 Drivers/BSP 文件夾中,新建 LCD 文件夾,然后再 LCD 文件夾下新
4 個文件,分別是 lcd.c lcd.h lcd_ex.c lcdfont.h 文件,如下圖所示:

lcd.c lcd.h 文件是驅動函數和引腳接口宏定義以及函數聲明等。 lcd_ex.c 存放各個 LCD
驅動 IC 的寄存器初始化部分代碼,是 lcd.c 文件的補充文件,起到簡化 lcd.c 文件的作用。
lcdfont.h 頭文件存放了 4 種字體大小不一樣的 ASCII 字符集( 12*12 16*16 24*24
32*32 )。這個跟 oledfont.h 頭文件一樣的,只是這里多了 32*32 ASCII 字符集。
接下來我把這四個代碼放在下面:
lcd.c
#include "stdlib.h"
#include "lcd.h"
#include "lcdfont.h"
#include "usart.h"
#include "../../SYSTEM/delay/delay.h"/* lcd_ex.c存放各個LCD驅動IC的寄存器初始化部分代碼,以簡化lcd.c,該.c文件* 不直接加入到工程里面,只有lcd.c會用到,所以通過include的形式添加.(不要在* 其他文件再包含該.c文件!!否則會報錯!)*/
#include "lcd_ex.c"SRAM_HandleTypeDef g_sram_handle;    /* SRAM句柄(用于控制LCD) *//* LCD的畫筆顏色和背景色 */
uint32_t g_point_color = 0XF800;    /* 畫筆顏色 */
uint32_t g_back_color  = 0XFFFF;    /* 背景色 *//* 管理LCD重要參數 */
_lcd_dev lcddev;/*** @brief       LCD寫數據* @param       data: 要寫入的數據* @retval      無*/
void lcd_wr_data(volatile uint16_t data)
{data = data;            /* 使用-O2優化的時候,必須插入的延時 */LCD->LCD_RAM = data;
}/*** @brief       LCD寫寄存器編號/地址函數* @param       regno: 寄存器編號/地址* @retval      無*/
void lcd_wr_regno(volatile uint16_t regno)
{regno = regno;          /* 使用-O2優化的時候,必須插入的延時 */LCD->LCD_REG = regno;   /* 寫入要寫的寄存器序號 */}/*** @brief       LCD寫寄存器* @param       regno:寄存器編號/地址* @param       data:要寫入的數據* @retval      無*/
void lcd_write_reg(uint16_t regno, uint16_t data)
{LCD->LCD_REG = regno;   /* 寫入要寫的寄存器序號 */LCD->LCD_RAM = data;    /* 寫入數據 */
}/*** @brief       LCD延時函數,僅用于部分在mdk -O1時間優化時需要設置的地方* @param       t:延時的數值* @retval      無*/
static void lcd_opt_delay(uint32_t i)
{while (i--);
}/*** @brief       LCD讀數據* @param       無* @retval      讀取到的數據*/
static uint16_t lcd_rd_data(void)
{volatile uint16_t ram;  /* 防止被優化 */lcd_opt_delay(2);ram = LCD->LCD_RAM;return ram;
}/*** @brief       準備寫GRAM* @param       無* @retval      無*/
void lcd_write_ram_prepare(void)
{LCD->LCD_REG = lcddev.wramcmd;
}/*** @brief       讀取個某點的顏色值* @param       x,y:坐標* @retval      此點的顏色(32位顏色,方便兼容LTDC)*/
uint32_t lcd_read_point(uint16_t x, uint16_t y)
{uint16_t r = 0, g = 0, b = 0;if (x >= lcddev.width || y >= lcddev.height)return 0;   /* 超過了范圍,直接返回 */lcd_set_cursor(x, y);       /* 設置坐標 */if (lcddev.id == 0X5510){lcd_wr_regno(0X2E00);   /* 5510 發送讀GRAM指令 */}else{lcd_wr_regno(0X2E);     /* 9341/5310/1963/7789/7796/9806 等發送讀GRAM指令 */}r = lcd_rd_data();          /* 假讀(dummy read) */if (lcddev.id == 0x1963){return r;               /* 1963直接讀就可以 */}r = lcd_rd_data();          /* 實際坐標顏色 */if (lcddev.id == 0x7796)    /* 7796 一次讀取一個像素值 */{return r;}/* ILI9341/NT35310/NT35510/ST7789/ILI9806 要分2次讀出 */b = lcd_rd_data();g = r & 0XFF;       /* 對于 9341/5310/5510/7789/9806, 第一次讀取的是RG的值,R在前,G在后,各占8位 */g <<= 8;return (((r >> 11) << 11) | ((g >> 10) << 5) | (b >> 11));  /* 9341/5310/5510/7789/9806 需要公式轉換一下 */
}/*** @brief       LCD開啟顯示* @param       無* @retval      無*/
void lcd_display_on(void)
{if (lcddev.id == 0X5510){lcd_wr_regno(0X2900);   /* 開啟顯示 */}else    /* 9341/5310/1963/7789/7796/9806 等發送開啟顯示指令 */{lcd_wr_regno(0X29);     /* 開啟顯示 */}
}/*** @brief       LCD關閉顯示* @param       無* @retval      無*/
void lcd_display_off(void)
{if (lcddev.id == 0X5510){lcd_wr_regno(0X2800);   /* 關閉顯示 */}else    /* 9341/5310/1963/7789/7796/9806 等發送關閉顯示指令 */{lcd_wr_regno(0X28);     /* 關閉顯示 */}
}/*** @brief       設置光標位置(對RGB屏無效)* @param       x,y: 坐標* @retval      無*/
void lcd_set_cursor(uint16_t x, uint16_t y)
{if (lcddev.id == 0X1963){if (lcddev.dir == 0)    /* 豎屏模式, x坐標需要變換 */{x = lcddev.width - 1 - x;lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(0);lcd_wr_data(0);lcd_wr_data(x >> 8);lcd_wr_data(x & 0XFF);}else                    /* 橫屏模式 */{lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(x >> 8);lcd_wr_data(x & 0XFF);lcd_wr_data((lcddev.width - 1) >> 8);lcd_wr_data((lcddev.width - 1) & 0XFF);}lcd_wr_regno(lcddev.setycmd);lcd_wr_data(y >> 8);lcd_wr_data(y & 0XFF);lcd_wr_data((lcddev.height - 1) >> 8);lcd_wr_data((lcddev.height - 1) & 0XFF);}else if (lcddev.id == 0X5510){lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(x >> 8);lcd_wr_regno(lcddev.setxcmd + 1);lcd_wr_data(x & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(y >> 8);lcd_wr_regno(lcddev.setycmd + 1);lcd_wr_data(y & 0XFF);}else    /* 9341/5310/7789/7796/9806 等 設置坐標 */{lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(x >> 8);lcd_wr_data(x & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(y >> 8);lcd_wr_data(y & 0XFF);}
}/*** @brief       設置LCD的自動掃描方向(對RGB屏無效)*   @note*              9341/5310/5510/1963/7789/7796/9806等IC已經實際測試*              注意:其他函數可能會受到此函數設置的影響(尤其是9341),*              所以,一般設置為L2R_U2D即可,如果設置為其他掃描方式,可能導致顯示不正常.** @param       dir:0~7,代表8個方向(具體定義見lcd.h)* @retval      無*/
void lcd_scan_dir(uint8_t dir)
{uint16_t regval = 0;uint16_t dirreg = 0;uint16_t temp;/* 橫屏時,對1963不改變掃描方向, 其他IC改變掃描方向!豎屏時1963改變方向, 其他IC不改變掃描方向 */if ((lcddev.dir == 1 && lcddev.id != 0X1963) || (lcddev.dir == 0 && lcddev.id == 0X1963)){switch (dir)   /* 方向轉換 */{case 0:dir = 6;break;case 1:dir = 7;break;case 2:dir = 4;break;case 3:dir = 5;break;case 4:dir = 1;break;case 5:dir = 0;break;case 6:dir = 3;break;case 7:dir = 2;break;}}/* 根據掃描方式 設置 0X36/0X3600 寄存器 bit 5,6,7 位的值 */switch (dir){case L2R_U2D:/* 從左到右,從上到下 */regval |= (0 << 7) | (0 << 6) | (0 << 5);break;case L2R_D2U:/* 從左到右,從下到上 */regval |= (1 << 7) | (0 << 6) | (0 << 5);break;case R2L_U2D:/* 從右到左,從上到下 */regval |= (0 << 7) | (1 << 6) | (0 << 5);break;case R2L_D2U:/* 從右到左,從下到上 */regval |= (1 << 7) | (1 << 6) | (0 << 5);break;case U2D_L2R:/* 從上到下,從左到右 */regval |= (0 << 7) | (0 << 6) | (1 << 5);break;case U2D_R2L:/* 從上到下,從右到左 */regval |= (0 << 7) | (1 << 6) | (1 << 5);break;case D2U_L2R:/* 從下到上,從左到右 */regval |= (1 << 7) | (0 << 6) | (1 << 5);break;case D2U_R2L:/* 從下到上,從右到左 */regval |= (1 << 7) | (1 << 6) | (1 << 5);break;}dirreg = 0X36;  /* 對絕大部分驅動IC, 由0X36寄存器控制 */if (lcddev.id == 0X5510){dirreg = 0X3600;    /* 對于5510, 和其他驅動ic的寄存器有差異 */}/* 9341 & 7789 & 7796 要設置BGR位 */if (lcddev.id == 0X9341 || lcddev.id == 0X7789 || lcddev.id == 0x7796){regval |= 0X08;}lcd_write_reg(dirreg, regval);if (lcddev.id != 0X1963)   /* 1963不做坐標處理 */{if (regval & 0X20){if (lcddev.width < lcddev.height)   /* 交換X,Y */{temp = lcddev.width;lcddev.width = lcddev.height;lcddev.height = temp;}}else{if (lcddev.width > lcddev.height)   /* 交換X,Y */{temp = lcddev.width;lcddev.width = lcddev.height;lcddev.height = temp;}}}/* 設置顯示區域(開窗)大小 */if (lcddev.id == 0X5510){lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(0);lcd_wr_regno(lcddev.setxcmd + 1);lcd_wr_data(0);lcd_wr_regno(lcddev.setxcmd + 2);lcd_wr_data((lcddev.width - 1) >> 8);lcd_wr_regno(lcddev.setxcmd + 3);lcd_wr_data((lcddev.width - 1) & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(0);lcd_wr_regno(lcddev.setycmd + 1);lcd_wr_data(0);lcd_wr_regno(lcddev.setycmd + 2);lcd_wr_data((lcddev.height - 1) >> 8);lcd_wr_regno(lcddev.setycmd + 3);lcd_wr_data((lcddev.height - 1) & 0XFF);}else{lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(0);lcd_wr_data(0);lcd_wr_data((lcddev.width - 1) >> 8);lcd_wr_data((lcddev.width - 1) & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(0);lcd_wr_data(0);lcd_wr_data((lcddev.height - 1) >> 8);lcd_wr_data((lcddev.height - 1) & 0XFF);}
}/*** @brief       畫點* @param       x,y: 坐標* @param       color: 點的顏色(32位顏色,方便兼容LTDC)* @retval      無*/
void lcd_draw_point(uint16_t x, uint16_t y, uint32_t color)
{lcd_set_cursor(x, y);       /* 設置光標位置 */lcd_write_ram_prepare();    /* 開始寫入GRAM */LCD->LCD_RAM = color;
}/*** @brief       SSD1963背光亮度設置函數* @param       pwm: 背光等級,0~100.越大越亮.* @retval      無*/
void lcd_ssd_backlight_set(uint8_t pwm)
{lcd_wr_regno(0xBE);         /* 配置PWM輸出 */lcd_wr_data(0x05);          /* 1設置PWM頻率 */lcd_wr_data(pwm * 2.55);    /* 2設置PWM占空比 */lcd_wr_data(0x01);          /* 3設置C */lcd_wr_data(0xFF);          /* 4設置D */lcd_wr_data(0x00);          /* 5設置E */lcd_wr_data(0x00);          /* 6設置F */
}/*** @brief       設置LCD顯示方向* @param       dir:0,豎屏; 1,橫屏* @retval      無*/
void lcd_display_dir(uint8_t dir)
{lcddev.dir = dir;   /* 豎屏/橫屏 */if (dir == 0)       /* 豎屏 */{lcddev.width = 240;lcddev.height = 320;if (lcddev.id == 0x5510){lcddev.wramcmd = 0X2C00;lcddev.setxcmd = 0X2A00;lcddev.setycmd = 0X2B00;lcddev.width = 480;lcddev.height = 800;}else if (lcddev.id == 0X1963){lcddev.wramcmd = 0X2C;  /* 設置寫入GRAM的指令 */lcddev.setxcmd = 0X2B;  /* 設置寫X坐標指令 */lcddev.setycmd = 0X2A;  /* 設置寫Y坐標指令 */lcddev.width = 480;     /* 設置寬度480 */lcddev.height = 800;    /* 設置高度800 */}else   /* 其他IC, 包括: 9341 / 5310 / 7789 / 7796 / 9806 等IC */{lcddev.wramcmd = 0X2C;lcddev.setxcmd = 0X2A;lcddev.setycmd = 0X2B;}if (lcddev.id == 0X5310 || lcddev.id == 0x7796)     /* 如果是5310/7796 則表示是 320*480分辨率 */{lcddev.width = 320;lcddev.height = 480;}if (lcddev.id == 0X9806)    /* 如果是9806 則表示是 480*800 分辨率 */{lcddev.width = 480;lcddev.height = 800;}}else                /* 橫屏 */{lcddev.width = 320;         /* 默認寬度 */lcddev.height = 240;        /* 默認高度 */if (lcddev.id == 0x5510){lcddev.wramcmd = 0X2C00;lcddev.setxcmd = 0X2A00;lcddev.setycmd = 0X2B00;lcddev.width = 800;lcddev.height = 480;}else if (lcddev.id == 0X1963 || lcddev.id == 0x9806){lcddev.wramcmd = 0X2C;  /* 設置寫入GRAM的指令 */lcddev.setxcmd = 0X2A;  /* 設置寫X坐標指令 */lcddev.setycmd = 0X2B;  /* 設置寫Y坐標指令 */lcddev.width = 800;     /* 設置寬度800 */lcddev.height = 480;    /* 設置高度480 */}else   /* 其他IC, 包括: 9341 / 5310 / 7789 / 7796 等IC */{lcddev.wramcmd = 0X2C;lcddev.setxcmd = 0X2A;lcddev.setycmd = 0X2B;}if (lcddev.id == 0X5310 || lcddev.id == 0x7796)     /* 如果是5310/7796 則表示是 320*480分辨率 */{lcddev.width = 480;lcddev.height = 320;}}lcd_scan_dir(DFT_SCAN_DIR);     /* 默認掃描方向 */
}/*** @brief       設置窗口(對RGB屏無效),并自動設置畫點坐標到窗口左上角(sx,sy).* @param       sx,sy:窗口起始坐標(左上角)* @param       width,height:窗口寬度和高度,必須大于0!!*   @note      窗體大小:width*height.** @retval      無*/
void lcd_set_window(uint16_t sx, uint16_t sy, uint16_t width, uint16_t height)
{uint16_t twidth, theight;twidth = sx + width - 1;theight = sy + height - 1;if (lcddev.id == 0X1963 && lcddev.dir != 1)    /* 1963豎屏特殊處理 */{sx = lcddev.width - width - sx;height = sy + height - 1;lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(sx >> 8);lcd_wr_data(sx & 0XFF);lcd_wr_data((sx + width - 1) >> 8);lcd_wr_data((sx + width - 1) & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(sy >> 8);lcd_wr_data(sy & 0XFF);lcd_wr_data(height >> 8);lcd_wr_data(height & 0XFF);}else if (lcddev.id == 0X5510){lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(sx >> 8);lcd_wr_regno(lcddev.setxcmd + 1);lcd_wr_data(sx & 0XFF);lcd_wr_regno(lcddev.setxcmd + 2);lcd_wr_data(twidth >> 8);lcd_wr_regno(lcddev.setxcmd + 3);lcd_wr_data(twidth & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(sy >> 8);lcd_wr_regno(lcddev.setycmd + 1);lcd_wr_data(sy & 0XFF);lcd_wr_regno(lcddev.setycmd + 2);lcd_wr_data(theight >> 8);lcd_wr_regno(lcddev.setycmd + 3);lcd_wr_data(theight & 0XFF);}else    /* 9341/5310/7789/1963/7796/9806橫屏 等 設置窗口 */{lcd_wr_regno(lcddev.setxcmd);lcd_wr_data(sx >> 8);lcd_wr_data(sx & 0XFF);lcd_wr_data(twidth >> 8);lcd_wr_data(twidth & 0XFF);lcd_wr_regno(lcddev.setycmd);lcd_wr_data(sy >> 8);lcd_wr_data(sy & 0XFF);lcd_wr_data(theight >> 8);lcd_wr_data(theight & 0XFF);}
}/*** @brief       初始化LCD*   @note      該初始化函數可以初始化各種型號的LCD(詳見本.c文件最前面的描述)** @param       無* @retval      無*/
void lcd_init(void)
{delay_ms(50);        /* 初始化FSMC后,必須等待一定時間才能開始初始化 *//* 嘗試9341 ID的讀取 */lcd_wr_regno(0XD3);lcddev.id = lcd_rd_data();  /* dummy read */lcddev.id = lcd_rd_data();  /* 讀到0X00 */lcddev.id = lcd_rd_data();  /* 讀取0X93 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data(); /* 讀取0X41 */if (lcddev.id != 0X9341)    /* 不是 9341 , 嘗試看看是不是 ST7789 */{lcd_wr_regno(0X04);lcddev.id = lcd_rd_data();      /* dummy read */lcddev.id = lcd_rd_data();      /* 讀到0X85 */lcddev.id = lcd_rd_data();      /* 讀取0X85 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data();     /* 讀取0X52 */if (lcddev.id == 0X8552)        /* 將8552的ID轉換成7789 */{lcddev.id = 0x7789;}if (lcddev.id != 0x7789)        /* 也不是ST7789, 嘗試是不是 NT35310 */{lcd_wr_regno(0xD4);lcddev.id = lcd_rd_data();  /* dummy read */lcddev.id = lcd_rd_data();  /* 讀回0x01 */lcddev.id = lcd_rd_data();  /* 讀回0x53 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data(); /* 這里讀回0x10 */if (lcddev.id != 0x5310)    /* 也不是NT35310,嘗試看看是不是ST7796 */{lcd_wr_regno(0XD3);lcddev.id = lcd_rd_data();  /* dummy read */lcddev.id = lcd_rd_data();  /* 讀到0X00 */lcddev.id = lcd_rd_data();  /* 讀取0X77 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data(); /* 讀取0X96 */if (lcddev.id != 0x7796)    /* 也不是ST7796,嘗試看看是不是NT35510 */{/* 發送密鑰(廠家提供) */lcd_write_reg(0xF000, 0x0055);lcd_write_reg(0xF001, 0x00AA);lcd_write_reg(0xF002, 0x0052);lcd_write_reg(0xF003, 0x0008);lcd_write_reg(0xF004, 0x0001);lcd_wr_regno(0xC500);       /* 讀取ID低八位 */lcddev.id = lcd_rd_data();  /* 讀回0x55 */lcddev.id <<= 8;lcd_wr_regno(0xC501);       /* 讀取ID高八位 */lcddev.id |= lcd_rd_data(); /* 讀回0x10 */delay_ms(5);                /* 等待5ms, 因為0XC501指令對1963來說就是軟件復位指令, 等待5ms讓1963復位完成再操作 */if (lcddev.id != 0x5510)    /* 也不是NT5510,嘗試看看是不是ILI9806 */{lcd_wr_regno(0XD3);lcddev.id = lcd_rd_data();  /* dummy read */lcddev.id = lcd_rd_data();  /* 讀回0X00 */lcddev.id = lcd_rd_data();  /* 讀回0X98 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data(); /* 讀回0X06 */if (lcddev.id != 0x9806)    /* 也不是ILI9806,嘗試看看是不是SSD1963 */{lcd_wr_regno(0xA1);lcddev.id = lcd_rd_data();lcddev.id = lcd_rd_data();  /* 讀回0x57 */lcddev.id <<= 8;lcddev.id |= lcd_rd_data(); /* 讀回0x61 */if (lcddev.id == 0x5761) lcddev.id = 0x1963; /* SSD1963讀回的ID是5761H,為方便區分,我們強制設置為1963 */}}}}}}/* 特別注意, 如果在main函數里面屏蔽串口1初始化, 則會卡死在printf* 里面(卡死在f_putc函數), 所以, 必須初始化串口1, 或者屏蔽掉下面* 這行 printf 語句 !!!!!!!*/printf("LCD ID:%x\r\n", lcddev.id); /* 打印LCD ID */if (lcddev.id == 0X7789){lcd_ex_st7789_reginit();    /* 執行ST7789初始化 */}else if (lcddev.id == 0X9341){lcd_ex_ili9341_reginit();   /* 執行ILI9341初始化 */}else if (lcddev.id == 0x5310){lcd_ex_nt35310_reginit();   /* 執行NT35310初始化 */}else if (lcddev.id == 0x7796){lcd_ex_st7796_reginit();    /* 執行ST7796初始化 */}else if (lcddev.id == 0x5510){lcd_ex_nt35510_reginit();   /* 執行NT35510初始化 */}else if (lcddev.id == 0x9806){lcd_ex_ili9806_reginit();   /* 執行ILI9806初始化 */}else if (lcddev.id == 0x1963){lcd_ex_ssd1963_reginit();   /* 執行SSD1963初始化 */lcd_ssd_backlight_set(100); /* 背光設置為最亮 */}lcd_display_dir(0); /* 默認為豎屏 */LCD_BL(1);          /* 點亮背光 */lcd_clear(WHITE);
}/*** @brief       清屏函數* @param       color: 要清屏的顏色* @retval      無*/
void lcd_clear(uint16_t color)
{uint32_t index = 0;uint32_t totalpoint = lcddev.width;totalpoint *= lcddev.height;    /* 得到總點數 */lcd_set_cursor(0x00, 0x0000);   /* 設置光標位置 */lcd_write_ram_prepare();        /* 開始寫入GRAM */for (index = 0; index < totalpoint; index++){LCD->LCD_RAM = color;}
}/*** @brief       在指定區域內填充單個顏色* @param       (sx,sy),(ex,ey):填充矩形對角坐標,區域大小為:(ex - sx + 1) * (ey - sy + 1)* @param       color:要填充的顏色(32位顏色,方便兼容LTDC)* @retval      無*/
void lcd_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t color)
{uint16_t i, j;uint16_t xlen = 0;xlen = ex - sx + 1;for (i = sy; i <= ey; i++){lcd_set_cursor(sx, i);      /* 設置光標位置 */lcd_write_ram_prepare();    /* 開始寫入GRAM */for (j = 0; j < xlen; j++){LCD->LCD_RAM = color;   /* 顯示顏色 */}}
}/*** @brief       在指定區域內填充指定顏色塊* @param       (sx,sy),(ex,ey):填充矩形對角坐標,區域大小為:(ex - sx + 1) * (ey - sy + 1)* @param       color: 要填充的顏色數組首地址* @retval      無*/
void lcd_color_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint16_t *color)
{uint16_t height, width;uint16_t i, j;width = ex - sx + 1;            /* 得到填充的寬度 */height = ey - sy + 1;           /* 高度 */for (i = 0; i < height; i++){lcd_set_cursor(sx, sy + i); /* 設置光標位置 */lcd_write_ram_prepare();    /* 開始寫入GRAM */for (j = 0; j < width; j++){LCD->LCD_RAM = color[i * width + j]; /* 寫入數據 */}}
}/*** @brief       畫線* @param       x1,y1: 起點坐標* @param       x2,y2: 終點坐標* @param       color: 線的顏色* @retval      無*/
void lcd_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)
{uint16_t t;int xerr = 0, yerr = 0, delta_x, delta_y, distance;int incx, incy, row, col;delta_x = x2 - x1;          /* 計算坐標增量 */delta_y = y2 - y1;row = x1;col = y1;if (delta_x > 0)incx = 1;   /* 設置單步方向 */else if (delta_x == 0)incx = 0; /* 垂直線 */else{incx = -1;delta_x = -delta_x;}if (delta_y > 0)incy = 1;else if (delta_y == 0)incy = 0; /* 水平線 */else{incy = -1;delta_y = -delta_y;}if ( delta_x > delta_y)distance = delta_x;  /* 選取基本增量坐標軸 */else distance = delta_y;for (t = 0; t <= distance + 1; t++ )   /* 畫線輸出 */{lcd_draw_point(row, col, color); /* 畫點 */xerr += delta_x ;yerr += delta_y ;if (xerr > distance){xerr -= distance;row += incx;}if (yerr > distance){yerr -= distance;col += incy;}}
}/*** @brief       畫水平線* @param       x,y: 起點坐標* @param       len  : 線長度* @param       color: 矩形的顏色* @retval      無*/
void lcd_draw_hline(uint16_t x, uint16_t y, uint16_t len, uint16_t color)
{if ((len == 0) || (x > lcddev.width) || (y > lcddev.height))return;lcd_fill(x, y, x + len - 1, y, color);
}/*** @brief       畫矩形* @param       x1,y1: 起點坐標* @param       x2,y2: 終點坐標* @param       color: 矩形的顏色* @retval      無*/
void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)
{lcd_draw_line(x1, y1, x2, y1, color);lcd_draw_line(x1, y1, x1, y2, color);lcd_draw_line(x1, y2, x2, y2, color);lcd_draw_line(x2, y1, x2, y2, color);
}/*** @brief       畫圓* @param       x,y  : 圓中心坐標* @param       r    : 半徑* @param       color: 圓的顏色* @retval      無*/
void lcd_draw_circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color)
{int a, b;int di;a = 0;b = r;di = 3 - (r << 1);       /* 判斷下個點位置的標志 */while (a <= b){lcd_draw_point(x0 + a, y0 - b, color);  /* 5 */lcd_draw_point(x0 + b, y0 - a, color);  /* 0 */lcd_draw_point(x0 + b, y0 + a, color);  /* 4 */lcd_draw_point(x0 + a, y0 + b, color);  /* 6 */lcd_draw_point(x0 - a, y0 + b, color);  /* 1 */lcd_draw_point(x0 - b, y0 + a, color);lcd_draw_point(x0 - a, y0 - b, color);  /* 2 */lcd_draw_point(x0 - b, y0 - a, color);  /* 7 */a++;/* 使用Bresenham算法畫圓 */if (di < 0){di += 4 * a + 6;}else{di += 10 + 4 * (a - b);b--;}}
}/*** @brief       填充實心圓* @param       x,y: 圓中心坐標* @param       r    : 半徑* @param       color: 圓的顏色* @retval      無*/
void lcd_fill_circle(uint16_t x, uint16_t y, uint16_t r, uint16_t color)
{uint32_t i;uint32_t imax = ((uint32_t)r * 707) / 1000 + 1;uint32_t sqmax = (uint32_t)r * (uint32_t)r + (uint32_t)r / 2;uint32_t xr = r;lcd_draw_hline(x - r, y, 2 * r, color);for (i = 1; i <= imax; i++){if ((i * i + xr * xr) > sqmax){/* draw lines from outside */if (xr > imax){lcd_draw_hline (x - i + 1, y + xr, 2 * (i - 1), color);lcd_draw_hline (x - i + 1, y - xr, 2 * (i - 1), color);}xr--;}/* draw lines from inside (center) */lcd_draw_hline(x - xr, y + i, 2 * xr, color);lcd_draw_hline(x - xr, y - i, 2 * xr, color);}
}/*** @brief       在指定位置顯示一個字符* @param       x,y  : 坐標* @param       chr  : 要顯示的字符:" "--->"~"* @param       size : 字體大小 12/16/24/32* @param       mode : 疊加方式(1); 非疊加方式(0);* @param       color : 字符的顏色;* @retval      無*/
void lcd_show_char(uint16_t x, uint16_t y, char chr, uint8_t size, uint8_t mode, uint16_t color)
{uint8_t temp, t1, t;uint16_t y0 = y;uint8_t csize = 0;uint8_t *pfont = 0;csize = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2); /* 得到字體一個字符對應點陣集所占的字節數 */chr = chr - ' ';    /* 得到偏移后的值(ASCII字庫是從空格開始取模,所以-' '就是對應字符的字庫) */switch (size){case 12:pfont = (uint8_t *)asc2_1206[(uint8_t)chr];  /* 調用1206字體 */break;case 16:pfont = (uint8_t *)asc2_1608[(uint8_t)chr];  /* 調用1608字體 */break;case 24:pfont = (uint8_t *)asc2_2412[(uint8_t)chr];  /* 調用2412字體 */break;case 32:pfont = (uint8_t *)asc2_3216[(uint8_t)chr];  /* 調用3216字體 */break;default:return ;}for (t = 0; t < csize; t++){temp = pfont[t];    /* 獲取字符的點陣數據 */for (t1 = 0; t1 < 8; t1++)   /* 一個字節8個點 */{if (temp & 0x80)        /* 有效點,需要顯示 */{lcd_draw_point(x, y, color);        /* 畫點出來,要顯示這個點 */}else if (mode == 0)     /* 無效點,不顯示 */{lcd_draw_point(x, y, g_back_color); /* 畫背景色,相當于這個點不顯示(注意背景色由全局變量控制) */}temp <<= 1; /* 移位, 以便獲取下一個位的狀態 */y++;if (y >= lcddev.height)return;  /* 超區域了 */if ((y - y0) == size)   /* 顯示完一列了? */{y = y0; /* y坐標復位 */x++;    /* x坐標遞增 */if (x >= lcddev.width)return;   /* x坐標超區域了 */break;}}}
}/*** @brief       平方函數, m^n* @param       m: 底數* @param       n: 指數* @retval      m的n次方*/
static uint32_t lcd_pow(uint8_t m, uint8_t n)
{uint32_t result = 1;while (n--)result *= m;return result;
}/*** @brief       顯示len個數字* @param       x,y : 起始坐標* @param       num : 數值(0 ~ 2^32)* @param       len : 顯示數字的位數* @param       size: 選擇字體 12/16/24/32* @param       color : 數字的顏色;* @retval      無*/
void lcd_show_num(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint16_t color)
{uint8_t t, temp;uint8_t enshow = 0;for (t = 0; t < len; t++)   /* 按總顯示位數循環 */{temp = (num / lcd_pow(10, len - t - 1)) % 10;   /* 獲取對應位的數字 */if (enshow == 0 && t < (len - 1))   /* 沒有使能顯示,且還有位要顯示 */{if (temp == 0){lcd_show_char(x + (size / 2)*t, y, ' ', size, 0, color);/* 顯示空格,占位 */continue;   /* 繼續下個一位 */}else{enshow = 1; /* 使能顯示 */}}lcd_show_char(x + (size / 2)*t, y, temp + '0', size, 0, color); /* 顯示字符 */}
}/*** @brief       擴展顯示len個數字(高位是0也顯示)* @param       x,y : 起始坐標* @param       num : 數值(0 ~ 2^32)* @param       len : 顯示數字的位數* @param       size: 選擇字體 12/16/24/32* @param       mode: 顯示模式*              [7]:0,不填充;1,填充0.*              [6:1]:保留*              [0]:0,非疊加顯示;1,疊加顯示.* @param       color : 數字的顏色;* @retval      無*/
void lcd_show_xnum(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint8_t mode, uint16_t color)
{uint8_t t, temp;uint8_t enshow = 0;for (t = 0; t < len; t++)   /* 按總顯示位數循環 */{temp = (num / lcd_pow(10, len - t - 1)) % 10;    /* 獲取對應位的數字 */if (enshow == 0 && t < (len - 1))   /* 沒有使能顯示,且還有位要顯示 */{if (temp == 0){if (mode & 0X80)   /* 高位需要填充0 */{lcd_show_char(x + (size / 2)*t, y, '0', size, mode & 0X01, color);  /* 用0占位 */}else{lcd_show_char(x + (size / 2)*t, y, ' ', size, mode & 0X01, color);  /* 用空格占位 */}continue;}else{enshow = 1; /* 使能顯示 */}}lcd_show_char(x + (size / 2)*t, y, temp + '0', size, mode & 0X01, color);}
}/*** @brief       顯示字符串* @param       x,y         : 起始坐標* @param       width,height: 區域大小* @param       size        : 選擇字體 12/16/24/32* @param       p           : 字符串首地址* @param       color       : 字符串的顏色;* @retval      無*/
void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color)
{uint8_t x0 = x;width += x;height += y;while ((*p <= '~') && (*p >= ' '))   /* 判斷是不是非法字符! */{if (x >= width){x = x0;y += size;}if (y >= height)break;  /* 退出 */lcd_show_char(x, y, *p, size, 0, color);x += size / 2;p++;}
}

lcd.h

#ifndef __LCD_H
#define __LCD_H#include "stdlib.h"
#include "../../SYSTEM/sys/sys.h"/******************************************************************************************/
/* FSMC相關參數 定義* 注意: 我們默認是通過FSMC塊1來連接LCD, 塊1有4個片選: FSMC_NE1~4** 修改LCD_FSMC_NEX, 對應的LCD_CS_GPIO相關設置也得改* 修改LCD_FSMC_AX , 對應的LCD_RS_GPIO相關設置也得改*/
#define LCD_FSMC_NEX         4              /* 使用FSMC_NE4接LCD_CS,取值范圍只能是: 1~4 */
#define LCD_FSMC_AX          10             /* 使用FSMC_A10接LCD_RS,取值范圍是: 0 ~ 25 */#define LCD_FSMC_BCRX        FSMC_Bank1->BTCR[(LCD_FSMC_NEX - 1) * 2]       /* BCR寄存器,根據LCD_FSMC_NEX自動計算 */
#define LCD_FSMC_BTRX        FSMC_Bank1->BTCR[(LCD_FSMC_NEX - 1) * 2 + 1]   /* BTR寄存器,根據LCD_FSMC_NEX自動計算 */
#define LCD_FSMC_BWTRX       FSMC_Bank1E->BWTR[(LCD_FSMC_NEX - 1) * 2]      /* BWTR寄存器,根據LCD_FSMC_NEX自動計算 *//******************************************************************************************//* LCD重要參數集 */
typedef struct
{uint16_t width;     /* LCD 寬度 */uint16_t height;    /* LCD 高度 */uint16_t id;        /* LCD ID */uint8_t dir;        /* 橫屏還是豎屏控制:0,豎屏;1,橫屏。 */uint16_t wramcmd;   /* 開始寫gram指令 */uint16_t setxcmd;   /* 設置x坐標指令 */uint16_t setycmd;   /* 設置y坐標指令 */
} _lcd_dev;/* LCD參數 */
extern _lcd_dev lcddev; /* 管理LCD重要參數 *//* LCD的畫筆顏色和背景色 */
extern uint32_t  g_point_color;     /* 默認紅色 */
extern uint32_t  g_back_color;      /* 背景顏色.默認為白色 *//* LCD背光控制 */
#define LCD_BL(x)   do{ x ? \HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_SET) : \HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET); \}while(0)/* LCD地址結構體 */
typedef struct
{volatile uint16_t LCD_REG;volatile uint16_t LCD_RAM;
} LCD_TypeDef;/* LCD_BASE的詳細解算方法:* 我們一般使用FSMC的塊1(BANK1)來驅動TFTLCD液晶屏(MCU屏), 塊1地址范圍總大小為256MB,均分成4塊:* 存儲塊1(FSMC_NE1)地址范圍: 0X6000 0000 ~ 0X63FF FFFF* 存儲塊2(FSMC_NE2)地址范圍: 0X6400 0000 ~ 0X67FF FFFF* 存儲塊3(FSMC_NE3)地址范圍: 0X6800 0000 ~ 0X6BFF FFFF* 存儲塊4(FSMC_NE4)地址范圍: 0X6C00 0000 ~ 0X6FFF FFFF** 我們需要根據硬件連接方式選擇合適的片選(連接LCD_CS)和地址線(連接LCD_RS)* 戰艦F103開發板使用FSMC_NE4連接LCD_CS, FSMC_A10連接LCD_RS ,16位數據線,計算方法如下:* 首先FSMC_NE4的基地址為: 0X6C00 0000;     NEx的基址為(x=1/2/3/4): 0X6000 0000 + (0X400 0000 * (x - 1))* FSMC_A10對應地址值: 2^10 * 2 = 0X800;    FSMC_Ay對應的地址為(y = 0 ~ 25): 2^y * 2** LCD->LCD_REG,對應LCD_RS = 0(LCD寄存器); LCD->LCD_RAM,對應LCD_RS = 1(LCD數據)* 則 LCD->LCD_RAM的地址為:  0X6C00 0000 + 2^10 * 2 = 0X6C00 0800*    LCD->LCD_REG的地址可以為 LCD->LCD_RAM之外的任意地址.* 由于我們使用結構體管理LCD_REG 和 LCD_RAM(REG在前,RAM在后,均為16位數據寬度)* 因此 結構體的基地址(LCD_BASE) = LCD_RAM - 2 = 0X6C00 0800 -2** 更加通用的計算公式為((片選腳FSMC_NEx)x=1/2/3/4, (RS接地址線FSMC_Ay)y=0~25):*          LCD_BASE = (0X6000 0000 + (0X400 0000 * (x - 1))) | (2^y * 2 -2)*          等效于(使用移位操作)*          LCD_BASE = (0X6000 0000 + (0X400 0000 * (x - 1))) | ((1 << y) * 2 -2)*/
#define LCD_BASE        (uint32_t)((0X60000000 + (0X4000000 * (LCD_FSMC_NEX - 1))) | (((1 << LCD_FSMC_AX) * 2) -2))
#define LCD             ((LCD_TypeDef *) LCD_BASE)/******************************************************************************************/
/* LCD掃描方向和顏色 定義 *//* 掃描方向定義 */
#define L2R_U2D         0           /* 從左到右,從上到下 */
#define L2R_D2U         1           /* 從左到右,從下到上 */
#define R2L_U2D         2           /* 從右到左,從上到下 */
#define R2L_D2U         3           /* 從右到左,從下到上 */#define U2D_L2R         4           /* 從上到下,從左到右 */
#define U2D_R2L         5           /* 從上到下,從右到左 */
#define D2U_L2R         6           /* 從下到上,從左到右 */
#define D2U_R2L         7           /* 從下到上,從右到左 */#define DFT_SCAN_DIR    L2R_U2D     /* 默認的掃描方向 *//* 常用畫筆顏色 */
#define WHITE           0xFFFF      /* 白色 */
#define BLACK           0x0000      /* 黑色 */
#define RED             0xF800      /* 紅色 */
#define GREEN           0x07E0      /* 綠色 */
#define BLUE            0x001F      /* 藍色 */
#define MAGENTA         0XF81F      /* 品紅色/紫紅色 = BLUE + RED */
#define YELLOW          0XFFE0      /* 黃色 = GREEN + RED */
#define CYAN            0X07FF      /* 青色 = GREEN + BLUE *//* 非常用顏色 */
#define BROWN           0XBC40      /* 棕色 */
#define BRRED           0XFC07      /* 棕紅色 */
#define GRAY            0X8430      /* 灰色 */
#define DARKBLUE        0X01CF      /* 深藍色 */
#define LIGHTBLUE       0X7D7C      /* 淺藍色 */
#define GRAYBLUE        0X5458      /* 灰藍色 */
#define LIGHTGREEN      0X841F      /* 淺綠色 */
#define LGRAY           0XC618      /* 淺灰色(PANNEL),窗體背景色 */
#define LGRAYBLUE       0XA651      /* 淺灰藍色(中間層顏色) */
#define LBBLUE          0X2B12      /* 淺棕藍色(選擇條目的反色) *//******************************************************************************************/
/* SSD1963相關配置參數(一般不用改) *//* LCD分辨率設置 */
#define SSD_HOR_RESOLUTION      800     /* LCD水平分辨率 */
#define SSD_VER_RESOLUTION      480     /* LCD垂直分辨率 *//* LCD驅動參數設置 */
#define SSD_HOR_PULSE_WIDTH     1       /* 水平脈寬 */
#define SSD_HOR_BACK_PORCH      46      /* 水平前廊 */
#define SSD_HOR_FRONT_PORCH     210     /* 水平后廊 */#define SSD_VER_PULSE_WIDTH     1       /* 垂直脈寬 */
#define SSD_VER_BACK_PORCH      23      /* 垂直前廊 */
#define SSD_VER_FRONT_PORCH     22      /* 垂直前廊 *//* 如下幾個參數,自動計算 */
#define SSD_HT          (SSD_HOR_RESOLUTION + SSD_HOR_BACK_PORCH + SSD_HOR_FRONT_PORCH)
#define SSD_HPS         (SSD_HOR_BACK_PORCH)
#define SSD_VT          (SSD_VER_RESOLUTION + SSD_VER_BACK_PORCH + SSD_VER_FRONT_PORCH)
#define SSD_VPS         (SSD_VER_BACK_PORCH)/******************************************************************************************/
/* 函數申明 */void lcd_wr_data(volatile uint16_t data);            /* LCD寫數據 */
void lcd_wr_regno(volatile uint16_t regno);          /* LCD寫寄存器編號/地址 */
void lcd_write_reg(uint16_t regno, uint16_t data);   /* LCD寫寄存器的值 */void lcd_init(void);                        /* 初始化LCD */
void lcd_display_on(void);                  /* 開顯示 */
void lcd_display_off(void);                 /* 關顯示 */
void lcd_scan_dir(uint8_t dir);             /* 設置屏掃描方向 */
void lcd_display_dir(uint8_t dir);          /* 設置屏幕顯示方向 */
void lcd_ssd_backlight_set(uint8_t pwm);    /* SSD1963 背光控制 */void lcd_write_ram_prepare(void);               /* 準備些GRAM */
void lcd_set_cursor(uint16_t x, uint16_t y);    /* 設置光標 */
uint32_t lcd_read_point(uint16_t x, uint16_t y);/* 讀點(32位顏色,兼容LTDC)  */
void lcd_draw_point(uint16_t x, uint16_t y, uint32_t color);/* 畫點(32位顏色,兼容LTDC) */void lcd_clear(uint16_t color);     /* LCD清屏 */
void lcd_fill_circle(uint16_t x, uint16_t y, uint16_t r, uint16_t color);                   /* 填充實心圓 */
void lcd_draw_circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color);                  /* 畫圓 */
void lcd_draw_hline(uint16_t x, uint16_t y, uint16_t len, uint16_t color);                  /* 畫水平線 */
void lcd_set_window(uint16_t sx, uint16_t sy, uint16_t width, uint16_t height);             /* 設置窗口 */
void lcd_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t color);          /* 純色填充矩形(32位顏色,兼容LTDC) */
void lcd_color_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint16_t *color);   /* 彩色填充矩形 */
void lcd_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);     /* 畫直線 */
void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);/* 畫矩形 */void lcd_show_char(uint16_t x, uint16_t y, char chr, uint8_t size, uint8_t mode, uint16_t color);                       /* 顯示一個字符 */
void lcd_show_num(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint16_t color);                     /* 顯示數字 */
void lcd_show_xnum(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint8_t mode, uint16_t color);      /* 擴展顯示數字 */
void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color);   /* 顯示字符串 */#endif

lcdfont.h

#ifndef __LCDFONT_H
#define __LCDFONT_H/* 常用ASCII表* 偏移量32* ASCII字符集: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~* PC2LCD2002取模方式設置:陰碼+逐列式+順向+C51格式* 總共:4個字符集(12*12、16*16、24*24和32*32),用戶可以自行新增其他分辨率的字符集。* 每個字符所占用的字節數為:(size/8+((size%8)?1:0))*(size/2),其中size:是字庫生成時的點陣大小(12/16/24/32...)*//* 12*12 ASCII字符集點陣 */
const unsigned char asc2_1206[95][12]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00},/*""",2*/
{0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00},/*"#",3*/
{0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00},/*"$",4*/
{0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80},/*"%",5*/
{0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40},/*"&",6*/
{0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20},/*"(",8*/
{0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00},/*")",9*/
{0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00},/*"*",10*/
{0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00},/*"+",11*/
{0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00},/*"/",15*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"0",16*/
{0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"1",17*/
{0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00},/*"2",18*/
{0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"3",19*/
{0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00},/*"4",20*/
{0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00},/*"5",21*/
{0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00},/*"6",22*/
{0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00},/*"7",23*/
{0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"8",24*/
{0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40},/*"<",28*/
{0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00},/*">",30*/
{0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"?",31*/
{0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00},/*"@",32*/
{0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40},/*"A",33*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"B",34*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00},/*"C",35*/
{0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"D",36*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00},/*"E",37*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00},/*"F",38*/
{0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00},/*"G",39*/
{0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40},/*"H",40*/
{0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00},/*"I",41*/
{0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00},/*"J",42*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40},/*"K",43*/
{0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0},/*"L",44*/
{0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00},/*"M",45*/
{0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00},/*"N",46*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"O",47*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"P",48*/
{0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00},/*"Q",49*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40},/*"R",50*/
{0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00},/*"S",51*/
{0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00},/*"T",52*/
{0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00},/*"U",53*/
{0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00},/*"V",54*/
{0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00},/*"W",55*/
{0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00},/*"X",56*/
{0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00},/*"Y",57*/
{0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00},/*"[",59*/
{0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00},/*"\",60*/
{0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10},/*"_",63*/
{0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40},/*"a",65*/
{0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"b",66*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00},/*"c",67*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40},/*"d",68*/
{0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00},/*"e",69*/
{0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00},/*"f",70*/
{0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20},/*"g",71*/
{0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"h",72*/
{0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00},/*"j",74*/
{0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40},/*"k",75*/
{0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00},/*"l",76*/
{0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00},/*"m",77*/
{0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"n",78*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"o",79*/
{0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00},/*"p",80*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10},/*"q",81*/
{0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00},/*"s",83*/
{0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00},/*"t",84*/
{0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40},/*"u",85*/
{0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00},/*"v",86*/
{0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00},/*"w",87*/
{0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00},/*"x",88*/
{0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00},/*"y",89*/
{0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00},/*"~",94*/
};/* 16*16 ASCII字符集點陣 */
const unsigned char asc2_1608[95][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00},/*""",2*/
{0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00},/*"#",3*/
{0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00},/*"$",4*/
{0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/
{0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/
{0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00},/*"(",8*/
{0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00},/*"*",10*/
{0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00},/*"+",11*/
{0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"-",13*/
{0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00},/*"/",15*/
{0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"0",16*/
{0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00},/*"2",18*/
{0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00},/*"4",20*/
{0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00},/*"5",21*/
{0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00},/*"6",22*/
{0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},/*"8",24*/
{0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00},/*"<",28*/
{0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00},/*"=",29*/
{0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00},/*">",30*/
{0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00},/*"?",31*/
{0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00},/*"@",32*/
{0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04},/*"A",33*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00},/*"B",34*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00},/*"C",35*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"D",36*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00},/*"E",37*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00},/*"F",38*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00},/*"G",39*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04},/*"H",40*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00},/*"J",42*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00},/*"K",43*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00},/*"L",44*/
{0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00},/*"M",45*/
{0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00},/*"N",46*/
{0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"O",47*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00},/*"P",48*/
{0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00},/*"Q",49*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04},/*"R",50*/
{0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00},/*"S",51*/
{0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00},/*"T",52*/
{0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00},/*"U",53*/
{0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00},/*"V",54*/
{0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00},/*"W",55*/
{0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04},/*"X",56*/
{0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00},/*"Y",57*/
{0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00},/*"[",59*/
{0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00},/*"\",60*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00},/*"^",62*/
{0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},/*"_",63*/
{0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04},/*"a",65*/
{0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04},/*"d",68*/
{0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00},/*"e",69*/
{0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00},/*"f",70*/
{0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00},/*"g",71*/
{0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"h",72*/
{0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00},/*"j",74*/
{0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00},/*"k",75*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"l",76*/
{0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC},/*"m",77*/
{0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"n",78*/
{0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00},/*"o",79*/
{0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01},/*"q",81*/
{0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00},/*"s",83*/
{0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00},/*"t",84*/
{0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04},/*"u",85*/
{0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00},/*"v",86*/
{0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00},/*"w",87*/
{0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00},/*"x",88*/
{0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00},/*"y",89*/
{0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00},/*"~",94*/
};/* 24*24 ASICII字符集點陣 */
const unsigned char asc2_2412[95][36]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0x0F,0xFE,0x38,0x0F,0x80,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x31,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x00,0x00,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x00,0x00},/*"#",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xE0,0xF0,0x06,0x30,0x08,0x04,0x18,0x08,0x1F,0xFF,0xFE,0x04,0x0E,0x08,0x07,0x87,0xF0,0x03,0x81,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/
{0x01,0xF0,0x00,0x06,0x0C,0x00,0x04,0x04,0x08,0x06,0x0C,0x70,0x01,0xF9,0xC0,0x00,0x0E,0x00,0x00,0x3B,0xE0,0x00,0xEC,0x18,0x07,0x08,0x08,0x04,0x0C,0x18,0x00,0x03,0xE0,0x00,0x00,0x00},/*"%",5*/
{0x00,0x01,0xE0,0x00,0x07,0xF0,0x03,0xF8,0x18,0x04,0x1C,0x08,0x04,0x17,0x08,0x07,0xE1,0xD0,0x03,0xC0,0xE0,0x00,0x23,0xB0,0x00,0x3C,0x08,0x00,0x20,0x08,0x00,0x00,0x10,0x00,0x00,0x00},/*"&",6*/
{0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0xFF,0xC0,0x07,0x80,0xF0,0x0C,0x00,0x18,0x10,0x00,0x04,0x20,0x00,0x02,0x00,0x00,0x00},/*"(",8*/
{0x00,0x00,0x00,0x20,0x00,0x02,0x10,0x00,0x04,0x0C,0x00,0x18,0x07,0x80,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x00,0x00,0x00,0x00,0x42,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x18,0x00,0x03,0xFF,0xC0,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x42,0x00},/*"*",10*/
{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x01,0xFF,0xC0,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x01,0x80,0x00,0x0E,0x00,0x00,0x38,0x00,0x00,0xC0,0x00,0x07,0x00,0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"0",16*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x03,0xFF,0xF8,0x07,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x00,0x01,0xC0,0x38,0x02,0xC0,0x58,0x04,0x00,0x98,0x04,0x01,0x18,0x04,0x02,0x18,0x04,0x04,0x18,0x06,0x1C,0x18,0x03,0xF8,0x18,0x01,0xE0,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/
{0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xC0,0xF0,0x04,0x00,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x0D,0x00,0x00,0x11,0x00,0x00,0x61,0x00,0x00,0x81,0x08,0x03,0x01,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x00,0x00},/*"4",20*/
{0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0xFC,0xD0,0x06,0x08,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x18,0x38,0x06,0x0F,0xF0,0x06,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x84,0x30,0x02,0x08,0x18,0x04,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x07,0x18,0x10,0x03,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"6",22*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF8,0x06,0x07,0xF8,0x06,0x18,0x00,0x06,0xE0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x00,0x01,0xE1,0xE0,0x03,0xF7,0xF0,0x06,0x34,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x06,0x16,0x18,0x03,0xF3,0xF0,0x01,0xC1,0xE0,0x00,0x00,0x00},/*"8",24*/
{0x00,0x00,0x00,0x00,0xF8,0x00,0x03,0xFC,0x30,0x03,0x06,0x38,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x04,0x10,0x03,0x08,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1A,0x00,0x30,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x00,0x22,0x00,0x00,0x41,0x00,0x00,0x80,0x80,0x01,0x00,0x40,0x02,0x00,0x20,0x04,0x00,0x10,0x08,0x00,0x08,0x00,0x00,0x00},/*"<",28*/
{0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x04,0x00,0x10,0x02,0x00,0x20,0x01,0x00,0x40,0x00,0x80,0x80,0x00,0x41,0x00,0x00,0x22,0x00,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*">",30*/
{0x00,0x00,0x00,0x03,0xC0,0x00,0x04,0xC0,0x00,0x04,0x00,0x00,0x08,0x00,0x38,0x08,0x0F,0x38,0x08,0x08,0x38,0x08,0x10,0x00,0x0C,0x30,0x00,0x07,0xE0,0x00,0x03,0xC0,0x00,0x00,0x00,0x00},/*"?",31*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0xFF,0xE0,0x03,0x80,0x70,0x02,0x0F,0x10,0x06,0x70,0x88,0x04,0xC0,0x88,0x04,0x83,0x08,0x04,0x7F,0x88,0x02,0xC0,0x90,0x03,0x01,0x20,0x00,0xFE,0x40},/*"@",32*/
{0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x01,0xF8,0x00,0x3E,0x08,0x01,0xC2,0x00,0x07,0x02,0x00,0x07,0xE2,0x00,0x00,0xFE,0x00,0x00,0x1F,0xC8,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x00,0x08},/*"A",33*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00},/*"B",34*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x02,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x10,0x06,0x00,0x20,0x07,0x80,0xC0,0x00,0x00,0x00},/*"C",35*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x02,0x00,0x10,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"D",36*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x3E,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x01,0x00,0x60,0x00,0x00,0x00},/*"E",37*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x3E,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00},/*"F",38*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x02,0x03,0xF0,0x07,0x83,0xF0,0x00,0x02,0x00,0x00,0x02,0x00},/*"G",39*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x04,0x08,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"H",40*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x03,0x07,0xFF,0xFE,0x07,0xFF,0xFC,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00},/*"J",42*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x0C,0x08,0x00,0x18,0x00,0x00,0x3E,0x00,0x04,0xC7,0x80,0x05,0x03,0xC8,0x06,0x00,0xF8,0x04,0x00,0x38,0x04,0x00,0x18,0x00,0x00,0x08},/*"K",43*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x00},/*"L",44*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x80,0x08,0x07,0xFC,0x00,0x00,0x7F,0xC0,0x00,0x03,0xF8,0x00,0x07,0xC0,0x00,0x78,0x00,0x07,0x80,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"M",45*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x00,0x08,0x03,0xC0,0x00,0x00,0xE0,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x07,0x00,0x00,0x01,0xC0,0x04,0x00,0xF0,0x07,0xFF,0xF8,0x04,0x00,0x00},/*"N",46*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x00,0x30,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"O",47*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x04,0x08,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x06,0x0C,0x00,0x03,0xF8,0x00,0x01,0xF0,0x00,0x00,0x00,0x00},/*"P",48*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x88,0x04,0x00,0x88,0x04,0x00,0xC8,0x06,0x00,0x3C,0x03,0x00,0x3E,0x01,0xFF,0xE6,0x00,0x7F,0x84,0x00,0x00,0x00},/*"Q",49*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x0C,0x00,0x04,0x0F,0x00,0x04,0x0B,0xC0,0x06,0x10,0xF0,0x03,0xF0,0x38,0x01,0xE0,0x08,0x00,0x00,0x08},/*"R",50*/
{0x00,0x00,0x00,0x01,0xE0,0xF8,0x03,0xF0,0x30,0x06,0x30,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x02,0x06,0x18,0x02,0x07,0xF0,0x07,0x81,0xE0,0x00,0x00,0x00},/*"S",51*/
{0x01,0x80,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00},/*"T",52*/
{0x04,0x00,0x00,0x07,0xFF,0xE0,0x07,0xFF,0xF0,0x04,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x04,0x00,0x10,0x07,0xFF,0xE0,0x04,0x00,0x00},/*"U",53*/
{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0xE0,0x00,0x07,0xFE,0x00,0x04,0x1F,0xE0,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x01,0xE0,0x04,0x3E,0x00,0x07,0xC0,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"V",54*/
{0x04,0x00,0x00,0x07,0xE0,0x00,0x07,0xFF,0xC0,0x04,0x1F,0xF8,0x00,0x07,0xC0,0x07,0xF8,0x00,0x07,0xFF,0x80,0x04,0x3F,0xF8,0x00,0x07,0xC0,0x04,0xF8,0x00,0x07,0x00,0x00,0x04,0x00,0x00},/*"W",55*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x06,0x00,0x18,0x07,0xC0,0x78,0x05,0xF1,0xC8,0x00,0x3E,0x00,0x00,0x1F,0x80,0x04,0x63,0xE8,0x07,0x80,0xF8,0x06,0x00,0x18,0x04,0x00,0x08,0x00,0x00,0x00},/*"X",56*/
{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0x80,0x00,0x07,0xE0,0x08,0x04,0x7C,0x08,0x00,0x1F,0xF8,0x00,0x07,0xF8,0x00,0x18,0x08,0x04,0xE0,0x08,0x07,0x00,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"Y",57*/
{0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x38,0x04,0x00,0xF8,0x04,0x03,0xE8,0x04,0x0F,0x08,0x04,0x7C,0x08,0x05,0xF0,0x08,0x07,0xC0,0x08,0x07,0x00,0x18,0x04,0x00,0x60,0x00,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x00,0x00,0x00},/*"[",59*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x00,0x06,0x00,0x00,0x01,0xC0,0x00,0x00,0x30,0x00,0x00,0x0E,0x00,0x00,0x01,0x00,0x00,0x00},/*"\",60*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x3F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01},/*"_",63*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x19,0xF8,0x00,0x1B,0x18,0x00,0x22,0x08,0x00,0x26,0x08,0x00,0x24,0x08,0x00,0x24,0x10,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x18},/*"a",65*/
{0x00,0x00,0x00,0x04,0x00,0x00,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x18,0x18,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x18,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x18,0x30,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3C,0x08,0x00,0x1C,0x10,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x04,0x10,0x10,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"d",68*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x12,0x30,0x00,0x22,0x18,0x00,0x22,0x08,0x00,0x22,0x08,0x00,0x32,0x08,0x00,0x1E,0x10,0x00,0x0E,0x20,0x00,0x00,0x00},/*"e",69*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x01,0xFF,0xF8,0x03,0xFF,0xF8,0x06,0x20,0x08,0x04,0x20,0x08,0x04,0x20,0x08,0x07,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"f",70*/
{0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x6E,0x00,0x1F,0xF3,0x00,0x31,0xB1,0x00,0x20,0xB1,0x00,0x20,0xB1,0x00,0x31,0x91,0x00,0x1F,0x13,0x00,0x2E,0x1E,0x00,0x20,0x0E,0x00,0x30,0x00},/*"g",71*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"h",72*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x06,0x3F,0xF8,0x06,0x3F,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x20,0x01,0x00,0x20,0x01,0x00,0x20,0x03,0x06,0x3F,0xFE,0x06,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"j",74*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x88,0x00,0x03,0x00,0x00,0x2F,0xC0,0x00,0x38,0xF8,0x00,0x20,0x38,0x00,0x20,0x08,0x00,0x00,0x08,0x00,0x00,0x00},/*"k",75*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/
{0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x00,0x08},/*"m",77*/
{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"n",78*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x0F,0xF0,0x00,0x18,0x30,0x00,0x30,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x08,0x00,0x18,0x30,0x00,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"o",79*/
{0x00,0x00,0x00,0x00,0x20,0x01,0x00,0x3F,0xFF,0x00,0x3F,0xFF,0x00,0x10,0x11,0x00,0x20,0x09,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x38,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x09,0x00,0x10,0x11,0x00,0x1F,0xFF,0x00,0x3F,0xFF,0x00,0x00,0x01,0x00,0x00,0x00},/*"q",81*/
{0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x08,0x08,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x78,0x00,0x1E,0x18,0x00,0x33,0x08,0x00,0x23,0x08,0x00,0x21,0x08,0x00,0x21,0x88,0x00,0x21,0x98,0x00,0x30,0xF0,0x00,0x38,0x60,0x00,0x00,0x00},/*"s",83*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0xFF,0xF0,0x03,0xFF,0xF8,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x3F,0xF0,0x00,0x7F,0xF8,0x00,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x20,0x10,0x00,0x3F,0xF8,0x00,0x7F,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"u",85*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x3F,0x80,0x00,0x23,0xF0,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x30,0x00,0x00,0x20,0x00},/*"v",86*/
{0x00,0x20,0x00,0x00,0x3C,0x00,0x00,0x3F,0xE0,0x00,0x23,0xF8,0x00,0x00,0xE0,0x00,0x27,0x00,0x00,0x3E,0x00,0x00,0x3F,0xE0,0x00,0x21,0xF8,0x00,0x01,0xE0,0x00,0x3E,0x00,0x00,0x20,0x00},/*"w",87*/
{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x38,0x38,0x00,0x3E,0x68,0x00,0x27,0x80,0x00,0x03,0xC8,0x00,0x2C,0xF8,0x00,0x38,0x38,0x00,0x20,0x18,0x00,0x20,0x08,0x00,0x00,0x00},/*"x",88*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x03,0x00,0x3C,0x01,0x00,0x3F,0x83,0x00,0x23,0xEC,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"y",89*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x08,0x00,0x20,0x38,0x00,0x20,0xF8,0x00,0x23,0xE8,0x00,0x2F,0x88,0x00,0x3E,0x08,0x00,0x38,0x08,0x00,0x20,0x18,0x00,0x00,0x70,0x00,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x1F,0xF7,0xFC,0x30,0x00,0x06,0x20,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x30,0x00,0x06,0x1F,0xF7,0xFC,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0C,0x00,0x00,0x10,0x00,0x00},/*"~",94*/
};/* 32*32 ASCII字符集點陣 */
const unsigned char asc2_3216[95][64]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0xC0,0x07,0xFF,0xE1,0xE0,0x07,0xF0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x01,0xC0,0x00,0x00,0x07,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1C,0x20,0x00,0x00,0x01,0xC0,0x00,0x00,0x07,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0F,0xE0,0x00,0x1F,0xFC,0x00,0x03,0xF8,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0F,0xE0,0x00,0x1F,0xFC,0x00,0x03,0xF8,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x00,0x00,0x00},/*"#",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x78,0x07,0xC0,0x00,0xFC,0x06,0x40,0x01,0x0E,0x00,0x20,0x03,0x07,0x00,0x20,0x02,0x03,0x80,0x20,0x0F,0xFF,0xFF,0xFC,0x02,0x01,0xC0,0x20,0x02,0x00,0xE0,0x60,0x01,0x30,0x70,0x40,0x01,0xF0,0x3F,0x80,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/
{0x00,0xFE,0x00,0x00,0x01,0xFF,0x00,0x00,0x03,0x01,0x80,0x00,0x02,0x00,0x80,0x60,0x03,0x01,0x81,0xC0,0x01,0xFF,0x07,0x00,0x00,0xFE,0x18,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0xBF,0x00,0x00,0x0C,0xFF,0xC0,0x00,0x71,0x80,0x60,0x01,0xC1,0x00,0x20,0x03,0x01,0x80,0x60,0x00,0x00,0xFF,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00},/*"%",5*/
{0x00,0x00,0x1F,0x00,0x00,0x00,0x7F,0xC0,0x00,0xFC,0xC0,0xC0,0x01,0xFF,0x80,0x60,0x03,0x03,0xE0,0x20,0x02,0x02,0x78,0x20,0x02,0x06,0x1E,0x20,0x03,0xFC,0x07,0x40,0x01,0xF0,0x03,0x80,0x00,0x01,0x03,0xC0,0x00,0x01,0x1C,0x60,0x00,0x01,0xE0,0x20,0x00,0x01,0x00,0x20,0x00,0x01,0x00,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00},/*"&",6*/
{0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x1C,0x60,0x00,0x00,0x1C,0x40,0x00,0x00,0x1F,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x3F,0xFF,0x00,0x00,0x78,0x07,0xC0,0x01,0xC0,0x00,0xE0,0x03,0x00,0x00,0x30,0x04,0x00,0x00,0x08,0x08,0x00,0x00,0x04,0x10,0x00,0x00,0x02,0x00,0x00,0x00,0x00},/*"(",8*/
{0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x02,0x08,0x00,0x00,0x04,0x04,0x00,0x00,0x08,0x03,0x00,0x00,0x30,0x01,0xC0,0x00,0xE0,0x00,0x78,0x07,0xC0,0x00,0x3F,0xFF,0x00,0x00,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x0E,0x38,0x00,0x00,0x0E,0x38,0x00,0x00,0x06,0x30,0x00,0x00,0x03,0x60,0x00,0x00,0x61,0x43,0x80,0x00,0xFF,0xFF,0x80,0x00,0x61,0x43,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38,0x00,0x00,0x0E,0x38,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,0x00},/*"*",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x7F,0xFF,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE3,0x00,0x00,0x00,0xE2,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x00,0x00,0xF0,0x07,0x80,0x01,0x80,0x00,0xC0,0x03,0x00,0x00,0x60,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x60,0x01,0x80,0x00,0xC0,0x00,0xE0,0x03,0x80,0x00,0x7F,0xFF,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"0",16*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x60,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xE0,0x00,0x98,0x01,0x60,0x01,0x00,0x02,0x60,0x02,0x00,0x04,0x60,0x02,0x00,0x08,0x60,0x02,0x00,0x10,0x60,0x02,0x00,0x20,0x60,0x02,0x00,0x40,0x60,0x03,0x00,0x80,0x60,0x01,0x83,0x00,0x60,0x01,0xFE,0x00,0xE0,0x00,0x7C,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x80,0x01,0xF0,0x07,0xC0,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x03,0x03,0x80,0x20,0x01,0x86,0x80,0x40,0x01,0xFC,0xC0,0xC0,0x00,0x78,0x7F,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x88,0x00,0x00,0x06,0x08,0x00,0x00,0x0C,0x08,0x10,0x00,0x30,0x08,0x10,0x00,0x40,0x08,0x10,0x01,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xF0,0x00,0x00,0x08,0x10,0x00,0x00,0x08,0x10,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00},/*"4",20*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x1F,0x86,0x40,0x03,0xE1,0x00,0x20,0x03,0x02,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x06,0x00,0x40,0x03,0x03,0x01,0xC0,0x03,0x01,0xFF,0x80,0x03,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x3F,0xFF,0x00,0x00,0x70,0xC3,0x80,0x00,0x81,0x80,0xC0,0x01,0x01,0x00,0x60,0x03,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x03,0x00,0x40,0x01,0xC1,0x80,0xC0,0x00,0xC0,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"6",22*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x07,0xE0,0x03,0x00,0x3F,0xE0,0x03,0x01,0xC0,0x00,0x03,0x06,0x00,0x00,0x03,0x18,0x00,0x00,0x03,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x78,0x3F,0x80,0x00,0xFC,0x60,0xC0,0x01,0x8E,0xC0,0x40,0x03,0x07,0x80,0x20,0x02,0x03,0x00,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0xC0,0x20,0x03,0x01,0xE0,0x40,0x01,0x86,0x70,0xC0,0x00,0xFC,0x3F,0x80,0x00,0x78,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",24*/
{0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xFF,0x81,0xC0,0x01,0xC0,0xC1,0xC0,0x01,0x00,0x60,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x60,0x02,0x00,0x40,0xC0,0x01,0x00,0xC1,0x80,0x00,0xC1,0x8F,0x00,0x00,0x7F,0xFE,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xC0,0x00,0x07,0x81,0xE0,0x00,0x07,0x81,0xE0,0x00,0x03,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x66,0x00,0x06,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0xC0,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0C,0x18,0x00,0x00,0x18,0x0C,0x00,0x00,0x30,0x06,0x00,0x00,0x60,0x03,0x00,0x00,0xC0,0x01,0x80,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x04,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"<",28*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x10,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x00,0xC0,0x01,0x80,0x00,0x60,0x03,0x00,0x00,0x30,0x06,0x00,0x00,0x18,0x0C,0x00,0x00,0x0C,0x18,0x00,0x00,0x06,0x30,0x00,0x00,0x03,0x60,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x02,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0xC0,0x04,0x00,0x79,0xE0,0x04,0x00,0x81,0xE0,0x04,0x01,0x00,0xC0,0x04,0x03,0x00,0x00,0x02,0x02,0x00,0x00,0x03,0x06,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/
{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0x70,0x07,0x80,0x00,0xC0,0x00,0xC0,0x01,0x01,0xF8,0x40,0x03,0x07,0xFC,0x20,0x02,0x1E,0x04,0x20,0x02,0x30,0x08,0x20,0x02,0x20,0x30,0x20,0x02,0x3F,0xFC,0x20,0x01,0x3F,0x04,0x40,0x01,0x80,0x0C,0xC0,0x00,0xE0,0x31,0x80,0x00,0x1F,0xC2,0x00,0x00,0x00,0x00,0x00},/*"@",32*/
{0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0xE0,0x00,0x00,0x3E,0x20,0x00,0x03,0xE0,0x20,0x00,0x3E,0x20,0x00,0x03,0xE0,0x20,0x00,0x03,0x80,0x20,0x00,0x07,0xFC,0x20,0x00,0x00,0x3F,0xE0,0x00,0x00,0x03,0xFE,0x20,0x00,0x00,0x3F,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"A",33*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x03,0x03,0x00,0x20,0x01,0x86,0x80,0x60,0x01,0xFC,0xC0,0xC0,0x00,0xF8,0x7F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"B",34*/
{0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x3F,0xFF,0x00,0x00,0x70,0x07,0x80,0x00,0xC0,0x00,0xC0,0x01,0x00,0x00,0x40,0x03,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x03,0xC0,0x01,0x80,0x00,0x30,0x06,0x00,0x00,0x00,0x00,0x00},/*"C",35*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x60,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x00,0xF0,0x07,0x80,0x00,0x7F,0xFE,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"D",36*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x03,0x80,0x20,0x02,0x0F,0xE0,0x20,0x03,0x00,0x00,0x60,0x03,0xC0,0x00,0xE0,0x00,0x60,0x03,0x00,0x00,0x00,0x00,0x00},/*"E",37*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x03,0x80,0x00,0x03,0x0F,0xE0,0x00,0x03,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x60,0x00,0x00},/*"F",38*/
{0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0x70,0x07,0x80,0x01,0xC0,0x01,0xC0,0x01,0x00,0x00,0x40,0x03,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x20,0x20,0x01,0x00,0x20,0x40,0x03,0xC0,0x3F,0x80,0x00,0x30,0x3F,0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00},/*"G",39*/
{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"H",40*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x06,0x03,0xFF,0xFF,0xFC,0x03,0xFF,0xFF,0xF8,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"J",42*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0xC0,0x20,0x02,0x01,0x00,0x20,0x00,0x07,0x80,0x00,0x00,0x0F,0xE0,0x00,0x00,0x30,0xF8,0x00,0x02,0x60,0x3E,0x20,0x03,0x80,0x0F,0x20,0x03,0x00,0x03,0xE0,0x02,0x00,0x00,0xE0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"K",43*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"L",44*/
{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xE0,0x00,0x20,0x03,0xFF,0x00,0x20,0x00,0x1F,0xF0,0x00,0x00,0x01,0xFF,0x80,0x00,0x00,0x0F,0xE0,0x00,0x00,0x1E,0x00,0x00,0x03,0xE0,0x00,0x00,0x3E,0x00,0x20,0x03,0xE0,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20},/*"M",45*/
{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x20,0x03,0xF0,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x7C,0x00,0x02,0x00,0x1F,0x80,0x02,0x00,0x07,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"N",46*/
{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0xF0,0x07,0x80,0x01,0x80,0x00,0xC0,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x00,0xF0,0x03,0x80,0x00,0x3F,0xFE,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"O",47*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x03,0x01,0x80,0x00,0x01,0x83,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/
{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x00,0x00,0xF0,0x03,0x80,0x01,0x80,0x01,0xC0,0x01,0x00,0x06,0x40,0x02,0x00,0x04,0x20,0x02,0x00,0x04,0x20,0x02,0x00,0x06,0x20,0x02,0x00,0x03,0xE0,0x01,0x00,0x00,0xF8,0x01,0x80,0x00,0x5C,0x00,0xE0,0x03,0x8C,0x00,0x3F,0xFF,0x0C,0x00,0x0F,0xFC,0x18,0x00,0x00,0x00,0x00},/*"Q",49*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x80,0x00,0x02,0x01,0xE0,0x00,0x02,0x01,0xFC,0x00,0x03,0x03,0x3F,0x80,0x01,0x86,0x07,0xE0,0x01,0xFC,0x00,0xE0,0x00,0xF8,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"R",50*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x06,0x00,0x00,0xFE,0x01,0xE0,0x01,0x86,0x00,0xC0,0x03,0x03,0x00,0x40,0x02,0x03,0x00,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0xC0,0x20,0x02,0x00,0xC0,0x20,0x01,0x00,0xE0,0x60,0x01,0x80,0x70,0xC0,0x03,0xE0,0x3F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"S",51*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"T",52*/
{0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xC0,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x80,0x03,0xFF,0xFF,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"U",53*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFC,0x00,0x00,0x02,0x3F,0xC0,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x78,0x00,0x02,0x03,0xC0,0x00,0x02,0x3C,0x00,0x00,0x03,0xC0,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00},/*"V",54*/
{0x02,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFF,0x80,0x00,0x02,0x3F,0xFE,0x00,0x02,0x00,0x7F,0xE0,0x00,0x00,0x0F,0x00,0x02,0x00,0xF0,0x00,0x03,0xEF,0x00,0x00,0x03,0xFF,0x80,0x00,0x02,0x0F,0xFE,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x1F,0x00,0x02,0x07,0xE0,0x00,0x03,0xF8,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00},/*"W",55*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x80,0x00,0xE0,0x03,0xF0,0x03,0x20,0x02,0xFC,0x0C,0x20,0x02,0x1F,0x30,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xF0,0x00,0x02,0x18,0x7C,0x00,0x02,0x60,0x1F,0x20,0x03,0x80,0x03,0xE0,0x02,0x00,0x00,0xE0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"X",56*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xF8,0x00,0x00,0x02,0x3E,0x00,0x20,0x02,0x0F,0xC0,0x20,0x00,0x01,0xFF,0xE0,0x00,0x00,0x7F,0xE0,0x00,0x03,0x80,0x20,0x02,0x1C,0x00,0x20,0x02,0x70,0x00,0x00,0x03,0x80,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Y",57*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x00,0xE0,0x03,0x80,0x03,0xE0,0x03,0x00,0x0F,0xA0,0x02,0x00,0x3E,0x20,0x02,0x00,0xF8,0x20,0x02,0x03,0xE0,0x20,0x02,0x0F,0x80,0x20,0x02,0x3E,0x00,0x20,0x02,0x78,0x00,0x20,0x03,0xE0,0x00,0x60,0x03,0x80,0x00,0xE0,0x02,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFC,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"[",59*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"\",60*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x1F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01},/*"_",63*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x01,0x8F,0xC0,0x00,0x03,0x8C,0x60,0x00,0x06,0x18,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x20,0x20,0x00,0x04,0x20,0x40,0x00,0x06,0x20,0x40,0x00,0x03,0xFF,0xC0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00},/*"a",65*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x00,0x01,0x80,0xC0,0x00,0x02,0x00,0x60,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x40,0x00,0x03,0x00,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x81,0xC0,0x00,0x02,0x00,0x40,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xC0,0x40,0x00,0x01,0xC0,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x80,0xC0,0x00,0x06,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x02,0x04,0x00,0x40,0x02,0x02,0x00,0x80,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00},/*"d",68*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x11,0xC0,0x00,0x02,0x10,0x40,0x00,0x04,0x10,0x60,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x06,0x10,0x20,0x00,0x03,0x10,0x40,0x00,0x01,0xF0,0xC0,0x00,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",69*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x7F,0xFF,0xE0,0x01,0xFF,0xFF,0xE0,0x01,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x02,0x04,0x00,0x20,0x02,0x04,0x00,0x20,0x02,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x01,0xC0,0x00,0x00},/*"f",70*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0xE3,0x3E,0x00,0x03,0xFF,0xC2,0x00,0x02,0x0C,0xC3,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x06,0x0C,0xC1,0x00,0x03,0xF8,0xC3,0x00,0x05,0xF0,0x62,0x00,0x06,0x00,0x7E,0x00,0x06,0x00,0x3C,0x00,0x00,0x00,0x00},/*"g",71*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"h",72*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x03,0x87,0xFF,0xE0,0x03,0x8F,0xFF,0xE0,0x03,0x80,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x04,0x00,0x06,0x03,0x87,0xFF,0xFC,0x03,0x8F,0xFF,0xF8,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"j",74*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x00,0x08,0x20,0x00,0x00,0x10,0x20,0x00,0x00,0x30,0x00,0x00,0x00,0xFC,0x00,0x00,0x05,0x8E,0x00,0x00,0x07,0x07,0xA0,0x00,0x06,0x01,0xE0,0x00,0x04,0x00,0xE0,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"k",75*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"m",77*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"n",78*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0xFF,0x80,0x00,0x03,0x81,0xC0,0x00,0x02,0x00,0x40,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x02,0x00,0x40,0x00,0x03,0x81,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"o",79*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x07,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0x00,0x01,0x00,0xC1,0x00,0x02,0x00,0x41,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x40,0x00,0x03,0x01,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x80,0xC0,0x00,0x02,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x02,0x00,0x41,0x00,0x03,0x00,0xC1,0x00,0x03,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01},/*"q",81*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x0F,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x00,0xC0,0x20,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x01,0xC0,0xE0,0x00,0x03,0xE0,0x40,0x00,0x06,0x30,0x20,0x00,0x04,0x30,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x0C,0x20,0x00,0x02,0x0C,0x60,0x00,0x03,0x07,0xC0,0x00,0x07,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"s",83*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x1F,0xFF,0x80,0x00,0xFF,0xFF,0xC0,0x00,0x04,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0xFF,0x80,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x40,0x00,0x04,0x00,0x80,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40},/*"u",85*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0xF0,0x00,0x00,0x04,0xFE,0x00,0x00,0x04,0x1F,0xC0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x1C,0x00,0x00,0x04,0x60,0x00,0x00,0x07,0x80,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"v",86*/
{0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xFC,0x00,0x00,0x04,0x3F,0x80,0x00,0x00,0x03,0xE0,0x00,0x04,0x0F,0x80,0x00,0x06,0xF0,0x00,0x00,0x07,0xF0,0x00,0x00,0x07,0xFF,0x80,0x00,0x04,0x0F,0xE0,0x00,0x00,0x03,0x80,0x00,0x04,0x3C,0x00,0x00,0x07,0xC0,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00},/*"w",87*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x07,0x00,0xE0,0x00,0x07,0x83,0x20,0x00,0x07,0xE6,0x00,0x00,0x04,0xF8,0x00,0x00,0x00,0x3C,0x00,0x00,0x04,0x5E,0x20,0x00,0x05,0x87,0xA0,0x00,0x06,0x01,0xE0,0x00,0x04,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"x",88*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x03,0x00,0x07,0x00,0x03,0x00,0x07,0xE0,0x01,0x00,0x04,0xF8,0x01,0x00,0x04,0x1F,0x02,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0x04,0x38,0x00,0x00,0x07,0xC0,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00},/*"y",89*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x60,0x00,0x06,0x00,0xE0,0x00,0x04,0x03,0xE0,0x00,0x04,0x07,0xA0,0x00,0x04,0x0E,0x20,0x00,0x04,0x3C,0x20,0x00,0x04,0x70,0x20,0x00,0x05,0xE0,0x20,0x00,0x07,0x80,0x20,0x00,0x07,0x00,0x60,0x00,0x04,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0x40,0x00,0x07,0xFE,0x3F,0xF8,0x08,0x00,0x00,0x04,0x10,0x00,0x00,0x02,0x10,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x02,0x10,0x00,0x00,0x02,0x08,0x00,0x00,0x04,0x07,0xFE,0x3F,0xF8,0x00,0x01,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/
};#endif

lcd_ex.c

#include "../../SYSTEM/sys/sys.h"
#include "lcd.h"/*** @brief       ST7789 寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_st7789_reginit(void)
{lcd_wr_regno(0x11);delay_ms(120);lcd_wr_regno(0x36);lcd_wr_data(0x00);lcd_wr_regno(0x3A);lcd_wr_data(0X05);lcd_wr_regno(0xB2);lcd_wr_data(0x0C);lcd_wr_data(0x0C);lcd_wr_data(0x00);lcd_wr_data(0x33);lcd_wr_data(0x33);lcd_wr_regno(0xB7);lcd_wr_data(0x35);lcd_wr_regno(0xBB); /* vcom */lcd_wr_data(0x32);  /* 30 */lcd_wr_regno(0xC0);lcd_wr_data(0x0C);lcd_wr_regno(0xC2);lcd_wr_data(0x01);lcd_wr_regno(0xC3); /* vrh */lcd_wr_data(0x10);  /* 17 0D */lcd_wr_regno(0xC4); /* vdv */lcd_wr_data(0x20);  /* 20 */lcd_wr_regno(0xC6);lcd_wr_data(0x0f);lcd_wr_regno(0xD0);lcd_wr_data(0xA4);lcd_wr_data(0xA1);lcd_wr_regno(0xE0); /* Set Gamma  */lcd_wr_data(0xd0);lcd_wr_data(0x00);lcd_wr_data(0x02);lcd_wr_data(0x07);lcd_wr_data(0x0a);lcd_wr_data(0x28);lcd_wr_data(0x32);lcd_wr_data(0X44);lcd_wr_data(0x42);lcd_wr_data(0x06);lcd_wr_data(0x0e);lcd_wr_data(0x12);lcd_wr_data(0x14);lcd_wr_data(0x17);lcd_wr_regno(0XE1);  /* Set Gamma */lcd_wr_data(0xd0);lcd_wr_data(0x00);lcd_wr_data(0x02);lcd_wr_data(0x07);lcd_wr_data(0x0a);lcd_wr_data(0x28);lcd_wr_data(0x31);lcd_wr_data(0x54);lcd_wr_data(0x47);lcd_wr_data(0x0e);lcd_wr_data(0x1c);lcd_wr_data(0x17);lcd_wr_data(0x1b);lcd_wr_data(0x1e);lcd_wr_regno(0x2A);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0xef);lcd_wr_regno(0x2B);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0x3f);lcd_wr_regno(0x29); /* display on */
}/*** @brief       ILI9341寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_ili9341_reginit(void)
{lcd_wr_regno(0xCF);lcd_wr_data(0x00);lcd_wr_data(0xC1);lcd_wr_data(0X30);lcd_wr_regno(0xED);lcd_wr_data(0x64);lcd_wr_data(0x03);lcd_wr_data(0X12);lcd_wr_data(0X81);lcd_wr_regno(0xE8);lcd_wr_data(0x85);lcd_wr_data(0x10);lcd_wr_data(0x7A);lcd_wr_regno(0xCB);lcd_wr_data(0x39);lcd_wr_data(0x2C);lcd_wr_data(0x00);lcd_wr_data(0x34);lcd_wr_data(0x02);lcd_wr_regno(0xF7);lcd_wr_data(0x20);lcd_wr_regno(0xEA);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xC0); /* Power control */lcd_wr_data(0x1B);  /* VRH[5:0] */lcd_wr_regno(0xC1); /* Power control */lcd_wr_data(0x01);  /* SAP[2:0];BT[3:0] */lcd_wr_regno(0xC5); /* VCM control */lcd_wr_data(0x30);  /* 3F */lcd_wr_data(0x30);  /* 3C */lcd_wr_regno(0xC7); /* VCM control2 */lcd_wr_data(0XB7);lcd_wr_regno(0x36); /*  Memory Access Control */lcd_wr_data(0x48);lcd_wr_regno(0x3A);lcd_wr_data(0x55);lcd_wr_regno(0xB1);lcd_wr_data(0x00);lcd_wr_data(0x1A);lcd_wr_regno(0xB6); /*  Display Function Control */lcd_wr_data(0x0A);lcd_wr_data(0xA2);lcd_wr_regno(0xF2); /*  3Gamma Function Disable */lcd_wr_data(0x00);lcd_wr_regno(0x26); /* Gamma curve selected */lcd_wr_data(0x01);lcd_wr_regno(0xE0); /* Set Gamma */lcd_wr_data(0x0F);lcd_wr_data(0x2A);lcd_wr_data(0x28);lcd_wr_data(0x08);lcd_wr_data(0x0E);lcd_wr_data(0x08);lcd_wr_data(0x54);lcd_wr_data(0XA9);lcd_wr_data(0x43);lcd_wr_data(0x0A);lcd_wr_data(0x0F);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0XE1);    /* Set Gamma */lcd_wr_data(0x00);lcd_wr_data(0x15);lcd_wr_data(0x17);lcd_wr_data(0x07);lcd_wr_data(0x11);lcd_wr_data(0x06);lcd_wr_data(0x2B);lcd_wr_data(0x56);lcd_wr_data(0x3C);lcd_wr_data(0x05);lcd_wr_data(0x10);lcd_wr_data(0x0F);lcd_wr_data(0x3F);lcd_wr_data(0x3F);lcd_wr_data(0x0F);lcd_wr_regno(0x2B);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0x3f);lcd_wr_regno(0x2A);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0xef);lcd_wr_regno(0x11); /* Exit Sleep */delay_ms(120);lcd_wr_regno(0x29); /* display on */}/*** @brief       NT35310寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_nt35310_reginit(void)
{lcd_wr_regno(0xED);lcd_wr_data(0x01);lcd_wr_data(0xFE);lcd_wr_regno(0xEE);lcd_wr_data(0xDE);lcd_wr_data(0x21);lcd_wr_regno(0xF1);lcd_wr_data(0x01);lcd_wr_regno(0xDF);lcd_wr_data(0x10);/* VCOMvoltage */lcd_wr_regno(0xC4);lcd_wr_data(0x8F);  /* 5f */lcd_wr_regno(0xC6);lcd_wr_data(0x00);lcd_wr_data(0xE2);lcd_wr_data(0xE2);lcd_wr_data(0xE2);lcd_wr_regno(0xBF);lcd_wr_data(0xAA);lcd_wr_regno(0xB0);lcd_wr_data(0x0D);lcd_wr_data(0x00);lcd_wr_data(0x0D);lcd_wr_data(0x00);lcd_wr_data(0x11);lcd_wr_data(0x00);lcd_wr_data(0x19);lcd_wr_data(0x00);lcd_wr_data(0x21);lcd_wr_data(0x00);lcd_wr_data(0x2D);lcd_wr_data(0x00);lcd_wr_data(0x3D);lcd_wr_data(0x00);lcd_wr_data(0x5D);lcd_wr_data(0x00);lcd_wr_data(0x5D);lcd_wr_data(0x00);lcd_wr_regno(0xB1);lcd_wr_data(0x80);lcd_wr_data(0x00);lcd_wr_data(0x8B);lcd_wr_data(0x00);lcd_wr_data(0x96);lcd_wr_data(0x00);lcd_wr_regno(0xB2);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x02);lcd_wr_data(0x00);lcd_wr_data(0x03);lcd_wr_data(0x00);lcd_wr_regno(0xB3);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xB4);lcd_wr_data(0x8B);lcd_wr_data(0x00);lcd_wr_data(0x96);lcd_wr_data(0x00);lcd_wr_data(0xA1);lcd_wr_data(0x00);lcd_wr_regno(0xB5);lcd_wr_data(0x02);lcd_wr_data(0x00);lcd_wr_data(0x03);lcd_wr_data(0x00);lcd_wr_data(0x04);lcd_wr_data(0x00);lcd_wr_regno(0xB6);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xB7);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x3F);lcd_wr_data(0x00);lcd_wr_data(0x5E);lcd_wr_data(0x00);lcd_wr_data(0x64);lcd_wr_data(0x00);lcd_wr_data(0x8C);lcd_wr_data(0x00);lcd_wr_data(0xAC);lcd_wr_data(0x00);lcd_wr_data(0xDC);lcd_wr_data(0x00);lcd_wr_data(0x70);lcd_wr_data(0x00);lcd_wr_data(0x90);lcd_wr_data(0x00);lcd_wr_data(0xEB);lcd_wr_data(0x00);lcd_wr_data(0xDC);lcd_wr_data(0x00);lcd_wr_regno(0xB8);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xBA);lcd_wr_data(0x24);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xC1);lcd_wr_data(0x20);lcd_wr_data(0x00);lcd_wr_data(0x54);lcd_wr_data(0x00);lcd_wr_data(0xFF);lcd_wr_data(0x00);lcd_wr_regno(0xC2);lcd_wr_data(0x0A);lcd_wr_data(0x00);lcd_wr_data(0x04);lcd_wr_data(0x00);lcd_wr_regno(0xC3);lcd_wr_data(0x3C);lcd_wr_data(0x00);lcd_wr_data(0x3A);lcd_wr_data(0x00);lcd_wr_data(0x39);lcd_wr_data(0x00);lcd_wr_data(0x37);lcd_wr_data(0x00);lcd_wr_data(0x3C);lcd_wr_data(0x00);lcd_wr_data(0x36);lcd_wr_data(0x00);lcd_wr_data(0x32);lcd_wr_data(0x00);lcd_wr_data(0x2F);lcd_wr_data(0x00);lcd_wr_data(0x2C);lcd_wr_data(0x00);lcd_wr_data(0x29);lcd_wr_data(0x00);lcd_wr_data(0x26);lcd_wr_data(0x00);lcd_wr_data(0x24);lcd_wr_data(0x00);lcd_wr_data(0x24);lcd_wr_data(0x00);lcd_wr_data(0x23);lcd_wr_data(0x00);lcd_wr_data(0x3C);lcd_wr_data(0x00);lcd_wr_data(0x36);lcd_wr_data(0x00);lcd_wr_data(0x32);lcd_wr_data(0x00);lcd_wr_data(0x2F);lcd_wr_data(0x00);lcd_wr_data(0x2C);lcd_wr_data(0x00);lcd_wr_data(0x29);lcd_wr_data(0x00);lcd_wr_data(0x26);lcd_wr_data(0x00);lcd_wr_data(0x24);lcd_wr_data(0x00);lcd_wr_data(0x24);lcd_wr_data(0x00);lcd_wr_data(0x23);lcd_wr_data(0x00);lcd_wr_regno(0xC4);lcd_wr_data(0x62);lcd_wr_data(0x00);lcd_wr_data(0x05);lcd_wr_data(0x00);lcd_wr_data(0x84);lcd_wr_data(0x00);lcd_wr_data(0xF0);lcd_wr_data(0x00);lcd_wr_data(0x18);lcd_wr_data(0x00);lcd_wr_data(0xA4);lcd_wr_data(0x00);lcd_wr_data(0x18);lcd_wr_data(0x00);lcd_wr_data(0x50);lcd_wr_data(0x00);lcd_wr_data(0x0C);lcd_wr_data(0x00);lcd_wr_data(0x17);lcd_wr_data(0x00);lcd_wr_data(0x95);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_data(0xE6);lcd_wr_data(0x00);lcd_wr_regno(0xC5);lcd_wr_data(0x32);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x65);lcd_wr_data(0x00);lcd_wr_data(0x76);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_regno(0xC6);lcd_wr_data(0x20);lcd_wr_data(0x00);lcd_wr_data(0x17);lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0x00);lcd_wr_regno(0xC7);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xC8);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xC9);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xE0);lcd_wr_data(0x16);lcd_wr_data(0x00);lcd_wr_data(0x1C);lcd_wr_data(0x00);lcd_wr_data(0x21);lcd_wr_data(0x00);lcd_wr_data(0x36);lcd_wr_data(0x00);lcd_wr_data(0x46);lcd_wr_data(0x00);lcd_wr_data(0x52);lcd_wr_data(0x00);lcd_wr_data(0x64);lcd_wr_data(0x00);lcd_wr_data(0x7A);lcd_wr_data(0x00);lcd_wr_data(0x8B);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0xA8);lcd_wr_data(0x00);lcd_wr_data(0xB9);lcd_wr_data(0x00);lcd_wr_data(0xC4);lcd_wr_data(0x00);lcd_wr_data(0xCA);lcd_wr_data(0x00);lcd_wr_data(0xD2);lcd_wr_data(0x00);lcd_wr_data(0xD9);lcd_wr_data(0x00);lcd_wr_data(0xE0);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE1);lcd_wr_data(0x16);lcd_wr_data(0x00);lcd_wr_data(0x1C);lcd_wr_data(0x00);lcd_wr_data(0x22);lcd_wr_data(0x00);lcd_wr_data(0x36);lcd_wr_data(0x00);lcd_wr_data(0x45);lcd_wr_data(0x00);lcd_wr_data(0x52);lcd_wr_data(0x00);lcd_wr_data(0x64);lcd_wr_data(0x00);lcd_wr_data(0x7A);lcd_wr_data(0x00);lcd_wr_data(0x8B);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0xA8);lcd_wr_data(0x00);lcd_wr_data(0xB9);lcd_wr_data(0x00);lcd_wr_data(0xC4);lcd_wr_data(0x00);lcd_wr_data(0xCA);lcd_wr_data(0x00);lcd_wr_data(0xD2);lcd_wr_data(0x00);lcd_wr_data(0xD8);lcd_wr_data(0x00);lcd_wr_data(0xE0);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE2);lcd_wr_data(0x05);lcd_wr_data(0x00);lcd_wr_data(0x0B);lcd_wr_data(0x00);lcd_wr_data(0x1B);lcd_wr_data(0x00);lcd_wr_data(0x34);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x4F);lcd_wr_data(0x00);lcd_wr_data(0x61);lcd_wr_data(0x00);lcd_wr_data(0x79);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_data(0x97);lcd_wr_data(0x00);lcd_wr_data(0xA6);lcd_wr_data(0x00);lcd_wr_data(0xB7);lcd_wr_data(0x00);lcd_wr_data(0xC2);lcd_wr_data(0x00);lcd_wr_data(0xC7);lcd_wr_data(0x00);lcd_wr_data(0xD1);lcd_wr_data(0x00);lcd_wr_data(0xD6);lcd_wr_data(0x00);lcd_wr_data(0xDD);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE3);lcd_wr_data(0x05);lcd_wr_data(0x00);lcd_wr_data(0xA);lcd_wr_data(0x00);lcd_wr_data(0x1C);lcd_wr_data(0x00);lcd_wr_data(0x33);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x50);lcd_wr_data(0x00);lcd_wr_data(0x62);lcd_wr_data(0x00);lcd_wr_data(0x78);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_data(0x97);lcd_wr_data(0x00);lcd_wr_data(0xA6);lcd_wr_data(0x00);lcd_wr_data(0xB7);lcd_wr_data(0x00);lcd_wr_data(0xC2);lcd_wr_data(0x00);lcd_wr_data(0xC7);lcd_wr_data(0x00);lcd_wr_data(0xD1);lcd_wr_data(0x00);lcd_wr_data(0xD5);lcd_wr_data(0x00);lcd_wr_data(0xDD);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE4);lcd_wr_data(0x01);lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0x00);lcd_wr_data(0x02);lcd_wr_data(0x00);lcd_wr_data(0x2A);lcd_wr_data(0x00);lcd_wr_data(0x3C);lcd_wr_data(0x00);lcd_wr_data(0x4B);lcd_wr_data(0x00);lcd_wr_data(0x5D);lcd_wr_data(0x00);lcd_wr_data(0x74);lcd_wr_data(0x00);lcd_wr_data(0x84);lcd_wr_data(0x00);lcd_wr_data(0x93);lcd_wr_data(0x00);lcd_wr_data(0xA2);lcd_wr_data(0x00);lcd_wr_data(0xB3);lcd_wr_data(0x00);lcd_wr_data(0xBE);lcd_wr_data(0x00);lcd_wr_data(0xC4);lcd_wr_data(0x00);lcd_wr_data(0xCD);lcd_wr_data(0x00);lcd_wr_data(0xD3);lcd_wr_data(0x00);lcd_wr_data(0xDD);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE5);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x02);lcd_wr_data(0x00);lcd_wr_data(0x29);lcd_wr_data(0x00);lcd_wr_data(0x3C);lcd_wr_data(0x00);lcd_wr_data(0x4B);lcd_wr_data(0x00);lcd_wr_data(0x5D);lcd_wr_data(0x00);lcd_wr_data(0x74);lcd_wr_data(0x00);lcd_wr_data(0x84);lcd_wr_data(0x00);lcd_wr_data(0x93);lcd_wr_data(0x00);lcd_wr_data(0xA2);lcd_wr_data(0x00);lcd_wr_data(0xB3);lcd_wr_data(0x00);lcd_wr_data(0xBE);lcd_wr_data(0x00);lcd_wr_data(0xC4);lcd_wr_data(0x00);lcd_wr_data(0xCD);lcd_wr_data(0x00);lcd_wr_data(0xD3);lcd_wr_data(0x00);lcd_wr_data(0xDC);lcd_wr_data(0x00);lcd_wr_data(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xE6);lcd_wr_data(0x11);lcd_wr_data(0x00);lcd_wr_data(0x34);lcd_wr_data(0x00);lcd_wr_data(0x56);lcd_wr_data(0x00);lcd_wr_data(0x76);lcd_wr_data(0x00);lcd_wr_data(0x77);lcd_wr_data(0x00);lcd_wr_data(0x66);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0xBB);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0x66);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_data(0x45);lcd_wr_data(0x00);lcd_wr_data(0x43);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_regno(0xE7);lcd_wr_data(0x32);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_data(0x76);lcd_wr_data(0x00);lcd_wr_data(0x66);lcd_wr_data(0x00);lcd_wr_data(0x67);lcd_wr_data(0x00);lcd_wr_data(0x67);lcd_wr_data(0x00);lcd_wr_data(0x87);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0xBB);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0x77);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x56);lcd_wr_data(0x00);lcd_wr_data(0x23);lcd_wr_data(0x00);lcd_wr_data(0x33);lcd_wr_data(0x00);lcd_wr_data(0x45);lcd_wr_data(0x00);lcd_wr_regno(0xE8);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0x87);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_data(0x77);lcd_wr_data(0x00);lcd_wr_data(0x66);lcd_wr_data(0x00);lcd_wr_data(0x88);lcd_wr_data(0x00);lcd_wr_data(0xAA);lcd_wr_data(0x00);lcd_wr_data(0xBB);lcd_wr_data(0x00);lcd_wr_data(0x99);lcd_wr_data(0x00);lcd_wr_data(0x66);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x44);lcd_wr_data(0x00);lcd_wr_data(0x55);lcd_wr_data(0x00);lcd_wr_regno(0xE9);lcd_wr_data(0xAA);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0x00);lcd_wr_data(0xAA);lcd_wr_regno(0xCF);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xF0);lcd_wr_data(0x00);lcd_wr_data(0x50);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xF3);lcd_wr_data(0x00);lcd_wr_regno(0xF9);lcd_wr_data(0x06);lcd_wr_data(0x10);lcd_wr_data(0x29);lcd_wr_data(0x00);lcd_wr_regno(0x3A);lcd_wr_data(0x55);  /* 66 */lcd_wr_regno(0x11);delay_ms(100);lcd_wr_regno(0x29);lcd_wr_regno(0x35);lcd_wr_data(0x00);lcd_wr_regno(0x51);lcd_wr_data(0xFF);lcd_wr_regno(0x53);lcd_wr_data(0x2C);lcd_wr_regno(0x55);lcd_wr_data(0x82);lcd_wr_regno(0x2c);
}/*** @brief       ST7796寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_st7796_reginit(void)
{lcd_wr_regno(0x11);delay_ms(120);lcd_wr_regno(0x36); /* Memory Data Access Control MY,MX~~ */lcd_wr_data(0x48);lcd_wr_regno(0x3A);lcd_wr_data(0x55);lcd_wr_regno(0xF0);lcd_wr_data(0xC3);lcd_wr_regno(0xF0);lcd_wr_data(0x96);lcd_wr_regno(0xB4);lcd_wr_data(0x01);lcd_wr_regno(0xB6); /* Display Function Control */lcd_wr_data(0x0A);lcd_wr_data(0xA2);lcd_wr_regno(0xB7);lcd_wr_data(0xC6);lcd_wr_regno(0xB9);lcd_wr_data(0x02);lcd_wr_data(0xE0);lcd_wr_regno(0xC0);lcd_wr_data(0x80);lcd_wr_data(0x16);lcd_wr_regno(0xC1);lcd_wr_data(0x19);lcd_wr_regno(0xC2);lcd_wr_data(0xA7);lcd_wr_regno(0xC5);lcd_wr_data(0x16);lcd_wr_regno(0xE8);lcd_wr_data(0x40);lcd_wr_data(0x8A);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x29);lcd_wr_data(0x19);lcd_wr_data(0xA5);lcd_wr_data(0x33);lcd_wr_regno(0xE0);lcd_wr_data(0xF0);lcd_wr_data(0x07);lcd_wr_data(0x0D);lcd_wr_data(0x04);lcd_wr_data(0x05);lcd_wr_data(0x14);lcd_wr_data(0x36);lcd_wr_data(0x54);lcd_wr_data(0x4C);lcd_wr_data(0x38);lcd_wr_data(0x13);lcd_wr_data(0x14);lcd_wr_data(0x2E);lcd_wr_data(0x34);lcd_wr_regno(0xE1);lcd_wr_data(0xF0);lcd_wr_data(0x10);lcd_wr_data(0x14);lcd_wr_data(0x0E);lcd_wr_data(0x0C);lcd_wr_data(0x08);lcd_wr_data(0x35);lcd_wr_data(0x44);lcd_wr_data(0x4C);lcd_wr_data(0x26);lcd_wr_data(0x10);lcd_wr_data(0x12);lcd_wr_data(0x2C);lcd_wr_data(0x32);lcd_wr_regno(0xF0);lcd_wr_data(0x3C);lcd_wr_regno(0xF0);lcd_wr_data(0x69);delay_ms(120);lcd_wr_regno(0x21);lcd_wr_regno(0x29);
}/*** @brief       NT35510寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_nt35510_reginit(void)
{lcd_write_reg(0xF000, 0x55);lcd_write_reg(0xF001, 0xAA);lcd_write_reg(0xF002, 0x52);lcd_write_reg(0xF003, 0x08);lcd_write_reg(0xF004, 0x01);/* AVDD Set AVDD 5.2V */lcd_write_reg(0xB000, 0x0D);lcd_write_reg(0xB001, 0x0D);lcd_write_reg(0xB002, 0x0D);/* AVDD ratio */lcd_write_reg(0xB600, 0x34);lcd_write_reg(0xB601, 0x34);lcd_write_reg(0xB602, 0x34);/* AVEE -5.2V */lcd_write_reg(0xB100, 0x0D);lcd_write_reg(0xB101, 0x0D);lcd_write_reg(0xB102, 0x0D);/* AVEE ratio */lcd_write_reg(0xB700, 0x34);lcd_write_reg(0xB701, 0x34);lcd_write_reg(0xB702, 0x34);/* VCL -2.5V */lcd_write_reg(0xB200, 0x00);lcd_write_reg(0xB201, 0x00);lcd_write_reg(0xB202, 0x00);/* VCL ratio */lcd_write_reg(0xB800, 0x24);lcd_write_reg(0xB801, 0x24);lcd_write_reg(0xB802, 0x24);/* VGH 15V (Free pump) */lcd_write_reg(0xBF00, 0x01);lcd_write_reg(0xB300, 0x0F);lcd_write_reg(0xB301, 0x0F);lcd_write_reg(0xB302, 0x0F);/* VGH ratio */lcd_write_reg(0xB900, 0x34);lcd_write_reg(0xB901, 0x34);lcd_write_reg(0xB902, 0x34);/* VGL_REG -10V */lcd_write_reg(0xB500, 0x08);lcd_write_reg(0xB501, 0x08);lcd_write_reg(0xB502, 0x08);lcd_write_reg(0xC200, 0x03);/* VGLX ratio */lcd_write_reg(0xBA00, 0x24);lcd_write_reg(0xBA01, 0x24);lcd_write_reg(0xBA02, 0x24);/* VGMP/VGSP 4.5V/0V */lcd_write_reg(0xBC00, 0x00);lcd_write_reg(0xBC01, 0x78);lcd_write_reg(0xBC02, 0x00);/* VGMN/VGSN -4.5V/0V */lcd_write_reg(0xBD00, 0x00);lcd_write_reg(0xBD01, 0x78);lcd_write_reg(0xBD02, 0x00);/* VCOM */lcd_write_reg(0xBE00, 0x00);lcd_write_reg(0xBE01, 0x64);/* Gamma Setting */lcd_write_reg(0xD100, 0x00);lcd_write_reg(0xD101, 0x33);lcd_write_reg(0xD102, 0x00);lcd_write_reg(0xD103, 0x34);lcd_write_reg(0xD104, 0x00);lcd_write_reg(0xD105, 0x3A);lcd_write_reg(0xD106, 0x00);lcd_write_reg(0xD107, 0x4A);lcd_write_reg(0xD108, 0x00);lcd_write_reg(0xD109, 0x5C);lcd_write_reg(0xD10A, 0x00);lcd_write_reg(0xD10B, 0x81);lcd_write_reg(0xD10C, 0x00);lcd_write_reg(0xD10D, 0xA6);lcd_write_reg(0xD10E, 0x00);lcd_write_reg(0xD10F, 0xE5);lcd_write_reg(0xD110, 0x01);lcd_write_reg(0xD111, 0x13);lcd_write_reg(0xD112, 0x01);lcd_write_reg(0xD113, 0x54);lcd_write_reg(0xD114, 0x01);lcd_write_reg(0xD115, 0x82);lcd_write_reg(0xD116, 0x01);lcd_write_reg(0xD117, 0xCA);lcd_write_reg(0xD118, 0x02);lcd_write_reg(0xD119, 0x00);lcd_write_reg(0xD11A, 0x02);lcd_write_reg(0xD11B, 0x01);lcd_write_reg(0xD11C, 0x02);lcd_write_reg(0xD11D, 0x34);lcd_write_reg(0xD11E, 0x02);lcd_write_reg(0xD11F, 0x67);lcd_write_reg(0xD120, 0x02);lcd_write_reg(0xD121, 0x84);lcd_write_reg(0xD122, 0x02);lcd_write_reg(0xD123, 0xA4);lcd_write_reg(0xD124, 0x02);lcd_write_reg(0xD125, 0xB7);lcd_write_reg(0xD126, 0x02);lcd_write_reg(0xD127, 0xCF);lcd_write_reg(0xD128, 0x02);lcd_write_reg(0xD129, 0xDE);lcd_write_reg(0xD12A, 0x02);lcd_write_reg(0xD12B, 0xF2);lcd_write_reg(0xD12C, 0x02);lcd_write_reg(0xD12D, 0xFE);lcd_write_reg(0xD12E, 0x03);lcd_write_reg(0xD12F, 0x10);lcd_write_reg(0xD130, 0x03);lcd_write_reg(0xD131, 0x33);lcd_write_reg(0xD132, 0x03);lcd_write_reg(0xD133, 0x6D);lcd_write_reg(0xD200, 0x00);lcd_write_reg(0xD201, 0x33);lcd_write_reg(0xD202, 0x00);lcd_write_reg(0xD203, 0x34);lcd_write_reg(0xD204, 0x00);lcd_write_reg(0xD205, 0x3A);lcd_write_reg(0xD206, 0x00);lcd_write_reg(0xD207, 0x4A);lcd_write_reg(0xD208, 0x00);lcd_write_reg(0xD209, 0x5C);lcd_write_reg(0xD20A, 0x00);lcd_write_reg(0xD20B, 0x81);lcd_write_reg(0xD20C, 0x00);lcd_write_reg(0xD20D, 0xA6);lcd_write_reg(0xD20E, 0x00);lcd_write_reg(0xD20F, 0xE5);lcd_write_reg(0xD210, 0x01);lcd_write_reg(0xD211, 0x13);lcd_write_reg(0xD212, 0x01);lcd_write_reg(0xD213, 0x54);lcd_write_reg(0xD214, 0x01);lcd_write_reg(0xD215, 0x82);lcd_write_reg(0xD216, 0x01);lcd_write_reg(0xD217, 0xCA);lcd_write_reg(0xD218, 0x02);lcd_write_reg(0xD219, 0x00);lcd_write_reg(0xD21A, 0x02);lcd_write_reg(0xD21B, 0x01);lcd_write_reg(0xD21C, 0x02);lcd_write_reg(0xD21D, 0x34);lcd_write_reg(0xD21E, 0x02);lcd_write_reg(0xD21F, 0x67);lcd_write_reg(0xD220, 0x02);lcd_write_reg(0xD221, 0x84);lcd_write_reg(0xD222, 0x02);lcd_write_reg(0xD223, 0xA4);lcd_write_reg(0xD224, 0x02);lcd_write_reg(0xD225, 0xB7);lcd_write_reg(0xD226, 0x02);lcd_write_reg(0xD227, 0xCF);lcd_write_reg(0xD228, 0x02);lcd_write_reg(0xD229, 0xDE);lcd_write_reg(0xD22A, 0x02);lcd_write_reg(0xD22B, 0xF2);lcd_write_reg(0xD22C, 0x02);lcd_write_reg(0xD22D, 0xFE);lcd_write_reg(0xD22E, 0x03);lcd_write_reg(0xD22F, 0x10);lcd_write_reg(0xD230, 0x03);lcd_write_reg(0xD231, 0x33);lcd_write_reg(0xD232, 0x03);lcd_write_reg(0xD233, 0x6D);lcd_write_reg(0xD300, 0x00);lcd_write_reg(0xD301, 0x33);lcd_write_reg(0xD302, 0x00);lcd_write_reg(0xD303, 0x34);lcd_write_reg(0xD304, 0x00);lcd_write_reg(0xD305, 0x3A);lcd_write_reg(0xD306, 0x00);lcd_write_reg(0xD307, 0x4A);lcd_write_reg(0xD308, 0x00);lcd_write_reg(0xD309, 0x5C);lcd_write_reg(0xD30A, 0x00);lcd_write_reg(0xD30B, 0x81);lcd_write_reg(0xD30C, 0x00);lcd_write_reg(0xD30D, 0xA6);lcd_write_reg(0xD30E, 0x00);lcd_write_reg(0xD30F, 0xE5);lcd_write_reg(0xD310, 0x01);lcd_write_reg(0xD311, 0x13);lcd_write_reg(0xD312, 0x01);lcd_write_reg(0xD313, 0x54);lcd_write_reg(0xD314, 0x01);lcd_write_reg(0xD315, 0x82);lcd_write_reg(0xD316, 0x01);lcd_write_reg(0xD317, 0xCA);lcd_write_reg(0xD318, 0x02);lcd_write_reg(0xD319, 0x00);lcd_write_reg(0xD31A, 0x02);lcd_write_reg(0xD31B, 0x01);lcd_write_reg(0xD31C, 0x02);lcd_write_reg(0xD31D, 0x34);lcd_write_reg(0xD31E, 0x02);lcd_write_reg(0xD31F, 0x67);lcd_write_reg(0xD320, 0x02);lcd_write_reg(0xD321, 0x84);lcd_write_reg(0xD322, 0x02);lcd_write_reg(0xD323, 0xA4);lcd_write_reg(0xD324, 0x02);lcd_write_reg(0xD325, 0xB7);lcd_write_reg(0xD326, 0x02);lcd_write_reg(0xD327, 0xCF);lcd_write_reg(0xD328, 0x02);lcd_write_reg(0xD329, 0xDE);lcd_write_reg(0xD32A, 0x02);lcd_write_reg(0xD32B, 0xF2);lcd_write_reg(0xD32C, 0x02);lcd_write_reg(0xD32D, 0xFE);lcd_write_reg(0xD32E, 0x03);lcd_write_reg(0xD32F, 0x10);lcd_write_reg(0xD330, 0x03);lcd_write_reg(0xD331, 0x33);lcd_write_reg(0xD332, 0x03);lcd_write_reg(0xD333, 0x6D);lcd_write_reg(0xD400, 0x00);lcd_write_reg(0xD401, 0x33);lcd_write_reg(0xD402, 0x00);lcd_write_reg(0xD403, 0x34);lcd_write_reg(0xD404, 0x00);lcd_write_reg(0xD405, 0x3A);lcd_write_reg(0xD406, 0x00);lcd_write_reg(0xD407, 0x4A);lcd_write_reg(0xD408, 0x00);lcd_write_reg(0xD409, 0x5C);lcd_write_reg(0xD40A, 0x00);lcd_write_reg(0xD40B, 0x81);lcd_write_reg(0xD40C, 0x00);lcd_write_reg(0xD40D, 0xA6);lcd_write_reg(0xD40E, 0x00);lcd_write_reg(0xD40F, 0xE5);lcd_write_reg(0xD410, 0x01);lcd_write_reg(0xD411, 0x13);lcd_write_reg(0xD412, 0x01);lcd_write_reg(0xD413, 0x54);lcd_write_reg(0xD414, 0x01);lcd_write_reg(0xD415, 0x82);lcd_write_reg(0xD416, 0x01);lcd_write_reg(0xD417, 0xCA);lcd_write_reg(0xD418, 0x02);lcd_write_reg(0xD419, 0x00);lcd_write_reg(0xD41A, 0x02);lcd_write_reg(0xD41B, 0x01);lcd_write_reg(0xD41C, 0x02);lcd_write_reg(0xD41D, 0x34);lcd_write_reg(0xD41E, 0x02);lcd_write_reg(0xD41F, 0x67);lcd_write_reg(0xD420, 0x02);lcd_write_reg(0xD421, 0x84);lcd_write_reg(0xD422, 0x02);lcd_write_reg(0xD423, 0xA4);lcd_write_reg(0xD424, 0x02);lcd_write_reg(0xD425, 0xB7);lcd_write_reg(0xD426, 0x02);lcd_write_reg(0xD427, 0xCF);lcd_write_reg(0xD428, 0x02);lcd_write_reg(0xD429, 0xDE);lcd_write_reg(0xD42A, 0x02);lcd_write_reg(0xD42B, 0xF2);lcd_write_reg(0xD42C, 0x02);lcd_write_reg(0xD42D, 0xFE);lcd_write_reg(0xD42E, 0x03);lcd_write_reg(0xD42F, 0x10);lcd_write_reg(0xD430, 0x03);lcd_write_reg(0xD431, 0x33);lcd_write_reg(0xD432, 0x03);lcd_write_reg(0xD433, 0x6D);lcd_write_reg(0xD500, 0x00);lcd_write_reg(0xD501, 0x33);lcd_write_reg(0xD502, 0x00);lcd_write_reg(0xD503, 0x34);lcd_write_reg(0xD504, 0x00);lcd_write_reg(0xD505, 0x3A);lcd_write_reg(0xD506, 0x00);lcd_write_reg(0xD507, 0x4A);lcd_write_reg(0xD508, 0x00);lcd_write_reg(0xD509, 0x5C);lcd_write_reg(0xD50A, 0x00);lcd_write_reg(0xD50B, 0x81);lcd_write_reg(0xD50C, 0x00);lcd_write_reg(0xD50D, 0xA6);lcd_write_reg(0xD50E, 0x00);lcd_write_reg(0xD50F, 0xE5);lcd_write_reg(0xD510, 0x01);lcd_write_reg(0xD511, 0x13);lcd_write_reg(0xD512, 0x01);lcd_write_reg(0xD513, 0x54);lcd_write_reg(0xD514, 0x01);lcd_write_reg(0xD515, 0x82);lcd_write_reg(0xD516, 0x01);lcd_write_reg(0xD517, 0xCA);lcd_write_reg(0xD518, 0x02);lcd_write_reg(0xD519, 0x00);lcd_write_reg(0xD51A, 0x02);lcd_write_reg(0xD51B, 0x01);lcd_write_reg(0xD51C, 0x02);lcd_write_reg(0xD51D, 0x34);lcd_write_reg(0xD51E, 0x02);lcd_write_reg(0xD51F, 0x67);lcd_write_reg(0xD520, 0x02);lcd_write_reg(0xD521, 0x84);lcd_write_reg(0xD522, 0x02);lcd_write_reg(0xD523, 0xA4);lcd_write_reg(0xD524, 0x02);lcd_write_reg(0xD525, 0xB7);lcd_write_reg(0xD526, 0x02);lcd_write_reg(0xD527, 0xCF);lcd_write_reg(0xD528, 0x02);lcd_write_reg(0xD529, 0xDE);lcd_write_reg(0xD52A, 0x02);lcd_write_reg(0xD52B, 0xF2);lcd_write_reg(0xD52C, 0x02);lcd_write_reg(0xD52D, 0xFE);lcd_write_reg(0xD52E, 0x03);lcd_write_reg(0xD52F, 0x10);lcd_write_reg(0xD530, 0x03);lcd_write_reg(0xD531, 0x33);lcd_write_reg(0xD532, 0x03);lcd_write_reg(0xD533, 0x6D);lcd_write_reg(0xD600, 0x00);lcd_write_reg(0xD601, 0x33);lcd_write_reg(0xD602, 0x00);lcd_write_reg(0xD603, 0x34);lcd_write_reg(0xD604, 0x00);lcd_write_reg(0xD605, 0x3A);lcd_write_reg(0xD606, 0x00);lcd_write_reg(0xD607, 0x4A);lcd_write_reg(0xD608, 0x00);lcd_write_reg(0xD609, 0x5C);lcd_write_reg(0xD60A, 0x00);lcd_write_reg(0xD60B, 0x81);lcd_write_reg(0xD60C, 0x00);lcd_write_reg(0xD60D, 0xA6);lcd_write_reg(0xD60E, 0x00);lcd_write_reg(0xD60F, 0xE5);lcd_write_reg(0xD610, 0x01);lcd_write_reg(0xD611, 0x13);lcd_write_reg(0xD612, 0x01);lcd_write_reg(0xD613, 0x54);lcd_write_reg(0xD614, 0x01);lcd_write_reg(0xD615, 0x82);lcd_write_reg(0xD616, 0x01);lcd_write_reg(0xD617, 0xCA);lcd_write_reg(0xD618, 0x02);lcd_write_reg(0xD619, 0x00);lcd_write_reg(0xD61A, 0x02);lcd_write_reg(0xD61B, 0x01);lcd_write_reg(0xD61C, 0x02);lcd_write_reg(0xD61D, 0x34);lcd_write_reg(0xD61E, 0x02);lcd_write_reg(0xD61F, 0x67);lcd_write_reg(0xD620, 0x02);lcd_write_reg(0xD621, 0x84);lcd_write_reg(0xD622, 0x02);lcd_write_reg(0xD623, 0xA4);lcd_write_reg(0xD624, 0x02);lcd_write_reg(0xD625, 0xB7);lcd_write_reg(0xD626, 0x02);lcd_write_reg(0xD627, 0xCF);lcd_write_reg(0xD628, 0x02);lcd_write_reg(0xD629, 0xDE);lcd_write_reg(0xD62A, 0x02);lcd_write_reg(0xD62B, 0xF2);lcd_write_reg(0xD62C, 0x02);lcd_write_reg(0xD62D, 0xFE);lcd_write_reg(0xD62E, 0x03);lcd_write_reg(0xD62F, 0x10);lcd_write_reg(0xD630, 0x03);lcd_write_reg(0xD631, 0x33);lcd_write_reg(0xD632, 0x03);lcd_write_reg(0xD633, 0x6D);/* LV2 Page 0 enable */lcd_write_reg(0xF000, 0x55);lcd_write_reg(0xF001, 0xAA);lcd_write_reg(0xF002, 0x52);lcd_write_reg(0xF003, 0x08);lcd_write_reg(0xF004, 0x00);/* Display control */lcd_write_reg(0xB100, 0xCC);lcd_write_reg(0xB101, 0x00);/* Source hold time */lcd_write_reg(0xB600, 0x05);/* Gate EQ control */lcd_write_reg(0xB700, 0x70);lcd_write_reg(0xB701, 0x70);/* Source EQ control (Mode 2) */lcd_write_reg(0xB800, 0x01);lcd_write_reg(0xB801, 0x03);lcd_write_reg(0xB802, 0x03);lcd_write_reg(0xB803, 0x03);/* Inversion mode (2-dot) */lcd_write_reg(0xBC00, 0x02);lcd_write_reg(0xBC01, 0x00);lcd_write_reg(0xBC02, 0x00);/* Timing control 4H w/ 4-delay */lcd_write_reg(0xC900, 0xD0);lcd_write_reg(0xC901, 0x02);lcd_write_reg(0xC902, 0x50);lcd_write_reg(0xC903, 0x50);lcd_write_reg(0xC904, 0x50);lcd_write_reg(0x3500, 0x00);lcd_write_reg(0x3A00, 0x55); /* 16-bit/pixel */lcd_wr_regno(0x1100);delay_us(120);lcd_wr_regno(0x2900);
}/*** @brief       ILI9806寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_ili9806_reginit(void)
{lcd_wr_regno(0xFF); /* EXTC Command Set enable register */lcd_wr_data(0xFF);lcd_wr_data(0x98);lcd_wr_data(0x06);lcd_wr_regno(0xBC); /* GIP 1 */lcd_wr_data(0x01);lcd_wr_data(0x0F);lcd_wr_data(0x61);lcd_wr_data(0xFF);lcd_wr_data(0x01);lcd_wr_data(0x01);lcd_wr_data(0x0B);lcd_wr_data(0x10);lcd_wr_data(0x37);lcd_wr_data(0x63);lcd_wr_data(0xFF);lcd_wr_data(0xFF);lcd_wr_data(0x01);lcd_wr_data(0x01);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0xFF);lcd_wr_data(0x52);lcd_wr_data(0x01);lcd_wr_data(0x00);lcd_wr_data(0x40);lcd_wr_regno(0xBD); /* GIP 2 */lcd_wr_data(0x01);lcd_wr_data(0x23);lcd_wr_data(0x45);lcd_wr_data(0x67);lcd_wr_data(0x01);lcd_wr_data(0x23);lcd_wr_data(0x45);lcd_wr_data(0x67);lcd_wr_regno(0xBE); /* GIP 3 */lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0xAB);lcd_wr_data(0x60);lcd_wr_data(0x22);lcd_wr_data(0x22);lcd_wr_data(0x22);lcd_wr_data(0x22);lcd_wr_data(0x22);lcd_wr_regno(0xC7); /* VCOM Control */lcd_wr_data(0x36);lcd_wr_regno(0xED); /* EN_volt_reg VGMP / VGMN /VGSP / VGSN voltage to output */lcd_wr_data(0x7F);lcd_wr_data(0x0F);lcd_wr_regno(0XC0); /* Power Control 1 Setting AVDD / AVEE / VGH / VGL */lcd_wr_data(0x0F);lcd_wr_data(0x0B);lcd_wr_data(0x0A);  /* VGH 15V,VGLO-10V */lcd_wr_regno(0XFC); /* AVDD / AVEE generated by internal pumping. */lcd_wr_data(0x08);lcd_wr_regno(0XDF);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x20);lcd_wr_regno(0XF3); /* DVDD Voltage Setting */lcd_wr_data(0x74);lcd_wr_regno(0xB4); /* Inversion Type */lcd_wr_data(0x00);  /* 02 */lcd_wr_data(0x00);  /* 02 */lcd_wr_data(0x00);  /* 02 */lcd_wr_regno(0xF7); /* Resolution Control */lcd_wr_data(0x82);  /* 480*800 */lcd_wr_regno(0xB1); /* FRAME RATE Setting */lcd_wr_data(0x00);lcd_wr_data(0x13);lcd_wr_data(0x13);lcd_wr_regno(0XF2); /* CR_EQ_PC_SDT  #C0,06,40,28 */lcd_wr_data(0x80);lcd_wr_data(0x04);lcd_wr_data(0x40);lcd_wr_data(0x28);lcd_wr_regno(0XC1); /* Power Control 2  SD OP Bias_VRH1_VRH2_EXT_CPCK_SEL */lcd_wr_data(0x17);lcd_wr_data(0x88);  /* VGMP */lcd_wr_data(0x88);  /* VGMN */lcd_wr_data(0x20);lcd_wr_regno(0xE0); /* Positive Gamma Control */lcd_wr_data(0x00);  /* P1 */lcd_wr_data(0x0A);  /* P2 */lcd_wr_data(0x12);  /* P3 */lcd_wr_data(0x10);  /* P4 */lcd_wr_data(0x0E);  /* P5 */lcd_wr_data(0x20);  /* P6 */lcd_wr_data(0xCC);  /* P7 */lcd_wr_data(0x07);  /* P8 */lcd_wr_data(0x06);  /* P9 */lcd_wr_data(0x0B);  /* P10 */lcd_wr_data(0x0E);  /* P11 */lcd_wr_data(0x0F);  /* P12 */lcd_wr_data(0x0D);  /* P13 */lcd_wr_data(0x15);  /* P14 */lcd_wr_data(0x10);  /* P15 */lcd_wr_data(0x00);  /* P16 */lcd_wr_regno(0xE1); /* Negative Gamma Correction */lcd_wr_data(0x00);  /* P1 */lcd_wr_data(0x0B);  /* P2 */lcd_wr_data(0x13);  /* P3 */lcd_wr_data(0x0D);  /* P4 */lcd_wr_data(0x0E);  /* P5 */lcd_wr_data(0x1B);  /* P6 */lcd_wr_data(0x71);  /* P7 */lcd_wr_data(0x06);  /* P8 */lcd_wr_data(0x06);  /* P9 */lcd_wr_data(0x0A);  /* P10 */lcd_wr_data(0x0F);  /* P11 */lcd_wr_data(0x0E);  /* P12 */lcd_wr_data(0x0F);  /* P13 */lcd_wr_data(0x15);  /* P14 */lcd_wr_data(0x0C);  /* P15 */lcd_wr_data(0x00);  /* P16 */lcd_wr_regno(0x2a);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x01);lcd_wr_data(0xdf);lcd_wr_regno(0x2b);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x03);lcd_wr_data(0x1f);lcd_wr_regno(0x3A); /* Pixel Format */lcd_wr_data(0x55);lcd_wr_regno(0x36); /* Memory Access Control */lcd_wr_data(0x00);  /* 02-180 */lcd_wr_regno(0x11);delay_ms(120);lcd_wr_regno(0x29);delay_ms(20);lcd_wr_regno(0x2C);
}/*** @brief       SSD1963寄存器初始化代碼* @param       無* @retval      無*/
void lcd_ex_ssd1963_reginit(void)
{lcd_wr_regno(0xE2); /* Set PLL with OSC = 10MHz (hardware),	Multiplier N = 35, 250MHz < VCO < 800MHz = OSC*(N+1), VCO = 300MHz */lcd_wr_data(0x1D);  /* 參數1 */lcd_wr_data(0x02);  /* 參數2 Divider M = 2, PLL = 300/(M+1) = 100MHz */lcd_wr_data(0x04);  /* 參數3 Validate M and N values */delay_us(100);lcd_wr_regno(0xE0); /*  Start PLL command */lcd_wr_data(0x01);  /*  enable PLL */delay_ms(10);lcd_wr_regno(0xE0); /*  Start PLL command again */lcd_wr_data(0x03);  /*  now, use PLL output as system clock */delay_ms(12);lcd_wr_regno(0x01); /* 軟復位 */delay_ms(10);lcd_wr_regno(0xE6); /* 設置像素頻率,33Mhz */lcd_wr_data(0x2F);lcd_wr_data(0xFF);lcd_wr_data(0xFF);lcd_wr_regno(0xB0); /* 設置LCD模式 */lcd_wr_data(0x20);  /* 24位模式 */lcd_wr_data(0x00);  /* TFT 模式 */lcd_wr_data((SSD_HOR_RESOLUTION - 1) >> 8); /* 設置LCD水平像素 */lcd_wr_data(SSD_HOR_RESOLUTION - 1);lcd_wr_data((SSD_VER_RESOLUTION - 1) >> 8); /* 設置LCD垂直像素 */lcd_wr_data(SSD_VER_RESOLUTION - 1);lcd_wr_data(0x00);  /* RGB序列 */lcd_wr_regno(0xB4); /* Set horizontal period */lcd_wr_data((SSD_HT - 1) >> 8);lcd_wr_data(SSD_HT - 1);lcd_wr_data(SSD_HPS >> 8);lcd_wr_data(SSD_HPS);lcd_wr_data(SSD_HOR_PULSE_WIDTH - 1);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xB6); /* Set vertical perio */lcd_wr_data((SSD_VT - 1) >> 8);lcd_wr_data(SSD_VT - 1);lcd_wr_data(SSD_VPS >> 8);lcd_wr_data(SSD_VPS);lcd_wr_data(SSD_VER_FRONT_PORCH - 1);lcd_wr_data(0x00);lcd_wr_data(0x00);lcd_wr_regno(0xF0); /* 設置SSD1963與CPU接口為16bit */lcd_wr_data(0x03);  /* 16-bit(565 format) data for 16bpp */lcd_wr_regno(0x29); /* 開啟顯示 *//* 設置PWM輸出  背光通過占空比可調 */lcd_wr_regno(0xD0); /* 設置自動白平衡DBC */lcd_wr_data(0x00);  /* disable */lcd_wr_regno(0xBE); /* 配置PWM輸出 */lcd_wr_data(0x05);  /* 1設置PWM頻率 */lcd_wr_data(0xFE);  /* 2設置PWM占空比 */lcd_wr_data(0x01);  /* 3設置C */lcd_wr_data(0x00);  /* 4設置D */lcd_wr_data(0x00);  /* 5設置E */lcd_wr_data(0x00);  /* 6設置F */lcd_wr_regno(0xB8); /* 設置GPIO配置 */lcd_wr_data(0x03);  /* 2個IO口設置成輸出 */lcd_wr_data(0x01);  /* GPIO使用正常的IO功能 */lcd_wr_regno(0xBA);lcd_wr_data(0X01);  /* GPIO[1:0]=01,控制LCD方向 */
}

?好了,最后是主函數放在下面

#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "fsmc.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
//#include "led.h"
#include "../../BSP/LED/led.h"
#include "../../BSP/KEY/key.h"
#include "../../BSP/LCD/lcd.h"
#include "../../SYSTEM/delay/delay.h"
/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD *//* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 */
uint8_t x=0;//定義一個切屏函數變量
uint8_t lcd_id[12];/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit */delay_init(72);						   /* 初始化延時函數 *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_FSMC_Init();/* USER CODE BEGIN 2 */lcd_init();                                         /* 初始化LCD */g_point_color = RED;sprintf((char *)lcd_id, "LCD ID:%04X", lcddev.id);  /* 將LCD ID打印到lcd_id數組 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){switch (x)//切屏顏色函數{case 0:lcd_clear(WHITE);break;case 1:lcd_clear(BLACK);break;case 2:lcd_clear(BLUE);break;case 3:lcd_clear(RED);break;case 4:lcd_clear(MAGENTA);break;case 5:lcd_clear(GREEN);break;case 6:lcd_clear(CYAN);break;case 7:lcd_clear(YELLOW);break;case 8:lcd_clear(BRRED);break;case 9:lcd_clear(GRAY);break;case 10:lcd_clear(LGRAY);break;case 11:lcd_clear(BROWN);break;}lcd_show_string(10, 40, 240, 32, 32, "STM32", RED);lcd_show_string(10, 80, 240, 24, 24, "TFTLCD TEST", RED);lcd_show_string(10, 110, 240, 16, 16, "ATOM@ALIENTEK", RED);lcd_show_string(10, 130, 240, 16, 16, (char *)lcd_id, RED); /* 顯示LCD ID */x++;if (x == 12)x = 0;LED0_TOGGLE(); /*紅燈閃爍*/delay_ms(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief  This function is executed in case of error occurrence.* @retval None*/
void Error_Handler(void)
{/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */
}#ifdef  USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

main 函數功能主要是顯示一些固定的字符,字體大小包括 32*16、24*12、16*8 和 12*6
四種,同時顯示 LCD 驅動 IC 的型號,然后不停的切換背景顏色,每 1s 切換一次。而 LED0
也會不停的閃爍,指示程序已經在運行了。其中我們用到一個 sprintf 的函數,該函數用法同
printf,只是 sprintf 把 打 印 內 容 輸 出 到 指 定 的 內 存 區 間 上 , 最 終 在 死 循 環 中 通 過
lcd_show_strinig 函數進行屏幕顯示,sprintf 的詳細用法,請百度學習。
特別注意:
串口一記得要初始化,因為在 lcd_init 函數里面調用了 printf ,所以一旦去掉這個初始化,
就會死機!實際上,只要你的代碼有用到 printf ,就必須初始化串口,否則都會死機,停在
usart.c 里面的 fputc 函數出不來。
修改好上述這些文件后,直接編譯工程會發現會編譯錯誤,如下圖所示:

這是因為在 lcd.c 中,我們使用了 include 的形式添加 lcd_ex.c 文件,所以不能再我們的
工程中對它進行編譯,那應該如何過濾掉該文件呢?可以通過以下步驟設置:

?

通過以上設置,最后在點擊 Apply and Close 選項,即可保存設置,保存后可以看到
13_TFTLCD 工程得 BSP/LCD 文件夾下的 lcd_ex.c 有個小斜杠,代表過濾器設置成功,該文
件不會被編譯,如下圖顯示:

通過以上設置后,再去編譯即可成功!
下載驗證
編譯并下載代碼成功后,可以看到 LED0 不停的閃爍,提示程序已經在運行了。同時可
以看到 TFTLCD 模塊的顯示背景色不停切換,如圖 所示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84575.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV實現二值圖細化(骨架提取)

對二值圖進行細化&#xff08;骨架提取&#xff09;&#xff0c;也就是把每根線條細化到一個像素的寬度。有兩個比較成熟的算法實現此功能&#xff0c;分別是Zhang-Suen算法和Guo-Hall算法。 我們下面使用OpenCVSharp&#xff0c;使用C#實現上述兩個算法&#xff1a; private…

歷史的迷霧與傳承的使命:應對歷史篡改,守護中華文明

在歷史的浩瀚長河中&#xff0c;中國以悠久的文明與燦爛的文化屹立于世界東方。然而&#xff0c;滿清時期與西方勢力出于各自目的對中國歷史進行篡改&#xff0c;在真實歷史的畫卷上蒙上了層層迷霧。深入探究其背后的動機&#xff0c;思考當代人守護歷史文化的使命&#xff0c;…

【Qt】QTableWidget表格右鍵菜單

效果 1. 給QTableWidget組件添加customContextMenuRequested信號 2. 槽函數 void dataDetailForm::on_tableWidget_customContextMenuRequested(const QPoint &pos) {QMenu menu;QAction *setEnd menu.addAction(tr("設置"));connect(setEnd, SIGNAL(triggered…

MySQL 數據處理函數全面詳解

MySQL 數據處理函數全面詳解 MySQL 中的數據處理函數,包含字符串、數值、日期、條件判斷等核心函數: 一、字符串處理函數 1. 基礎操作函數 函數描述示例結果CONCAT()字符串連接CONCAT(My,SQL)‘MySQL’CONCAT_WS()帶分隔符連接CONCAT_WS(-,2023,08,15)‘2023-08-15’LENGTH…

領域驅動設計(DDD)【1】之初步理解

文章目錄 一 DDD概述二 從“沉寂”到“爆火”&#xff1a;DDD的興起背景與原因2.1 DDD早期沉寂的原因2.2 DDD近年爆火的原因2.3 總結 三 DDD深入理解3.1 方法論本質3.2 系統化價值3.3 思想內核3.4 實踐轉化3.5 總結 四 傳統面向對象方法學和DDD4.1 傳統面向對象方法學的問題4.2…

人工智能學習57-TF訓練

人工智能學習概述—快手視頻 人工智能學習57-TF訓練—快手視頻 人工智能學習58-TF訓練—快手視頻 人工智能學習59-TF預測—快手視頻 訓練示例代碼 #導入keras.utils 工具包 import keras.utils #導入mnist數據集 from keras.datasets import mnist #引入tensorflow 類庫 …

MySQL(83)如何設置密碼復雜度策略?

在 MySQL 中&#xff0c;可以通過配置密碼策略來設置密碼的復雜度要求。MySQL 提供了一些參數和插件來幫助管理員強制實施密碼復雜度策略&#xff0c;確保數據庫用戶使用強密碼。下面將詳細介紹如何設置密碼復雜度策略&#xff0c;并結合代碼示例進行說明。 1. 使用 validate_…

如何使用postman做接口自動化測試?

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 本文適合已經掌握 Postman 基本用法的讀者&#xff0c;即對接口相關概念有一定了解、已經會使用Postman 進行模擬請求等基本操作。 工作環境與版本&#xff1a; …

面試-操作系統

用戶態和內核態的區別 內核態&#xff1a;在內核態下&#xff0c;CPU可以執行所有的指令和訪問所有的硬件資源。 用戶態&#xff1a;在用戶態下&#xff0c;CPU只能執行部分指令集&#xff0c;無法直接訪問硬件資源。 內核態的底層操作主要包括&#xff1a;內存管理、進程管理…

【基礎算法】二分(二分查找 + 二分答案)

文章目錄 一、二分查找1. 【案例】在排序數組中查找元素的第一個和最后一個位置 ?(1) 二分查找的引入(2) 解題細節&#xff08;important&#xff09;(3) 代碼示例(4) 【模板】二分查找(5) STL 中的二分查找 2. 牛可樂和封印魔法 ??(1) 解題思路(2) 代碼實現 3. A-B 數對 ?…

多協議物聯網關的方案測試-基于米爾全志T536開發板

本文將介紹基于米爾電子MYD-LT536開發板&#xff08;米爾基于全志T536開發板&#xff09;的多協議物聯網關方案的開發測試。 摘自優秀創作者-ALSET 米爾基于全志T536開發板 為了充分的應用該開發板&#xff0c;結合T536處理器的特點&#xff0c;這里進一步的進行軟件開發&…

echarts的還原,下載圖片失效(空白圖片,還原白屏)

echarts的toolbox.feature. restore 和toolbox.feature. saveAsImage 失效 也沒有任何報錯, 只需要修改: // chart.setOption(op); chart.setOption(op,true);

56-Oracle SQL Tuning Advisor(STA)

各位小伙伴&#xff0c;一般都用哪些優化工具&#xff0c;Oracle SQL Tuning Advisor (STA)用的多嗎&#xff0c;Profile就是它的其中1個產物&#xff0c;下一期再弄Profile&#xff0c;STA 的核心功能是自動化診斷高負載SQL的性能瓶頸?&#xff08;如全表掃描、缺失索引&…

修改element-plus的主題色css變量

提示&#xff1a;本文僅是記錄我修改element-plus等組件庫的css變量&#xff0c; 具體【實現主題色切換看這篇】即可 文章目錄 1.文件劃分2.src/style/index.scss入口文件3.src/style/theme.scss主題色切換維護4.src/style/_color-utils.scss動態生成element-plus的scss變量5.…

Vibe Coding - 進階 Cursor Rules

文章目錄 為什么要配置 .cursorrules使用 .cursorrules 的五大優勢 如何創建與應用 .cursorrules? 基礎步驟&#x1f6e0; 創建方式&#xff1a; 高質量 .cursorrules 文件&#xff0c;應包含以下內容配置示例Java 項目TypeScript React 項目總結 cursorrules 推薦網站 為什么…

騰訊云自動化助手(TAT)技術評估報告

摘要 騰訊云自動化助手&#xff08;TAT&#xff09;作為云服務器&#xff08;CVM&#xff09;與輕量應用服務器&#xff08;Lighthouse&#xff09;的原生運維工具&#xff0c;通過無密碼批量命令執行&#xff08;Shell/Python/PowerShell&#xff09;、交互式會話管理及公共命…

【simulink】IEEE5節點系統潮流仿真模型(2機5節點全功能基礎模型)

主要內容 該模型為simulink仿真模型&#xff0c;主要實現的內容如下&#xff1a; 模型是基于 Simulink 搭建的電力系統潮流計算仿真模型&#xff0c;圍繞2 臺發電機、5 個節點的拓撲結構構建&#xff0c;用于電力系統穩態分析&#xff0c;是電力系統研究、教學及工程實踐中…

責任鏈模式詳解

責任鏈模式 場景 顧名思義&#xff0c;責任鏈模式&#xff08;Chain of Responsibility Pattern&#xff09;為請求創建了一個接收者對象的鏈。這種模式給予請求的類型&#xff0c;對請求的發送者和接收者進行解耦。這種類型的設計模式屬于行為型模式。 在這種模式中&#x…

Taro 跨端應用性能優化全攻略:從原理到實踐

引言&#xff1a;為什么需要性能優化&#xff1f; 在當今移動互聯網時代&#xff0c;用戶體驗已經成為決定產品成敗的關鍵因素。根據 Google 的研究&#xff0c;頁面加載時間每增加 1 秒&#xff0c;移動端轉化率就會下降 20%。對于使用 Taro 開發的跨端應用來說&#xff0c;性…

Git集成Jenkins通過Pipeline方式實現一鍵部署

Docker方式部署Jenkins 部署自定義Docker網絡 部署Docker網絡的作用&#xff1a; 隔離性便于同一網絡內容器相互通信 # 創建名為jenkins的docker網絡 docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 jenkins# 查看docker網絡列表 docker network ls# …