主頁 >  其他 > MSP430單片機,OLED,獨立按鍵,DS18B20溫度傳感器,繼電器,抽風機,LED燈構成的電子系統

MSP430單片機,OLED,獨立按鍵,DS18B20溫度傳感器,繼電器,抽風機,LED燈構成的電子系統

2021-09-10 12:25:57 其他

目錄

一、 設計要求

二、 總體設計和系統框圖

三、設計方案

四、電路原理總圖

五、軟體設計主程式及子程式



一、 設計要求

通過對時間定時控制器和溫度設定器進行設定,然后當達到時間定時控制器設定的開啟值時,離子風機和抽風機啟動,然后對設備主體內部進行散熱和除塵作用,通過離子風機吹出的離子風可以對內部進行防靜電處理,然后通過抽風機使內部的灰塵吸走,當達到設定的關閉值時,離子風機和抽風機關閉,當溫度感應器感應到設備主體內部的溫度高于設定值時,此時溫度設定器會控制風機進行啟動,對內部進行散熱處理,低于設定值時停止,(設定的時間間隔,溫度閾值,當前溫度由OLED顯示,LED表示作業狀態,)

二、 總體設計和系統框圖

三、設計方案

1. DS18B20:溫度檢測采用 DS18B20 溫度傳感器資料經過單片機處理后,與用戶設定(鍵盤能修改)的溫度上限(Tmax)

當前溫度>Tmax: 控制風機進行啟動

2. 定時器:時間到開啟值(開啟時長),離子風機(繼電器1閉合)和抽風機啟動(繼電器2閉合)時間到關閉值(關閉時長)離子風機(繼電器1打開)和抽風機啟動(繼電器2打開)

3.獨立按鍵

S1:選擇按鍵

S2:為“加”功能鍵

S3:為“減”功能鍵,

4.OLED

(1) 完成設定,顯示當前溫度,開啟時長,關閉時長,溫度上限

(2) 溫度上限設定顯示

(3) 時間間隔設定(開啟時長設定,關閉時長設定)

(4) 顯示作業模式(手動、自動)

5.LED

(1)LED4表示是否超溫

(2) LED3表示離子風機

(3) LED2表示抽風機

6.電源

(1) 3V3為單片機提供電源,

(2) 5V為繼電器,OLED,LED,DS18B20供電,

四、電路原理總圖

五、軟體設計主程式及子程式

#include <io430.h>
#include "oled.h"
#include "jidianqi.h"
#include "led.h"
#include "ds18b20.h"
void P2_IODect();
void P20_Onclick();		
void P21_Onclick();	
void P22_Onclick();	
void GPIO_init();
void WDT_init();
void xianshi();
unsigned int wendu;
unsigned char m=0,s=0,n=0,h=0,t=0,i=0,j=0,jiange=2;
unsigned char chixushijian=2,moshi=4,flaglizi=0,flagchoufenji=0;//moshi=0當前溫度moshi=1設定上限 moshi=2設定開啟時長單位分鐘 moshi=3設定關閉時長單位小時moshi=4定時、手動模式
unsigned char wendumax=30;
int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
  GPIO_init();			//IO初始化
  __enable_interrupt();		//使能總中斷

  WDT_init();						//開總中斷
  OLED_Init();		//初始化OLED 
  choufenledoff();
  liziledoff();

  while(1) 
  {

   if(moshi!= 4)
    {
      if(wendu>wendumax){chaowenledon();lizion();choufenon();}
    else {chaowenledoff();lizioff();choufenoff();}}
    
    if(j==0){j++;xianshi();}
 wendu=get_one_temperature();
 
  }
}
void WDT_init()
{
	//-----設定WDT為1000ms中斷-----
	WDTCTL=WDT_ADLY_1000;
	//-----WDT中斷使能-----
    IE1|=WDTIE;
}


#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
{
 if(moshi==0){ OLED_ShowNum(70,0,wendu,3,16);}
  s++;if(s==7){s=0;m++;t--;}
 
  if(m==60){m=0;h++;}
 if(moshi==4)
 { if((h==jiange)&&(i==0))
  {
    i++;
    lizion();
    choufenon();
    t=chixushijian+2;
  }
  if(t==2){choufenoff();lizioff();h=0;i=0;t=0;}}
  if(h==255){h=0;t=0;}

}


/******************************************************************************************************
 * 名       稱:GPIO_Init()
 * 功       能:設定按鍵和LED控制IO的方向,啟用按鍵IO的上拉電阻
 * 入口引數:無
 * 出口引數:無
 * 說       明:無
 * 范       例:無
 ******************************************************************************************************/
void GPIO_init()
{

	//-----配置中斷引數-----
	P2DIR &= ~(BIT0+BIT1+BIT2);                    // 設為輸入(可省略)
	P2IES |= (BIT0+BIT1+BIT2);                          // 設為下降沿中斷
	P2IE  |= (BIT0+BIT1+BIT2);                          // 允許中斷
}
/******************************************************************************************************
 * 名       稱:PORT2_ISR()
 * 功       能:回應P2口的外部中斷服務
 * 入口引數:無
 * 出口引數:無
 * 說       明:P2.0~P2.8共用了PORT1中斷,所以在PORT2_ISR()中必須查詢標志位P2IFG才能知道
 * 					 具體是哪個IO引發了外部中斷,P1IFG必須手動清除,否則將持續引發PORT2中斷,
 * 范       例:無
 ******************************************************************************************************/
#pragma vector = PORT2_VECTOR
__interrupt void PORT2_ISR(void)
{
	
	P2_IODect();								//檢測通過,則會呼叫事件處理函式
   	P2IFG=0;                            			//退出中斷前必須手動清除IO口中斷標志
}

/******************************************************************************************************
 * 名       稱:P2_IODect()
 * 功       能:判斷具體引發中斷的IO,并呼叫相應IO的中斷事件處理函式
 * 入口引數:無
 * 出口引數:無
 * 說       明:該函式兼容所有8個IO的檢測,請根據實際輸入IO激活“檢測代碼”,
 * 				
 * 范       例:無
 ******************************************************************************************************/
void P2_IODect()
{
	unsigned int Push_Key=0;
	//-----排除輸出IO的干擾后,鎖定唯一被觸發的中斷標志位-----
	Push_Key=P2IFG&(0x07);
	//-----延時一段時間,避開機械抖動區域-----
	__delay_cycles(10000);							//消抖延時
	//----判斷按鍵狀態是否與延時前一致-----
	if((P2IN&Push_Key)==0) 	                	//如果該次按鍵確實有效
   {
	 //----判斷具體哪個IO被按下,呼叫該IO的事件處理函式-----
	  switch(Push_Key){
	 case BIT0:	P20_Onclick();		break;
	 case BIT1: 	P21_Onclick();		break;
	 case BIT2: 	P22_Onclick();		break;
	 default:									break;		//任何情況下均加上default
	 }
   }
}
/******************************************************************************************************
 * 名       稱:P_Onclick()
 * 功       能:P1.3的中斷事件處理函式,即當鍵被按下后,下一步干什么
 * 入口引數:無
 * 出口引數:無
 * 說       明:使用事件處理函式的形式,可以增強代碼的移植性和可讀性
 * 范       例:無
 ******************************************************************************************************/

void P20_Onclick()//模式轉換moshi=0當前溫度moshi=1設定上限 moshi=2設定開啟時長單位分鐘 moshi=3設定關閉時長單位小時KEY3
{
  if(moshi==4){moshi=0;OLED_Clear();xianshi();}
  else  if(moshi==0){moshi=1;OLED_Clear();xianshi();}
  else  if(moshi==1){moshi=2;OLED_Clear();xianshi();}
  else  if(moshi==2){moshi=3;OLED_Clear();xianshi();}
  else  if(moshi==3){moshi=4;OLED_Clear();xianshi();}
  else  if(moshi==4){moshi=0;OLED_Clear();xianshi();}
}
void P21_Onclick()//數值++KEY1
{
  if(moshi==4){Set_Bit(P2DIR,BIT3);P2OUT ^= BIT3;  Set_Bit(P1DIR,BIT5);P1OUT ^= BIT5;}
else if(moshi==1)
  {
    wendumax++;
    if(wendumax==255)wendumax=0;
   OLED_ShowNum(70,4,wendumax,3,16);
    
  }
else if(moshi==2)
  {
    chixushijian++;
    if(chixushijian==255)chixushijian=0;
    OLED_ShowNum(70,4,chixushijian,3,16);
    
    }
else if(moshi==3)
  {
    jiange++;
    if(jiange==255)jiange=0;
    OLED_ShowNum(70,4,jiange,3,16);
    
    }

}
void P22_Onclick()//數值--KEY2
{
  if(moshi==4){Set_Bit(P2DIR,BIT4);P2OUT ^= BIT4; Set_Bit(P1DIR,BIT7);P1OUT ^= BIT7;}
else  if(moshi==1)
  {
   
    if(wendumax==0)wendumax=1;
     wendumax--;
     OLED_ShowNum(70,4,wendumax,3,16);
   }
else if(moshi==2)
  {    
    if(chixushijian==0)chixushijian=1;
    chixushijian--;
    OLED_ShowNum(70,4,chixushijian,3,16);
    }
else  if(moshi==3)
  {
    if(jiange==0)jiange=1;
    jiange--;  
    OLED_ShowNum(70,4,jiange,3,16);
    }
}
void xianshi()
{
    if(moshi==4)
  {
    OLED_ShowChinese(18,0,39,16);//歡迎使用
    OLED_ShowChinese(36,0,40,16);//
    OLED_ShowChinese(54,0,41,16);//
    OLED_ShowChinese(70,0,42,16);//
    
    OLED_ShowChinese(0,4,45,16);//當前模式為
    OLED_ShowChinese(18,4,46,16);//
  
    OLED_ShowChinese(36,4,52,16);//
    OLED_ShowChinese(54,4,53,16);//
    OLED_ShowChinese(70,4,47,16);//
      
      
    OLED_ShowChinese(0,6,48,16);//手動/定時
    OLED_ShowChinese(18,6,49,16);
    OLED_ShowChar(36,6,'/',16);
    OLED_ShowChinese(54,6,50,16);
    OLED_ShowChinese(70,6,51,16);
  }
  
  if(moshi==0)
  {
  
   
    OLED_ShowChinese(0,0,7,16);//當
    OLED_ShowChinese(18,0,8,16);//前
    OLED_ShowChinese(36,0,9,16);//溫
    OLED_ShowChinese(54,0,10,16);//度
    
    OLED_ShowChinese(0,2,12,16);//上
    OLED_ShowChinese(18,2,13,16);//限
    OLED_ShowChinese(36,2,9,16);//溫
    OLED_ShowChinese(54,2,10,16);//度
    OLED_ShowNum(70,2,wendumax,3,16);
    OLED_ShowChinese(0,4,34,16);//打開時長
    OLED_ShowChinese(18,4,35,16);//開
    OLED_ShowChinese(36,4,28,16);//時
    OLED_ShowChinese(54,4,36,16);//長
    OLED_ShowNum(70,4,chixushijian,3,16);
    OLED_ShowChinese(0,6,37,16);//關閉時長
    OLED_ShowChinese(18,6,38,16);//關閉
    OLED_ShowChinese(36,6,28,16);//時
    OLED_ShowChinese(54,6,36,16);//長
    OLED_ShowNum(70,6,jiange,3,16);}
    

else  if(moshi==1)//moshi=0當前溫度moshi=1設定上限 moshi=2設定開啟時長單位分鐘 moshi=3設定關閉時長單位小時  

  {  
    OLED_ShowChinese(0,0,15,16);//設
    OLED_ShowChinese(18,0,16,16);//置
    OLED_ShowChinese(36,0,43,16);//單位
    OLED_ShowChinese(54,0,44,16);//
    OLED_ShowChinese(70,0,11,16);//
      OLED_ShowChar(80,0,'C',16);
    OLED_ShowChinese(0,4,9,16);//溫
    OLED_ShowChinese(18,4,10,16);//度
    OLED_ShowChinese(36,4,12,16);//上
    OLED_ShowChinese(54,4,13,16);//限
    OLED_ShowNum(70,4,wendumax,3,16);}

else  if(moshi==2)
  {
  
    OLED_ShowChinese(0,0,15,16);//設
    OLED_ShowChinese(18,0,16,16);//置
    OLED_ShowChinese(36,0,43,16);//單位
    OLED_ShowChinese(54,0,44,16);//
   
    OLED_ShowChar(80,0,'m',16);
    OLED_ShowChinese(0,4,34,16);//打開時長
    OLED_ShowChinese(18,4,35,16);//開
    OLED_ShowChinese(36,4,28,16);//時
    OLED_ShowChinese(54,4,36,16);//長
    OLED_ShowNum(70,4,chixushijian,3,16);}

else  if(moshi==3)
  {
    
    OLED_ShowChinese(38,0,15,16);//設
    OLED_ShowChinese(56,0,16,16);//置
    OLED_ShowChinese(36,0,43,16);//單位
    OLED_ShowChinese(54,0,44,16);//
  
    OLED_ShowChar(80,0,'h',16);
    OLED_ShowChinese(0,4,37,16);//關閉時長
    OLED_ShowChinese(18,4,38,16);//關閉
    OLED_ShowChinese(36,4,28,16);//時
    OLED_ShowChinese(54,4,36,16);//長
    OLED_ShowNum(70,4,jiange,3,16);}
    
 
  
}

注意:開發環境為IAR,大家想用各個模塊添加頭檔案和函式檔案即可

子程式

//子程式
#include "ds18b20.h"

#define CPU_F ( (double) 1000000)
#define delay_us( x )   __delay_cycles( (long) (CPU_F * (double) x / 1000000.0) )
#define delay_ms( x )   __delay_cycles( (long) (CPU_F * (double) x / 1000.0) )

/************************************************
 ** 函式名稱 : void reset(void)
 ** 函式功能 : ds18b20復位函式
 ** 輸    入 : 無
 ** 輸    出 : 無
 ** 說    明 :
 ************************************************/
void reset(void)
{
    DQ_out; /* 先設為輸入口 */
    DQ_0; /* 主機發送復位脈沖,強制拉DQ至低電平 */
    delay_us(750); /* 延時500vs */
    DQ_1;
    delay_us(15);
}
//等待DS18B20的回應
//回傳1:未檢測到DS18B20的存在
//回傳0:存在
unsigned char DS18B20_Check(void)
{
    unsigned char retry = 0;
    DQ_in; //SET PA0 INPUT
    while (DQ_val && retry < 200)
    {
        retry++;
        delay_us(1);
    };
    if (retry >= 200)
        return 1;
    else
        retry = 0;
    while (!DQ_val && retry < 240)
    {
        retry++;
        delay_us(1);
    };
    if (retry >= 240)
        return 1;
    return 0;
}

//從DS18B20讀取一個位
//回傳值:1/0
unsigned char DS18B20_Read_Bit(void)            // read one bit
{
    unsigned char data;
    DQ_out;            //SET PA0 OUTPUT
    DQ_0;
    delay_us(2);
    DQ_1;
    DQ_in;            //SET PA0 INPUT
    delay_us(12);
    if (DQ_val)
        data = 1;
    else
        data = 0;
    delay_us(50);
    return data;
}
//從DS18B20讀取一個位元組
//回傳值:讀到的資料
unsigned char DS18B20_Read_Byte(void)    // read one byte
{
    unsigned char i, j, dat;
    dat = 0;
    for (i = 1; i <= 8; i++)
    {
        j = DS18B20_Read_Bit();
        dat = (j << 7) | (dat >> 1);
    }
    return dat;
}
//寫一個位元組到DS18B20
//dat:要寫入的位元組
void DS18B20_Write_Byte(unsigned char dat)
{
    unsigned char j;
    unsigned char testb;
    DQ_out;    //SET PA0 OUTPUT;
    for (j = 1; j <= 8; j++)
    {
        testb = dat & 0x01;
        dat = dat >> 1;
        if (testb)
        {
            DQ_0;    // Write 1
            delay_us(2);
            DQ_1;
            delay_us(60);
        }
        else
        {
            DQ_0;    // Write 0
            delay_us(60);
            DQ_1;
            delay_us(2);
        }
    }
}
//開始溫度轉換
void DS18B20_Start(void)    // ds1820 start convert
{
    reset();
    DS18B20_Check();
    DS18B20_Write_Byte(0xcc);    // skip rom
    DS18B20_Write_Byte(0x44);    // convert
}



/* 讀取溫度 */
unsigned int get_one_temperature(void)
{
    unsigned int Temp_l = 0, Temp_h = 0, Temp = 0;

   
    reset();
    DS18B20_Check();
    DS18B20_Write_Byte(0xcc);   
    DS18B20_Write_Byte(0xbe);                    // convert
    Temp_l = DS18B20_Read_Byte(); // LSB
    Temp_h = DS18B20_Read_Byte(); // MSB

    DS18B20_Start();                    // ds1820 start convert
    
    

	Temp=(Temp_l>>4)|(Temp_h<<4);	

    return (Temp); /* Temp是整型 */
}





#ifndef __DS18B20_H
#define __DS18B20_H

#include "io430.h"


#define DQ_1 P2OUT |= BIT5
#define DQ_0 P2OUT &= ~BIT5
#define DQ_in   P2DIR &= ~BIT5
#define DQ_out  P2DIR |= BIT5
#define DQ_val  (P2IN & BIT5)


unsigned int get_one_temperature(void);

#endif






#include"jidianqi.h"
#include"oled.h"
#include"led.h"
void choufenon()
{
  Set_Bit(P2DIR,BIT3);
  Set_Bit(P2OUT,BIT3);
choufenledon();
}
void lizion()
{
	Set_Bit(P2DIR,BIT4);
	Set_Bit(P2OUT,BIT4);
        liziledon();
}
void choufenoff()
{	Set_Bit(P2DIR,BIT3);	
	Clr_Bit(P2OUT,BIT3);
        choufenledoff();
	}
void lizioff()
{
	Set_Bit(P2DIR,BIT4);
	Clr_Bit(P2OUT,BIT4);
liziledoff();
	
}




#ifndef __jidianqi_H
#define __jidianqi_H
void choufenon();
void lizion();
void choufenoff();
void lizioff();
#endif  






#include"led.h"
#include"oled.h"

void liziledon()//led3
{  
  Set_Bit(P1DIR,BIT7);
 Clr_Bit(P1OUT,BIT7);
}
void liziledoff()//led2
{  
  Set_Bit(P1DIR,BIT7);	
  
   Set_Bit(P1OUT,BIT7);
}

void choufenledoff()//led1
{ 
  Set_Bit(P1DIR,BIT5);
  Set_Bit(P1OUT,BIT5);
}
void choufenledon()
{ 
  Set_Bit(P1DIR,BIT5);
  Clr_Bit(P1OUT,BIT5);
}
void chaowenledon()
{
  Set_Bit(P1DIR,BIT6);
  Clr_Bit(P1OUT,BIT6);
}
void chaowenledoff()
{
  Set_Bit(P1DIR,BIT6);
  Set_Bit(P1OUT,BIT6);
}







//led燈顯示
#ifndef __LED_H
#define __LED_H

void liziledon();//led3
void liziledoff();//led2
void choufenledoff();//led1
void choufenledon();
void chaowenledon();
void chaowenledoff();


#endif  





#include "oled.h"
#include "oledfont.h"  	 
//OLED的顯存
//存放格式如下.
//[0]0 1 2 3 ... 127	
//[1]0 1 2 3 ... 127	
//[2]0 1 2 3 ... 127	
//[3]0 1 2 3 ... 127	
//[4]0 1 2 3 ... 127	
//[5]0 1 2 3 ... 127	
//[6]0 1 2 3 ... 127	
//[7]0 1 2 3 ... 127 			   
void delay_ms(unsigned int ms)
{                         
  unsigned int a;
  while(ms)
  {
    a=1800;
    while(a--);
    ms--;
  }
  return;
}
//反顯函式
void OLED_ColorTurn(u8 i)
{
  if(i==0)
  {
    OLED_WR_Byte(0xA6,OLED_CMD);//正常顯示
  }
  if(i==1)
  {
    OLED_WR_Byte(0xA7,OLED_CMD);//反色顯示
  }
}

//螢屏旋轉180度
void OLED_DisplayTurn(u8 i)
{
  if(i==0)
  {
    OLED_WR_Byte(0xC8,OLED_CMD);//正常顯示
    OLED_WR_Byte(0xA1,OLED_CMD);
  }
  if(i==1)
  {
    OLED_WR_Byte(0xC0,OLED_CMD);//反轉顯示
    OLED_WR_Byte(0xA0,OLED_CMD);
  }
}


void OLED_WR_Byte(u8 dat,u8 cmd)
{	
  u8 i;			  
  if(cmd)
    OLED_DC_Set();
  else 
    OLED_DC_Clr();		  
  OLED_CS_Clr();
  for(i=0;i<8;i++)
  {			  
    OLED_SCL_Clr();
    if(dat&0x80)
    {
      OLED_SDA_Set();
    }
    else
    {
      OLED_SDA_Clr();
    }
    OLED_SCL_Set();
    dat<<=1;   
  }				 		  
  OLED_CS_Set();
  OLED_DC_Set();   	  
} 

//坐標設定

void OLED_Set_Pos(u8 x, u8 y) 
{ 
  OLED_WR_Byte(0xb0+y,OLED_CMD);
  OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
  OLED_WR_Byte((x&0x0f),OLED_CMD);
}   	  
//開啟OLED顯示    
void OLED_Display_On(void)
{
  OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ON
  OLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON
}
//關閉OLED顯示     
void OLED_Display_Off(void)
{
  OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFF
  OLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF
}		   			 
//清屏函式,清完屏,整個螢屏是黑色的!和沒點亮一樣!!!	  
void OLED_Clear(void)  
{  
  u8 i,n;		    
  for(i=0;i<8;i++)  
  {  
    OLED_WR_Byte (0xb0+i,OLED_CMD);    //設定頁地址(0~7)
    OLED_WR_Byte (0x00,OLED_CMD);      //設定顯示位置—列低地址
    OLED_WR_Byte (0x10,OLED_CMD);      //設定顯示位置—列高地址   
    for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA); 
  } //更新顯示
}

//在指定位置顯示一個字符,包括部分字符
//x:0~127
//y:0~63				 
//sizey:選擇字體 6x8  8x16
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 sizey)
{      	
  u8 c=0,sizex=sizey/2;
  u16 i=0,size1;
  if(sizey==8)size1=6;
  else size1=(sizey/8+((sizey%8)?1:0))*(sizey/2);
  c=chr-' ';//得到偏移后的值
  OLED_Set_Pos(x,y);
  for(i=0;i<size1;i++)
  {
    if(i%sizex==0&&sizey!=8) OLED_Set_Pos(x,y++);
    if(sizey==8) OLED_WR_Byte(asc2_0806[c][i],OLED_DATA);//6X8字號
    else if(sizey==16) OLED_WR_Byte(asc2_1608[c][i],OLED_DATA);//8x16字號
    //		else if(sizey==xx) OLED_WR_Byte(asc2_xxxx[c][i],OLED_DATA);//用戶添加字號
    else return;
  }
}
//m^n函式
u32 oled_pow(u8 m,u8 n)
{
  u32 result=1;	 
  while(n--)result*=m;    
  return result;
}				  
//顯示數字
//x,y :起點坐標
//num:要顯示的數字
//len :數字的位數
//sizey:字體大小		  
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 sizey)
{         	
  u8 t,temp,m=0;
  u8 enshow=0;
  if(sizey==8)m=2;
  for(t=0;t<len;t++)
  {
    temp=(num/oled_pow(10,len-t-1))%10;
    if(enshow==0&&t<(len-1))
    {
      if(temp==0)
      {
        OLED_ShowChar(x+(sizey/2+m)*t,y,' ',sizey);
        continue;
      }else enshow=1;
    }
    OLED_ShowChar(x+(sizey/2+m)*t,y,temp+'0',sizey);
  }
}
//顯示一個字符號串
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 sizey)
{
  u8 j=0;
  while (chr[j]!='\0')
  {		
    OLED_ShowChar(x,y,chr[j++],sizey);
    if(sizey==8)x+=6;
    else x+=sizey/2;
  }
}
//顯示漢字
void OLED_ShowChinese(u8 x,u8 y,u8 no,u8 sizey)
{
  u16 i,size1=(sizey/8+((sizey%8)?1:0))*sizey;
  for(i=0;i<size1;i++)
  {
    if(i%sizey==0) OLED_Set_Pos(x,y++);
    if(sizey==16) OLED_WR_Byte(Hzk[no][i],OLED_DATA);//16x16字號
    //		else if(sizey==xx) OLED_WR_Byte(xxx[c][i],OLED_DATA);//用戶添加字號
    else return;
  }				
}


//顯示圖片
//x,y顯示坐標
//sizex,sizey,圖片長寬
//BMP:要顯示的圖片
void OLED_DrawBMP(u8 x,u8 y,u8 sizex, u8 sizey,u8 BMP[])
{ 	
  u16 j=0;
  u8 i,m;
  sizey=sizey/8+((sizey%8)?1:0);
  for(i=0;i<sizey;i++)
  {
    OLED_Set_Pos(x,i+y);
    for(m=0;m<sizex;m++)
    {      
      OLED_WR_Byte(BMP[j++],OLED_DATA);	    	
    }
  }
} 



//初始化SSD1306					    
void OLED_Init(void)
{
  OLED_SSD1306_SCL_IO_INIT;
  OLED_SSD1306_SDA_IO_INIT;
  OLED_SSD1306_DC_IO_INIT;
  OLED_SSD1306_CS_IO_INIT;
  OLED_SSD1306_RES_IO_INIT;

  
  OLED_RES_Clr();
  delay_ms(200);
  OLED_RES_Set();
  
  OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
  OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
  OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
  OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness
  OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
  OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
  OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
  OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
  OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset	Shift Mapping RAM Counter (0x00~0x3F)
  OLED_WR_Byte(0x00,OLED_CMD);//-not offset
  OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
  OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
  OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
  OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
  OLED_WR_Byte(0x12,OLED_CMD);
  OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
  OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
  OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
  OLED_WR_Byte(0x02,OLED_CMD);//
  OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
  OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
  OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
  OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7) 
  OLED_Clear();
  OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/ 
}  




#ifndef __OLED_H
#define __OLED_H			  	 
#include	<io430.h>
#include	<in430.h>
#include	<intrinsics.h> 
#define  u8 unsigned char 
#define  u16 unsigned int
#define  u32 unsigned int
#define OLED_CMD  0	//寫命令
#define OLED_DATA 1	//寫資料



#define		Set_Bit(val, bitn)		(val |= (/*1 <<*/(bitn)))		//竚琘 1
#define		Clr_Bit(val, bitn)		(val &= ~(/*1<<*/(bitn)))		//竚琘 0
#define		Get_Bit(val, bitn)		(val & (1<<(bitn)) )		//眔琘
//----------------------------------------------------------------------------------
//OLED SSD1306 SPI  時鐘D0

#define		OLED_SSD1306_SCL_PIN_NUM		(BIT3)
      
#define		OLED_SSD1306_SCL_IO_INIT		(Set_Bit(P1DIR,OLED_SSD1306_SCL_PIN_NUM))
#define		OLED_SCL_Set()			        (Set_Bit(P1OUT,OLED_SSD1306_SCL_PIN_NUM))
#define		OLED_SCL_Clr()				(Clr_Bit(P1OUT,OLED_SSD1306_SCL_PIN_NUM))

//----------------------------------------------------------------------------------
//OLED SSD1306 SPI 資料D1
#define		OLED_SSD1306_SDA_PIN_NUM		(BIT4)

#define		OLED_SSD1306_SDA_IO_INIT		(Set_Bit(P1DIR,OLED_SSD1306_SDA_PIN_NUM))
#define		OLED_SDA_Set()				(Set_Bit(P1OUT,OLED_SSD1306_SDA_PIN_NUM))
#define		OLED_SDA_Clr()			        (Clr_Bit(P1OUT,OLED_SSD1306_SDA_PIN_NUM))

//----------------------------------------------------------------------------------
//OLED SSD1306 復位/RES

#define		OLED_SSD1306_RES_PIN_NUM		(BIT1)

#define		OLED_SSD1306_RES_IO_INIT		(Set_Bit(P1DIR,OLED_SSD1306_RES_PIN_NUM))
#define		OLED_RES_Set()				(Set_Bit(P1OUT,OLED_SSD1306_RES_PIN_NUM))
#define		OLED_RES_Clr()				(Clr_Bit(P1OUT,OLED_SSD1306_RES_PIN_NUM))

//----------------------------------------------------------------------------------
//OLED SSD1306 資料/命令DC

#define		OLED_SSD1306_DC_PIN_NUM			(BIT2)

#define		OLED_SSD1306_DC_IO_INIT			(Set_Bit(P1DIR,OLED_SSD1306_DC_PIN_NUM))
#define		OLED_DC_Set()				(Set_Bit(P1OUT,OLED_SSD1306_DC_PIN_NUM))
#define		OLED_DC_Clr() 				(Clr_Bit(P1OUT,OLED_SSD1306_DC_PIN_NUM))

//----------------------------------------------------------------------------------
//OLED SSD1306 片選CS

#define		OLED_SSD1306_CS_PIN_NUM			(BIT0)

#define		OLED_SSD1306_CS_IO_INIT			(Set_Bit(P1DIR,OLED_SSD1306_CS_PIN_NUM))
#define		OLED_CS_Set()				(Set_Bit(P1OUT,OLED_SSD1306_CS_PIN_NUM))
#define		OLED_CS_Clr()				(Clr_Bit(P1OUT,OLED_SSD1306_CS_PIN_NUM))
//----------------------------------------------------------------------------------

					   

//OLED控制用函式
void delay_ms(unsigned int ms);
void OLED_ColorTurn(u8 i);
void OLED_DisplayTurn(u8 i);
void OLED_WR_Byte(u8 dat,u8 cmd);
void OLED_Set_Pos(u8 x, u8 y);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Clear(void);
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 sizey);
u32 oled_pow(u8 m,u8 n);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 sizey);
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 sizey);
void OLED_ShowChinese(u8 x,u8 y,u8 no,u8 sizey);
void OLED_DrawBMP(u8 x,u8 y,u8 sizex, u8 sizey,u8 BMP[]);
void OLED_Init(void);
#endif  
	 




#ifndef __OLEDFONT_H
#define __OLEDFONT_H 	
#include	<io430.h>
#include	<in430.h>
#include	<intrinsics.h>
/************************************6*8的點陣************************************/
const unsigned char asc2_0806[][6] ={
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00},// sp
{0x00, 0x00, 0x00, 0x2f, 0x00, 0x00},// !
{0x00, 0x00, 0x07, 0x00, 0x07, 0x00},// "
{0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14},// #
{0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12},// $
{0x00, 0x62, 0x64, 0x08, 0x13, 0x23},// %
{0x00, 0x36, 0x49, 0x55, 0x22, 0x50},// &
{0x00, 0x00, 0x05, 0x03, 0x00, 0x00},// '
{0x00, 0x00, 0x1c, 0x22, 0x41, 0x00},// (
{0x00, 0x00, 0x41, 0x22, 0x1c, 0x00},// )
{0x00, 0x14, 0x08, 0x3E, 0x08, 0x14},// *
{0x00, 0x08, 0x08, 0x3E, 0x08, 0x08},// +
{0x00, 0x00, 0x00, 0xA0, 0x60, 0x00},// ,
{0x00, 0x08, 0x08, 0x08, 0x08, 0x08},// -
{0x00, 0x00, 0x60, 0x60, 0x00, 0x00},// .
{0x00, 0x20, 0x10, 0x08, 0x04, 0x02},// /
{0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E},// 0
{0x00, 0x00, 0x42, 0x7F, 0x40, 0x00},// 1
{0x00, 0x42, 0x61, 0x51, 0x49, 0x46},// 2
{0x00, 0x21, 0x41, 0x45, 0x4B, 0x31},// 3
{0x00, 0x18, 0x14, 0x12, 0x7F, 0x10},// 4
{0x00, 0x27, 0x45, 0x45, 0x45, 0x39},// 5
{0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30},// 6
{0x00, 0x01, 0x71, 0x09, 0x05, 0x03},// 7
{0x00, 0x36, 0x49, 0x49, 0x49, 0x36},// 8
{0x00, 0x06, 0x49, 0x49, 0x29, 0x1E},// 9
{0x00, 0x00, 0x36, 0x36, 0x00, 0x00},// :
{0x00, 0x00, 0x56, 0x36, 0x00, 0x00},// ;
{0x00, 0x08, 0x14, 0x22, 0x41, 0x00},// <
{0x00, 0x14, 0x14, 0x14, 0x14, 0x14},// =
{0x00, 0x00, 0x41, 0x22, 0x14, 0x08},// >
{0x00, 0x02, 0x01, 0x51, 0x09, 0x06},// ?
{0x00, 0x32, 0x49, 0x59, 0x51, 0x3E},// @
{0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C},// A
{0x00, 0x7F, 0x49, 0x49, 0x49, 0x36},// B
{0x00, 0x3E, 0x41, 0x41, 0x41, 0x22},// C
{0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C},// D
{0x00, 0x7F, 0x49, 0x49, 0x49, 0x41},// E
{0x00, 0x7F, 0x09, 0x09, 0x09, 0x01},// F
{0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A},// G
{0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F},// H
{0x00, 0x00, 0x41, 0x7F, 0x41, 0x00},// I
{0x00, 0x20, 0x40, 0x41, 0x3F, 0x01},// J
{0x00, 0x7F, 0x08, 0x14, 0x22, 0x41},// K
{0x00, 0x7F, 0x40, 0x40, 0x40, 0x40},// L
{0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F},// M
{0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F},// N
{0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E},// O
{0x00, 0x7F, 0x09, 0x09, 0x09, 0x06},// P
{0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E},// Q
{0x00, 0x7F, 0x09, 0x19, 0x29, 0x46},// R
{0x00, 0x46, 0x49, 0x49, 0x49, 0x31},// S
{0x00, 0x01, 0x01, 0x7F, 0x01, 0x01},// T
{0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F},// U
{0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F},// V
{0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F},// W
{0x00, 0x63, 0x14, 0x08, 0x14, 0x63},// X
{0x00, 0x07, 0x08, 0x70, 0x08, 0x07},// Y
{0x00, 0x61, 0x51, 0x49, 0x45, 0x43},// Z
{0x00, 0x00, 0x7F, 0x41, 0x41, 0x00},// [
{0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55},// 55
{0x00, 0x00, 0x41, 0x41, 0x7F, 0x00},// ]
{0x00, 0x04, 0x02, 0x01, 0x02, 0x04},// ^
{0x00, 0x40, 0x40, 0x40, 0x40, 0x40},// _
{0x00, 0x00, 0x01, 0x02, 0x04, 0x00},// '
{0x00, 0x20, 0x54, 0x54, 0x54, 0x78},// a
{0x00, 0x7F, 0x48, 0x44, 0x44, 0x38},// b
{0x00, 0x38, 0x44, 0x44, 0x44, 0x20},// c
{0x00, 0x38, 0x44, 0x44, 0x48, 0x7F},// d
{0x00, 0x38, 0x54, 0x54, 0x54, 0x18},// e
{0x00, 0x08, 0x7E, 0x09, 0x01, 0x02},// f
{0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C},// g
{0x00, 0x7F, 0x08, 0x04, 0x04, 0x78},// h
{0x00, 0x00, 0x44, 0x7D, 0x40, 0x00},// i
{0x00, 0x40, 0x80, 0x84, 0x7D, 0x00},// j
{0x00, 0x7F, 0x10, 0x28, 0x44, 0x00},// k
{0x00, 0x00, 0x41, 0x7F, 0x40, 0x00},// l
{0x00, 0x7C, 0x04, 0x18, 0x04, 0x78},// m
{0x00, 0x7C, 0x08, 0x04, 0x04, 0x78},// n
{0x00, 0x38, 0x44, 0x44, 0x44, 0x38},// o
{0x00, 0xFC, 0x24, 0x24, 0x24, 0x18},// p
{0x00, 0x18, 0x24, 0x24, 0x18, 0xFC},// q
{0x00, 0x7C, 0x08, 0x04, 0x04, 0x08},// r
{0x00, 0x48, 0x54, 0x54, 0x54, 0x20},// s
{0x00, 0x04, 0x3F, 0x44, 0x40, 0x20},// t
{0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C},// u
{0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C},// v
{0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C},// w
{0x00, 0x44, 0x28, 0x10, 0x28, 0x44},// x
{0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C},// y
{0x00, 0x44, 0x64, 0x54, 0x4C, 0x44},// z
{0x14, 0x14, 0x14, 0x14, 0x14, 0x14},// horiz lines

};


//16*16 ASCII字符集點陣
const unsigned char asc2_1608[][16]={	  
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00},/*"!",1*/
{0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00},/*"#",3*/
{0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00},/*"$",4*/
{0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00},/*"%",5*/
{0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10},/*"&",6*/
{0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00},/*"(",8*/
{0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00},/*")",9*/
{0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00},/*"*",10*/
{0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00},/*"/",15*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",16*/
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"1",17*/
{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",18*/
{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},/*"3",19*/
{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},/*"4",20*/
{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},/*"5",21*/
{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"6",22*/
{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",24*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},/*"9",25*/
{0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00},/*"<",28*/
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"=",29*/
{0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00},/*">",30*/
{0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00},/*"?",31*/
{0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00},/*"@",32*/
{0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},/*"A",33*/
{0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00},/*"B",34*/
{0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00},/*"C",35*/
{0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00},/*"D",36*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},/*"E",37*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00},/*"F",38*/
{0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00},/*"G",39*/
{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20},/*"H",40*/
{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"I",41*/
{0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00},/*"J",42*/
{0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00},/*"K",43*/
{0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00},/*"L",44*/
{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00},/*"M",45*/
{0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00},/*"N",46*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},/*"O",47*/
{0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00},/*"P",48*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00},/*"Q",49*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"R",50*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00},/*"S",51*/
{0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"T",52*/
{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"U",53*/
{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},/*"V",54*/
{0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00},/*"W",55*/
{0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20},/*"X",56*/
{0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"Y",57*/
{0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00},/*"Z",58*/
{0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00},/*"[",59*/
{0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00},/*"\",60*/
{0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",63*/
{0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20},/*"a",65*/
{0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"b",66*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00},/*"c",67*/
{0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20},/*"d",68*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00},/*"e",69*/
{0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"f",70*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00},/*"g",71*/
{0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"h",72*/
{0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00},/*"j",74*/
{0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00},/*"k",75*/
{0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"l",76*/
{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F},/*"m",77*/
{0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"n",78*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"o",79*/
{0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00},/*"p",80*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80},/*"q",81*/
{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00},/*"r",82*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00},/*"s",83*/
{0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00},/*"t",84*/
{0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20},/*"u",85*/
{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00},/*"v",86*/
{0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00},/*"w",87*/
{0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00},/*"x",88*/
{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00},/*"y",89*/
{0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40},/*"{",91*/
{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},/*"|",92*/
{0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/
};  
const unsigned char Hzk[][32]={
{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"",0*/
{0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"",1*/
{0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00,0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*",2*/
{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"",3*/
{0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"",4*/
{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"",5*/
{0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00},/*"",6*/
/*--  文字:  當  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x40,0x42,0x44,0x58,0x40,0x40,0x7F,0x40,0x40,0x50,0x48,0xC6,0x00,0x00,0x00,
0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00},//7

/*--  文字:  前  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00,
0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00},//8

/*--  文字:  溫  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},//9

/*--  文字:  度  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},//10

/*--  文字:  °  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//11
/*--  文字:  上  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00},//12

/*--  文字:  限  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xFE,0x22,0x5A,0x86,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
0x00,0xFF,0x04,0x08,0x07,0x00,0xFF,0x40,0x20,0x03,0x0C,0x14,0x22,0x41,0x40,0x00},//13

/*--  文字:  下  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x02,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x42,0x82,0x02,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x01,0x06,0x00,0x00,0x00},//14

/*--  文字:  設  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00,
0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00},//15

/*--  文字:  置  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x17,0x15,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x15,0x17,0x00,0x00,
0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x40,0x40,0x00},//16

/*--  文字:  正  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00,
0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00},//17

/*--  文字:  常  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x20,0x18,0x08,0xEA,0xAC,0xA8,0xA8,0xAF,0xA8,0xA8,0xAC,0xEA,0x08,0x28,0x18,0x00,
0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00},//18

/*--  文字:  工  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//19

/*--  文字:  作  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x80,0x60,0xF8,0x07,0x40,0x30,0x0F,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0x00,
0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x00,0x00},//20

/*--  文字:  異  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x7E,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x9E,0x80,0xE0,0x00,0x00,
0x08,0x88,0x48,0x28,0x1E,0x08,0x08,0x08,0x08,0x08,0xFE,0x08,0x08,0x08,0x08,0x00},//21

/*--  文字:  時  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00},//22

/*--  文字:  間  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xF8,0x01,0x06,0x00,0xF0,0x12,0x12,0x12,0xF2,0x02,0x02,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x00,0x00,0x00,0x1F,0x11,0x11,0x11,0x1F,0x00,0x40,0x80,0x7F,0x00,0x00},//23

/*--  文字:  隔  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xFE,0x22,0x5A,0x86,0x00,0x02,0x7A,0x4A,0x4A,0x4A,0x4A,0x4A,0x7A,0x02,0x00,
0x00,0xFF,0x04,0x08,0x07,0x00,0xFF,0x09,0x0B,0x0D,0x79,0x0D,0x4B,0x89,0x7F,0x00},//24

/*--  文字:  單  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,
0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00},//25

/*--  文字:  位  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x80,0x60,0xF8,0x07,0x10,0x90,0x10,0x11,0x16,0x10,0x10,0xD0,0x10,0x00,0x00,
0x01,0x00,0x00,0xFF,0x40,0x40,0x41,0x5E,0x40,0x40,0x70,0x4E,0x41,0x40,0x40,0x00},//26

/*--  文字:  小  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x20,0x40,0x80,0x00,0x00,
0x08,0x04,0x03,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x01,0x0E,0x00},//27

/*--  文字:  時  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00},//28

/*--  文字:  攝  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x10,0x10,0xFF,0x10,0x90,0x82,0xFE,0xAA,0xAA,0xAA,0xAA,0xFE,0x42,0x40,0x00,
0x04,0x44,0x82,0x7F,0x81,0x42,0x2A,0x12,0x6E,0x80,0x5E,0x22,0x53,0x8E,0x80,0x00},//29

/*--  文字:  氏  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xFC,0x44,0x44,0x44,0x44,0x44,0xFE,0x42,0x42,0x43,0x42,0x40,0x40,0x00,
0x00,0x00,0xFF,0x40,0x20,0x00,0x00,0x00,0x01,0x06,0x08,0x10,0x20,0x40,0xF8,0x00},//30

/*--  文字:  度  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},//31

/*--  文字:  加  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,0x20,0x7F,0x00,0x00},//32

/*--  文字:  減 --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x02,0x0C,0xC0,0x00,0xF8,0x08,0x48,0x48,0x48,0x08,0xFF,0x08,0x09,0x8A,0x00,
0x02,0x02,0x7F,0x80,0x40,0x3F,0x00,0x1E,0x92,0x5E,0x20,0x17,0x38,0x46,0xF1,0x00},//33
/*--  文字:  打  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x10,0x10,0xFF,0x10,0x90,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,
0x04,0x44,0x82,0x7F,0x01,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00},//34

/*--  文字:  開  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,
0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},//35

/*--  文字:  長  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x80,0x80,0x80,0x80,0xFF,0x80,0x80,0xA0,0x90,0x88,0x84,0x82,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0xFF,0x40,0x21,0x12,0x04,0x08,0x10,0x20,0x20,0x40,0x40,0x00},//36

/*--  文字:  關  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,
0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00},//37

/*--  文字:  閉  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xF8,0x01,0x22,0x20,0x22,0x22,0xA2,0xFA,0x22,0x22,0x22,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x00,0x08,0x04,0x02,0x11,0x20,0x1F,0x00,0x00,0x40,0x80,0x7F,0x00,0x00},//38

/*--  文字:  歡  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x04,0x24,0x44,0x84,0x64,0x9C,0x40,0x30,0x0F,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
0x10,0x08,0x06,0x01,0x82,0x4C,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x40,0x80,0x00},//39

/*--  文字:  迎  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x40,0x40,0x42,0xCC,0x00,0x00,0xFC,0x04,0x02,0x00,0xFC,0x04,0x04,0xFC,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x40,0x4F,0x44,0x42,0x40,0x7F,0x42,0x44,0x43,0x40,0x00},//40

/*--  文字:  使  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x80,0x60,0xF8,0x07,0x04,0xE4,0x24,0x24,0x24,0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,
0x00,0x00,0xFF,0x00,0x80,0x81,0x45,0x29,0x11,0x2F,0x41,0x41,0x81,0x81,0x80,0x00},//41

/*--  文字:  用  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00,
0x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},//42

/*--  文字:  單  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,
0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00},//43

/*--  文字:  位  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x80,0x60,0xF8,0x07,0x10,0x90,0x10,0x11,0x16,0x10,0x10,0xD0,0x10,0x00,0x00,
0x01,0x00,0x00,0xFF,0x40,0x40,0x41,0x5E,0x40,0x40,0x70,0x4E,0x41,0x40,0x40,0x00},//44


/*--  文字:  當  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x40,0x42,0x44,0x58,0x40,0x40,0x7F,0x40,0x40,0x50,0x48,0xC6,0x00,0x00,0x00,
0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00},//45

/*--  文字:  前  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00,
0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00},//46

/*--  文字:  為  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x20,0x22,0x2C,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0x20,0xE0,0x00,0x00,0x00,
0x80,0x40,0x20,0x10,0x08,0x06,0x01,0x00,0x01,0x46,0x80,0x40,0x3F,0x00,0x00,0x00},//47

/*--  文字:  手  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0x00,0x24,0x24,0x24,0x24,0x24,0xFC,0x22,0x22,0x22,0x23,0x22,0x00,0x00,0x00,
0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00},//48

/*--  文字:  動  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x40,0x44,0xC4,0x44,0x44,0x44,0x40,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x10,0x3C,0x13,0x10,0x14,0xB8,0x40,0x30,0x0E,0x01,0x40,0x80,0x40,0x3F,0x00,0x00},//49

/*--  文字:  定  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x0C,0x44,0x44,0x44,0x44,0x45,0xC6,0x44,0x44,0x44,0x44,0x44,0x14,0x0C,0x00,
0x80,0x40,0x20,0x1E,0x20,0x40,0x40,0x7F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00},//50

/*--  文字:  時  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00},//51

/*--  文字:  模  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x10,0xD0,0xFF,0x90,0x14,0xE4,0xAF,0xA4,0xA4,0xA4,0xAF,0xE4,0x04,0x00,0x00,
0x04,0x03,0x00,0xFF,0x00,0x89,0x4B,0x2A,0x1A,0x0E,0x1A,0x2A,0x4B,0x88,0x80,0x00},//52

/*--  文字:  式  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
{0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0x10,0xFF,0x10,0x10,0x11,0x16,0x10,0x00,
0x00,0x20,0x60,0x20,0x3F,0x10,0x10,0x10,0x00,0x03,0x0C,0x10,0x20,0x40,0xF8,0x00},//53


};//44

#endif

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299029.html

標籤:其他

上一篇:拉繩位移傳感器的有關知識建議大家收藏

下一篇:汽車行業全渠道一站式解決方案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more