【單片機筆記】分享關於STM32 SPI驅動ST7789 LCD ISP TFT液晶屏幕

偶然的一次機會得到了一塊1.3寸的彩色液晶,控制器爲ST7789V,支持SPI。對應的其他大小的有2.0的和2.4的,spi用起來還是比較簡單的,硬件接口線少方便,刷屏速度還是可以的。這裏因爲只有1.3的屏(240*240分辨率),所以只測試了1.3的,其他的因爲控制器是一樣的,所以基本都差不多,無非分辨率不一樣。

TFT.C文件

#include "fy_tft.h"

#define TFT_CMD 	0
#define TFT_DATA	1

u16 BACK_COLOR=TFT_COLOR_BLACK;
u16 POINT_COLOR=TFT_COLOR_WHITE;

#ifdef USE_SW_SPI
void TFT_ReadWriteByte(u8 dat)
{
    u8 i;
    for(i=0; i<8; i++)
    {
        TFT_SCLK_Clr();
        if(dat&0x80)
            TFT_SDIN_Set();
        else
            TFT_SDIN_Clr();
        TFT_SCLK_Set();
        dat<<=1;
    }	
}
#endif

static void TFT_Gpio_Configuration(void) {

	//RST引腳和單片機的RST共用,單片機硬件復位TFT同時復位
    GPIO_InitTypeDef  GPIO_InitStructure;

#ifdef USE_SW_SPI
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
	
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);	
	GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);//f-cs
#else
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);	
	GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
	
#endif
}

//TFT寫一個字節數據
//dat:寫入的字節
//cmd:
//	0:命令
//	1:數據	
static void TFT_WriteByte(u8 dat,u8 cmd)
{
	if(cmd == TFT_CMD)	TFT_DC_L();   //命令
    else TFT_DC_H();//數據   
    TFT_ReadWriteByte(dat);
}


//函數說明:設置起始和結束地址
//入口數據:x1,x2 設置列的起始和結束地址
//		y1,y2 設置行的起始和結束地址
//返回值:  無
void LCD_Address_Set(u16 x1,u16 y1,u16 x2,u16 y2)
{
	x2 = x2>LCD_WIDTH ? LCD_WIDTH:x2;
	y2 = y2>LCD_WIDTH ? LCD_HEIGHT:y2;
	
    if(USE_HORIZONTAL==0)
    {
        TFT_WriteByte(0x2a,TFT_CMD);//列地址設置
        TFT_WriteByte(x1>>8,TFT_DATA);
        TFT_WriteByte(x1,TFT_DATA);
        TFT_WriteByte(x2>>8,TFT_DATA);
        TFT_WriteByte(x2,TFT_DATA);
        TFT_WriteByte(0x2b,TFT_CMD);//行地址設置
        TFT_WriteByte(y1>>8,TFT_DATA);
        TFT_WriteByte(y1,TFT_DATA);
        TFT_WriteByte(y2>>8,TFT_DATA);
        TFT_WriteByte(y2,TFT_DATA);
        TFT_WriteByte(0x2c,TFT_CMD);//儲存器寫
    }
    else if(USE_HORIZONTAL==1)
    {
        TFT_WriteByte(0x2a,TFT_CMD);//列地址設置
        TFT_WriteByte(x1>>8,TFT_DATA);
        TFT_WriteByte(x1,TFT_DATA);
        TFT_WriteByte(x2>>8,TFT_DATA);
        TFT_WriteByte(x2,TFT_DATA);
        TFT_WriteByte(0x2b,TFT_CMD);//行地址設置
        TFT_WriteByte((y1+80)>>8,TFT_DATA);
        TFT_WriteByte((y1+80),TFT_DATA);
        TFT_WriteByte((y2+80)>>8,TFT_DATA);
        TFT_WriteByte((y2+80),TFT_DATA);
        TFT_WriteByte(0x2c,TFT_CMD);//儲存器寫
    }
    else if(USE_HORIZONTAL==2)
    {
        TFT_WriteByte(0x2a,TFT_CMD);//列地址設置
        TFT_WriteByte(x1>>8,TFT_DATA);
        TFT_WriteByte(x1,TFT_DATA);
        TFT_WriteByte(x2>>8,TFT_DATA);
        TFT_WriteByte(x2,TFT_DATA);
        TFT_WriteByte(0x2b,TFT_CMD);//行地址設置
        TFT_WriteByte(y1>>8,TFT_DATA);
        TFT_WriteByte(y1,TFT_DATA);
        TFT_WriteByte(y2>>8,TFT_DATA);
        TFT_WriteByte(y2,TFT_DATA);
        TFT_WriteByte(0x2c,TFT_CMD);//儲存器寫
    }
    else
    {
        TFT_WriteByte(0x2a,TFT_CMD);//列地址設置
        TFT_WriteByte((x1+80)>>8,TFT_DATA);
        TFT_WriteByte((x1+80),TFT_DATA);
        TFT_WriteByte((x2+80)>>8,TFT_DATA);
        TFT_WriteByte((x2+80),TFT_DATA);
        TFT_WriteByte(0x2b,TFT_CMD);//行地址設置
        TFT_WriteByte(y1>>8,TFT_DATA);
        TFT_WriteByte(y1,TFT_DATA);
        TFT_WriteByte(y2>>8,TFT_DATA);
        TFT_WriteByte(y2,TFT_DATA);
        TFT_WriteByte(0x2c,TFT_CMD);//儲存器寫
    }
}
void TFT_DisplayOn(void){
	TFT_WriteByte(0x29,TFT_CMD);
}

void TFT_DisplayOff(void){
	TFT_WriteByte(0x28,TFT_CMD);
}
//畫點
//x,y:起始座標
//color:顏色
void TFT_DrawPoint(u16 x,u16 y,u16 color)
{
    LCD_Address_Set(x,y,x,y);//設置光標位置
    TFT_WriteByte(color>>8,TFT_DATA);
    TFT_WriteByte(color,TFT_DATA);
}
//填充區域
//x1,y1:起始座標
//x2,y2:結束座標
//color:顏色
void TFT_Fill(u16 x1,u16 y1,u16 x2,u16 y2,u16 color)
{
    u16 x,y;
	
	
    LCD_Address_Set(x1,y1,x2,y2);      //設置光標位置
	
    for(x=x1; x<x2; x++){
        for(y=y1; y<y2; y++){
			TFT_WriteByte(color>>8,TFT_DATA); //設置光標位置
			TFT_WriteByte(color,TFT_DATA); //設置光標位置
		}
    }
}
//清屏
void TFT_Clear(u16 color)
{
    u16 x,y;
	TFT_DisplayOff();//關閉顯示
    LCD_Address_Set(0,0,LCD_WIDTH-1,LCD_HEIGHT-1);
    for(x=0; x<LCD_WIDTH; x++){
        for(y=0; y<LCD_HEIGHT; y++){        
			TFT_WriteByte(color>>8,TFT_DATA); //設置光標位置
			TFT_WriteByte(color,TFT_DATA); //設置光標位置
        }
    }
	TFT_DisplayOn();//打開顯示
}

//在指定位置顯示一個字符,包括部分字符
//函數說明:顯示字符
//入口數據:x,y    起點座標
//		chr    要顯示的字符
//		mode   1疊加方式  0非疊加方式
void TFT_ShowChar(u16 x,u16 y,u8 chr,u8 fw,u8 fh,u8 mode)
{
    u8 temp, t, tbit;
    u8 y0=y;
    u8 *p;	
	
	u16 csize = csize=(fh/8+((fh%8)?1:0))*fw;// 得到字體一個字符對應點陣集所佔的字節數	

    chr=chr-' ';//得到偏移後的值

    if(fw==6&&fh==8)        p = (u8 *)asc2_0608[chr];	//調用0608ascii字體
    else if(fw==6&&fh==12)  p = (u8 *)asc2_0612[chr];	//調用0612ascii字體
    else if(fw==8&&fh==16)  p = (u8 *)asc2_0816[chr];	//調用0612ascii字體
    else if(fw==12&&fh==24) p = (u8 *)asc2_1224[chr];   //調用1224ascii字體
    else return;	//沒有的字庫
	for(t = 0; t < csize; t++)	/*遍歷打印所有像素點到LCD */
	{   
		temp = p[t];
		for(tbit = 0; tbit < 8; tbit++)	/* 打印一個像素點到液晶 */
		{	
			u16 color;
			
			if(temp & 0x80)	color = POINT_COLOR;
			else if(0 == mode)	color = BACK_COLOR;
			else color = ~POINT_COLOR;
			TFT_DrawPoint(x, y,color );
			
			temp <<= 1;			
			y++;
			
			if(y >= LCD_HEIGHT) return;		/* 超區域了 */

			if((y - y0) == fh){
				y = y0;
				x++;
				if(x >= LCD_WIDTH)	return;	/* 超區域了 */
				break;
			}
		}  	 
	}  	  
}
//m^n函數
u32 mypow(u8 m,u8 n)
{
    u32 result=1;
    while(n--)result*=m;
    return result;
}
//顯示數字
//x,y :起點座標
//len :數字的位數
//fw:字寬
//fh:字高
//num:數值(0~4294967295);
void TFT_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 fw,u8 fh)
{
    u8 t,temp;
    u8 enshow=0;
    for(t=0; t<len; t++)
    {
        temp=(num/mypow(10,len-t-1))%10;
        if(enshow==0&&t<(len-1))
        {
            if(temp==0)
            {
                TFT_ShowChar(x+(fw)*t,y,' ',fw,fh,0);
                continue;
            }
            else
                enshow=1;
        }
        TFT_ShowChar(x+(fw)*t,y,temp+'0',fw,fh,0);
    }
}
//在指定位置開始顯示一個字符串
//支持自動換行
//(x,y):起始座標
//width,height:區域
//str  :字符串
//fw:字寬
//fh:字高
//mode:0,非疊加方式;1,疊加方式
void TFT_ShowString(u16 x,u16 y,char *str,u8 fw,u8 fh,u8 mode)
{
    while((*str<='~')&&(*str>=' '))//判斷是不是非法字符!
    {
        if(x>(LCD_WIDTH-(fw))) {
            x=0;
            y+=fh;
        }
        if(y>(LCD_HEIGHT-fh)) {
            y=x=0;   //TFT_Clear();
        }
        TFT_ShowChar(x,y,*str,fw,fh,mode);
        x+=fw;
        str++;
    }
}
//顯示一個指定大小的漢字
//x,y :漢字的座標
//font:漢字GBK碼
//fw:字寬
//fh:字高
//mode:0,正常顯示,1,疊加顯示
void TFT_ShowFont(u8 x,u8 y,char *font,u8 fw,u8 fh,u8 mode)
{
    const char* font_table;
    uint16_t fontSeq;
    uint8_t temp,t,t1;
    uint16_t y0=y;
    uint8_t csize=(fh/8+((fh%8)?1:0))*fw;//得到自由分辨字符所佔的字節數

    if(fw==12 && fh==12)
        font_table = font1212_table;
    else if(fw==24 && fh==24)
        font_table = font2424_table;
    else return;/*沒有的字庫*/
    for(fontSeq=0; fontSeq<strlen(font_table)/2; fontSeq++)/*計算font_table對應字庫的數組下標*/
    {
        if(font_table[2*fontSeq]==font[0] && font_table[2*fontSeq+1]==font[1])
            break;
    }
    if(fontSeq >= strlen(font_table)/2) return;/*font_table中沒有font該字*/

    for(t=0; t<csize; t++)
    {
        if(fw==12 && fh==12)
            temp = font_1212[fontSeq][t];/*調用font_1212字庫*/
        else if(fw==24 && fh==24)
            temp = font_2424[fontSeq][t];/*調用font_2424字庫*/
        for(t1=0; t1<8; t1++)
        {
			u16 color;
			
			if(temp & 0x80)	color = POINT_COLOR;
			else if(0 == mode)	color = BACK_COLOR;
			else color = ~POINT_COLOR;
			TFT_DrawPoint(x, y,color );
			
            temp<<=1;
            y++;
            if((y-y0)==fh)
            {
                y=y0;
                x++;
                break;
            }
        }
    }
}

void TFT_ShowText(u16 x,u16 y,char *str,u8 fw,u8 fh,u8 mode)
{
    while(*str!=0)
    {
        TFT_ShowFont(x,y,str,fw,fh,mode); //顯示這個漢字,空心顯示
        str+=2;
        x+=fh;//下一個漢字偏移
    }
}

//顯示圖片
//x,y:起點座標
//pw:圖片寬(單位像素)
//ph:圖片高(單位像素)
//p:圖片起始地址
void TFT_ShowPicture(u16 x,u16 y,const u8 *p,u8 pw,u8 ph)
{
    u8 temp,i,col,row;
    u8 y0=y;
    u8 width=pw;
    if(x+pw>LCD_WIDTH)width=LCD_WIDTH-pw;//實際顯示寬度
    u8 high=ph;
    if(y+ph>LCD_HEIGHT)high=LCD_HEIGHT-ph;//實際顯示高度
    u8 exp_col_bytes=(ph/8+((ph%8)?1:0));//顯示一行的字節數
    u8 act_col_bytes=(high/8+((high%8)?1:0));//實際顯示一列的字節數

    for(row=0; row<width; row++) //列++
    {
        for(col=0; col<act_col_bytes; col++) //顯示一列
        {
            temp = p[col+row*exp_col_bytes];
            for(i=0; i<8; i++)
            {
				u16 color;
				
				if(temp & 0x80)	color = POINT_COLOR;
				else color = BACK_COLOR;

				TFT_DrawPoint(x, y,color );
				
                temp<<=1;
                y++;
                if((y-y0)==high)
                {
                    y=y0;
                    x++;
                    break;
                }
            }
        }
    }
}


//初始化ST7789VW
void TFT_Configuration(void)
{
#ifndef USE_SW_SPI
    SPI1_ChangeMode(SPI_MODE_TFT);
#endif
    TFT_Gpio_Configuration();
    Delay_ms(100);

	/* Sleep Out */
    TFT_WriteByte(0x11,TFT_CMD);
    /* wait for power stability */
    Delay_ms(120);

    /* Memory Data Access Control */
    TFT_WriteByte(0x36,TFT_CMD);
    if(USE_HORIZONTAL==0)TFT_WriteByte(0x00,TFT_DATA);
    else if(USE_HORIZONTAL==1)TFT_WriteByte(0xC0,TFT_DATA);
    else if(USE_HORIZONTAL==2)TFT_WriteByte(0x70,TFT_DATA);
    else TFT_WriteByte(0xA0,TFT_DATA);

    /* RGB 5-6-5-bit  */
    TFT_WriteByte(0x3A,TFT_CMD);
    TFT_WriteByte(0x65,TFT_DATA);

    /* Porch Setting */
    TFT_WriteByte(0xB2,TFT_CMD);
    TFT_WriteByte(0x0C,TFT_DATA);
    TFT_WriteByte(0x0C,TFT_DATA);
    TFT_WriteByte(0x00,TFT_DATA);
    TFT_WriteByte(0x33,TFT_DATA);
    TFT_WriteByte(0x33,TFT_DATA);

    /*  Gate Control */
    TFT_WriteByte(0xB7,TFT_CMD);
    TFT_WriteByte(0x72,TFT_DATA);

    /* VCOM Setting */
    TFT_WriteByte(0xBB,TFT_CMD);
    TFT_WriteByte(0x3D,TFT_DATA);   //Vcom=1.625V

    /* LCM Control */
    TFT_WriteByte(0xC0,TFT_CMD);
    TFT_WriteByte(0x2C,TFT_DATA);

    /* VDV and VRH Command Enable */
    TFT_WriteByte(0xC2,TFT_CMD);
    TFT_WriteByte(0x01,TFT_DATA);

    /* VRH Set */
    TFT_WriteByte(0xC3,TFT_CMD);
    TFT_WriteByte(0x19,TFT_DATA);

    /* VDV Set */
    TFT_WriteByte(0xC4,TFT_CMD);
    TFT_WriteByte(0x20,TFT_DATA);

    /* Frame Rate Control in Normal Mode */
    TFT_WriteByte(0xC6,TFT_CMD);
    TFT_WriteByte(0x0F,TFT_DATA);	//60MHZ

    /* Power Control 1 */
    TFT_WriteByte(0xD0,TFT_CMD);
    TFT_WriteByte(0xA4,TFT_DATA);
    TFT_WriteByte(0xA1,TFT_DATA);

    /* Positive Voltage Gamma Control */
    TFT_WriteByte(0xE0,TFT_CMD);
    TFT_WriteByte(0xD0,TFT_DATA);
    TFT_WriteByte(0x04,TFT_DATA);
    TFT_WriteByte(0x0D,TFT_DATA);
    TFT_WriteByte(0x11,TFT_DATA);
    TFT_WriteByte(0x13,TFT_DATA);
    TFT_WriteByte(0x2B,TFT_DATA);
    TFT_WriteByte(0x3F,TFT_DATA);
    TFT_WriteByte(0x54,TFT_DATA);
    TFT_WriteByte(0x4C,TFT_DATA);
    TFT_WriteByte(0x18,TFT_DATA);
    TFT_WriteByte(0x0D,TFT_DATA);
    TFT_WriteByte(0x0B,TFT_DATA);
    TFT_WriteByte(0x1F,TFT_DATA);
    TFT_WriteByte(0x23,TFT_DATA);

    /* Negative Voltage Gamma Control */
    TFT_WriteByte(0xE1,TFT_CMD);
    TFT_WriteByte(0xD0,TFT_DATA);
    TFT_WriteByte(0x04,TFT_DATA);
    TFT_WriteByte(0x0C,TFT_DATA);
    TFT_WriteByte(0x11,TFT_DATA);
    TFT_WriteByte(0x13,TFT_DATA);
    TFT_WriteByte(0x2C,TFT_DATA);
    TFT_WriteByte(0x3F,TFT_DATA);
    TFT_WriteByte(0x44,TFT_DATA);
    TFT_WriteByte(0x51,TFT_DATA);
    TFT_WriteByte(0x2F,TFT_DATA);
    TFT_WriteByte(0x1F,TFT_DATA);
    TFT_WriteByte(0x1F,TFT_DATA);
    TFT_WriteByte(0x20,TFT_DATA);
    TFT_WriteByte(0x23,TFT_DATA);

    /* Display Inversion On */
    TFT_WriteByte(0x21,TFT_CMD);
    TFT_WriteByte(0x29,TFT_CMD);

	TFT_Clear(BACK_COLOR);

}


/*********************************************END OF FILE**********************************************/

TFT.h文件:

#ifndef __FY_TFT_H
#define __FY_TFT_H

#include "fy_includes.h"


//#define USE_SW_SPI

#ifndef USE_SW_SPI
	#define TFT_ReadWriteByte SPI1_ReadWriteByte
#endif
#define USE_HORIZONTAL 0  //設置橫屏或者豎屏顯示 0或1爲豎屏 2或3爲橫屏

#if USE_HORIZONTAL==0||USE_HORIZONTAL==1
	#define LCD_WIDTH 240
	#define LCD_HEIGHT 240
#else
	#define LCD_WIDTH 240
	#define LCD_HEIGHT 240
#endif

#define TFT_SCLK_RCC    RCC_APB2Periph_GPIOA
#define TFT_SCLK_PORT   GPIOA
#define TFT_SCLK_PIN    GPIO_Pin_5
#define TFT_SCLK_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_5)
#define TFT_SCLK_Set() GPIO_SetBits(GPIOA,GPIO_Pin_5)

#define TFT_SDIN_RCC    RCC_APB2Periph_GPIOA
#define TFT_SDIN_PORT   GPIOA
#define TFT_SDIN_PIN    GPIO_Pin_7
#define TFT_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_7)//DIN
#define TFT_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_Pin_7)


#define TFT_DC_RCC    RCC_APB2Periph_GPIOB
#define TFT_DC_PORT   GPIOB
#define TFT_DC_PIN    GPIO_Pin_7
#define TFT_DC_H() GPIO_SetBits(GPIOB,GPIO_Pin_7)
#define TFT_DC_L() GPIO_ResetBits(GPIOB,GPIO_Pin_7)

#define TFT_BLK_RCC    RCC_APB2Periph_GPIOB
#define TFT_BLK_PORT   GPIOB
#define TFT_BLK_PIN    GPIO_Pin_8
#define TFT_BLK_H() GPIO_SetBits(GPIOB,GPIO_Pin_8)
#define TFT_BLK_L() GPIO_ResetBits(GPIOB,GPIO_Pin_8)


extern u16 BACK_COLOR;
extern u16 POINT_COLOR;

#define TFT_COLOR_RED		0xF800
#define TFT_COLOR_GREEN		0x07E0
#define TFT_COLOR_BLUE		0x001F
#define TFT_COLOR_BLACK		0x0000
#define TFT_COLOR_WHITE		0xFFFF
#define TFT_COLOR_YELLOW    0xFFE0


void TFT_Configuration(void);
void TFT_DisplayOn(void);
void TFT_DisplayOff(void);
void TFT_Clear(u16 color);
void TFT_DrawPoint(u16 x,u16 y,u16 color);
void TFT_Fill(u16 x1,u16 y1,u16 x2,u16 y2,u16 color);
void TFT_ShowChar(u16 x,u16 y,u8 chr,u8 fw,u8 fh,u8 mode);
void TFT_ShowString(u16 x,u16 y,char *str,u8 fw,u8 fh,u8 mode);
void TFT_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 fw,u8 fh);
void TFT_ShowText(u16 x,u16 y,char *str,u8 fw,u8 fh,u8 mode);
void TFT_ShowPicture(u16 x,u16 y,const u8 *p,u8 pw,u8 ph);



#endif

/*********************************************END OF FILE**********************************************/

關於SPI,源碼支持硬件SPI及軟件模擬SPI,默認是硬件SPI,需要軟件模擬在TFT.H裏面打開宏定義就好了,

SPI.C

#include "fy_spi.h"

SPI_InitTypeDef  SPI_InitStructure;

void SPI1_Configuration(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;

	//SPI1的時鐘來源是APB2 72MHz
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_SPI1, ENABLE);	//使能GPIOA、SPI1時鐘

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//PA5~7複用功能輸出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);				//初始化
	GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);

    //這裏只針對SPI口初始化
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //設置SPI單向或者雙向的數據模式:SPI設置爲雙線雙向全雙工
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;		//設置SPI工作模式:設置爲主SPI
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;		//設置SPI的數據大小:SPI發送接收8位幀結構
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;		//串行同步時鐘的空閒狀態爲低電平
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;	//串行同步時鐘的第一個跳變沿(上升或下降)數據被採樣
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;		//NSS信號由硬件(NSS管腳)還是軟件(使用SSI位)管理:內部NSS信號有SSI位控制
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;		//定義波特率預分頻的值:波特率預分頻值爲
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;	//指定數據傳輸從MSB位還是LSB位開始:數據傳輸從MSB位開始
    SPI_InitStructure.SPI_CRCPolynomial = 7;	//CRC值計算的多項式
    SPI_Init(SPI1, &SPI_InitStructure);  //根據SPI_InitStruct中指定的參數初始化外設SPIx寄存器

    SPI_Cmd(SPI1, ENABLE); //使能SPI外設
	SPI1_ReadWriteByte(0xff);//啓動傳輸	
}

//SPI1速度設置函數
//SPI速度=fAPB2/分頻係數
//@ref SPI_BaudRate_Prescaler:SPI_BaudRatePrescaler_2~SPI_BaudRatePrescaler_256
//fAPB2時鐘一般爲84Mhz:
void SPI1_SetSpeed(u8 SPI_BaudRatePrescaler)
{
    assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));//判斷有效性
    SPI1->CR1&=0XFFC7;//位3-5清零,用來設置波特率
    SPI1->CR1|=SPI_BaudRatePrescaler;	//設置SPI1速度
    SPI_Cmd(SPI1,ENABLE); //使能SPI1
}

//SPIx 讀寫一個字節
//TxData:要寫入的字節
//返回值:讀取到的字節
u8 SPI1_ReadWriteByte(u8 TxData)
{
    u8 retry=0;
    while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) //檢查指定的SPI標誌位設置與否:發送緩存空標誌位
    {
        retry++;
        if(retry>200)return 0;
    }
    SPI_I2S_SendData(SPI1, TxData); //通過外設SPIx發送一個數據
    retry=0;

    while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)//檢查指定的SPI標誌位設置與否:接受緩存非空標誌位
    {
        retry++;
        if(retry>200)return 0;
    }
    return SPI_I2S_ReceiveData(SPI1); //返回通過SPIx最近接收的數據
}

void SPI1_ChangeMode(_typdef_spi_mode mode)
{
    static _typdef_spi_mode last_mode=SPI_MODE_NRF24L01;

    if(mode == last_mode)	return;
	last_mode = mode;
	
    if(mode == SPI_MODE_NRF24L01) 
    {
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;	//9M
    }
    else if(mode == SPI_MODE_LT8920)
    {
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;	//9M
    }
    else if(mode == SPI_MODE_FLASH)
    {
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;	//36M
    }
	else if(mode == SPI_MODE_OLED)
    {
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;	//36M
    }
	else if(mode == SPI_MODE_TFT)
    {
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;	//36M
    }
    else
        return;
    SPI_Cmd(SPI1, DISABLE);
    SPI_Init(SPI1, &SPI_InitStructure);
    SPI_Cmd(SPI1, ENABLE);
}
/*********************************************END OF FILE********************************************/


SPI.H

#ifndef __FY_SPI_H
#define __FY_SPI_H

#include "fy_includes.h" 


typedef enum
{
    SPI_MODE_NRF24L01=0,
    SPI_MODE_FLASH,
    SPI_MODE_OLED,
    SPI_MODE_TFT,
	SPI_MODE_LT8920,
    _SPI_MODE_MAX
}_typdef_spi_mode;

void SPI1_Configuration(void);	 //初始化SPI口
void SPI1_SetSpeed(u8 SpeedSet); //設置SPI速度   
u8 SPI1_ReadWriteByte(u8 TxData);//SPI總線讀寫一個字節
void SPI1_ChangeMode(_typdef_spi_mode mode);

#endif

還有就是字庫文件、圖片等,這裏爲了方便就沒有存外部的flash,直接用單片機內部的flash,

FONT.C文件

#include "fy_oledfont.h"

//PC2LCD2002取模方式設置:陰碼+逐列式+順向+C51格式

//06*08==寬*高 ASCII字符集點陣 (Terminal Greek8字體)
const unsigned char asc2_0608[95][6]= {
    {0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
    {0x00,0x00,0x60,0xFA,0x60,0x00},/*"!",1*/
    {0x00,0xE0,0xC0,0x00,0xE0,0xC0},/*""",2*/
    {0x00,0x24,0x7E,0x24,0x7E,0x24},/*"#",3*/
    {0x00,0x24,0xD4,0x56,0x48,0x00},/*"$",4*/
    {0x00,0xC6,0xC8,0x10,0x26,0xC6},/*"%",5*/
    {0x00,0x6C,0x92,0x6A,0x04,0x0A},/*"&",6*/
    {0x00,0x00,0xE0,0xC0,0x00,0x00},/*"'",7*/
    {0x00,0x00,0x7C,0x82,0x00,0x00},/*"(",8*/
    {0x00,0x00,0x82,0x7C,0x00,0x00},/*")",9*/
    {0x00,0x10,0x7C,0x38,0x7C,0x10},/*"*",10*/
    {0x00,0x10,0x10,0x7C,0x10,0x10},/*"+",11*/
    {0x00,0x00,0x07,0x06,0x00,0x00},/*",",12*/
    {0x00,0x10,0x10,0x10,0x10,0x10},/*"-",13*/
    {0x00,0x00,0x06,0x06,0x00,0x00},/*".",14*/
    {0x00,0x04,0x08,0x10,0x20,0x40},/*"/",15*/
    {0x00,0x7C,0x8A,0x92,0xA2,0x7C},/*"0",16*/
    {0x00,0x00,0x42,0xFE,0x02,0x00},/*"1",17*/
    {0x00,0x46,0x8A,0x92,0x92,0x62},/*"2",18*/
    {0x00,0x44,0x92,0x92,0x92,0x6C},/*"3",19*/
    {0x00,0x18,0x28,0x48,0xFE,0x08},/*"4",20*/
    {0x00,0xF4,0x92,0x92,0x92,0x8C},/*"5",21*/
    {0x00,0x3C,0x52,0x92,0x92,0x0C},/*"6",22*/
    {0x00,0x80,0x8E,0x90,0xA0,0xC0},/*"7",23*/
    {0x00,0x6C,0x92,0x92,0x92,0x6C},/*"8",24*/
    {0x00,0x60,0x92,0x92,0x94,0x78},/*"9",25*/
    {0x00,0x00,0x36,0x36,0x00,0x00},/*":",26*/
    {0x00,0x00,0x37,0x36,0x00,0x00},/*";",27*/
    {0x00,0x10,0x28,0x44,0x82,0x00},/*"<",28*/
    {0x00,0x24,0x24,0x24,0x24,0x24},/*"=",29*/
    {0x00,0x00,0x82,0x44,0x28,0x10},/*">",30*/
    {0x00,0x40,0x80,0x9A,0x90,0x60},/*"?",31*/
    {0x00,0x7C,0x82,0xBA,0xAA,0x78},/*"@",32*/
    {0x00,0x7E,0x88,0x88,0x88,0x7E},/*"A",33*/
    {0x00,0xFE,0x92,0x92,0x92,0x6C},/*"B",34*/
    {0x00,0x7C,0x82,0x82,0x82,0x44},/*"C",35*/
    {0x00,0xFE,0x82,0x82,0x82,0x7C},/*"D",36*/
    {0x00,0xFE,0x92,0x92,0x92,0x82},/*"E",37*/
    {0x00,0xFE,0x90,0x90,0x90,0x80},/*"F",38*/
    {0x00,0x7C,0x82,0x92,0x92,0x5E},/*"G",39*/
    {0x00,0xFE,0x10,0x10,0x10,0xFE},/*"H",40*/
    {0x00,0x00,0x82,0xFE,0x82,0x00},/*"I",41*/
    {0x00,0x0C,0x02,0x02,0x02,0xFC},/*"J",42*/
    {0x00,0xFE,0x10,0x28,0x44,0x82},/*"K",43*/
    {0x00,0xFE,0x02,0x02,0x02,0x02},/*"L",44*/
    {0x00,0xFE,0x40,0x20,0x40,0xFE},/*"M",45*/
    {0x00,0xFE,0x40,0x20,0x10,0xFE},/*"N",46*/
    {0x00,0x7C,0x82,0x82,0x82,0x7C},/*"O",47*/
    {0x00,0xFE,0x90,0x90,0x90,0x60},/*"P",48*/
    {0x00,0x7C,0x82,0x8A,0x84,0x7A},/*"Q",49*/
    {0x00,0xFE,0x90,0x90,0x98,0x66},/*"R",50*/
    {0x00,0x64,0x92,0x92,0x92,0x4C},/*"S",51*/
    {0x00,0x80,0x80,0xFE,0x80,0x80},/*"T",52*/
    {0x00,0xFC,0x02,0x02,0x02,0xFC},/*"U",53*/
    {0x00,0xF8,0x04,0x02,0x04,0xF8},/*"V",54*/
    {0x00,0xFC,0x02,0x3C,0x02,0xFC},/*"W",55*/
    {0x00,0xC6,0x28,0x10,0x28,0xC6},/*"X",56*/
    {0x00,0xE0,0x10,0x0E,0x10,0xE0},/*"Y",57*/
    {0x00,0x8E,0x92,0xA2,0xC2,0x00},/*"Z",58*/
    {0x00,0x00,0xFE,0x82,0x82,0x00},/*"[",59*/
    {0x00,0x40,0x20,0x10,0x08,0x04},/*"\",60*/
    {0x00,0x00,0x82,0x82,0xFE,0x00},/*"]",61*/
    {0x00,0x20,0x40,0x80,0x40,0x20},/*"^",62*/
    {0x01,0x01,0x01,0x01,0x01,0x01},/*"_",63*/
    {0x00,0x00,0xC0,0xE0,0x00,0x00},/*"`",64*/
    {0x00,0x04,0x2A,0x2A,0x2A,0x1E},/*"a",65*/
    {0x00,0xFE,0x22,0x22,0x22,0x1C},/*"b",66*/
    {0x00,0x1C,0x22,0x22,0x22,0x14},/*"c",67*/
    {0x00,0x1C,0x22,0x22,0x22,0xFE},/*"d",68*/
    {0x00,0x1C,0x2A,0x2A,0x2A,0x10},/*"e",69*/
    {0x00,0x10,0x7E,0x90,0x90,0x00},/*"f",70*/
    {0x00,0x18,0x25,0x25,0x25,0x3E},/*"g",71*/
    {0x00,0xFE,0x20,0x20,0x1E,0x00},/*"h",72*/
    {0x00,0x00,0x00,0xBE,0x02,0x00},/*"i",73*/
    {0x00,0x02,0x01,0x21,0xBE,0x00},/*"j",74*/
    {0x00,0xFE,0x08,0x14,0x22,0x00},/*"k",75*/
    {0x00,0x00,0x00,0xFE,0x02,0x00},/*"l",76*/
    {0x00,0x3E,0x20,0x18,0x20,0x1E},/*"m",77*/
    {0x00,0x3E,0x20,0x20,0x1E,0x00},/*"n",78*/
    {0x00,0x1C,0x22,0x22,0x22,0x1C},/*"o",79*/
    {0x00,0x3F,0x22,0x22,0x22,0x1C},/*"p",80*/
    {0x00,0x1C,0x22,0x22,0x22,0x3F},/*"q",81*/
    {0x00,0x22,0x1E,0x22,0x20,0x10},/*"r",82*/
    {0x00,0x10,0x2A,0x2A,0x2A,0x04},/*"s",83*/
    {0x00,0x20,0x7C,0x22,0x24,0x00},/*"t",84*/
    {0x00,0x3C,0x02,0x04,0x3E,0x00},/*"u",85*/
    {0x00,0x38,0x04,0x02,0x04,0x38},/*"v",86*/
    {0x00,0x3C,0x06,0x0C,0x06,0x3C},/*"w",87*/
    {0x00,0x36,0x08,0x08,0x36,0x00},/*"x",88*/
    {0x00,0x39,0x05,0x06,0x3C,0x00},/*"y",89*/
    {0x00,0x26,0x2A,0x2A,0x32,0x00},/*"z",90*/
    {0x00,0x10,0x7C,0x82,0x82,0x00},/*"{",91*/
    {0x00,0x00,0x00,0xEE,0x00,0x00},/*"|",92*/
    {0x00,0x00,0x82,0x82,0x7C,0x10},/*"}",93*/
    {0x00,0x40,0x80,0x40,0x80,0x00},/*"~",94*/
};

//06*12==寬*高 ASCII字符集點陣 (宋體)
const unsigned char asc2_0612[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*/
};

const unsigned char asc2_0816[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,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/

    {0x00,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x00,0x00},/*""",2*/

    {0x00,0x00,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x00,0x00},/*"#",3*/

    {0x00,0x00,0x0E,0x18,0x11,0x04,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00},/*"$",4*/

    {0x0F,0x00,0x10,0x8C,0x0F,0x30,0x01,0xC0,0x06,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/

    {0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x34,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/

    {0x00,0x00,0x48,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,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x07,0xF0,0x00,0x80,0x00,0x80,0x00,0x80},/*"+",11*/

    {0x00,0x00,0x00,0x09,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,0x00},/*"-",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,0xE0,0x03,0x00,0x1C,0x00,0x20,0x00,0x00,0x00},/*"/",15*/

    {0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"0",16*/

    {0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00},/*"1",17*/

    {0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x10,0x84,0x0F,0x0C,0x00,0x00},/*"2",18*/

    {0x00,0x00,0x0C,0x18,0x10,0x04,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},/*"3",19*/

    {0x00,0x00,0x00,0x60,0x01,0xA0,0x02,0x24,0x0C,0x24,0x1F,0xFC,0x00,0x24,0x00,0x24},/*"4",20*/

    {0x00,0x00,0x1F,0x98,0x11,0x04,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00},/*"5",21*/

    {0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x09,0x04,0x00,0xF8,0x00,0x00},/*"6",22*/

    {0x00,0x00,0x18,0x00,0x10,0x00,0x10,0x7C,0x11,0x80,0x16,0x00,0x18,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,0x0F,0x80,0x10,0x48,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,0x00,0x01,0x07,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*/

    {0x00,0x00,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,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,0xEC,0x11,0x00,0x0E,0x00,0x00,0x00},/*"?",31*/

    {0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x14,0x17,0xF4,0x08,0x14,0x07,0xE8,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,0x80,0x00,0x7C,0x1F,0x80,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,0x08,0x10,0x14,0x10,0x14,0x10,0x0C,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*/

    {0x10,0x00,0x1F,0xC0,0x00,0x7C,0x1F,0x80,0x00,0x7C,0x1F,0xC0,0x10,0x00,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,0x20,0x00,0x1C,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,0x20,0x00,0x00,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,0x24,0x01,0x48,0x00,0xFC,0x00,0x04,0x00,0x00},/*"a",65*/

    {0x08,0x00,0x0F,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,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x09,0x08,0x0F,0xFC,0x00,0x04},/*"d",68*/

    {0x00,0x00,0x00,0xF8,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x00,0xE8,0x00,0x00},/*"e",69*/

    {0x00,0x00,0x01,0x04,0x01,0x04,0x07,0xFC,0x09,0x04,0x09,0x04,0x04,0x00,0x00,0x00},/*"f",70*/

    {0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00},/*"g",71*/

    {0x08,0x04,0x0F,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*/

    {0x08,0x04,0x0F,0xFC,0x00,0x24,0x00,0x60,0x01,0x94,0x01,0x0C,0x01,0x04,0x00,0x00},/*"k",75*/

    {0x00,0x00,0x08,0x04,0x08,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,0x89,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"p",80*/

    {0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x89,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,0x08,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,0xC0,0x01,0x30,0x00,0x0C,0x01,0x30,0x01,0xC0,0x01,0x00,0x00,0x00},/*"v",86*/

    {0x01,0x80,0x01,0x70,0x00,0x0C,0x01,0x30,0x01,0xE0,0x00,0x1C,0x01,0x60,0x01,0x80},/*"w",87*/

    {0x00,0x00,0x01,0x04,0x01,0x8C,0x01,0x70,0x00,0x74,0x01,0x8C,0x01,0x04,0x00,0x00},/*"x",88*/

    {0x01,0x00,0x01,0x81,0x01,0x61,0x00,0x1E,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,0x00,0x80,0x3F,0x7C,0x40,0x02,0x40,0x02},/*"{",91*/

    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/

    {0x40,0x02,0x40,0x02,0x3F,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} /*"}",93*/

};
//12*24==寬*高 ASCII字符集點陣 (宋體)
const unsigned char asc2_1224[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*/
};


const unsigned char font_1212[][24] = {

    {0x00,0x10,0x04,0x10,0x38,0x20,0x00,0xC0,0x03,0x00,0xFC,0x00,0x03,0x00,0x00,0xC0,0x08,0x20,0x30,0x10,0x00,0x10,0x00,0x00},/*"火",0*/

    {0x00,0x90,0xFB,0x10,0xA9,0x50,0xA9,0x50,0xA9,0x50,0xAF,0xF0,0xA9,0x50,0xA9,0x50,0xA9,0x50,0xF9,0x10,0x00,0x10,0x00,0x00},/*"星",1*/

    {0x48,0x80,0x4B,0x00,0x7F,0xF0,0x8A,0x00,0x09,0x00,0x48,0x80,0x24,0x80,0x00,0x80,0xFF,0xF0,0x01,0x00,0x01,0x00,0x00,0x00},/*"科",2*/

    {0x11,0x00,0x11,0x10,0xFF,0xF0,0x12,0x00,0x24,0x10,0x27,0x10,0x24,0xA0,0xFC,0x40,0x24,0xA0,0x27,0x10,0x20,0x10,0x00,0x00},/*"技",3*/

    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",4*/

};

const char* font1212_table = {
    "火星科技 "
};

const unsigned char font_2424[][72] = {
    {
        0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x08,0x04,0x00,0x18,0x04,0x00,0x70,0x08,0x01,0x80,0x08,0x00,0x00,0x10,
        0x00,0x00,0x60,0x00,0x00,0xC0,0x00,0x07,0x80,0x7F,0xFE,0x00,0x3F,0xE0,0x00,0x00,0x18,0x00,0x00,0x0E,0x00,0x00,0x11,0x80,
        0x00,0x20,0xC0,0x00,0x40,0x60,0x01,0x80,0x30,0x01,0x00,0x18,0x00,0x00,0x0C,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00
    },/*"火",0*/

    {
        0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x44,0x00,0x00,0x84,0x00,0x03,0x04,0x3F,0xCE,0x44,0x3F,0x9C,0x44,0x24,0x84,0x44,
        0x24,0x84,0x44,0x24,0x84,0x44,0x24,0x84,0x44,0x24,0xBF,0xFC,0x24,0x9F,0xFC,0x24,0x84,0x44,0x24,0x84,0x44,0x24,0x84,0x44,
        0x24,0x84,0x44,0x24,0x84,0xC4,0x3F,0xCC,0x44,0x00,0x04,0x04,0x00,0x00,0x0C,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00
    },/*"星",1*/

    {
        0x00,0x00,0x00,0x00,0x80,0x20,0x00,0x80,0x40,0x10,0x81,0x80,0x10,0x86,0x00,0x10,0x9C,0x00,0x1F,0xFF,0xFF,0x1F,0xFF,0xFE,
        0x20,0x88,0x00,0x20,0x8C,0x00,0x20,0x86,0x40,0x00,0x00,0x80,0x00,0x00,0x80,0x04,0x30,0x80,0x06,0x1E,0x80,0x02,0x01,0x00,
        0x00,0x01,0x00,0x00,0x01,0x00,0x7F,0xFF,0xFF,0x20,0x01,0x00,0x00,0x02,0x00,0x00,0x06,0x00,0x00,0x02,0x00,0x00,0x00,0x00
    },/*"科",2*/

    {
        0x00,0x00,0x00,0x02,0x04,0x00,0x02,0x06,0x08,0x02,0x04,0x04,0x02,0x08,0x04,0x7F,0xFF,0xFE,0x3F,0xFF,0xFC,0x02,0x10,0x00,
        0x02,0x10,0x02,0x02,0x20,0x02,0x02,0x10,0x04,0x02,0x10,0x04,0x02,0x1C,0x08,0x02,0x13,0x08,0x02,0x10,0xD0,0x7F,0xF0,0x20,
        0x22,0x10,0x70,0x02,0x11,0xD8,0x02,0x17,0x0C,0x02,0x1C,0x0C,0x02,0x10,0x06,0x02,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00
    },/*"技",3*/

    {
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    },/*" ",4*/


};
const char* font2424_table = {
    "火星科技 "
};


const unsigned char bmp_logo[]= {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x7E,
0x00,0x00,0x00,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x0F,0xFE,0x00,0x00,0x1F,0xFE,
0x00,0x00,0x7F,0xFE,0x00,0x01,0xFF,0xFE,
0x00,0x07,0xFF,0xFE,0x00,0x0F,0xFF,0xFC,
0x00,0x3F,0xFF,0xF8,0x00,0xFF,0xFF,0xE0,
0x01,0xFF,0xFF,0x80,0x07,0xFF,0xFF,0x00,
0x0F,0xFF,0xFC,0x00,0x1F,0xFF,0xF0,0x00,
0x3F,0xFF,0xC0,0x00,0x3F,0xFF,0x80,0x00,
0x3F,0xFE,0x00,0x00,0x3F,0xFC,0x00,0x00,
0x3F,0xF0,0x00,0x00,0x3F,0xC0,0x00,0x00,
0x3F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,
0x3E,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,
0x3E,0x00,0x00,0x00,0x3F,0x80,0x00,0x00,
0x3F,0xE0,0x00,0x00,0x3F,0xF0,0x00,0x00,
0x3F,0xFC,0x00,0x00,0x3F,0xFF,0x00,0x00,
0x3F,0xFF,0x80,0x00,0x3F,0xFF,0xE0,0x00,
0x3F,0xFF,0xF8,0x00,0x0F,0xFF,0xFE,0x00,
0x07,0xFF,0xFF,0x00,0x31,0xFF,0xFF,0xC0,
0x30,0x7F,0xFF,0xF0,0x3C,0x1F,0xFF,0xF8,
0x3F,0x0F,0xFF,0xFE,0x3F,0x83,0xFF,0xFE,
0x3F,0xE0,0xFF,0xFE,0x3F,0xF8,0x7F,0xFE,
0x3F,0xFE,0x1F,0xFE,0x1F,0xFF,0x07,0xFE,
0x0F,0xFF,0xC3,0xFE,0x03,0xFF,0xF0,0xFE,
0x30,0xFF,0xF8,0x3E,0x38,0x3F,0xFE,0x0E,
0x3C,0x1F,0xFF,0x86,0x3E,0x07,0xFF,0xC0,
0x3E,0x01,0xFF,0xF0,0x3E,0x00,0xFF,0xFC,
0x3E,0x00,0x3F,0xFE,0x3E,0x06,0x0F,0xFE,
0x3E,0x07,0x87,0xFE,0x3E,0x07,0xC1,0xFE,
0x3E,0x07,0xC0,0x7E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xC0,0x0E,0x3E,0x07,0xC0,0x06,
0x3F,0x87,0xC0,0x00,0x3F,0xC7,0xC0,0x00,
0x3F,0xF7,0xC0,0x00,0x3F,0xFF,0xC0,0x30,
0x3F,0xFF,0xC0,0x38,0x0F,0xFF,0xC0,0x3E,
0x03,0xFF,0xE0,0x3E,0x31,0xFF,0xF8,0x3E,
0x38,0x7F,0xFC,0x3E,0x3C,0x1F,0xFF,0x3E,
0x3E,0x0F,0xFF,0xBE,0x3E,0x03,0xFF,0xBE,
0x3E,0x00,0xFF,0xBE,0x3E,0x00,0x7F,0xBE,
0x3E,0x07,0x1F,0xBE,0x3E,0x07,0x87,0xBE,
0x3E,0x07,0xC1,0xBE,0x3E,0x07,0xC1,0xBE,
0x3E,0x07,0xC0,0x3E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xE0,0x3E,0x3F,0x87,0xF8,0x3E,
0x3F,0xE7,0xFC,0x3E,0x3F,0xF7,0xFF,0x3E,
0x3F,0xFF,0xFF,0xBE,0x3F,0xFF,0xFF,0xBE,
0x0F,0xFF,0xFF,0xBE,0x03,0xFF,0xFF,0xBE,
0x31,0xFF,0xFF,0xBE,0x30,0x7F,0xDF,0xBE,
0x3C,0x1F,0xC7,0xBE,0x3E,0x0F,0xC1,0xBE,
0x3E,0x03,0xC0,0xBE,0x3E,0x00,0xC0,0x3E,
0x3E,0x00,0x00,0x3E,0x3E,0x06,0x00,0x3E,
0x3E,0x07,0x00,0x3E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xC0,0x3E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xC0,0x3E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xC0,0x3E,0x3E,0x07,0xC0,0x3E,
0x3E,0x07,0xC0,0x3E,0x3E,0x07,0xC0,0x3E,
0x1E,0x07,0xC0,0x3E,0x0E,0x07,0xC0,0x3E,
0x0E,0x07,0xC0,0x3E,0x00,0x07,0xF0,0x3E,
0x00,0x07,0xFC,0x3E,0x00,0x07,0xFF,0x3E,
0x00,0x07,0xFF,0xBE,0x00,0x03,0xFF,0xFE,
0x00,0x01,0xFF,0xFE,0x00,0x00,0x7F,0xFE,
0x00,0x00,0x1F,0xFE,0x00,0x00,0x0F,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x00,0xFE,
0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x1E,
0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,
};
/*********************************************END OF FILE**********************************************/

FONT.H文件

#ifndef __FY_OLEDFONT_H
#define __FY_OLEDFONT_H

extern const unsigned char asc2_0608[95][6];
extern const unsigned char asc2_0612[95][12];
extern const unsigned char asc2_0816[95][16];
extern const unsigned char asc2_1224[95][36];
extern const unsigned char font_1212[][24];
extern const unsigned char font_2424[][72];
extern const char* font1212_table;
extern const char* font2424_table;
extern const unsigned char bmp_logo[];
#endif


/*********************************************END OF FILE**********************************************/

By Urien 2020年4月6日 17:44:05

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章