#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
#define charw 16
#define charh 16
static const unsigned char PROGMEM chuan[]={0x08,0x40,0x08,0x40,0x08,0x40,0x13,0xF8,0x10,0x40,0x30,0x80,0x37,0xFE,0x50,0x80,
0x91,0x00,0x13,0xF8,0x10,0x08,0x11,0x10,0x10,0xA0,0x10,0x40,0x10,0x20,0x10,0x20};
static const unsigned char PROGMEM fa1[]={0x00,0x40,0x20,0x40,0x10,0x40,0x10,0x40,0x87,0xFC,0x40,0x40,0x40,0x40,0x10,0x40,
0x1F,0xFE,0x20,0x40,0xE0,0x80,0x21,0x00,0x22,0x10,0x24,0x08,0x2F,0xFC,0x04,0x04};
static const unsigned char PROGMEM xue1[]={0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};
static const unsigned char PROGMEM yuan[]={0x00,0x40,0x78,0x20,0x4B,0xFE,0x52,0x02,0x54,0x04,0x61,0xF8,0x50,0x00,0x48,0x00,
0x4B,0xFE,0x48,0x90,0x68,0x90,0x50,0x90,0x41,0x12,0x41,0x12,0x42,0x0E,0x44,0x00};
static const unsigned char *xueyuan[ ]={chuan, fa1, xue1, yuan};
static const unsigned char PROGMEM fa2[]={0x00,0x40,0x20,0x40,0x10,0x40,0x10,0x40,0x87,0xFC,0x40,0x40,0x40,0x40,0x10,0x40,
0x1F,0xFE,0x20,0x40,0xE0,0x80,0x21,0x00,0x22,0x10,0x24,0x08,0x2F,0xFC,0x04,0x04};
static const unsigned char PROGMEM xue2[]={0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};
static const unsigned char PROGMEM er1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00};
static const unsigned char PROGMEM er2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00};
static const unsigned char PROGMEM si[]={0x00,0x00,0x00,0x00,0x7F,0xFC,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
0x48,0x44,0x48,0x3C,0x50,0x04,0x60,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00};
static const unsigned char *banji[]={fa2,xue2,er1,er2,si};
static const unsigned char PROGMEM zhu[]={0x01,0x00,0x11,0x00,0x11,0x00,0x1F,0xF8,0x21,0x00,0x41,0x00,0x01,0x00,0xFF,0xFE,
0x03,0x80,0x05,0x40,0x09,0x20,0x11,0x10,0x21,0x08,0xC1,0x06,0x01,0x00,0x01,0x00};
static const unsigned char PROGMEM jiu[]={0x04,0x00,0x04,0x00,0x04,0x00,0x07,0xE0,0x08,0x20,0x08,0x20,0x10,0x40,0x20,0x40,0x40,0x80,0x00,0x80,0x01,0x40,0x02,0x40,0x04,0x20,0x08,0x10,0x30,0x08,0xC0,0x06};
static const unsigned char PROGMEM yi[]={0x08,0x80,0x08,0x40,0x08,0x40,0x17,0xFE,0x10,0x80,0x30,0x80,0x31,0x40,0x51,0x44,0x93,0x48,0x15,0x30,0x19,0x20,0x11,0x10,0x11,0x08,0x11,0x44,0x11,0x82,0x11,0x00};
static const unsigned char *xingming[]={zhu,jiu,yi};
void setup(){
display.begin(SSD1306_SWITCHCAPVCC,0x3C);}
void loop(){
display.clearDisplay();
for(int i=0;i<=3;i++)
display.drawBitmap(i*24,0,xueyuan[i],charw,charh,WHITE);
for(int j=0;j<=4;j++)
display.drawBitmap(j*24,22,banji[j],charw,charh,WHITE);
for(int k=0;k<=2;k++)
display.drawBitmap(k*24,44,xingming[k],charw,charh,WHITE);
display.display();
delay(1000);
display.clearDisplay(); //清理缓存
}