update panel & chip datasheet

This commit is contained in:
YXZhu
2025-11-15 23:06:12 +08:00
parent 116a1de56b
commit 7c94d3d142
35 changed files with 8276 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,355 @@
#include "DEPG0150BBS810F0MP-M7.h"
#include "Image.h"
void EpaperIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); // 使能PB端口时钟
// EPAPER_BS N
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// EPAPER_EN
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// SPI_CLK-->PB13 SPI_MOSI--->PB15
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// CS-->PC6 D/C--->PC7 RES-->PC8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// BUSY--->PC9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 下拉输入
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIO
Epaper_BS = 0;
}
void SPI_DATA_IO_Init(u8 mode)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//'??PB??????
if(mode==SPI_OUT)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //???????, ???????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
if(mode==SPI_IN)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //????????
GPIO_Init(GPIOB, &GPIO_InitStructure); //??'??GPIO
}
}
void Epaper_Spi_WriteByte(u8 TxData)
{
u8 TempData;
u8 scnt;
TempData = TxData;
SPI_DATA_IO_Init(SPI_OUT);
SPI_CLK = 0;
for (scnt = 0; scnt < 8; scnt++)
{
if (TempData & 0x80)
SPI_MOSI = 1;
else
SPI_MOSI = 0;
SPI_CLK = 1;
delay_us(5);
SPI_CLK = 0;
TempData = TempData << 1;
delay_us(5);
}
}
void Epaper_READBUSY(void)
{
while(1)
{
if(Epaper_BUSY==0) break;
delay_us(5) ;
}
delay_us(100) ;
}
void Epaper_Write_Command(u8 cmd)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 0; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(cmd);
delay_us(5);
Epaper_CS = 1;
}
void Epaper_Write_Data(u8 data)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 1; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(data);
delay_us(5);
Epaper_CS = 1;
}
/*
* 函数名:Epaper_Init
* 描述 :电子纸初始化程序
* 输入 :无
* 输出 :无
*/
void Epaper_Initial(void)
{
Epaper_EN=1; //open the 3V power
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
Epaper_Write_Command(0x12);
Epaper_READBUSY();
Epaper_Write_Command(0x01); //驱动输出控制 drive output control
Epaper_Write_Data(Y_Addr_Start_L); //Y 的低字节
Epaper_Write_Data(Y_Addr_Start_H); //Y 的高字节
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x11); //Data entry mode setting
Epaper_Write_Data(0x01); //00 Y decrement, X decrement,
//01 Y decrement, X increment,
//10 Y increment, X decrement,
//11 Y increment, X increment
Epaper_Write_Command(0x44); // Set RAM X - address Start / End position
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Data(X_Addr_End);
Epaper_Write_Command(0x45); // Set RAM Y - address Start / End position
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Data(Y_Addr_End_L);
Epaper_Write_Data(Y_Addr_End_H);
Epaper_Write_Command(0x4E); //Set RAM X address counter
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Command(0x4F); //Set RAM Y address counter
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Command(0x3C); //Border设置 Border setting
Epaper_Write_Data(0x05);
Epaper_Write_Command(0x21);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x3C); // border folating
Epaper_Write_Data(0x80);
}
void Epaper_Initial_partial(void)
{
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
// Epaper_Write_Command(0x12); //partial update need remove 0x12 soft reset
// Epaper_READBUSY();
Epaper_Write_Command(0x3C); // border folating
Epaper_Write_Data(0x80);
}
void Epaper_Update_and_Deepsleep_full_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xF7);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Update_and_Deepsleep_partial_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xFF);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Load_White( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0xff);
}
}
void Epaper_Load_Black( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0x00);
}
}
void Epaper_load_image_new(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 tempcol1=0;
u32 templine=0;
u32 templine1=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
Epaper_Write_Command(0x26); //DTM2
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine1*MAX_COLUMN_BYTES+tempcol1);
templine1++;
if(templine1>=MAX_LINE_BYTES)
{
tempcol1++;
templine1=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Epaper_load_image_new_patial(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 templine=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Display_black( )
{
Epaper_Initial( );
Epaper_Load_Black( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_white( )
{
Epaper_Initial( );
Epaper_Load_White( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new(u8 *BN_DTM)
{
Epaper_Initial( );
Epaper_load_image_new((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new_partial_update(u8 *BN_DTM)
{
Epaper_Initial_partial( );
Epaper_load_image_new_patial((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
int main()
{
EpaperIO_Init();
delay_init();
Display_black( );
Display_white( );
Display_image_new((u8*)dancika_image1);//The full-update before partial haves to send 24ram and 26 ram the same data
// if you won't execute partial update after full-update you just send the image to 24 will be OK
Display_image_new_partial_update((u8*)dancika_image2);//just send to 24 will be ok
Display_image_new_partial_update((u8*)dancika_image3);
Display_image_new_partial_update((u8*)dancika_image4);
Display_image_new_partial_update((u8*)dancika_image5);
}
@@ -0,0 +1,26 @@
#include "sys.h"
#include "delay.h"
#define SPI_OUT 1
#define SPI_IN 0
#define Epaper_EN PAout(12) // Epaper_EN
#define Epaper_BUSY GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) //
#define Epaper_RESET PCout(8) // RESET
#define Epaper_BS PAout(8) // BS
#define Epaper_DC PCout(7) // D/C#
#define Epaper_CS PCout(6) //
#define SPI_CLK PBout(13) //
#define SPI_MOSI PBout(15) // SDO
#define MAX_LINE_BYTES 25
#define MAX_COLUMN_BYTES 200
#define ALLSCREEN_BYTES 5000
#define X_Addr_Start 0x00
#define X_Addr_End 0x18
#define Y_Addr_Start_H 0x00
#define Y_Addr_Start_L 0xc7
#define Y_Addr_End_H 0x00
#define Y_Addr_End_L 0x00
@@ -0,0 +1,374 @@
//备注:用Source Insight软件浏览程序效果最佳
//
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx Includes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#include "msp430x22x4.h"
#include "image1.h"
//xx Private macro xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#define SDA_H (P1OUT |=BIT7) // P1.7
#define SDA_L (P1OUT &=~BIT7)
#define SCLK_H (P1OUT |=BIT6) // P1.6
#define SCLK_L (P1OUT &=~BIT6)
#define nCS_H (P1OUT |=BIT5) // P1.5
#define nCS_L (P1OUT &=~BIT5)
#define nDC_H (P1OUT |=BIT4) // P1.4
#define nDC_L (P1OUT &=~BIT4)
#define nRST_H (P1OUT |=BIT3) // P1.3
#define nRST_L (P1OUT &=~BIT3)
#define R_SDA 0x80 //P1.7
#define DELAY_TIME 1 // 图片显示完停留时间(单位:秒)
#define MODE1 // panel scan direction
unsigned char tempvalue;
unsigned char temp1,temp2;
#define PIC_BLACK 252
#define PIC_WHITE 255
#define PIC_A 1
#define PIC_B 2
#define PIC_HLINE 3
#define PIC_VLINE 4
#define PIC_C 5
#define PIC_D 6
#define PIC_E 7
#define PIC_R 8
//xx Private functions xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 延时函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void DELAY_100nS(int delaytime) // 30us
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<1;j++);
}
void DELAY_mS(int delaytime) // 1ms
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<200;j++);
}
void DELAY_S(int delaytime) // 1s
{
int i,j,k;
for(i=0;i<delaytime;i++)
for(j=0;j<1000;j++)
for(k=0;k<200;k++);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 电子纸驱动操作函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 复位 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void RESET()
{
nRST_L;
DELAY_mS(1);
nRST_H;
DELAY_mS(1);
}
// 读忙 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void READBUSY()
{
while(1)
{
_NOP();
if((P1IN & 0x04)==0)
break;
}
}
// 写命令 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITECOM(unsigned char INIT_COM)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_COM;
nCS_H;
nCS_L;
SCLK_L;
nDC_L;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 写数据 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITEDATA(unsigned char INIT_DATA)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_DATA;
//nCS_H;
//nCS_L;
SCLK_L;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 读数据xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
unsigned char SPI4W_READDATA1()
{
P1DIR &=~ R_SDA;
unsigned char scnt,temp;
temp=0;
// nCS_H;
// nCS_L;
// SCLK_H;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
SCLK_L;
if(P1IN&R_SDA)
temp=(temp<<1)|0x01;
else
temp=temp<<1;
SCLK_H;
SCLK_L;
}
// nCS_H;
tempvalue= temp;
return temp;
}
void read_temperture(void)
{
//调用此函数前busy线必须为低
unsigned char temp1,temp2;
SPI4W_WRITECOM(0x18);
SPI4W_WRITEDATA(0X80);
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0XB1);
SPI4W_WRITECOM(0x20);
nCS_H;
READBUSY();
SPI4W_WRITECOM(0x1B);
temp1=SPI4W_READDATA1();
temp2=SPI4W_READDATA1();
tempvalue=temp1;
tempvalue=temp2;
nCS_H;
}
// 电子纸驱动初始化 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void INIT_SSD1680()
{
SPI4W_WRITECOM(0x01);
SPI4W_WRITEDATA(0xD3);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x11); // data enter mode
SPI4W_WRITEDATA(0x01);
SPI4W_WRITECOM(0x44); // set RAM x address start/end, in page 36
SPI4W_WRITEDATA(0x00); // RAM x address start at 00h;
SPI4W_WRITEDATA(0x0C);
SPI4W_WRITECOM(0x45);
SPI4W_WRITEDATA(0xD3);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITEDATA(0x00); // RAM y address end at 00h;
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x3C); // board
SPI4W_WRITEDATA(0x05); //GS1-->GS1
SPI4W_WRITECOM(0x21); // Display update control
SPI4W_WRITEDATA(0x00);
SPI4W_WRITEDATA(0x80); //S8-S167 for 1675 type panel New panel 不需要增加
}
// 入深度睡眠 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void enterdeepsleep()
{
SPI4W_WRITECOM(0x10);
SPI4W_WRITEDATA(0x01);
nCS_H;
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 图片显示函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void dis_img(unsigned char num)
{
unsigned int row, col;
unsigned int pcnt;
/***************************************************bw image****************************************************/
SPI4W_WRITECOM(0x4E);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x4F);
SPI4W_WRITEDATA(0xD3);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x24);
pcnt = 0; // 复位或保存提示字节序号
for(col=0; col<212; col++) // 总共172列 // send 128x252bits ram 2D13
{
for(row=0; row<13; row++) // 总共72行,每个像素2bit,即 72/4 字节
{
switch (num)
{
case PIC_R:
SPI4W_WRITEDATA(0x00);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0xff);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
/***************************************************bw image****************************************************/
SPI4W_WRITECOM(0x4E); // set RAM x address count to 0;
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x4F); // set RAM y address count to 296; 2D9
SPI4W_WRITEDATA(0xD3);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x26);
pcnt = 0; // 复位或保存提示字节序号
for(col=0; col<212; col++) // 总共172列 // send 128x252bits ram 2D13
{
for(row=0; row<13; row++) // 总共72行,每个像素2bit,即 72/4 字节
{
switch (num)
{
case PIC_R:
SPI4W_WRITEDATA(0xFF);
case PIC_WHITE:
SPI4W_WRITEDATA(0x00);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
//}
SPI4W_WRITECOM(0x18);
SPI4W_WRITEDATA(0x80);
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0xf7); //Load LUT from MCU(0x32), Display update
SPI4W_WRITECOM(0x20);
DELAY_mS(1);
READBUSY();
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 主函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void main( void )
{
//int i=10;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
BCSCTL1 = CALBC1_1MHZ; // set DCO frequency 1MHZ
DCOCTL = CALDCO_1MHZ;
P1DIR |=0x78; // set P1.3~7 output
P3OUT = 0XFF;
P3DIR = 0xff; // p3.4,p3.5 设为输入
P4DIR |= 0X01;
RESET(); // 电子纸控制器复位
SPI4W_WRITECOM(0x12); //SWRESET
READBUSY();
INIT_SSD1680();
dis_img(PIC_R);
enterdeepsleep();
DELAY_S(1);
_NOP();
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,349 @@
#include "DEPG0213BBS800F41HP-M7.h"
#include "Image.h"
void EpaperIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); // 使能PB端口时钟
// EPAPER_BS N
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// EPAPER_EN
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// SPI_CLK-->PB13 SPI_MOSI--->PB15
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// CS-->PC6 D/C--->PC7 RES-->PC8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// BUSY--->PC9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 下拉输入
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIO
Epaper_BS = 0;
}
void SPI_DATA_IO_Init(u8 mode)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//'??PB??????
if(mode==SPI_OUT)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //???????, ???????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
if(mode==SPI_IN)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //????????
GPIO_Init(GPIOB, &GPIO_InitStructure); //??'??GPIO
}
}
void Epaper_Spi_WriteByte(u8 TxData)
{
u8 TempData;
u8 scnt;
TempData = TxData;
SPI_DATA_IO_Init(SPI_OUT);
SPI_CLK = 0;
for (scnt = 0; scnt < 8; scnt++)
{
if (TempData & 0x80)
SPI_MOSI = 1;
else
SPI_MOSI = 0;
SPI_CLK = 1;
delay_us(5);
SPI_CLK = 0;
TempData = TempData << 1;
delay_us(5);
}
}
void Epaper_READBUSY(void)
{
while(1)
{
if(Epaper_BUSY==0) break;
delay_us(5) ;
}
delay_us(100) ;
}
void Epaper_Write_Command(u8 cmd)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 0; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(cmd);
delay_us(5);
Epaper_CS = 1;
}
void Epaper_Write_Data(u8 data)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 1; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(data);
delay_us(5);
Epaper_CS = 1;
}
/*
* Epaper_Init
*
*
*
*/
void Epaper_Initial(void)
{
Epaper_EN=1; //open the 3V power
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
Epaper_Write_Command(0x12);
Epaper_READBUSY();
Epaper_Write_Command(0x01); //驱动输出控制 drive output control
Epaper_Write_Data(Y_Addr_Start_L); //Y 的低字节
Epaper_Write_Data(Y_Addr_Start_H); //Y 的高字节
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x11); //Data entry mode setting
Epaper_Write_Data(0x01); //00 Y decrement, X decrement,
//01 Y decrement, X increment,
//10 Y increment, X decrement,
//11 Y increment, X increment
Epaper_Write_Command(0x44); // Set RAM X - address Start / End position
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Data(X_Addr_End);
Epaper_Write_Command(0x45); // Set RAM Y - address Start / End position
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Data(Y_Addr_End_L);
Epaper_Write_Data(Y_Addr_End_H);
Epaper_Write_Command(0x4E); //Set RAM X address counter
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Command(0x4F); //Set RAM Y address counter
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Command(0x3C); //Border设置 Border setting
Epaper_Write_Data(0x05);
Epaper_Write_Command(0x21);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
}
void Epaper_Initial_partial(void)
{
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
// Epaper_Write_Command(0x12); //partial update need remove 0x12 soft reset
// Epaper_READBUSY();
Epaper_Write_Command(0x3C); // border folating
Epaper_Write_Data(0x80);
}
void Epaper_Update_and_Deepsleep_full_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xF7);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Update_and_Deepsleep_partial_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xFF);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Load_White( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0xff);
}
}
void Epaper_Load_Black( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0x00);
}
}
void Epaper_load_image_new(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 tempcol1=0;
u32 templine=0;
u32 templine1=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
Epaper_Write_Command(0x26); //DTM2
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine1*MAX_COLUMN_BYTES+tempcol1);
templine1++;
if(templine1>=MAX_LINE_BYTES)
{
tempcol1++;
templine1=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Epaper_load_image_new_patial(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 templine=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Display_black( )
{
Epaper_Initial( );
Epaper_Load_Black( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_white( )
{
Epaper_Initial( );
Epaper_Load_White( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new(u8 *BN_DTM)
{
Epaper_Initial( );
Epaper_load_image_new((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new_partial_update(u8 *BN_DTM)
{
Epaper_Initial_partial( );
Epaper_load_image_new_patial((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
int main()
{
EpaperIO_Init();
delay_init();
Display_black( );
Display_white( );
Display_image_new((u8*)dancika_image1);//The full-update before partial haves to send 24ram and 26 ram the same data
// if you won't execute partial update after full-update you just send the image to 24 will be OK
Display_image_new_partial_update((u8*)dancika_image2);//just send to 24 will be ok
Display_image_new_partial_update((u8*)dancika_image3);
Display_image_new_partial_update((u8*)dancika_image4);
Display_image_new_partial_update((u8*)dancika_image5);
}
@@ -0,0 +1,28 @@
#include "sys.h"
#include "delay.h"
#define SPI_OUT 1
#define SPI_IN 0
#define Epaper_EN PAout(12) // Epaper_EN
#define Epaper_BUSY GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) //
#define Epaper_RESET PCout(8) // RESET
#define Epaper_BS PAout(8) // BS
#define Epaper_DC PCout(7) // D/C#
#define Epaper_CS PCout(6) //
#define SPI_CLK PBout(13) //
#define SPI_MOSI PBout(15) // SDO
#define MAX_LINE_BYTES 16
#define MAX_COLUMN_BYTES 250
#define ALLSCREEN_BYTES 4000
#define X_Addr_Start 0x01
#define X_Addr_End 0x10
#define Y_Addr_Start_H 0x00
#define Y_Addr_Start_L 0xF9
#define Y_Addr_End_H 0x00
#define Y_Addr_End_L 0x00
+914
View File
@@ -0,0 +1,914 @@
const unsigned char ESL[]={
/*-- 调入了一幅图像:C:\Users\89619\Desktop\图片\2.9_296x128\调试图片\BWR\2.bmp --*/
/*-- 宽度x高度=296x128 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,
0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,
0xFE,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,
0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,
0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFF,
0xFE,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,
0xFE,0xFF,0xFF,0xFF,0xFE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xF9,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x00,
0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,
0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0xFF,0x00,0x00,0xFF,
0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7D,0xBB,0xD7,0xEF,
0xD7,0xBB,0x7D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x81,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xDF,0xAF,0x77,0xFB,0x77,0xAF,0xDF,0xFF,0xFF,0xFF,0xFD,0xFB,0xE7,0xDF,
0x3F,0xCF,0xF7,0xFB,0xFD,0xFF,0xFD,0xFB,0xB7,0x87,0x3B,0xFD,0xFD,0xFB,0x37,0x87,
0xBB,0xFD,0xFF,0xFF,0x01,0xBF,0x7F,0x7F,0xBF,0x83,0x6D,0x6D,0x4D,0x8B,0xFF,0xED,
0xB3,0x6D,0x6D,0x6B,0x81,0xFF,0xBF,0x83,0x7D,0x7D,0x3D,0x7B,0x01,0xFF,0xED,0xB3,
0x6D,0x6D,0x6B,0x81,0xFF,0xFF,0x01,0x7B,0x7D,0x7D,0x4D,0x83,0xFF,0xFF,0x01,0xFF,
0xBF,0x83,0x6D,0x6D,0x4D,0x8B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,
0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,
0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,
0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,
0x00,0xFF,0xFF,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
0x00,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFB,0xFD,0xFE,0xFF,0xFE,0xFD,0xFB,0xFF,0xFF,0xFF,0xFF,0xEF,
0xF7,0xFB,0xFC,0xFB,0xF7,0xEF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFB,0xF7,0xFB,0xFD,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFE,0xFC,0xFB,0xE7,0xFB,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFC,0xFE,0xFD,0xFD,
0xFE,0xFE,0xFD,0xFD,0xFD,0xFE,0xFF,0xFF,0xFE,0xFD,0xFD,0xFD,0xFE,0xFF,0xFE,0xFE,
0xFD,0xFD,0xFC,0xFD,0xE0,0xFF,0xFF,0xFE,0xFD,0xFD,0xFD,0xFE,0xFF,0xFF,0xE0,0xFD,
0xFD,0xFD,0xFD,0xFE,0xFF,0xFF,0xE0,0xFF,0xFE,0xFE,0xFD,0xFD,0xFD,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xEF,0xC0,0xFF,0xFF,0xEF,0xDE,0xDD,0xDB,0xE7,
0xFF,0xEE,0xDF,0xDB,0xDB,0xE4,0xFF,0xF9,0xF5,0xED,0xDD,0xC0,0xFD,0xFF,0xC6,0xD7,
0xD7,0xD8,0xFF,0xE0,0xD7,0xD7,0xD7,0xE8,0xFF,0xDF,0xDE,0xD9,0xD7,0xCF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE4,0xDB,0xDB,0xDB,0xE4,0xFF,0xE2,0xDD,0xDD,0xDD,0xE0,0xFF,
0xFF,0xF7,0xEF,0xC0,0xFF,0xFF,0xE0,0xDF,0xDF,0xDF,0xE0,0xFF,0xFF,0xF7,0xEF,0xC0,
0xFF,0xFF,0xE2,0xDD,0xDD,0xDD,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xDF,0xBF,0x7F,
0xBF,0xDF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0xEF,0x9F,0x7F,
0xFF,0x3F,0xDF,0xEF,0xF7,0xFF,0xF7,0xEF,0xDF,0x1F,0xEF,0xF7,0xF7,0xEF,0xDF,0x1F,
0xEF,0xF7,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0x0F,0xB7,0xB7,0x37,0x2F,0xFF,0xB7,
0xCF,0xB7,0xB7,0xAF,0x07,0xFF,0xFF,0x0F,0xF7,0xF7,0xF7,0xEF,0x07,0xFF,0xB7,0xCF,
0xB7,0xB7,0xAF,0x07,0xFF,0xFF,0x07,0xEF,0xF7,0xF7,0x37,0x0F,0xFF,0xFF,0x07,0xFF,
0xFF,0x0F,0xB7,0xB7,0x37,0x2F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0x70,0xF0,0xF0,0x70,0x70,0x70,0x70,0x70,0xF0,0xF0,0x70,0x70,0x70,0xF0,0xF0,0xF0,
0xF0,0xF0,0xFF,0x7F,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,
0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,
0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,
0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xE0,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xFF,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF2,0xF1,0xF0,0xF0,0xF0,0xF1,0xF2,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF3,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF1,0xF6,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7E,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x50,0x88,0x04,0x88,0x50,0x20,0x00,0x00,
0x00,0x02,0x04,0x18,0x20,0xC0,0x30,0x08,0x04,0x02,0x00,0x02,0x04,0x48,0x78,0xC4,
0x02,0x02,0x04,0xC8,0x78,0x44,0x02,0x00,0x00,0xFE,0x40,0x80,0x80,0x00,0x7C,0x92,
0x92,0x92,0x74,0x00,0x00,0x4C,0x92,0x92,0x94,0x7E,0x00,0x00,0x7C,0x82,0x82,0x82,
0x84,0xFE,0x00,0x00,0x4C,0x92,0x92,0x94,0x7E,0x00,0x00,0xFE,0x84,0x82,0x82,0x82,
0x7C,0x00,0x00,0xFE,0x00,0x00,0x7C,0x92,0x92,0x92,0x74,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x78,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x78,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x78,0x78,
0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7B,0x78,0x78,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7B,0x78,0x78,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x7B,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7B,0x78,0x78,0x78,0x78,
0x78,0x78,0x78,0x78,0x78,0x78,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x3F,
0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x44,0x82,0x44,0x28,0x10,0x00,0x00,
0x00,0x01,0x02,0x0C,0x10,0xE0,0x18,0x04,0x02,0x01,0x00,0x01,0x02,0x24,0x3C,0x62,
0x81,0x01,0x82,0x64,0x3C,0x22,0x01,0x00,0x00,0x7F,0x20,0x40,0x40,0x00,0x3E,0x49,
0x49,0x49,0x3A,0x00,0x00,0x26,0x49,0x49,0x4A,0x3F,0x00,0x00,0x3E,0x41,0x41,0x41,
0x42,0xFF,0x00,0x00,0x26,0x49,0x49,0x4A,0x3F,0x00,0x00,0xFF,0x42,0x41,0x41,0x41,
0x3E,0x00,0x00,0xFF,0x00,0x00,0x3E,0x49,0x49,0x49,0x3A,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
0x1E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0xFF,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
const unsigned char ESL_BW[]={
/*-- 调入了一幅图像:C:\Users\89619\Desktop\2_1.bmp --*/
/*-- 宽度x高度=296x128 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,
0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,
0xFE,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,
0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,
0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFF,
0xFE,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,
0xFE,0xFF,0xFF,0xFF,0xFE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xF9,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x00,
0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,
0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0xFF,0x00,0x00,0xFF,
0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7D,0xBB,0xD7,0xEF,
0xD7,0xBB,0x7D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x81,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xDF,0xAF,0x77,0xFB,0x77,0xAF,0xDF,0xFF,0xFF,0xFF,0xFD,0xFB,0xE7,0xDF,
0x3F,0xCF,0xF7,0xFB,0xFD,0xFF,0xFD,0xFB,0xB7,0x87,0x3B,0xFD,0xFD,0xFB,0x37,0x87,
0xBB,0xFD,0xFF,0xFF,0x01,0xBF,0x7F,0x7F,0xFF,0x83,0x6D,0x6D,0x6D,0x8B,0xFF,0xFF,
0xB3,0x6D,0x6D,0x6B,0x81,0xFF,0xFF,0x83,0x7D,0x7D,0x7D,0x7B,0x01,0xFF,0xFF,0xB3,
0x6D,0x6D,0x6B,0x81,0xFF,0xFF,0x01,0x7B,0x7D,0x7D,0x7D,0x83,0xFF,0xFF,0x01,0xFF,
0xFF,0x83,0x6D,0x6D,0x6D,0x8B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,
0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,
0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,
0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,
0x00,0xFF,0xFF,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
0x00,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xEF,0xC0,0xFF,0xFF,0xEF,0xDE,0xDD,0xDB,0xE7,
0xFF,0xEE,0xDF,0xDB,0xDB,0xE4,0xFF,0xF9,0xF5,0xED,0xDD,0xC0,0xFD,0xFF,0xC6,0xD7,
0xD7,0xD8,0xFF,0xE0,0xD7,0xD7,0xD7,0xE8,0xFF,0xDF,0xDE,0xD9,0xD7,0xCF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE4,0xDB,0xDB,0xDB,0xE4,0xFF,0xE2,0xDD,0xDD,0xDD,0xE0,0xFF,
0xFF,0xF7,0xEF,0xC0,0xFF,0xFF,0xE0,0xDF,0xDF,0xDF,0xE0,0xFF,0xFF,0xF7,0xEF,0xC0,
0xFF,0xFF,0xE2,0xDD,0xDD,0xDD,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x7F,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,
0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,
0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,
0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xE0,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xFF,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF2,0xF1,0xF0,0xF0,0xF0,0xF1,0xF2,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF3,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF1,0xF6,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF7,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7E,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x50,0x88,0x04,0x88,0x50,0x20,0x00,0x00,
0x00,0x02,0x04,0x18,0x20,0xC0,0x30,0x08,0x04,0x02,0x00,0x02,0x04,0x48,0x78,0xC4,
0x02,0x02,0x04,0xC8,0x78,0x44,0x02,0x00,0x00,0xFE,0x40,0x80,0x80,0x00,0x7C,0x92,
0x92,0x92,0x74,0x00,0x00,0x4C,0x92,0x92,0x94,0x7E,0x00,0x00,0x7C,0x82,0x82,0x82,
0x84,0xFE,0x00,0x00,0x4C,0x92,0x92,0x94,0x7E,0x00,0x00,0xFE,0x84,0x82,0x82,0x82,
0x7C,0x00,0x00,0xFE,0x00,0x00,0x7C,0x92,0x92,0x92,0x74,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x04,0x02,0x01,0x00,0x01,0x02,0x04,
0x00,0x00,0x00,0x00,0x10,0x08,0x04,0x03,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x01,
0x02,0x04,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x04,0x18,0x04,0x03,0x01,0x01,0x00,0x00,
0x00,0x03,0x01,0x02,0x02,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,
0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x1F,0x00,0x00,0x01,0x02,0x02,0x02,
0x01,0x00,0x00,0x1F,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x1F,0x00,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x40,0x80,0x00,0x00,0x00,
0x00,0x08,0x10,0x60,0x80,0x00,0xC0,0x20,0x10,0x08,0x00,0x08,0x10,0x20,0xE0,0x10,
0x08,0x08,0x10,0x20,0xE0,0x10,0x08,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0xF0,0x48,
0x48,0x48,0xD0,0x00,0x00,0x30,0x48,0x48,0x50,0xF8,0x00,0x00,0xF0,0x08,0x08,0x08,
0x10,0xF8,0x00,0x00,0x30,0x48,0x48,0x50,0xF8,0x00,0x00,0xF8,0x10,0x08,0x08,0x08,
0xF0,0x00,0x00,0xF8,0x00,0x00,0xF0,0x48,0x48,0x48,0xD0,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFD,0xFE,0xFF,0xFF,0xFF,0xFE,0xFD,
0xFF,0xFF,0xFF,0xFF,0xF7,0xFB,0xFD,0xFE,0xFD,0xFB,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFD,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xF3,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xF0,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,
0xFF,0xFF,0xFF,0xF0,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,0xFF,0xFE,
0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xF7,0xEF,0x5F,0xBF,0x5F,0xEF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xDF,0xBF,0x7F,0xFF,0xFF,
0xFF,0xFB,0xF7,0xCF,0xBF,0x7F,0x9F,0xEF,0xF7,0xFB,0xFF,0xFB,0xF7,0x6F,0x0F,0x77,
0xFB,0xFB,0xF7,0x6F,0x0F,0x77,0xFB,0xFF,0xFF,0x03,0x7F,0xFF,0xFF,0xFF,0x07,0xDB,
0xDB,0xDB,0x17,0xFF,0xFF,0x67,0xDB,0xDB,0xD7,0x03,0xFF,0xFF,0x07,0xFB,0xFB,0xFB,
0xF7,0x03,0xFF,0xFF,0x67,0xDB,0xDB,0xD7,0x03,0xFF,0xFF,0x03,0xF7,0xFB,0xFB,0xFB,
0x07,0xFF,0xFF,0x03,0xFF,0xFF,0x07,0xDB,0xDB,0xDB,0x17,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
const unsigned char ESL_RED[]={
/*-- 调入了一幅图像:C:\Users\89619\Desktop\2-2.bmp --*/
/*-- 宽度x高度=296x128 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x00,0x10,
0x08,0x04,0x03,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x04,0x02,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x03,0x04,0x18,0x04,0x03,0x01,0x01,0x00,0x00,0x00,0x03,0x01,0x02,0x02,
0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x01,0x01,
0x02,0x02,0x03,0x02,0x1F,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x1F,0x02,
0x02,0x02,0x02,0x01,0x00,0x00,0x1F,0x00,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0x40,0x80,
0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x40,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x08,0x10,0x60,0x80,
0x00,0xC0,0x20,0x10,0x08,0x00,0x08,0x10,0x20,0xE0,0x10,0x08,0x08,0x10,0x20,0xE0,
0x10,0x08,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0xF0,0x48,0x48,0xC8,0xD0,0x00,0x48,
0x30,0x48,0x48,0x50,0xF8,0x00,0x00,0xF0,0x08,0x08,0x08,0x10,0xF8,0x00,0x48,0x30,
0x48,0x48,0x50,0xF8,0x00,0x00,0xF8,0x10,0x08,0x08,0xC8,0xF0,0x00,0x00,0xF8,0x00,
0x00,0xF0,0x48,0x48,0xC8,0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x01,0x02,0x04,
0x00,0x00,0x00,0x00,0x10,0x08,0x04,0x03,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x01,
0x02,0x04,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x04,0x18,0x04,0x03,0x01,0x01,0x00,0x00,
0x00,0x03,0x01,0x02,0x02,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,
0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x1F,0x00,0x00,0x01,0x02,0x02,0x02,
0x01,0x00,0x00,0x1F,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x1F,0x00,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x40,0x80,0x00,0x00,0x00,
0x00,0x08,0x10,0x60,0x80,0x00,0xC0,0x20,0x10,0x08,0x00,0x08,0x10,0x20,0xE0,0x10,
0x08,0x08,0x10,0x20,0xE0,0x10,0x08,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0xF0,0x48,
0x48,0x48,0xD0,0x00,0x00,0x30,0x48,0x48,0x50,0xF8,0x00,0x00,0xF0,0x08,0x08,0x08,
0x10,0xF8,0x00,0x00,0x30,0x48,0x48,0x50,0xF8,0x00,0x00,0xF8,0x10,0x08,0x08,0x08,
0xF0,0x00,0x00,0xF8,0x00,0x00,0xF0,0x48,0x48,0x48,0xD0,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xBE,0xDD,0xEB,0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xC0,
0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xD7,0xBB,0x7D,0xBB,0xD7,0xEF,0xFF,0xFF,
0xFF,0xFE,0xFD,0xF3,0xEF,0x1F,0xE7,0xFB,0xFD,0xFE,0xFF,0xFE,0xFD,0xDB,0xC3,0x9D,
0x7E,0xFE,0x7D,0x9B,0xC3,0xDD,0xFE,0xFF,0xFF,0x80,0xDF,0xBF,0xBF,0xFF,0xC1,0xB6,
0xB6,0xB6,0xC5,0xFF,0xFF,0xD9,0xB6,0xB6,0xB5,0xC0,0xFF,0xFF,0xC1,0xBE,0xBE,0xBE,
0xBD,0x00,0xFF,0xFF,0xD9,0xB6,0xB6,0xB5,0xC0,0xFF,0xFF,0x00,0xBD,0xBE,0xBE,0xBE,
0xC1,0xFF,0xFF,0x00,0xFF,0xFF,0xC1,0xB6,0xB6,0xB6,0xC5,0xFF,0xFF,0xFF,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFD,0xFE,0xFF,0xFF,0xFF,0xFE,0xFD,
0xFF,0xFF,0xFF,0xFF,0xF7,0xFB,0xFD,0xFE,0xFD,0xFB,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFD,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xF3,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xF0,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,
0xFF,0xFF,0xFF,0xF0,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,0xFF,0xFE,
0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xF7,0xEF,0x5F,0xBF,0x5F,0xEF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xDF,0xBF,0x7F,0xFF,0xFF,
0xFF,0xFB,0xF7,0xCF,0xBF,0x7F,0x9F,0xEF,0xF7,0xFB,0xFF,0xFB,0xF7,0x6F,0x0F,0x77,
0xFB,0xFB,0xF7,0x6F,0x0F,0x77,0xFB,0xFF,0xFF,0x03,0x7F,0xFF,0xFF,0xFF,0x07,0xDB,
0xDB,0xDB,0x17,0xFF,0xFF,0x67,0xDB,0xDB,0xD7,0x03,0xFF,0xFF,0x07,0xFB,0xFB,0xFB,
0xF7,0x03,0xFF,0xFF,0x67,0xDB,0xDB,0xD7,0x03,0xFF,0xFF,0x03,0xF7,0xFB,0xFB,0xFB,
0x07,0xFF,0xFF,0x03,0xFF,0xFF,0x07,0xDB,0xDB,0xDB,0x17,0xFF,0xFF,0xFF,0x00,0x00,
0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,
0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,
0xE1,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0x01,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
@@ -0,0 +1,348 @@
#include "DEPG0290RWS800F6HP.h"
#include "Image.h"
void EpaperIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); // 使能PB端口时钟
// EPAPER_BS N
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// EPAPER_EN
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// SPI_CLK-->PB13 SPI_MOSI--->PB15
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// CS-->PC6 D/C--->PC7 RES-->PC8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// BUSY--->PC9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 下拉输入
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIO
Epaper_BS = 0;
}
void SPI_DATA_IO_Init(uint8_t mode)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // ??PB????
if (mode == SPI_OUT)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; // ????, ????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
if (mode == SPI_IN)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // ????
GPIO_Init(GPIOB, &GPIO_InitStructure); // ???GPIO
}
}
void Epaper_Spi_WriteByte(u8 TxData)
{
u8 TempData;
u8 scnt;
TempData = TxData;
SPI_DATA_IO_Init(SPI_OUT);
SPI_CLK = 0;
for (scnt = 0; scnt < 8; scnt++)
{
if (TempData & 0x80)
SPI_MOSI = 1;
else
SPI_MOSI = 0;
SPI_CLK = 1;
delay_us(5);
SPI_CLK = 0;
TempData = TempData << 1;
delay_us(5);
}
}
void Epaper_Write_Command(u8 cmd)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 0; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(cmd);
delay_us(5);
Epaper_CS = 1;
}
void Epaper_Write_Data(u8 data)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 1; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(data);
delay_us(5);
Epaper_CS = 1;
}
void Epaper_READBUSY(void)
{
while (1)
{
if (Epaper_BUSY == 0)
break;
delay_us(5);
}
delay_us(100);
}
/*
* Epaper_Init
*
*
*
*/
void Epaper_Initial(void)
{
Epaper_EN=1;
delay_ms(100);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
Epaper_Write_Command(0x12); // 软件复位 soft reset
Epaper_READBUSY();
Epaper_Write_Command(0x01); //?????? drive output control
Epaper_Write_Data(Y_Addr_Start_L); //Y ????
Epaper_Write_Data(Y_Addr_Start_H); //Y ????
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x11); //Data entry mode setting
Epaper_Write_Data(0x01); //00 Y decrement, X decrement,
//01 Y decrement, X increment,
//10 Y increment, X decrement,
//11 Y increment, X increment
Epaper_Write_Command(0x44); // Set RAM X - address Start / End position
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Data(X_Addr_End);
Epaper_Write_Command(0x45); // Set RAM Y - address Start / End position
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Data(Y_Addr_End_L);
Epaper_Write_Data(Y_Addr_End_H);
Epaper_Write_Command(0x4E); //Set RAM X address counter
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Command(0x4F); //Set RAM Y address counter
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Command(0x3C); //Border Border setting
Epaper_Write_Data(0x05);
Epaper_Write_Command(0x21);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
}
void Epaper_Update_and_Deepsleep(void)
{
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Load_Image(u8 *BWdatas,u8 *RWdatas,u32 all_bytes)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 tempcol1=0;
u32 templine=0;
u32 templine1=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<all_bytes;i++)
{
tempOriginal=*(BWdatas+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
Epaper_Write_Command(0x26); //DTM2
for(i=0;i<all_bytes;i++)
{
tempOriginal=*(RWdatas+templine1*MAX_COLUMN_BYTES+tempcol1);
templine1++;
if(templine1>=MAX_LINE_BYTES)
{
tempcol1++;
templine1=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Epaper_Load_White(void)
{
u32 i, j;
Epaper_Write_Command(0x24);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0xFF);
}
}
Epaper_Write_Command(0x26);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0x00);
}
}
}
/*
* Display_All_Black
*
*
*
*/
void Epaper_Load_Black(void)
{
u32 i, j;
Epaper_Write_Command(0x24);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0x00);
}
}
Epaper_Write_Command(0x26);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0x00);
}
}
}
/*
* Display_All_Red
*
*
*
*/
void Epaper_Load_Red(void)
{
u32 i, j;
Epaper_Write_Command(0x24);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0x00);
}
}
Epaper_Write_Command(0x26);
for (i = 0; i < MAX_COLUMN_BYTES; i++)
{
for (j = 0; j < MAX_LINE_BYTES; j++)
{
Epaper_Write_Data(0xFF);
}
}
}
void Display_image_new(u8 *BW_DTM1,u8 *RW_DTM1)
{
Epaper_Initial();
Epaper_Load_Image((u8 *)BW_DTM1, (u8 *)RW_DTM1, ALLSCREEN_BYTES);
Epaper_Update_and_Deepsleep();
}
void Display_Black( )
{
Epaper_Initial();
Epaper_Load_Black();
Epaper_Update_and_Deepsleep();
}
void Display_White( )
{
Epaper_Initial();
Epaper_Load_White();
Epaper_Update_and_Deepsleep();
}
void Display_Red( )
{
Epaper_Initial();
Epaper_Load_Red();
Epaper_Update_and_Deepsleep();
}
int main()
{
EpaperIO_Init( );//dke test use
delay_init(); //dke test use
Display_image_new((u8*)ESL_BW,(u8*)ESL_RED);
Display_Red();
Display_Black();
Display_White();
}
@@ -0,0 +1,25 @@
#include "sys.h" //dke test use
#include "delay.h" //dke test use
#define SPI_OUT 1
#define SPI_IN 0
#define Epaper_EN PAout(12) // Epaper_EN
#define Epaper_BUSY GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) //
#define Epaper_RESET PCout(8) // RESET
#define Epaper_BS PAout(8) // BS
#define Epaper_DC PCout(7) // D/C#
#define Epaper_CS PCout(6) //
#define SPI_CLK PBout(13) //
#define SPI_MOSI PBout(15) // SDO
#define MAX_LINE_BYTES 16
#define MAX_COLUMN_BYTES 296
#define ALLSCREEN_BYTES 4736
#define X_Addr_Start 0x01
#define X_Addr_End 0x10
#define Y_Addr_Start_H 0x01
#define Y_Addr_Start_L 0x27
#define Y_Addr_End_H 0x00
#define Y_Addr_End_L 0x00
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,349 @@
#include "DEPG0290BBS800F6HP-M7.h"
#include "Image.h"
void EpaperIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); // 使能PB端口时钟
// EPAPER_BS N
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// EPAPER_EN
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// SPI_CLK-->PB13 SPI_MOSI--->PB15
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// CS-->PC6 D/C--->PC7 RES-->PC8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_12; // 端口配置, 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// BUSY--->PC9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 下拉输入
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIO
Epaper_BS = 0;
}
void SPI_DATA_IO_Init(u8 mode)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//'??PB??????
if(mode==SPI_OUT)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //???????, ???????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
if(mode==SPI_IN)
{
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //????????
GPIO_Init(GPIOB, &GPIO_InitStructure); //??'??GPIO
}
}
void Epaper_Spi_WriteByte(u8 TxData)
{
u8 TempData;
u8 scnt;
TempData = TxData;
SPI_DATA_IO_Init(SPI_OUT);
SPI_CLK = 0;
for (scnt = 0; scnt < 8; scnt++)
{
if (TempData & 0x80)
SPI_MOSI = 1;
else
SPI_MOSI = 0;
SPI_CLK = 1;
delay_us(5);
SPI_CLK = 0;
TempData = TempData << 1;
delay_us(5);
}
}
void Epaper_READBUSY(void)
{
while(1)
{
if(Epaper_BUSY==0) break;
delay_us(5) ;
}
delay_us(100) ;
}
void Epaper_Write_Command(u8 cmd)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 0; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(cmd);
delay_us(5);
Epaper_CS = 1;
}
void Epaper_Write_Data(u8 data)
{
Epaper_CS = 1;
Epaper_CS = 0;
Epaper_DC = 1; // D/C# 0:command 1:data
delay_us(5);
Epaper_Spi_WriteByte(data);
delay_us(5);
Epaper_CS = 1;
}
/*
* Epaper_Init
*
*
*
*/
void Epaper_Initial(void)
{
Epaper_EN=1; //open the 3V power
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
Epaper_Write_Command(0x12);
Epaper_READBUSY();
Epaper_Write_Command(0x01); //驱动输出控制 drive output control
Epaper_Write_Data(Y_Addr_Start_L); //Y 的低字节
Epaper_Write_Data(Y_Addr_Start_H); //Y 的高字节
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x11); //Data entry mode setting
Epaper_Write_Data(0x01); //00 Y decrement, X decrement,
//01 Y decrement, X increment,
//10 Y increment, X decrement,
//11 Y increment, X increment
Epaper_Write_Command(0x44); // Set RAM X - address Start / End position
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Data(X_Addr_End);
Epaper_Write_Command(0x45); // Set RAM Y - address Start / End position
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Data(Y_Addr_End_L);
Epaper_Write_Data(Y_Addr_End_H);
Epaper_Write_Command(0x4E); //Set RAM X address counter
Epaper_Write_Data(X_Addr_Start);
Epaper_Write_Command(0x4F); //Set RAM Y address counter
Epaper_Write_Data(Y_Addr_Start_L);
Epaper_Write_Data(Y_Addr_Start_H);
Epaper_Write_Command(0x3C); //Border设置 Border setting
Epaper_Write_Data(0x05);
Epaper_Write_Command(0x21);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
}
void Epaper_Initial_partial(void)
{
delay_ms(10);
Epaper_RESET = 0; // EPD 硬件复位 Hardware reset
delay_ms(10);
Epaper_RESET = 1; // EPD 硬件复位释放 Hard reset release
delay_ms(10);
Epaper_READBUSY(); // 读busy信号
// Epaper_Write_Command(0x12); //partial update need remove 0x12 soft reset
// Epaper_READBUSY();
Epaper_Write_Command(0x3C); // border folating
Epaper_Write_Data(0x80);
}
void Epaper_Update_and_Deepsleep_full_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xF7);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Update_and_Deepsleep_partial_update(void)
{
Epaper_Write_Command(0x22);
Epaper_Write_Data(0xFF);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
Epaper_Write_Command(0x10);
Epaper_Write_Data(0x01);
delay_ms(100);
}
void Epaper_Load_White( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0xff);
}
}
void Epaper_Load_Black( )
{
u32 i,k;
Epaper_Write_Command(0x24);
for(i=0;i<MAX_COLUMN_BYTES;i++)
{
for(k=0;k<MAX_LINE_BYTES;k++)
Epaper_Write_Data(0x00);
}
}
void Epaper_load_image_new(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 tempcol1=0;
u32 templine=0;
u32 templine1=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
Epaper_Write_Command(0x26); //DTM2
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine1*MAX_COLUMN_BYTES+tempcol1);
templine1++;
if(templine1>=MAX_LINE_BYTES)
{
tempcol1++;
templine1=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Epaper_load_image_new_patial(u8 *BN_DTM)
{
u32 i;
u8 tempOriginal;
u32 tempcol=0;
u32 templine=0;
Epaper_Write_Command(0x24); //DTM1
for(i=0;i<ALLSCREEN_BYTES;i++)
{
tempOriginal=*(BN_DTM+templine*MAX_COLUMN_BYTES+tempcol);
templine++;
if(templine>=MAX_LINE_BYTES)
{
tempcol++;
templine=0;
}
Epaper_Write_Data(tempOriginal);
}
}
void Display_black( )
{
Epaper_Initial( );
Epaper_Load_Black( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_white( )
{
Epaper_Initial( );
Epaper_Load_White( );
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new(u8 *BN_DTM)
{
Epaper_Initial( );
Epaper_load_image_new((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
void Display_image_new_partial_update(u8 *BN_DTM)
{
Epaper_Initial_partial( );
Epaper_load_image_new_patial((u8*)BN_DTM);
Epaper_Update_and_Deepsleep_full_update( );
}
int main()
{
EpaperIO_Init();
delay_init();
Display_black( );
Display_white( );
Display_image_new((u8*)dancika_image1);//The full-update before partial haves to send 24ram and 26 ram the same data
// if you won't execute partial update after full-update you just send the image to 24 will be OK
Display_image_new_partial_update((u8*)dancika_image2);//just send to 24 will be ok
Display_image_new_partial_update((u8*)dancika_image3);
Display_image_new_partial_update((u8*)dancika_image4);
Display_image_new_partial_update((u8*)dancika_image5);
}
@@ -0,0 +1,26 @@
#include "sys.h"
#include "delay.h"
#define SPI_OUT 1
#define SPI_IN 0
#define Epaper_EN PAout(12) // Epaper_EN
#define Epaper_BUSY GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) //
#define Epaper_RESET PCout(8) // RESET
#define Epaper_BS PAout(8) // BS
#define Epaper_DC PCout(7) // D/C#
#define Epaper_CS PCout(6) //
#define SPI_CLK PBout(13) //
#define SPI_MOSI PBout(15) // SDO
#define MAX_LINE_BYTES 16
#define MAX_COLUMN_BYTES 296
#define ALLSCREEN_BYTES 4736
#define X_Addr_Start 0x01
#define X_Addr_End 0x10
#define Y_Addr_Start_H 0x01
#define Y_Addr_Start_L 0x27
#define Y_Addr_End_H 0x00
#define Y_Addr_End_L 0x00
@@ -0,0 +1,440 @@
/*------------------------------------------------------------------------------*/
/* Prorgam:3D7BWR_240X416_8253_Test */
/* Version:A0 Description: First version Date:2020-10-8 */
/* Author:Vick cheng */
/*------------------------------------------------------------------------------*/
/* Includes --------------------------------------------------------------------*/
/* Includes --------------------------------------------------------------------*/
//#include "msp430x22x4.h"
#include "image.h"
#include "msp430g2955.h"
#include "waveinit_T2530.h"
/* IO_Configuration--------------------------------------------------------------- */
#define SDA_H (P1OUT |=BIT7) // P1.7
#define SDA_L (P1OUT &=~BIT7)
#define SCLK_H (P1OUT |=BIT6) // P1.6
#define SCLK_L (P1OUT &=~BIT6)
#define nCS_H (P1OUT |=BIT5) // P1.5
#define nCS_L (P1OUT &=~BIT5)
#define nDC_H (P1OUT |=BIT4) // P1.4
#define nDC_L (P1OUT &=~BIT4)
#define nRST_H (P1OUT |=BIT3) // P1.3
#define nRST_L (P1OUT &=~BIT3)
/* Display function---------------------------------------------------------------*/
#define PIC_BLACK 252 //Disply black
#define PIC_WHITE 255 //Disply white
#define PIC_A 1 //Disply char
#define PIC_B 2 //Disply lebel
#define PIC_HLINE 3 //Disply hline
#define PIC_VLINE 4 //Disply vline
#define PIC_R 5 //Disply rad
#define PIC_0 6 //Disply rad
#define PIC_1 7
#define PIC_2 8
#define PIC_3 9
#define PIC_4 10
#define PIC_5 11
#define PIC_6 12
#define PIC_C 15
/* MCU delay configuration ------------------------------------------------------*/
void DELAY_mS(int delaytime) // delaytime=1=1ms
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<2400;j++);
}
void DELAY_S(int delaytime) // delaytime=1=1s
{
int i,j,k;
for(i=0;i<delaytime;i++)
for(j=0;j<1000;j++)
for(k=0;k<2400;k++);
}
/*--------------------------------------------------------------------------------*/
/* EPD function-------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------*/
/*IC reset -----------------------------------------------------------------------*/
void RESET()
{
nRST_H;
DELAY_mS(1);
nRST_L;
DELAY_mS(5);
nRST_H;
DELAY_mS(1);
}
/* IC read BUSY ------------------------------------------------------------------*/
void READBUSY()
{
while(1)
{
_NOP();
if((P1IN & 0x04)==0x04) // Read BUSY electrica level
break;
}
}
/* 4line SPI Write Command -------------------------------------------------------*/
void SPI4W_WRITECOM(unsigned char INIT_COM)
{
unsigned char TEMPCOM;
unsigned char scnt;
TEMPCOM=INIT_COM;
nCS_H;
nCS_L;
SCLK_L;
nDC_L;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
nCS_H;
}
/* 4line SPI Write Data ----------------------------------------------------------*/
void SPI4W_WRITEDATA(unsigned char INIT_DATA)
{
unsigned char TEMPCOM;
unsigned char scnt;
TEMPCOM=INIT_DATA;
nCS_H;
nCS_L;
SCLK_L;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
nCS_H;
}
/* IC Sleep --------------------------------------------------------------------*/
void enterdeepsleep()
{
READBUSY();
SPI4W_WRITECOM(0x07);
SPI4W_WRITEDATA(0xA5);
}
/* Display configuration ---------------------------------------------------------*/
void Display_QuickClear_Refresh_Mode()
{
SPI4W_WRITECOM(0xE0);
SPI4W_WRITEDATA(0X02);
SPI4W_WRITECOM(0xE5);
SPI4W_WRITEDATA(0x53); //setting slow update wf data 83
}
void dis_img_fast(unsigned char num,unsigned char num1)
{
unsigned int row, col;
unsigned int pcnt;
SPI4W_WRITECOM(0x50);
SPI4W_WRITEDATA(0xC7);
SPI4W_WRITECOM(0x10);
READBUSY();
pcnt = 0;
for(col=0; col<416; col++)
{
for(row=0; row<30; row++)
{
switch (num)
{
case PIC_A:
SPI4W_WRITEDATA(~gImage_3D7_BW_K[pcnt]);
break;
case PIC_B:
SPI4W_WRITEDATA(gImage_BW[pcnt]);
break;
case PIC_VLINE:
if(col<208)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_HLINE:
if(row<15)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0xFF);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
SPI4W_WRITECOM(0x13);
READBUSY();
pcnt = 0;
for(col=0; col<416; col++)
{
for(row=0; row<30; row++)
{
switch (num1)
{
case PIC_A:
SPI4W_WRITEDATA(~gImage_3D7_BW_K[pcnt]);
break;
case PIC_B:
SPI4W_WRITEDATA(gImage_BW[pcnt]);
break;
case PIC_VLINE:
if(col<208)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_HLINE:
if(row<15)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0xFF);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
SPI4W_WRITECOM(0x04);
READBUSY();
SPI4W_WRITECOM(0x12);
READBUSY();
SPI4W_WRITECOM(0x02);
READBUSY();
DELAY_mS(10);
}
void dis_img(unsigned char num)
{
unsigned int row, col;
unsigned int pcnt;
SPI4W_WRITECOM(0x13);
READBUSY();
pcnt = 0;
for(col=0; col<416; col++)
{
for(row=0; row<30; row++)
{
switch (num)
{
case PIC_A:
SPI4W_WRITEDATA(~gImage_416X240_ZITI[pcnt]);
break;
case PIC_VLINE:
if(col<208)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_HLINE:
if(row<15)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xFF);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0xFF);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
Display_QuickClear_Refresh_Mode(); //setting slow update
SPI4W_WRITECOM(0x04);
READBUSY();
DELAY_mS(20);
SPI4W_WRITECOM(0x12);
DELAY_mS(20);
READBUSY();
SPI4W_WRITECOM(0x02);
READBUSY();
DELAY_mS(20);
}
void INIT_UC8253()
{
SPI4W_WRITECOM(0x00); //panel setting
SPI4W_WRITEDATA(0xD7);
SPI4W_WRITEDATA(0x0E);
SPI4W_WRITECOM(0x50);
SPI4W_WRITEDATA(0x47);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx Ö÷º¯Êý xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void main(void)
{
int i=0;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
BCSCTL1 = CALBC1_12MHZ; // set DCO frequency 1MHZ
DCOCTL = CALDCO_12MHZ;
P1DIR |=0xF8; // set P1.3~7 output
P3DIR = 0xff; // set P3 output
RESET();
READBUSY();
INIT_UC8253();
dis_img(PIC_BLACK);
enterdeepsleep();
DELAY_S(1);
_NOP();
RESET();
READBUSY();
INIT_UC8253();
dis_img_fast(PIC_BLACK,PIC_WHITE);
enterdeepsleep();
DELAY_S(1);
_NOP();
RESET();
READBUSY();
INIT_UC8253();
dis_img_fast(PIC_WHITE,PIC_BLACK);
enterdeepsleep();
DELAY_S(1);
_NOP();
RESET();
READBUSY();
INIT_UC8253();
dis_img_fast(PIC_BLACK,PIC_VLINE);
enterdeepsleep();
DELAY_S(1);
_NOP();
RESET();
READBUSY();
INIT_UC8253();
dis_img_fast(PIC_VLINE,PIC_HLINE);
enterdeepsleep();
DELAY_S(1);
_NOP();
RESET();
READBUSY();
INIT_UC8253();
dis_img_fast(PIC_HLINE,PIC_VLINE);
enterdeepsleep();
DELAY_S(1);
_NOP();
while(1){}
}
Binary file not shown.
@@ -0,0 +1,379 @@
//备注:用Source Insight软件浏览程序效果最佳
//xx Includes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#include "msp430x22x4.h"
#include "420_1.h"
//xx Private macro xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#define SDA_H (P1OUT |=BIT7) // P1.7
#define SDA_L (P1OUT &=~BIT7)
#define SCLK_H (P1OUT |=BIT6) // P1.6
#define SCLK_L (P1OUT &=~BIT6)
#define nCS_H (P1OUT |=BIT5) // P1.5
#define nCS_L (P1OUT &=~BIT5)
#define nDC_H (P1OUT |=BIT4) // P1.4
#define nDC_L (P1OUT &=~BIT4)
#define nRST_H (P1OUT |=BIT3) // P1.3
#define nRST_L (P1OUT &=~BIT3)
#define R_SDA 0x80 //P1.7
#define DELAY_TIME 1 // 图片显示完停留时间(单位:秒)
#define MODE1 // panel scan direction
unsigned char tempvalue;
unsigned char temp1,temp2;
#define PIC_BLACK 252
#define PIC_WHITE 255
#define PIC_A 1
#define PIC_B 2
#define PIC_HLINE 3
#define PIC_VLINE 4
#define PIC_C 5
#define PIC_D 6
#define PIC_E 7
#define PIC_R 8
//xx Private functions xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 延时函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void DELAY_100nS(int delaytime) // 30us
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<1;j++);
}
void DELAY_mS(int delaytime) // 1ms
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<200;j++);
}
void DELAY_S(int delaytime) // 1s
{
int i,j,k;
for(i=0;i<delaytime;i++)
for(j=0;j<1000;j++)
for(k=0;k<200;k++);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 电子纸驱动操作函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 复位 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void RESET()
{
nRST_L;
DELAY_mS(1);
nRST_H;
DELAY_mS(1);
}
// 读忙 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void READBUSY()
{
while(1)
{
_NOP();
if((P1IN & 0x04)==0)
break;
}
}
// 写命令 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITECOM(unsigned char INIT_COM)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_COM;
nCS_H;
nCS_L;
SCLK_L;
nDC_L;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 写数据 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITEDATA(unsigned char INIT_DATA)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_DATA;
//nCS_H;
//nCS_L;
SCLK_L;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 读数据xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
unsigned char SPI4W_READDATA1()
{
P1DIR &=~ R_SDA;
unsigned char scnt,temp;
temp=0;
// nCS_H;
// nCS_L;
// SCLK_H;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
SCLK_L;
if(P1IN&R_SDA)
temp=(temp<<1)|0x01;
else
temp=temp<<1;
SCLK_H;
SCLK_L;
}
// nCS_H;
tempvalue= temp;
return temp;
}
void read_temperture(void)
{
//调用此函数前busy线必须为低
unsigned char temp1,temp2;
SPI4W_WRITECOM(0x18);
SPI4W_WRITEDATA(0X80);
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0XB1);
SPI4W_WRITECOM(0x20);
READBUSY();
SPI4W_WRITECOM(0x1B);
temp1=SPI4W_READDATA1();
tempvalue=temp1;
nCS_H;
}
// 入深度睡眠 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void enterdeepsleep()
{
SPI4W_WRITECOM(0x10);
SPI4W_WRITEDATA(0x01);
nCS_H;
}
// 电子纸驱动初始化 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void INIT_SSD1683()
{
SPI4W_WRITECOM(0x01); // Set Driver Output Control for Gate setting = Gate Channel - 1
SPI4W_WRITEDATA(0x2B); // For example, for 300 gate channel => 300 - 1 = 299 (0x12B)
SPI4W_WRITEDATA(0x01);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x11); // Set Data Entry Mode setting
SPI4W_WRITEDATA(0x01); //Y decrement, X increment, address counter in X-direction
SPI4W_WRITECOM(0x44); // Set RAM X address
SPI4W_WRITEDATA(0x00); // start position = 0
SPI4W_WRITEDATA(0x31); // end position = Source Channel/8 - 1 => 49(0x31)
SPI4W_WRITECOM(0x45); //Set RAM Y address
SPI4W_WRITEDATA(0x2B); //start position = 300 - 1 = 299 (0x12B) and
SPI4W_WRITEDATA(0x01);
SPI4W_WRITEDATA(0x00); // end position = 0
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x3C); // board
SPI4W_WRITEDATA(0x01); // White: 0x01
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 图片显示函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void dis_img(unsigned char num)
{
unsigned int row, col;
unsigned int pcnt;
/***************************************************bw image****************************************************/
SPI4W_WRITECOM(0x4E); //Set RAM X address counter = 0
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x4F); //Set Driver Output Control for Gate setting = Gate Channel - 1
SPI4W_WRITEDATA(0x2B); //For example, for 300 gate channel => 300 - 1 = 299 (0x12B)
SPI4W_WRITEDATA(0x01);
SPI4W_WRITECOM(0x24); //Write B/W image data into to Register 0x24 RAM
pcnt = 0; // 复位或保存提示字节序号
for(col=0; col<300; col++) // 总共172列 // send 128x252bits ram 2D13
{
for(row=0; row<50; row++) // 总共72行,每个像素2bit,即 72/4 字节
{
switch (num)
{
case PIC_R:
SPI4W_WRITEDATA(0x00);
break;
case PIC_VLINE:
if(col<100)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xff);
break;
case PIC_HLINE:
if(row<16)
SPI4W_WRITEDATA(0x00);
else
SPI4W_WRITEDATA(0xff);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0xff);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
/***************************************************bw image****************************************************/
SPI4W_WRITECOM(0x4E); // set RAM x address count to 0;
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x4F); // sSet Driver Output Control for Gate setting = Gate Channel - 1
SPI4W_WRITEDATA(0x2B); //For example, for 300 gate channel => 300 - 1 = 299 (0x12B)
SPI4W_WRITEDATA(0x01);
SPI4W_WRITECOM(0x26); //Write Red image data into Register 0x26 RAM
pcnt = 0; // 复位或保存提示字节序号
for(col=0; col<300; col++) // 总共172列 // send 128x252bits ram 2D13
{
for(row=0; row<50; row++) // 总共72行,每个像素2bit,即 72/4 字节
{
switch (num)
{
case PIC_R:
SPI4W_WRITEDATA(0xFF);
break;
case PIC_VLINE:
if(col>200)
SPI4W_WRITEDATA(0xff);
else
SPI4W_WRITEDATA(0x00);
break;
case PIC_HLINE:
if(row>32)
SPI4W_WRITEDATA(0xff);
else
SPI4W_WRITEDATA(0x00);
break;
case PIC_WHITE:
SPI4W_WRITEDATA(0x00);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0xF7); //Load LUT from MCU(0x32), Display update
SPI4W_WRITECOM(0x20);
DELAY_mS(1);
READBUSY();
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 主函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void main( void )
{
int i;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
BCSCTL1 = CALBC1_8MHZ; // set DCO frequency 1MHZ
DCOCTL = CALDCO_8MHZ;
P1DIR |=0x78; // set P1.3~7 output
P3OUT = 0XFF;
P3DIR = 0xff; // p3.4,p3.5 设为输入
P4DIR |= 0X01;
RESET();
SPI4W_WRITECOM(0x12);
READBUSY();
INIT_SSD1683();
dis_img(PIC_R);
enterdeepsleep();
DELAY_S(480);
_NOP();
}
@@ -0,0 +1,311 @@
//备注:用Source Insight软件浏览程序效果最佳
//xx Includes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#include "msp430x22x4.h"
#include "420_1.h"
//xx Private macro xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#define SDA_H (P1OUT |=BIT7) // P1.7
#define SDA_L (P1OUT &=~BIT7)
#define SCLK_H (P1OUT |=BIT6) // P1.6
#define SCLK_L (P1OUT &=~BIT6)
#define nCS_H (P1OUT |=BIT5) // P1.5
#define nCS_L (P1OUT &=~BIT5)
#define nDC_H (P1OUT |=BIT4) // P1.4
#define nDC_L (P1OUT &=~BIT4)
#define nRST_H (P1OUT |=BIT3) // P1.3
#define nRST_L (P1OUT &=~BIT3)
#define R_SDA 0x80 //P1.7
#define DELAY_TIME 1 // 图片显示完停留时间(单位:秒)
#define MODE1 // panel scan direction
unsigned char tempvalue;
unsigned char temp1,temp2;
#define PIC_BLACK 252
#define PIC_WHITE 255
#define PIC_A 1
#define PIC_B 2
#define PIC_HLINE 3
#define PIC_VLINE 4
#define PIC_C 5
#define PIC_D 6
#define PIC_E 7
#define PIC_R 8
//xx Private functions xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 延时函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void DELAY_100nS(int delaytime) // 30us
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<1;j++);
}
void DELAY_mS(int delaytime) // 1ms
{
int i,j;
for(i=0;i<delaytime;i++)
for(j=0;j<200;j++);
}
void DELAY_S(int delaytime) // 1s
{
int i,j,k;
for(i=0;i<delaytime;i++)
for(j=0;j<1000;j++)
for(k=0;k<200;k++);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 电子纸驱动操作函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 复位 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void RESET()
{
nRST_L;
DELAY_mS(1);
nRST_H;
DELAY_mS(1);
}
// 读忙 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void READBUSY()
{
while(1)
{
_NOP();
if((P1IN & 0x04)==0)
break;
}
}
// 写命令 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITECOM(unsigned char INIT_COM)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_COM;
nCS_H;
nCS_L;
SCLK_L;
nDC_L;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 写数据 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void SPI4W_WRITEDATA(unsigned char INIT_DATA)
{
unsigned char TEMPCOM;
unsigned char scnt;
P1DIR |= R_SDA;
TEMPCOM=INIT_DATA;
//nCS_H;
//nCS_L;
SCLK_L;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
if(TEMPCOM&0x80)
SDA_H;
else
SDA_L;
SCLK_H;
SCLK_L;
TEMPCOM=TEMPCOM<<1;
}
//nCS_H;
}
// 读数据xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
unsigned char SPI4W_READDATA1()
{
P1DIR &=~ R_SDA;
unsigned char scnt,temp;
temp=0;
// nCS_H;
// nCS_L;
// SCLK_H;
nDC_H;
for(scnt=0;scnt<8;scnt++)
{
SCLK_L;
if(P1IN&R_SDA)
temp=(temp<<1)|0x01;
else
temp=temp<<1;
SCLK_H;
SCLK_L;
}
// nCS_H;
tempvalue= temp;
return temp;
}
void read_temperture(void)
{
//调用此函数前busy线必须为低
unsigned char temp1,temp2;
SPI4W_WRITECOM(0x18);
SPI4W_WRITEDATA(0X80);
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0XB1);
SPI4W_WRITECOM(0x20);
READBUSY();
SPI4W_WRITECOM(0x1B);
temp1=SPI4W_READDATA1();
tempvalue=temp1;
nCS_H;
}
// 入深度睡眠 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void enterdeepsleep()
{
SPI4W_WRITECOM(0x10);
SPI4W_WRITEDATA(0x01);
nCS_H;
}
// 电子纸驱动初始化 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void INIT_SSD1683()
{
SPI4W_WRITECOM(0x01); // Set Driver Output Control for Gate setting = Gate Channel - 1
SPI4W_WRITEDATA(0x2B); // For example, for 300 gate channel => 300 - 1 = 299 (0x12B)
SPI4W_WRITEDATA(0x01);
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x11); // Set Data Entry Mode setting
SPI4W_WRITEDATA(0x01); //Y decrement, X increment, address counter in X-direction
SPI4W_WRITECOM(0x44); // Set RAM X address
SPI4W_WRITEDATA(0x00); // start position = 0
SPI4W_WRITEDATA(0x31); // end position = Source Channel/8 - 1 => 49(0x31)
SPI4W_WRITECOM(0x45); //Set RAM Y address
SPI4W_WRITEDATA(0x2B); //start position = 300 - 1 = 299 (0x12B) and
SPI4W_WRITEDATA(0x01);
SPI4W_WRITEDATA(0x00); // end position = 0
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x3C); // board
SPI4W_WRITEDATA(0x01); // White: 0x01
SPI4W_WRITECOM(0x21);
SPI4W_WRITEDATA(0x40);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 图片显示函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void dis_img(unsigned char num)
{
unsigned int row, col;
unsigned int pcnt;
/***************************************************bw image****************************************************/
SPI4W_WRITECOM(0x4E); //Set RAM X address counter = 0
SPI4W_WRITEDATA(0x00);
SPI4W_WRITECOM(0x4F); //Set Driver Output Control for Gate setting = Gate Channel - 1
SPI4W_WRITEDATA(0x2B); //For example, for 300 gate channel => 300 - 1 = 299 (0x12B)
SPI4W_WRITEDATA(0x01);
SPI4W_WRITECOM(0x24); //Write B/W image data into to Register 0x24 RAM
pcnt = 0; // 复位或保存提示字节序号
for(col=0; col<300; col++) // 总共172列 // send 128x252bits ram 2D13
{
for(row=0; row<50; row++) // 总共72行,每个像素2bit,即 72/4 字节
{
switch (num)
{
case PIC_WHITE:
SPI4W_WRITEDATA(0xff);
break;
case PIC_BLACK:
SPI4W_WRITEDATA(0x00);
break;
default:
break;
}
pcnt++;
}
}
SPI4W_WRITECOM(0x22);
SPI4W_WRITEDATA(0xF7); //Load LUT from MCU(0x32), Display update
SPI4W_WRITECOM(0x20);
DELAY_mS(1);
READBUSY();
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xx 主函数 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void main( void )
{
int i;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
BCSCTL1 = CALBC1_8MHZ; // set DCO frequency 1MHZ
DCOCTL = CALDCO_8MHZ;
P1DIR |=0x78; // set P1.3~7 output
P3OUT = 0XFF;
P3DIR = 0xff; // p3.4,p3.5 设为输入
P4DIR |= 0X01;
RESET();
SPI4W_WRITECOM(0x12);
READBUSY();
INIT_SSD1683();
dis_img(PIC_WHITE);
enterdeepsleep();
DELAY_S(480);
_NOP();
}
Binary file not shown.
Binary file not shown.
Binary file not shown.