智能车学习(六)——OLED屏幕使用

一、代码展示

1、头文件:

#ifndef OLED_H_
#define OLED_H_


extern unsigned char Draw[];
extern const unsigned char Font_8x16[];
extern const unsigned char HanZi[][32];
extern const unsigned char Map[];


/*--------------------*OLED写数据*--------------------*/
void OLED_Write_Data(unsigned char Data);


/*--------------------*OLED写命令*--------------------*/
void OLED_Write_Command(unsigned char Cmd);


/*-------------------*设置位置*-------------------*/
void OLED_Set_Pos(unsigned char x,unsigned char y);


/*-------------------*填充*-------------------*/
void OLED_Fill(unsigned char Bmp_data);

/*---------------------*OLED局域清屏*---------------------*/
void OLEDPartClear(unsigned char x,unsigned char y,unsigned char xlen,unsigned char ylen);


/*---------------------*OLED清屏*---------------------*/
void OLED_Clear(void);


/*--------------------*OLED初始化*--------------------*/
void OLED_Init(void);   


/*-------------------*整型转字符串*-------------------*/
signed int Int_To_String(signed long Int_Num,signed char String[]);


/*------------------*浮点型转字符串*------------------*/
signed int Float_To_String(float Float_Num,signed char String[]);


/*-----------------*OLED写一个字符串*-----------------*/      
void OLED_Write_String(unsigned char x,unsigned char y,signed char String[]);


/*-----------------*OLED写一个字符*-------------------*/      
void OLED_Write_Char  (unsigned char x,unsigned char y,signed char Asc); 


/*-----------------*OLED写一个字符*-------------------*/      
void OLED_Write_Draw  (unsigned char x,unsigned char y,signed char Asc); 
void OLED_Write_Map(unsigned char x,unsigned char y,signed char Asc);


/*----------------*OLED写一个整型数据*----------------*/      
void OLED_Write_Int   (unsigned char x,unsigned char y,signed int Number);


/*---------------*OLED写一个浮点型数据*---------------*/
void OLED_Write_Float (unsigned char x,unsigned char y,float Number);


/*-----------------*OLED写一个汉字*--------------------*/
void OLED_Write_HanZi(unsigned char x,unsigned char y,unsigned char NO);


/*------------------*OLED写汉字数据专用*---------------*/
void OLED_Write_HZ_Data(unsigned char Data);
void OLED_Draw_Clover(unsigned char y,unsigned char num);
void OLED_Draw_style(void);


#endif

 

2、源文件:

#include "common.h"
#include "gpio.h"


#define OLED_SCL    PTB8_OUT    //K60&kl25引脚
#define OLED_SDA    PTB9_OUT
#define OLED_RST    PTB10_OUT
#define OLED_DC     PTB11_OUT
#define Dot_Size 2                  // 小数点后数位


unsigned char Draw[]=
{
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xff,//没电 0
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xa0,0xa0,0xa0,0xa0,0x80,0xff,//一格 1
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xb0,0xb0,0xb0,0xb0,0x80,0xff,//两格
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xb8,0xb8,0xb8,0xb8,0x80,0xff,//三格
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xbc,0xbc,0xbc,0xbc,0x80,0xff,//四格
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xbe,0xbe,0xbe,0xbe,0x80,0xff,//五格
  0xfc,0x04,0x07,0x01,0x01,0x07,0x04,0xfc,0xff,0x80,0xbf,0xbf,0xbf,0xbf,0x80,0xff,//六格
  0xfc,0x04,0x87,0x81,0x81,0x87,0x04,0xfc,0xff,0x80,0xbf,0xbf,0xbf,0xbf,0x80,0xff,//七格
  0xfc,0x04,0xc7,0xc1,0xc1,0xc7,0x04,0xfc,0xff,0x80,0xbf,0xbf,0xbf,0xbf,0x80,0xff,//八格
  0xfc,0x04,0xe7,0xe1,0xe1,0xe7,0x04,0xfc,0xff,0x80,0xbf,0xbf,0xbf,0xbf,0x80,0xff,//九格
  0xfc,0x04,0xf7,0xf1,0xf1,0xf7,0x04,0xfc,0xff,0x80,0xbf,0xbf,0xbf,0xbf,0x80,0xff,//十格
  
  0x00,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x07,0x07,0x1F,0x3F,0x19,0x01,//箭头11
  0x00,0xF8,0x04,0x04,0x04,0x04,0x38,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x00,//开锁12
  0x00,0xE0,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x00,//闭锁13
  0x00,0x00,0x00,0xFC,0xFC,0x18,0x18,0x00,0x00,0x3C,0x7E,0x67,0x67,0x7E,0x3C,0x00,//钥匙14
  0xc0,0x60,0x30,0x18,0x18,0x30,0x60,0xc0,0x01,0x01,0x1f,0x10,0x10,0x1f,0x01,0x01,//上档15
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//黑块16
  0xff,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xff,//方框17
  0x00,0x80,0xC0,0xE0,0xE0,0xC0,0x80,0x00,0x07,0x03,0x01,0x00,0x00,0x01,0x03,0x07,//单箭头18
  0xC0,0x60,0x30,0x18,0x18,0x30,0x60,0xC0,0x18,0x0C,0x06,0x03,0x03,0x06,0x0C,0x18,//双箭头19
  
};


const unsigned char Font_8x16[1520]=
{
  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 Map[]=
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF8,0xF8,0xF8,0xF8,0xF8,
  0xF8,0xF0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF0,
  0xF0,0xF0,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0xF8,0xFC,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF8,0xF0,0xE0,0xE0,0x00,0x00,0x00,
  0x00,0x00,0x01,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
  0x3F,0x3F,0x3F,0x3F,0x3F,0x07,0x01,0x00,0x00,0x3F,0x3F,0x7F,0x7F,0x7F,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x00,0x00,0x00,
  0x00,0xE0,0xF8,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFE,0xFE,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
  0xFC,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x07,0x0F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0x3F,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,
  0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,
  0x3F,0x3F,0x1F,0x0F,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF0,0xF8,0xFC,0xFC,0xF8,0xF0,0xF0,
  0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x87,0xE0,0xF0,
  0xF8,0xF8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xF0,0x60,0x00,
  0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,0xFE,0xFC,0xF8,0xF9,0xF1,0xF3,0xE7,
  0xCF,0x8F,0x0F,0x1F,0x1F,0x3F,0x1F,0x07,0x03,0x03,0xF1,0xFC,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xF0,0xE0,0x80,
  0x0F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0x7F,0x1F,0x86,0xC0,0xC0,0xF0,0xFC,0xF8,0xF8,0xF8,0xF3,0xF3,0xE7,0xEF,
  0xCF,0x9F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x01,
  0x00,0x00,0x07,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x0F,0x07,
  0x03,0xF1,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x1F,0x3F,
  0x7F,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,
  0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,
  0xFE,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,0xE1,0xC7,
  0x9F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0x7F,0x3F,0x1F,0x03,0x00,0x80,0x80,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,
  0x00,0x87,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0xFC,0xF0,0xC3,0xC7,0x0F,0x1F,0x1F,0x1F,0x0F,0x87,0xC7,0xE7,0xF3,0xF9,
  0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7C,
  0x00,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,
  0xBF,0xDF,0xEF,0xE7,0xF3,0xF8,0xFC,0xFE,0xFE,0xFC,0xF8,0xF1,0xC3,0x8F,0x3F,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF1,0xE0,
  0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0xE0,0xF0,0xFC,0xFE,0xFF,
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
  0xF1,0xE3,0x03,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x1F,0x3F,0x7F,
  0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
  0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};


const unsigned char style[]={
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,0xF8,
  0x7C,0x3C,0x1E,0x1E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x1E,
  0x1E,0x1E,0x3C,0x3C,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFE,0xFF,0x3F,0x03,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x01,0x1F,0xFF,0xFE,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xF8,0x80,0xC0,0xC0,0xC0,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xC0,0x00,0x00,
  0x00,0xF0,0xFC,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0xE0,0xFC,0xFF,0xBF,0x3F,0x78,0x70,0x70,0x60,0xE0,0xE0,0xC0,
  0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  0x80,0xC0,0xC0,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x06,0x8E,0x8E,0xFF,0xFF,0xFF,0xFF,0x73,0x71,0x39,0x38,0x18,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0x1F,0x0F,0xE0,0xFC,0xFF,
  0xFF,0x39,0x9C,0xCE,0xFF,0x3F,0x3F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
  0xF0,0xFC,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x01,0x03,0x07,0x1F,0xFE,0xFE,0xFC,0xEC,0xCC,0xDC,0x99,0xB9,0xB1,
  0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0xB3,0xF3,0xF3,0xF3,0xBB,0x9B,0xD9,0xDD,
  0xDF,0xCF,0xC7,0xC3,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x1E,0x0F,0xE7,
  0xF7,0xF3,0xE3,0xFF,0xFF,0xFF,0x1C,0x1E,0x1F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x07,0x07,0x07,0xFF,0xFF,0xFE,0x00,0xC0,0xF1,0xFB,0x3B,0x03,0xFF,
  0xFF,0xFF,0x08,0x78,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x80,0xCE,0xDF,0x9F,0x07,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x0F,0x1F,0xFF,0xF9,0xF3,0xE7,0x6F,0x6D,0x3D,0x39,0x00,0x00,
  0x00,0x00,0x00,0x00,0x80,0xF1,0xFD,0xFD,0xDD,0xDD,0x9D,0x1D,0x0E,0x0E,0x0F,0x0F,
  0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x9C,0x9F,0x8F,0x07,0x01,
  0x00,0x81,0x83,0x87,0x8F,0x1F,0x1E,0x3E,0x3C,0xBC,0xB8,0x38,0x38,0x38,0x30,0x80,
  0x80,0x80,0x00,0x00,0x3F,0x3F,0x3F,0x00,0x83,0x81,0x8E,0x1E,0x3C,0x3F,0xBF,0x8F,
  0x80,0x80,0x00,0x01,0x00,0x80,0x80,0x00,0x00,0x03,0x07,0x07,0x03,0x00,0x80,0x80,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
  0xF8,0xFC,0xBE,0x9F,0x9F,0xBF,0xF3,0xF3,0xE3,0x63,0x67,0x76,0x7E,0x7C,0x3C,0x3E,
  0xFF,0xF3,0xF3,0xB1,0x99,0xDB,0xFF,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x61,0x50,0x50,0x48,0x47,0x00,0x3F,0x61,
  0x40,0x40,0x61,0x3F,0x00,0x00,0x41,0x40,0x7F,0x40,0x40,0x00,0x21,0x44,0x44,0x44,
  0x3B,0x00,0x04,0x04,0x44,0x61,0x50,0x50,0x48,0x47,0x00,0x3F,0x61,0x40,0x40,0x61,
  0x3F,0x00,0x41,0x40,0x7F,0x40,0x40,0x00,0x10,0x18,0x16,0x13,0x11,0x7F,0x10,0x00,
  0x00,0x00,0x00,0x00,
};


const unsigned char Labi[]=
{
  
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x02,0x07,0x07,0x03,0x01,0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x0F,0x00,0x00,0x3F,0x3F,0x1F,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x03,0x3F,0x3F,0x3F,0x07,0xFF,0xFF,0xFF,0x07,0x00,0x00,
  0x1F,0xFF,0xF9,0xF1,0xFF,0x1F,0xDF,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,
  0x04,0x0F,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0x6F,0x1F,0xFF,0xFF,0xFF,0xF0,0xF0,0x00,
  0x00,0x01,0x03,0x07,0x07,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0x79,0x78,0x78,
  0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFB,0xFB,0xE3,0x07,0x1F,0xFF,0xFF,0x00,
  0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0xDE,0x7F,0xFB,0xED,0xFF,0xFF,0x3C,0x3E,0x1F,
  0x07,0xE0,0xE0,0xE0,0xC0,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x00,0x00,
  0x80,0xE0,0xE0,0xE0,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,
  0x00,0x00,0x00,0x80,0x80,0xF8,0xF8,0x00,0x80,0xE0,0xF8,0xFC,0xF8,0x00,0x00,0x80,
  0x80,0x00,0x00,0x00,0x7C,0x3E,0xBE,0xF8,0xC0,0x80,0x80,0xD8,0xFC,0xFE,0x7E,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


const unsigned char HanZi[][32]=
{
  
  0X00,0X00,0XFF,0XA0,0XA0,0XAF,0XBA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAF,0XA0,0XA0,0X00,
  0X02,0X0C,0XF0,0X01,0X05,0XE9,0XBD,0XAA,0XAA,0XAA,0XAD,0XA9,0XE1,0X01,0X01,0X00, //厦 0
  
  0X04,0X04,0X04,0X04,0X04,0X04,0X05,0XFE,0X05,0X04,0X04,0X04,0X04,0X0C,0X04,0X00,
  0X00,0X02,0X02,0X04,0X08,0X30,0XC0,0X00,0X80,0X60,0X10,0X08,0X04,0X06,0X04,0X00, //大 1
  
  0X00,0X00,0X00,0X1F,0X12,0X32,0X52,0X92,0X12,0X12,0X12,0X3F,0X10,0X00,0X00,0X00,
  0X00,0X00,0X00,0XFF,0X22,0X22,0X22,0X22,0X22,0X22,0X22,0XFF,0X00,0X00,0X00,0X00, //自 2
  
  0X04,0X24,0X24,0X27,0X64,0X2C,0X04,0X08,0X08,0XFF,0X08,0X08,0X08,0X1F,0X08,0X00,
  0X10,0X28,0XD0,0X10,0X10,0X51,0X32,0X0C,0X30,0XC0,0X02,0X01,0X02,0XFC,0X00,0X00, //动 3
  
  0X01,0X02,0X04,0X1F,0XE0,0X00,0X00,0X00,0XFF,0X02,0X04,0X08,0X18,0X00,0X00,0X00,
  0X00,0X00,0X00,0XFF,0X00,0X20,0X40,0X80,0XFC,0X02,0X02,0X02,0X02,0X02,0X0E,0X00, //化 4
  
  0X04,0X14,0XE4,0X27,0X3C,0X25,0X64,0X24,0X04,0X3F,0X21,0X21,0X21,0X7F,0X20,0X00,
  0X20,0X40,0X80,0X3F,0X2A,0X2A,0XEA,0X2A,0X2A,0XAA,0X2A,0X7E,0X20,0X80,0X00,0X00, //智 5
  
  0X08,0X1B,0X2A,0XCA,0X0A,0X3B,0X0C,0X00,0XFE,0X09,0X11,0X21,0X61,0X07,0X00,0X00,
  0X00,0XFF,0X90,0X92,0X91,0XFE,0X00,0X00,0X7E,0X09,0X11,0X21,0X61,0X01,0X07,0X00, //能 6
  
  0X00,0X20,0X23,0X25,0X29,0X31,0XE1,0X2F,0X21,0X21,0X23,0X21,0X60,0X20,0X00,0X00,
  0X20,0X20,0X20,0X20,0X20,0X20,0X20,0XFF,0X20,0X20,0X20,0X20,0X20,0X60,0X20,0X00, //车 7
  
  0X08,0X44,0X26,0X30,0X02,0X02,0X3F,0X04,0X04,0XFF,0X08,0X08,0X1F,0X08,0X00,0X00,
  0X20,0X20,0X7F,0X80,0X00,0X00,0XFC,0X02,0X02,0XFA,0X22,0X12,0XE2,0X02,0X0E,0X00, //池 8
  
  0X00,0X00,0X20,0X20,0XFF,0X24,0X24,0X24,0X24,0X24,0XFF,0X20,0X20,0X00,0X00,0X00,
  0X10,0X10,0X11,0X12,0XF6,0X90,0X90,0X90,0X90,0X90,0XF4,0X12,0X13,0X30,0X10,0X00, //其 9
  
  0X08,0X08,0X49,0X49,0X49,0X7F,0X49,0X49,0X49,0X49,0X49,0XFF,0X48,0X18,0X08,0X00,
  0X02,0X04,0X08,0X30,0XFF,0X22,0X22,0X22,0X22,0X22,0X22,0X22,0X7F,0X20,0X00,0X00, //君 10
  
  0X08,0X08,0X08,0XB0,0XFF,0X09,0X08,0X00,0X08,0X0B,0XFF,0X09,0X08,0X18,0X08,0X00,
  0X10,0X20,0XC0,0X00,0XFF,0X00,0X90,0X20,0XC0,0X00,0XFF,0X00,0XC0,0X60,0X40,0X00, //林 11
  
  0X00,0X44,0X54,0X54,0X54,0X54,0X54,0X57,0X54,0X54,0X54,0X54,0XFE,0X40,0X00,0X00,
  0X01,0X01,0X82,0X42,0X64,0X08,0X30,0XC0,0X30,0X08,0X24,0X44,0XC2,0X03,0X02,0X00, //灵 12
  
  0X10,0X10,0X10,0X11,0X12,0X14,0X18,0XFF,0X18,0X14,0X12,0X11,0X10,0X30,0X10,0X00,
  0X40,0X41,0X8E,0X00,0X00,0X08,0X06,0XE0,0X08,0X06,0X00,0X08,0X84,0XC3,0X80,0X00, //杰 13
  
  0X00,0X1F,0X12,0X12,0X12,0X12,0XFF,0X12,0X12,0X12,0X12,0X3F,0X10,0X00,0X00,0X00,
  0X00,0XE0,0X40,0X40,0X40,0X40,0XFC,0X42,0X42,0X42,0X42,0XE2,0X02,0X0E,0X00,0X00, //电 14
  
  0X08,0X08,0X0B,0XFF,0X09,0X08,0X00,0X3F,0X20,0X20,0X20,0X7F,0X20,0X00,0X00,0X00,
  0X20,0XC0,0X00,0XFF,0X01,0X82,0X04,0XF8,0X00,0X00,0X00,0XFC,0X02,0X02,0X0E,0X00, //机 15
  
  0X01,0X01,0X3F,0X69,0XA5,0X3F,0X04,0X18,0X13,0X90,0X50,0X10,0X11,0X14,0X18,0X00,
  0X02,0X04,0XF8,0X42,0X21,0XFE,0X00,0X00,0XFC,0X22,0X42,0X82,0X02,0X0E,0X00,0X00, //舵 16
  
  0X04,0X04,0X04,0X14,0X15,0X36,0XDC,0X14,0X15,0X56,0X35,0X14,0X04,0X0C,0X04,0X00,
  0X20,0X21,0X41,0X81,0X52,0X52,0X92,0XA4,0X24,0X48,0X08,0X90,0X40,0X60,0X40,0X00, //参 17
  
  0X08,0X49,0X2A,0X0C,0XFF,0X0A,0X29,0X4C,0X1B,0XE8,0X08,0X08,0X0F,0X18,0X08,0X00,
  0X40,0X41,0X72,0XCC,0X44,0X4A,0X71,0X02,0XC4,0X28,0X10,0X68,0X86,0X03,0X02,0X00, //数 18
  
  0X02,0X3C,0X08,0XFF,0X09,0X05,0X08,0XF8,0X0F,0X08,0X0F,0X08,0X08,0X1F,0X08,0X00,
  0X40,0X40,0X80,0XFF,0X00,0X08,0X30,0XC2,0X0C,0X70,0X82,0X01,0X02,0XFC,0X00,0X00, //物 19
};


#define X_WIDTH 128
#define Y_WIDTH 64
/*--------------------*OLED写数据*--------------------*/
void OLED_Write_Data(unsigned char Data)
{
  unsigned char Temp_i=8;
  OLED_DC=1;;
  OLED_SCL=0; 
  while(Temp_i--)
  { 
    if(Data&0x80){OLED_SDA=1;}
    else{OLED_SDA=0;}
    OLED_SCL=1; 
    asm("nop");;
    asm("nop");;
    asm("nop");;
    OLED_SCL=0;;
    Data<<=1;
  }
}


/*--------------------*OLED写命令*--------------------*/
void OLED_Write_Command(unsigned char Cmd)
{
  unsigned char Temp_i=8;    
  OLED_DC=0;;
  OLED_SCL=0;;
  while(Temp_i--)
  {
    if(Cmd&0x80){OLED_SDA=1;}
    else{OLED_SDA=0;;}
    OLED_SCL=1;;
    
    asm("nop");;
    
    asm("nop");;
    
    asm("nop");;
    
    OLED_SCL=0;;
    Cmd<<=1;;   
  }     
}


/*-------------------*整型转字符串*-------------------*/
void OLED_Set_Pos(unsigned char x,unsigned char y)
{ 
  OLED_Write_Command(0xb0+y);
  OLED_Write_Command(((x&0xf0)>>4)|0x10);
  OLED_Write_Command(x&0x0f);
} 


/*-------------------*整型转字符串*-------------------*/
void OLED_Fill(unsigned char Bmp_data)
{
  unsigned char y,x;
  
  for(y=0;y<8;y++)
  {
    OLED_Write_Command(0xb0+y);
    OLED_Write_Command(0x01);
    OLED_Write_Command(0x10);
    for(x=0;x<X_WIDTH;x++)
      OLED_Write_Data(Bmp_data);
  }
}


/*----------*OLED清除某一局部,参数为左上角坐标加上x,y轴要清楚的长度*----------*/
void OLEDPartClear(unsigned char x,unsigned char y,unsigned char xlen,unsigned char ylen)
{
  unsigned char temp1=0,temp2=0;
  for(temp1=0;temp1<xlen;temp1++)
  {
    OLED_Write_Command(0xb0+x+temp1);
    OLED_Write_Command(0x01);
    OLED_Write_Command(0x10);
    for(temp2=y;temp2<y+ylen;temp2++)
      OLED_Write_Data(0X00);
  }
}


/*---------------------*OLED清屏*---------------------*/
void OLED_Clear(void)
{
  OLED_Fill(0x00);
}


/*--------------------*OLED初始化*--------------------*/
void OLED_Init(void)
{
  unsigned int Temp_Count;
  
  gpio_init(PTB8,GPO,0);  //OLED用IO口初始化为输出
  gpio_init(PTB9,GPO,0);
  gpio_init(PTB10,GPO,0);
  gpio_init(PTB11,GPO,0);
  
  OLED_SCL=1;
  OLED_RST=0;
  for(Temp_Count=0;Temp_Count<50000;Temp_Count++);
  
  OLED_RST=1;
  //从上电到下面开始初始化要有足够的时间,即等待RC复位完毕
  OLED_Write_Command(0xAE|0x00);                            // Display Off (0x00/0x01)
  OLED_Write_Command(0xD5);OLED_Write_Command(0x80);    // Set Clock as 100 Frames/Sec
  OLED_Write_Command(0xA8);OLED_Write_Command(0x3F);    // 1/64 Duty (0x0F~0x3F)
  OLED_Write_Command(0xD3);OLED_Write_Command(0x00);    // Shift Mapping RAM Counter (0x00~0x3F)
  OLED_Write_Command(0x40|0x00);                            // Set Mapping RAM Display Start Line (0x00~0x3F)
  OLED_Write_Command(0x8D);OLED_Write_Command(0x10|0x04);        // Enable Embedded DC/DC Converter (0x00/0x04)
  OLED_Write_Command(0x20);OLED_Write_Command(0x02);              // Set Page Addressing Mode (0x00/0x01/0x02)
  OLED_Write_Command(0xA0|0x01);                      // Set SEG/Column Mapping     0x00左右反置 0x01正常
  OLED_Write_Command(0xC0|0x08);                            // Set COM/Row Scan Direction 0x00上下反置 0x08正常
  OLED_Write_Command(0xDA);OLED_Write_Command(0x02|0x10);        // Set Sequential Configuration (0x00/0x10)
  OLED_Write_Command(0x81);OLED_Write_Command(0xCF);      // Set SEG Output Current
  OLED_Write_Command(0xD9);OLED_Write_Command(0xF1);            // Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  OLED_Write_Command(0xDB);OLED_Write_Command(0x40);                // Set VCOM Deselect Level
  OLED_Write_Command(0xA4|0x00);                          // Disable Entire Display On (0x00/0x01)
  OLED_Write_Command(0xA6|0x00);                          // Disable Inverse Display On (0x00/0x01)  
  OLED_Write_Command(0xAE|0x01);                          // Display On (0x00/0x01)
  OLED_Clear();                                       // 初始清屏
  OLED_Set_Pos(0,0); 
} 


/*-------------------*整型转字符串*-------------------*/
signed int Int_To_String(signed long Int_Num,signed char String[])
// 返回字符串长度
{
  signed int Num_Length=0;
  signed char Negative_Flag=0;
  signed char *Point_p=String;                //做换向时用的指针
  signed char *Point_s=String;
  if(Int_Num<0)
  {
    Negative_Flag=1;
    Int_Num=0-Int_Num;
  }
  if(Int_Num==0)
    String[Num_Length++]=0;
  while(Int_Num>0)
  {
    String[Num_Length++]=Int_Num%10+0;
    Int_Num=Int_Num/10;
  }
  if(Negative_Flag)
    String[Num_Length++]=-;
  String[Num_Length]=\0;
  Point_p=String+Num_Length-1;                //将P指针指向字符串结束标志之前
  
  for(;Point_p-Point_s>0;Point_p--,Point_s++) //将字符串中存储的数调头   
  {   
    *Point_s^=*Point_p;   
    *Point_p^=*Point_s;   
    *Point_s^=*Point_p;   
  }   
  return(Num_Length);
}


/*------------------*浮点型转字符串*------------------*/
signed int Float_To_String(float Float_Num,signed char String[])
// Dot_Size为小数点后边保留位数
// 返回字符串长度
{
  signed int Num_Length=0;
  signed int Temp_i=0;
  signed char *Point_p=String;                //做换向时用的指针
  signed char *Point_s=String;
  signed char Negative_Flag=0;
  signed long Predot_Num;
  signed long Afterdot_Num;
  float Afterdot_Float;
  
  if(Float_Num<0)
  {
    Negative_Flag=1;
    Float_Num=0-Float_Num;
  }
  
  Predot_Num=(signed long)Float_Num;          //将小数点之前的数变为整数
  Afterdot_Float=Float_Num-Predot_Num;        //单独取出小数点之后的数
  for(Temp_i=Dot_Size;Temp_i>0;Temp_i--)
  {
    Afterdot_Float=Afterdot_Float*10;
  }
  Afterdot_Num=(signed long)Afterdot_Float;
  
  Temp_i=Dot_Size;
  
  while(Afterdot_Num>0|Temp_i>0)
  {
    Temp_i--;
    String[Num_Length++]=Afterdot_Num%10+0;
    Afterdot_Num=Afterdot_Num/10;
  }
  String[Num_Length++]=.;
  
  if(Predot_Num==0)                           //处理小数点前为0的情况
    String[Num_Length++]=0;
  
  while(Predot_Num>0)
  {
    String[Num_Length++]=Predot_Num%10+0;
    Predot_Num=Predot_Num/10;
  }
  
  if(Negative_Flag==1)
    String[Num_Length++]=-;
  String[Num_Length]=\0;                    //加上字符串结束标志
  
  Point_p=String+Num_Length-1;                //将P指针指向字符串结束标志之前
  
  for(;Point_p-Point_s>0;Point_p--,Point_s++) //将字符串中存储的数调头   
  {   
    *Point_s^=*Point_p;   
    *Point_p^=*Point_s;   
    *Point_s^=*Point_p;   
  }   
  
  return(Num_Length);
}


/*-----------------*OLED写一个字符串*-----------------*/      
void OLED_Write_String(unsigned char x,unsigned char y,signed char String[])
{
  unsigned char Temp_Char=0,Temp_i=0,Temp_j=0;
  if(x>7) return;   
  while(String[Temp_j]!=\0)
  {    
    Temp_Char=String[Temp_j]-32;
    if(y>120){y=0;x++;}
    OLED_Set_Pos(y,x);    
    for(Temp_i=0;Temp_i<8;Temp_i++) 
      OLED_Write_Data(Font_8x16[Temp_Char*16+Temp_i]);
    OLED_Set_Pos(y,x+1);    
    for(Temp_i=0;Temp_i<8;Temp_i++)     
      OLED_Write_Data(Font_8x16[Temp_Char*16+Temp_i+8]);  
    y+=8;
    Temp_j++;
  }
}


/*-----------------*OLED写一个字符*-------------------*/      
void OLED_Write_Char(unsigned char x,unsigned char y,signed char Asc) 
{
  signed char Temp_String[2];
  y=y*8;        
  Temp_String[0]=Asc;    
  Temp_String[1]=\0;                              //字母占一个字节
  OLED_Write_String(x,y,Temp_String);            //显示字母
}


/*-----------------*OLED写一个字符*-------------------*/      
void OLED_Write_Draw(unsigned char x,unsigned char y,signed char Asc) 
{
  unsigned char Temp_i;
  unsigned char Temp_Char;
  y=y*8;
  if(y>120) return;
  if(x>7) return;
  Temp_Char=Asc;
  
  OLED_Set_Pos(y,x);    
  for(Temp_i=0;Temp_i<8;Temp_i++)     
    OLED_Write_Data(Draw[Temp_Char*16+Temp_i]);
  OLED_Set_Pos(y,x+1);    
  for(Temp_i=0;Temp_i<8;Temp_i++)     
    OLED_Write_Data(Draw[Temp_Char*16+Temp_i+8]);  
}


void OLED_Write_Map(unsigned char x,unsigned char y,signed char Asc) 
{
  unsigned char Temp_i;
  unsigned char Temp_Char;
  y=y*8;
  
  Temp_Char=Asc;
  
  OLED_Set_Pos(y,x);    
  for(Temp_i=0;Temp_i<8;Temp_i++)     
    OLED_Write_Data(Map[Temp_Char*16+Temp_i]);
  OLED_Set_Pos(y,x+1);    
  for(Temp_i=0;Temp_i<8;Temp_i++)     
    OLED_Write_Data(Map[Temp_Char*16+Temp_i+8]);  
}


/*----------------*OLED写一个整型数据*----------------*/      
void OLED_Write_Int(unsigned char x,unsigned char y,signed int Number)
{
  if(x>7) return;
  signed char Temp_Buf[17];
  (void)Int_To_String(Number,Temp_Buf);
  OLED_Write_String(x,y,Temp_Buf);   
}


/*---------------*OLED写一个浮点型数据*---------------*/
void OLED_Write_Float(unsigned char x,unsigned char y,float Number)
{
  signed char Temp_Buf[17];
  (void)Float_To_String(Number,Temp_Buf);
  OLED_Write_String(x,y,Temp_Buf);   
}


/*--------------------*OLED写汉字数据专用*--------------------*/
void OLED_Write_HZ_Data(unsigned char Data)
{
  unsigned char Temp_i=8;
  OLED_DC=1;;
  OLED_SCL=0;
  while(Temp_i--)
  {
    if(Data&0x01){OLED_SDA=1;}
    else{OLED_SDA=0;}
    OLED_SCL=1;
    asm("nop");;
    asm("nop");;
    asm

 

二、使用方法:

     初始化之后就可以直接调用头文件的方法即可

文章来自:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4912171.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3