找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2487|回复: 0
打印 上一主题 下一主题
收起左侧

8*8*8光立方程序文件

[复制链接]
跳转到指定楼层
楼主
ID:159560 发表于 2017-1-3 12:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------
* 上升沿电子科技
* 时间2015.8.1
-----------------------------------------------------------------------------------------------------*/

//Build target 'Target 1'
//compiling stc8x8x8.c...
//linking...
//Program Size: data=17.1 xdata=355 code=53475
//creating hex file from "stc8x8x8"...
//"stc8x8x8" - 0 Error(s), 0 Warning(s).
//没有关闭本店字样的显示函数 FLASH_12        FLASH_14  FLASH_18 如果需要自己关闭函数即可





#include "STC12C5A.H"  //包含单片机的头文件使用KEIL必须添加进来否则编译不了
#include "intrins.h"   //包含NOP延时头文件
#define uchar unsigned char         
#define uint unsigned int         
#define nop() _nop_();_nop_();

void key_baihei_scan();  
void key_shangwiej_scan();   
void key_donghua_scan();       
void key_yinyue_scan();
void box(unsigned char x1,unsigned char z1,unsigned char y1,unsigned char x2,unsigned char z2,unsigned char y2,unsigned char fill,unsigned char le);
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
sbit AD=P1^0;                 //定义音频输入接口
sbit GM=P1^1;                 //定义光敏输入接口

sbit K1=P0^0;                 //定义功能按键接口
sbit K2=P0^1;                 //定义功能按键接口
sbit K3=P0^2;                 //定义功能按键接口
sbit K4=P0^3;                 //定义功能按键接口

sbit PWM_POW=P4^4;   //定义PWM呼吸小夜灯和主板电源指示灯功能接口 低电平
sbit IRIN=P3^2;           //红外线信号接口

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
sbit M_HR_DS0=P1^4;          //模拟数据发送端口
sbit M_LR_DS0=P1^5;          //模拟数据发送端口


sbit M_HG_DS0=P1^6;          //模拟数据发送端口
sbit M_LG_DS0=P0^7;          //模拟数据发送端口

sbit CLK=P1^3;    //模拟时钟控制端口
sbit SUO=P1^2;          //模拟锁存信号端口
/*$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$$-_-$_-_$*/

sbit M_A=P3^4;          //行数据扫描信号
sbit M_B=P3^5;          //行数据扫描信号
sbit M_C=P3^6;          //行数据扫描信号
sbit M_D=P3^7;          //行数据扫描信号
sbit M_EN=P1^7;   //行数据扫描信号
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
unsigned char displayck[]=
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
unsigned char shuzu8X8[]=
{
0XBD,0X85,0X85,0XBD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0XA1,0XA1,0XA1,0XBD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
uchar xdata display[8][8];
uchar xdata msd=4;
uint ld=500;
uchar test=0,key1=0,key2=0,key3=0,key4=0;
bit pu;
uchar xsdsq=0;
uchar cd=0,cnt=0,errd_flag=0,read_flag=0,layerr=0,saom=0;
unsigned char IRCOM[7];
/*rank:A,1,2,3,4,I,心,U*/
uchar code table_cha[8][8]=
{
0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,
0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x3c,
0x3c,0x66,0x66,0x30,0x18,0x0c,0x06,0x7e,
0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3c,
0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,
0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,
0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,
0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c,
};
/*the "ideasoft"*/
/*rank:A,1,2,3,4,I,心,U*////开机的LOGO显示字符字模提取PLC2002
uchar code table_cha_sj[8][8]=
{
0x08,0x08,0x78,0x08,0x08,0x08,0x08,0xFF,/*"上",0*/
0x18,0x04,0x22,0x24,0xFF,0x24,0x24,0x24,/*"升",0*/
0x78,0x49,0xCE,0x00,0xFF,0x84,0x86,0xFD,/*"沿",0*/
0x3C,0x42,0xA5,0xDB,0x81,0x99,0x42,0x3C,/*"笑脸",0*/
0x3C,0x42,0xA5,0xDB,0x81,0x99,0x42,0x3C,/*"笑脸",0*/
0x08,0x2A,0x2A,0xFF,0x14,0x14,0x96,0x71,/*"光",0*/
0x08,0x7F,0x22,0x22,0x24,0x14,0x14,0xFF,/*"立",0*/
0x08,0xFF,0x04,0x7C,0x44,0x44,0x42,0x31,/*"方",0*/
};
/*rank:3,D,C,L,U,E,F,F,T*///开机的LOGO显示字符字模提取PLC2002
uchar code table_cha_cu[9][8]=
{
0x7E,0x40,0x40,0x7C,0x7C,0x40,0x40,0x7E,/*"3",0*/
0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,/*"D",0*/
0x00,0x3C,0x02,0x02,0x02,0x02,0x02,0x3C,/*"C",0*/
0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,/*"L",0*/
0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,/*"U",0*/
0x00,0x7E,0x02,0x02,0x7E,0x02,0x02,0x7E,/*"E",0*/
0x78,0x04,0x04,0x04,0x7C,0x04,0x04,0x04,/*"F",0*/
0x78,0x04,0x04,0x04,0x7C,0x04,0x04,0x04,/*"F",0*/
0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,/*"T",0*/
};
uchar code table_id[40]=
{
0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,
0x00,0xff,0x89,0x89,0x00,0xf8,0x27,0x27,
0xf8,0x00,0x8f,0x89,0x89,0xf9,0x00,0xff,
0x81,0x81,0xff,0x00,0xff,0x09,0x09,0x09,
0x01,0x00,0x01,0x01,0xff,0x01,0x01,0x00,
};
/*the "ideasoft"*///侧面移动显示字符取摸plc2002
uchar code table_yd[120]={
0x08,0x08,0x78,0x08,0x08,0x08,0x08,0xFF,/*"上",0*/
0x18,0x04,0x22,0x24,0xFF,0x24,0x24,0x24,/*"升",0*/
0x78,0x49,0xCE,0x00,0xFF,0x84,0x86,0xFD,/*"沿",0*/
0x7E,0x2A,0x2A,0xFF,0xAA,0xAA,0xBE,0x40,/*"电",0*/
0x09,0x49,0x89,0xFD,0x0B,0x0B,0x09,0x08,/*"子",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x88,0x4E,0x78,0x0F,0xF8,0x8E,0x88,0x48,/*"光",0*/
0x82,0x8E,0xF2,0x83,0xE2,0x9E,0x82,0x80,/*"立",0*/
0x82,0x42,0x3E,0x0B,0x8A,0x8A,0x7A,0x02,/*"方",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
/*railway*/
uchar code dat[128]=
{
0x00,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,
0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,
0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,
0x10,0x0c,0x08,0x04,0x25,0x45,0x65,0x85,
0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,
0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,
0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,
0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,
0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,
0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,
0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,
0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,
0x35,0x31,0x2d,0x29,0x00,0x20,0x40,0x60,
0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,
0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,
0x3c,0x1c,0x18,0x14,0x10,0x0c,0x08,0x04,
};
/*railway 2*/
uchar code dat2[28]=
{
0x00,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,
0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,
0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,
0x10,0x0c,0x08,0x04,
};
/*railway 3*/
uchar code dat3[24]=
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,
0x26,0x36,0x46,0x56,0x66,0x65,0x64,0x63,
0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10,
};
/*3p char*/
uchar code table_3p[3][8]=
{
0xff,0x89,0xf5,0x93,0x93,0xf5,0x89,0xff,
0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,
0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18,
};
/*3p char*///飘雪打字显示字符取摸plc2002
uchar code table_3p_zf[11][8]={
0x88,0x4E,0x78,0x0F,0xF8,0x8E,0x88,0x48,/*"光",0*/
0x82,0x8E,0xF2,0x83,0xE2,0x9E,0x82,0x80,/*"立",0*/
0x82,0x42,0x3E,0x0B,0x8A,0x8A,0x7A,0x02,/*"方",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
0x00,0x00,0xC3,0xFF,0xFF,0xC3,0x00,0x00,//i
0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,
0x00,0x7F,0xFF,0x80,0x80,0xFF,0x7F,0x00,//u
};
unsigned int voivol(unsigned int n);
void sendbyte(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4);
void fvb();
void sendbyteck(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4);
/*initializtion
That is to initialize the program .
It is write to set the timer in c52 mcu.
So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/
/*##########################################################################################*/
uchar code number[]={//数字,滚动字幕使用,从上至下
        0x00,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,/*"L",0*/
        0x00,0x7E,0x40,0x7E,0x40,0x40,0x7E,0x00,/*"E",1*/
        0x00,0x7C,0x46,0x42,0x42,0x46,0x7C,0x00,/*"D",2*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
        0x00,0x3C,0x62,0x40,0x40,0x61,0x3E,0x00,/*"C",4*/
        0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,/*"U",5*/
        0x00,0x7C,0x42,0x7C,0x42,0x41,0x7E,0x00,/*"B",6*/
        0x00,0x7E,0x40,0x7E,0x40,0x40,0x7E,0x00,/*"E",7*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",8*/
        0x00,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,/*"H",9*/
        0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,/*"U",10*/
        0x00,0xC2,0x64,0x38,0x10,0x10,0x10,0x00,/*"Y",11*/
        0x00,0x18,0x18,0x24,0x7E,0x42,0x81,0x00,/*"A",12*/
        0x00,0x62,0x62,0x52,0x4A,0x46,0x46,0x00,/*"N",13*/
        0x00,0x3C,0x62,0x40,0x4E,0x62,0x3E,0x00,/*"G",14*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",16*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",17*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"Y",18*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",19*/
        0x00,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,/*"H",20*/
        0x00,0x44,0x44,0x44,0x44,0x44,0x38,0x00,/*"U",21*/
        0x00,0x82,0x44,0x28,0x10,0x10,0x10,0x00,/*"Y",22*/
        0x00,0x10,0x28,0x28,0x7C,0x44,0x82,0x00,/*"A",23*/
        0x00,0x64,0x64,0x54,0x54,0x4C,0x44,0x00,/*"N",24*/
        0x00,0x78,0xC4,0x80,0x9C,0xC4,0x7C,0x00,/*"G",25*/
        0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,/*"!",26*/
        0X38,0X64,0X06,0X3E,0X66,0X66,0X24,0X18,//"9"27
        0X3C,0X66,0X66,0X3C,0X66,0X66,0X24,0X18,//"8"28
        0X30,0X30,0X30,0X18,0X0C,0X04,0X46,0X7E,//"7"29
        0X18,0X26,0X66,0X78,0X60,0X66,0X24,0X18,//"6"30
        0X18,0X64,0X46,0X06,0X1C,0X60,0X62,0X7E,//"5"31
        0X0C,0X0C,0X7E,0X68,0X6C,0X2C,0X3C,0X1C,//"4"32
        0x78,0x46,0x06,0x06,0x1c,0x06,0x46,0x3c,//"3"33
        0xfc,0xc0,0x60,0x30,0x18,0xc6,0xc6,0x78,//"2"34
        0x3c,0x18,0x18,0x18,0x18,0x18,0x38,0x18,//"1"35
        0X18,0X24,0X66,0X66,0X66,0X66,0X24,0X18,//"0"36

        0x44,0xEE,0x66,0x22,0x3E,0x22,0x3E,0x00,/*"Y",1*/
        0x08,0xF4,0x44,0x2E,0x94,0x64,0x03,0x00,/*"D",2*/
        0x7E,0x10,0x10,0x10,0x1C,0x10,0x10,0x00,/*"S",3*/
        0x81,0x42,0x18,0xA5,0xA5,0x18,0x42,0x81,/*"M",4*/
        0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00,/*"M",5*/
};
uchar code flash0__tab[]=
{
0X03,0X07,0X06,0X08,0X10,0X20,0X40,0X80,
0X07,0X07,0X0F,0X1C,0X18,0X20,0X40,0X80,
0X0F,0X0F,0X1F,0X3F,0X3C,0X78,0X60,0X80,
0X1F,0X1F,0X3F,0X3F,0X7F,0X7C,0X70,0X80,
0X3F,0X3F,0X3F,0X7F,0X7F,0X7F,0XF8,0XC0,
0X7F,0X7F,0X7F,0X7F,0XFF,0XFF,0XFF,0XF0,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF//7
};
uchar code yc_table[]={//2帧,yinchu函数使用
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,//1I
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,

        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,//2心脏
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
        0x00,0x00,0x18,0x7e,0x7e,0x18,0x00,0x00,
        0x00,0x00,0x3c,0x7e,0x7e,0x3c,0x00,0x00,
        0x00,0x18,0x7e,0xff,0xff,0x7e,0x18,0x00,
        0x00,0x00,0x7e,0xff,0xff,0x7e,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,//3U
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,

        0x00,0x00,0x00,0x24,0x24,0x00,0x00,0x00,//4苹果
        0x00,0x00,0x00,0x7e,0x7e,0x00,0x00,0x00,
        0x00,0x00,0x3c,0xff,0x7e,0x3c,0x00,0x00,
        0x00,0x18,0x7e,0xff,0xff,0x7e,0x18,0x00,
        0x00,0x00,0x3c,0xfe,0xfe,0x3c,0x00,0x00,
        0x00,0x00,0x00,0x6e,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x18,0x10,0x00,0x00,0x00,
        0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5五角星
        0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,
        0x00,0x00,0x00,0x36,0x36,0x00,0x00,0x00,
        0x00,0x00,0x00,0x1c,0x1c,0x00,0x00,0x00,
        0x00,0x00,0x00,0x3e,0x3e,0x00,0x00,0x00,
        0x00,0x00,0x00,0x7f,0x7f,0x00,0x00,0x00,
        0x00,0x00,0x00,0x1c,0x1c,0x00,0x00,0x00,
        0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00
};
char code tab_mian[]={4,3,7,2,0,6,1,5};
char code tab_xian[]={5,0,3,6,1,7,4,2};
char code tab_dian[]={
0,1,3,4,7,2,6,5,
1,7,5,0,4,2,3,6,
1,6,4,0,7,5,2,3,
5,7,4,2,0,1,6,3,
1,6,3,4,5,2,0,7,
6,7,1,5,4,2,0,3,
2,0,3,1,5,7,6,4,
5,2,1,0,3,6,7,4,

0,7,4,3,2,6,5,1,
4,7,2,6,5,3,1,0,
0,1,4,3,2,5,6,7,
3,6,7,2,1,4,0,5,
5,2,1,0,7,6,4,3,
1,4,0,2,3,5,7,6,
4,2,1,5,6,0,7,3,
0,4,7,3,1,5,2,6,

1,0,6,7,4,5,3,2,
6,0,4,2,7,5,1,3,
3,1,2,6,7,5,0,4,
2,4,1,0,6,5,3,7,
6,2,1,5,7,4,3,0,
1,0,5,3,2,6,7,4,
7,1,0,4,2,5,6,3,
6,4,1,0,2,5,7,3,

2,6,7,0,3,5,1,4,
6,3,7,2,1,4,5,0,
7,0,5,6,1,3,4,2,
5,2,3,4,0,7,1,6,
2,3,0,7,6,4,1,5,
1,3,0,4,5,2,7,6,
3,4,2,5,6,0,1,7,
4,2,0,6,3,7,5,1,

4,1,6,0,7,3,2,5,
7,6,0,5,1,4,2,3,
6,1,3,2,7,0,5,4,
2,7,3,6,0,5,1,4,
6,5,2,1,0,3,7,4,
7,1,0,5,4,6,3,2,
1,7,3,2,6,0,5,4,
0,2,6,7,4,3,5,1,

0,5,4,1,6,3,2,7,
0,1,5,4,7,2,3,6,
1,4,2,3,5,7,6,0,
2,7,0,5,6,1,3,4,
2,1,6,0,4,5,3,7,
6,1,5,4,2,7,3,0,
4,0,5,2,1,6,7,3,
1,2,0,6,3,7,4,5,

5,0,1,2,4,3,7,6,
4,2,0,6,7,5,1,3,
2,3,7,4,6,1,0,5,
1,5,7,0,3,4,2,6,
2,7,6,3,5,1,0,4,
4,5,7,0,2,3,1,6,
0,5,7,3,2,1,6,4,
6,4,5,7,1,0,3,2,

1,6,5,7,0,2,3,4,
2,1,5,3,6,4,0,7,
0,6,5,4,3,7,0,2,
6,4,2,0,3,1,5,7,
4,5,7,6,0,3,1,2,
0,3,7,2,1,5,6,4,
5,2,4,0,1,3,7,2,
4,5,3,1,7,0,2,6
};
uint code tab_water[]={
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0220,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x01c0,0x0220,0x0410,0x0410,0x0410,0x0220,0x01c0,0x0000,0x0000,0x0000,0x0000,0x0000,                         
0x0000,0x0000,0x0000,0x03e0,0x0410,0x0808,0x0808,0x0808,0x0808,0x0808,0x0410,0x03e0,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x07f0,0x0808,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x0808,0x07f0,0x0000,0x0000,0x0000,
0x0000,0x0ff8,0x1004,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x1004,0x0ff8,0x0000,0x0000,
0x1ffc,0x2002,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x2002,0x1ffc,0x0000
};
uchar code tab_print[]={//打印函数使用
0X00,0X00,0X3C,0X3C,0X3C,0X3C,0X00,0X00,//正方形
0X20,0X30,0X38,0X3C,0X3C,0X38,0X30,0X20,//三角形
0X08,0X14,0X22,0X77,0X14,0X14,0X14,0X1C,//箭头
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//全亮
};
uchar code tab_xuanzhuantiao[]=//旋转条
{
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,
        0x00,0x00,0x00,0xf0,0x0f,0x00,0x00,0x00,
        0x00,0x00,0x80,0x70,0x0e,0x01,0x00,0x00,
        0x00,0x80,0x60,0x10,0x08,0x06,0x01,0x00,//
        0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,//1
        0x40,0x20,0x20,0x10,0x08,0x04,0x04,0x02,
        0x20,0x10,0x10,0x10,0x08,0x08,0x08,0x04,
        0x10,0x10,0x10,0x10,0x08,0x08,0x08,0x08,
        0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,
        0x04,0x08,0x08,0x08,0x10,0x10,0x10,0x20,
        0x02,0x04,0x04,0x08,0x10,0x20,0x20,0x40//7
};
uchar code tab_xuanzhuantiao2[]=//旋转条
{
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,//1
0X02,0X04,0X08,0X00,0X10,0X20,0X40,0X80,//
0X04,0X08,0X00,0X10,0X20,0X20,0X40,0X80,//
0X08,0X10,0X10,0X20,0X20,0X40,0X40,0X80,//
0X10,0X10,0X20,0X20,0X20,0X40,0X40,0X80,//
0X20,0X20,0X40,0X40,0X40,0X80,0X80,0X80,//
0X40,0X40,0X40,0X40,0X80,0X80,0X80,0X80,//

0X80,0X80,0X80,0X80,0X80,0X80,0X80,0X80,//8
0X80,0X80,0X80,0X80,0X40,0X40,0X40,0X40,//
0X80,0X80,0X00,0X40,0X40,0X40,0X20,0X20,//10
0X80,0X80,0X40,0X40,0X20,0X20,0X10,0X10,//
0X80,0X40,0X40,0X20,0X20,0X10,0X10,0X08,//
0X80,0X40,0X20,0X20,0X10,0X10,0X08,0X04,//
0X80,0X40,0X20,0X10,0X08,0X08,0X04,0X02,//
0X80,0X40,0X20,0X10,0X08,0X04,0X02,0X01,//15
0X80,0X40,0X20,0X10,0X0C,0X02,0X01,0X00,//16
0X80,0X40,0X30,0X0C,0X02,0X01,0X00,0X00,//
0X80,0X60,0X18,0X06,0X01,0X00,0X00,0X00,//18
0XC0,0X30,0X0E,0X01,0X00,0X00,0X00,0X00,//
0XE0,0X1C,0X03,0X00,0X00,0X00,0X00,0X00,//20
0XF0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,//
0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//22

0X0F,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,//23
0X07,0X38,0XC0,0X00,0X00,0X00,0X00,0X00,
0X03,0X0C,0X20,0XC0,0X00,0X00,0X00,0X00,
0X01,0X02,0X0C,0X30,0XC0,0X00,0X00,0X00,
0X01,0X02,0X04,0X08,0X30,0XC0,0X00,0X00,
0X01,0X02,0X04,0X08,0X10,0X60,0X80,0X00,
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,
0X01,0X02,0X04,0X08,0X10,0X20,0X20,0X40,
0X01,0X02,0X04,0X08,0X08,0X10,0X20,0X20,
0X01,0X02,0X04,0X04,0X08,0X08,0X10,0X10,
0X01,0X01,0X02,0X02,0X04,0X04,0X08,0X08,
0X01,0X01,0X01,0X02,0X02,0X02,0X04,0X04,
0X01,0X01,0X01,0X01,0X02,0X02,0X02,0X02,
0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,//36


0X02,0X02,0X02,0X02,0X01,0X01,0X01,0X01,//37
0X04,0X04,0X02,0X02,0X02,0X01,0X01,0X01,
0X08,0X08,0X04,0X04,0X02,0X02,0X01,0X01,
0X10,0X10,0X08,0X08,0X04,0X04,0X02,0X01,
0X20,0X10,0X00,0X08,0X08,0X04,0X02,0X01,
0X40,0X20,0X10,0X08,0X08,0X04,0X02,0X01,
0X80,0X40,0X20,0X10,0X08,0X04,0X02,0X01,
0X00,0X80,0X40,0X20,0X18,0X04,0X02,0X01,
0X00,0X00,0X80,0X40,0X38,0X04,0X02,0X01,
0X00,0X00,0X00,0X80,0X60,0X1C,0X02,0X01,
0X00,0X00,0X00,0X00,0X80,0X70,0X0E,0X01,
0X00,0X00,0X00,0X00,0X00,0XC0,0X3C,0X03,
0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X0F,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,//50

0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XF0,//51
0X00,0X00,0X00,0X00,0X00,0X03,0X1C,0XE0,
0X00,0X00,0X00,0X00,0X03,0X0C,0X30,0XC0,
0X00,0X00,0X00,0X01,0X06,0X18,0X20,0XC0,
0X00,0X00,0X01,0X02,0X0C,0X30,0X40,0X80,
0X00,0X01,0X02,0X04,0X18,0X20,0X40,0X80,
//0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80//57
};
uchar code bianxing_table[]={//变形
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,//1       

        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
        0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,//2

        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
        0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,//3

        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,//4变形开始

        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,//5

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,
        0X00,0X00,0X0f,0X0F,0Xf0,0XF0,0X00,0X00,
        0X00,0X00,0X0f,0X0F,0Xf0,0XF0,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,
        0X00,0X00,0X0F,0X00,0XF0,0X00,0X00,0X00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//6

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0X00,0X00,0X0f,0X0F,0Xf0,0XF0,0X00,0X00,
        0X00,0X00,0X0f,0X0F,0Xf0,0XF0,0X00,0X00,
        0X00,0X00,0X0f,0X0F,0Xf0,0XF0,0X00,0X00,
        0X00,0X00,0X0F,0X0f,0XF0,0Xf0,0X00,0X00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
       
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x1e,0x1e,0x78,0x78,0x00,0x00,
        0x00,0x00,0x1e,0x1e,0x78,0x78,0x00,0x00,
        0x00,0x00,0x1e,0x1e,0x78,0x78,0x00,0x00,
        0x00,0x00,0x1e,0x1e,0x78,0x78,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
        0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
        0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
        0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9,方体成型

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00,
        0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00,
        0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//10
       
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//11
};
uchar code y_table[]={//6帧四方块外轴心旋转
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//1

        0x06,0x06,0x00,0x00,0x00,0x00,0x06,0x06,
        0xc6,0xc6,0x00,0x00,0x00,0x00,0xc6,0xc6,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x63,0x63,0x00,0x00,0x00,0x00,0x63,0x63,
        0x60,0x60,0x00,0x00,0x00,0x00,0x60,0x60,//2

        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x03,0x03,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x03,0x03,
        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,
        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,//3

        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,
        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,
        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,//4

        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,
        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,//5

        0x60,0x60,0x00,0x00,0x00,0x00,0x60,0x60,
        0x63,0x63,0x00,0x00,0x00,0x00,0x63,0x63,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,0xc0,
        0xc6,0xc6,0x00,0x00,0x00,0x00,0xc6,0xc6,
        0x06,0x06,0x00,0x00,0x00,0x00,0x06,0x06//6
};
uchar code z_table[]=
{
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//1

0x60,0x63,0x03,0x00,0x00,0xc0,0xc6,0x06,
0x60,0x63,0x03,0x00,0x00,0xc0,0xc6,0x06,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x60,0x63,0x03,0x00,0x00,0xc0,0xc6,0x06,
0x60,0x63,0x03,0x00,0x00,0xc0,0xc6,0x06,//2

0x30,0x30,0x03,0x03,0xc0,0xc0,0x0c,0x0c,
0x30,0x30,0x03,0x03,0xc0,0xc0,0x0c,0x0c,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x30,0x03,0x03,0xc0,0xc0,0x0c,0x0c,
0x30,0x30,0x03,0x03,0xc0,0xc0,0x0c,0x0c,//3

0x18,0x18,0x00,0xc3,0xc3,0x00,0x18,0x18,
0x18,0x18,0x00,0xc3,0xc3,0x00,0x18,0x18,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x18,0x18,0x00,0xc3,0xc3,0x00,0x18,0x18,
0x18,0x18,0x00,0xc3,0xc3,0x00,0x18,0x18,//4

0x0c,0x0c,0xc0,0xc0,0x03,0x03,0x30,0x30,
0x0c,0x0c,0xc0,0xc0,0x03,0x03,0x30,0x30,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0c,0x0c,0xc0,0xc0,0x03,0x03,0x30,0x30,
0x0c,0x0c,0xc0,0xc0,0x03,0x03,0x30,0x30,//5

0x06,0xc6,0xc0,0x00,0x00,0x03,0x63,0x60,
0x06,0xc6,0xc0,0x00,0x00,0x03,0x63,0x60,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0xc6,0xc0,0x00,0x00,0x03,0x63,0x60,
0x06,0xc6,0xc0,0x00,0x00,0x03,0x63,0x60,//6
};
uchar code xz_table[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,//1

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,//2

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,//3

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,//4

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,0x00,
0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,//5

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//6

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,//7

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,//8


0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,//9

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,//10

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,
0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,//11

0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,//12

0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,//13

0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
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,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,//14

0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x3f,
0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x3f,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,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,0xff,0x3f,
0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x3f,//15

0x00,0x00,0x00,0x00,0xc0,0xc0,0x3f,0x3f,
0x00,0x00,0x00,0x00,0xc0,0xc0,0x3f,0x3f,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,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,0x3f,0x3f,
0x00,0x00,0x00,0x00,0xc0,0xc0,0x3f,0x3f,//16

0x00,0x00,0x00,0xc0,0xc0,0x00,0x3f,0x3f,
0x00,0x00,0x00,0xc0,0xc0,0x00,0x3f,0x3f,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,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,0x00,0x3f,0x3f,
0x00,0x00,0x00,0xc0,0xc0,0x00,0x3f,0x3f,//17

0x00,0x00,0xc0,0xc0,0x00,0x00,0x3f,0x3f,
0x00,0x00,0xc0,0xc0,0x00,0x00,0x3f,0x3f,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,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,0x00,0x00,0x3f,0x3f,
0x00,0x00,0xc0,0xc0,0x00,0x00,0x3f,0x3f,//18

0x00,0xc0,0xc0,0x00,0x00,0x00,0x6f,0x6f,
0x00,0xc0,0xc0,0x00,0x00,0x00,0x6f,0x6f,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,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,0x00,0x00,0x00,0x6f,0x6f,
0x00,0xc0,0xc0,0x00,0x00,0x00,0x6f,0x6f,//19

0xc0,0xc0,0x00,0x00,0x00,0x00,0xcf,0xcf,
0xc0,0xc0,0x00,0x00,0x00,0x00,0xcf,0xcf,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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,0x00,0x00,0x00,0x00,0xcf,0xcf,
0xc0,0xc0,0x00,0x00,0x00,0x00,0xcf,0xcf,//20

0x60,0x60,0x00,0x00,0x00,0xc0,0xcf,0x0f,
0x60,0x60,0x00,0x00,0x00,0xc0,0xcf,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,
0x60,0x60,0x00,0x00,0x00,0xc0,0xcf,0x0f,
0x60,0x60,0x00,0x00,0x00,0xc0,0xcf,0x0f,//21

0x18,0x18,0x00,0x00,0xc0,0xc0,0x0f,0x0f,
0x18,0x18,0x00,0x00,0xc0,0xc0,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,
0x18,0x18,0x00,0x00,0xc0,0xc0,0x0f,0x0f,
0x18,0x18,0x00,0x00,0xc0,0xc0,0x0f,0x0f,//22

0x18,0x18,0x00,0xc0,0xc0,0x00,0x0f,0x0f,
0x18,0x18,0x00,0xc0,0xc0,0x00,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,
0x18,0x18,0x00,0xc0,0xc0,0x00,0x0f,0x0f,
0x18,0x18,0x00,0xc0,0xc0,0x00,0x0f,0x0f,//23


0x0c,0x0c,0xc0,0xc0,0x00,0x00,0x1b,0x1b,
0x0c,0x0c,0xc0,0xc0,0x00,0x00,0x1b,0x1b,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0c,0x0c,0xc0,0xc0,0x00,0x00,0x1b,0x1b,
0x0c,0x0c,0xc0,0xc0,0x00,0x00,0x1b,0x1b,//24

0x06,0xc6,0xc0,0x00,0x00,0x00,0x33,0x33,
0x06,0xc6,0xc0,0x00,0x00,0x00,0x33,0x33,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0xc6,0xc0,0x00,0x00,0x00,0x33,0x33,
0x06,0xc6,0xc0,0x00,0x00,0x00,0x33,0x33,//25

0x03,0xc3,0xc0,0x00,0x00,0x00,0x63,0x63,
0x03,0xc3,0xc0,0x00,0x00,0x00,0x63,0x63,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0xc3,0xc0,0x00,0x00,0x00,0x63,0x63,
0x03,0xc3,0xc0,0x00,0x00,0x00,0x63,0x63,//26
};
uchar code yx_table[]={//Y轴心切换至X轴心变形
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//1

        0xc6,0xc6,0x00,0x00,0x00,0x00,0xc6,0xc6,
        0xc6,0xc6,0x00,0x00,0x00,0x00,0xc6,0xc6,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x63,0x63,0x00,0x00,0x00,0x00,0x63,0x63,
        0x60,0x60,0x00,0x00,0x00,0x00,0x60,0x60,//2

        0xcc,0xcc,0x00,0x00,0x00,0x00,0xcc,0xcc,
        0xcc,0xcc,0x00,0x00,0x00,0x00,0xcc,0xcc,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,
        0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,//3

        0xd8,0xd8,0x00,0x00,0x00,0x00,0xd8,0xd8,
        0xd8,0xd8,0x00,0x00,0x00,0x00,0xd8,0xd8,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,
        0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,//4

        0xf0,0xf0,0x00,0x00,0x00,0x00,0xf0,0xf0,
        0xf0,0xf0,0x00,0x00,0x00,0x00,0xf0,0xf0,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,
        0x0c,0x0c,0x00,0x00,0x00,0x00,0x0c,0x0c,//5

        0xf0,0xf0,0x00,0x00,0x00,0x00,0xf0,0xf0,
        0xf3,0xf3,0x00,0x00,0x00,0x00,0xf3,0xf3,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x06,0x06,0x00,0x00,0x00,0x00,0x06,0x06,
        0x06,0x06,0x00,0x00,0x00,0x00,0x06,0x06,//6

        0xf3,0xf3,0x00,0x00,0x00,0x00,0xf3,0xf3,
        0xf3,0xf3,0x00,0x00,0x00,0x00,0xf3,0xf3,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,//7

        0xf6,0xf6,0x00,0x00,0x00,0x00,0xf6,0xf6,
        0xf6,0xf6,0x00,0x00,0x00,0x00,0xf6,0xf6,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8

        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9

        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//10

        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//11

        0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,
        0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,
        0x03,0x03,0x00,0x00,0x00,0x00,0x03,0x03,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//12

        0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,
        0xff,0xff,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,//13

        0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xff,0xff,//完成
        0xff,0xff,0xc3,0xc3,0xc3,0xc3,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,//14

        0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//15

        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//16

        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//17

        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//18

        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//19

        0x00,0xc3,0xc3,0x00,0xc3,0xc3,0xc3,0xc3,
        0x00,0xc3,0xc3,0x00,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//20

        0xc3,0xc3,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,//21

        0x00,0x00,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,//22

        0x00,0x00,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,//23

        0x00,0x00,0x00,0xc3,0xc3,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,//24

        0x00,0x00,0xc3,0xc3,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,//25

        0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,0x00,
        0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,//26

};
uchar code x_table[]={//四方块X轴心旋转
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,//1

        0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,//2

        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,//3

        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,
        0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,//4

        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
        0x00,0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,
        0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,0x00,//5

        0x00,0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,
        0x00,0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,
        0xc3,0xc3,0x00,0x00,0x00,0xc3,0xc3,0x00,
        0x00,0x00,0x00,0x00,0x00,0xc3,0xc3,0x00,//6
};
uchar code sin_cube_table[]={//14帧
        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,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0xff,0x00,0x00,0xff,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,0xff,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,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,0xff,0xff,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,
        0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,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,0xff,0xff,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,
        0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
        0xff,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,0xff,0xff,0x00,0x00,0x00,0x00,
        0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,
        0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,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,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
        0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,

        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
        0x00,0x00,0x00,0x00,0x00,0xff,0xff,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,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,
        0x00,0x00,0x00,0xff,0x00,0x00,0xff,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,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
        0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,
        0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,
        0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,
};
uchar code hart_table[]={//2帧心跳
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
        0x00,0x18,0x3c,0x18,0x00,0x00,0x00,0x00,
        0x00,0x18,0x3c,0x18,0x00,0x00,0x00,0x00,
        0x00,0x3c,0x7e,0x3c,0x18,0x00,0x00,0x00,
        0x00,0x18,0x7e,0x18,0x00,0x00,0x00,0x00,
        0x00,0x00,0x24,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
        0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
        0x00,0x00,0x18,0x7e,0x7e,0x18,0x00,0x00,
        0x00,0x00,0x3c,0x7e,0x7e,0x3c,0x00,0x00,
        0x00,0x18,0x7e,0xff,0xff,0x7e,0x18,0x00,
        0x00,0x00,0x7e,0xff,0xff,0x7e,0x00,0x00,
        0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar code tab_shandian[]={
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//6

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8


        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,//9

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x00,0x00,0x00,0x00,0x00,//10

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//11

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//12


        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//13

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//14

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//15

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//16

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x07,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x00,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//17

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0f,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x80,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//18

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x1f,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x80,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x80,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//19

        0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x3f,
        0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x80,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x80,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//20


        0x00,0x00,0x00,0x00,0x00,0x01,0x81,0x7f,
        0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x80,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x80,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//21

        0x00,0x00,0x00,0x00,0x00,0x01,0x81,0xff,
        0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
        0x00,0x00,0x01,0x01,0x01,0x01,0x80,0x00,
        0x00,0x00,0x01,0x00,0x00,0x80,0x80,0x00,

        0x01,0x01,0x01,0x00,0x00,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
        0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
        0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00,//22
};
uchar code szfc_table[]={//数字浮出
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0X38,0X64,0X06,0X3E,0X66,0X66,0X24,0X18,//9
        0x00,0x00,0x00,0x00,
        0X3C,0X66,0X66,0X3C,0X66,0X66,0X24,0X18,//8
        0x00,0x00,0x00,0x00,
        0X30,0X30,0X30,0X18,0X0C,0X04,0X46,0X7E,//7
        0x00,0x00,0x00,0x00,
        0X18,0X26,0X66,0X78,0X60,0X66,0X24,0X18,//6
        0x00,0x00,0x00,0x00,
        0X18,0X64,0X46,0X06,0X1C,0X60,0X62,0X7E,//5
        0x00,0x00,0x00,0x00,
        0X0C,0X0C,0X7E,0X68,0X6C,0X2C,0X3C,0X1C,//4
        0x00,0x00,0x00,0x00,
        0x78,0x46,0x06,0x06,0x1c,0x06,0x46,0x3c,//3
        0x00,0x00,0x00,0x00,
        0xfc,0xc0,0x60,0x30,0x18,0xc6,0xc6,0x78,//2
        0x00,0x00,0x00,0x00,
        0x3c,0x18,0x18,0x18,0x18,0x18,0x38,0x18,//1
        0x00,0x00,0x00,0x00,
        0X18,0X24,0X66,0X66,0X66,0X66,0X24,0X18,//0
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tab_rain[]={//rain
0X00,0X84,0X01,0X00,0X00,0X01,0X02,0X44,
0X84,0X00,0X24,0X08,0X04,0X20,0X80,0X00,
0X00,0X20,0X00,0X00,0X20,0X00,0X40,0X00,
0X00,0X04,0X00,0X40,0X00,0X00,0X08,0X00,

0X40,0X00,0X10,0X00,0X00,0X04,0X04,0X11,
0X00,0X41,0X00,0X00,0X80,0X00,0X40,0X00,
0X00,0X00,0X00,0X24,0X01,0X18,0X00,0X00,
0X22,0X10,0X02,0X00,0X40,0X00,0X02,0X00
};

/*##########################################################################################*/
//************************************上升沿电子科技************************************
//函数名称:void delayus(unsigned int yanshi);
//功    能:根据yanshi值的大小进行延时等待操作,1默认为2uS
//入口参数:yanshi的值,范围0-65535
//出口参数:无
//编 写 人:上升沿电子科技
//编写日期:2015-08-1
//修改历史:V1.0
//************************************上升沿电子科技************************************
void delayus(unsigned int yanshi)
{
        unsigned int wmys;                 //定义延时循环控制变量
        for(wmys=0;wmys<=yanshi;wmys++);        //根据延时参数进行空循环操作,达到延时功能
}
/*##########################################################################################*/
//************************************上升沿电子科技************************************
//函数名称:void hansao(unsigned char hs);
//功    能:根据入口参数hs的值,进行判断选择哪一行,选通1-8行的选通
//入口参数:hs的值,范围0-7
//出口参数:无
//编 写 人:上升沿电子科技
//************************************上升沿电子科技************************************
void hansao(unsigned char hs)     
{
        if(hs<8)                          //判断hs的值是否在行扫描的值范围内,不在范围内不执行任何操作
        {
                if(hs==7)                  //选通第1行
                {
                M_A=0;M_B=0;M_C=0;M_D=0;   return;
                }
                if(hs==6)                  //选通第2行
                {
                M_A=1;M_B=0;M_C=0;M_D=0;   return;
                }
                if(hs==5)                  //选通第3行
                {
                M_A=0;M_B=1;M_C=0;M_D=0;   return;
                }
                if(hs==4)                  //选通第4行
                {
                M_A=1;M_B=1;M_C=0;M_D=0;   return;
                }
                if(hs==3)                  //选通第5行
                {
                M_A=0;M_B=0;M_C=1;M_D=0;   return;
                }
                if(hs==2)                  //选通第6行
                {
                M_A=1;M_B=0;M_C=1;M_D=0;   return;
                }
                if(hs==1)                  //选通第7行
                {
                M_A=0;M_B=1;M_C=1;M_D=0;   return;
                }
                if(hs==0)                  //选通第8行
                {
                M_A=1;M_B=1;M_C=1;M_D=0;   return;
                }
        }
}
void ADC0_Init (void)
{
    P1ASF = 0x01;                   //Open 8 channels ADC function
    ADC_RES = 0;                    //Clear previous result        清零ADC的8位数据
        AUXR1 &=0xFB;                   //1111,1011, 令 ADRJ=0 (10位A/D转换结果的高8位放在ADC_RES寄存器, 低2位放在ADC_RESL寄存器)
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//配置ADC寄存器  
    _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
void init()
{
        P4SW=0xff;                //定义P4口为I/O口
        P0M1=0x00;                                   
        P0M0=0xff;                //定义P0为强上拉输出.
        P1M1=0x01;
        P1M0=0xfe;                //定义P1为强上拉输出.   P1.0作为AD此时不能作为强上蜡
        P2M1=0x00;
        P2M0=0xff;                //定义P2为强上拉输出.
        P3M1=0x00;
        P3M0=0xf8;                //定义P2为强上拉输出.
        P4M1=0x00;
        P4M0=0xff;                //定义P4为强上拉输出.
}
void sinter()
{
        IE=0x82;
        TCON=0x01;
        TH0=0x10;
        TL0=0x00;
        init();                         
        PWM_POW=1;         
        ADC0_Init();       
}
void delay10us(void)   //误差 -0.026765046296us STC 1T 22.1184Mhz
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=2;a>0;a--);           //默认的速度为5,变速1-5-25-125
}
void delay5us(void)   //误差 -0.026765046296us STC 1T 22.1184Mhz
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=5;a>0;a--);           //默认的速度为5,变速1-5-25-125
}

void delay(uint ihk)
{   
        if(key3==2){return;}
        else
    {                                                                                             
    while(ihk--)
         {
         delay5us();   //12t的mcu 注释这个延时即可
         }
        }

}

/*判断一个数值的第n位,是1还是0,并返回相应数值*/
uchar judgebit(uchar num,uchar b)
{
char n;
num=num&(1<<b);
if (num)
n=1;
else
n=0;
return n;
}
/*To figure out the round number*/
uchar abs(uchar a)
{
uchar b;
b=a/10;
a=a-b*10;
if (a>=5)
b++;
return b;
}
/*To figure out the absolute value*/
uchar abss(char a)
{
if (a<0)
a=-a;
return a;
}
/*The function can comparat the character.
And remove the big one to the back.*/
void max(uchar *a,uchar *b)
{
   uchar t;
   if ((*a)>(*b))
   {
  t=(*a);
  (*a)=(*b);
  (*b)=t;
   }
}
/*The function is to figure out the max number and return it.*/
uchar maxt(uchar a,uchar b,uchar c)
{
if (a<b)
a=b;
if (a<c)
a=c;
return a;
}
void clear(char le)
{
uchar i,j;
for (j=0;j<8;j++)
{
  for (i=0;i<8;i++)
  display[j][i]=le;
}
}void Vol_watch_1(unsigned char kxg1)
{
unsigned int xdata result=0,l=0,n=500,saa,sad;
unsigned char code disxin[8][8]={
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x99,
0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xA5,
0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0xC3,
0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81,
0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81,
0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x99,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7,
0xFF, 0xC3, 0xA5, 0x81, 0x81, 0xA5, 0xC3, 0xFF,
};
while(n)
{
  if ((result>>5)>l)
  l=result>>5;
  else
   if (l>0)
    l--;
  if (l>7)
  l=7;
if(kxg1==1)
{
  box(3,3,0,4,4,l,1,1);
  if (l<7)
  box(3,3,7,4,4,l+1,1,0);
  result=voivol(16);                 
}
if(kxg1==2)
{
  box(2,2,0,5,5,l,1,1);
  if (l<7)
  box(2,2,7,5,5,l+1,1,0);
  result=voivol(16);                 
}
if(kxg1==3)
{
  box(1,1,0,6,6,l,1,1);
  if (l<7)
  box(1,1,7,6,6,l+1,1,0);
  result=voivol(16);                  
}
if(kxg1==4)
{  
  box(0,0,0,7,7,l,1,1);
  if (l<7)
  box(0,0,7,7,7,l+1,1,0);
  result=voivol(16);               
}
if(kxg1==5)
{
for(saa=0;saa<8;saa++)
        {
        for(sad=0;sad<8;sad++)
        {
        display[saa][sad]= disxin[saa][sad];
        }
        }
  box(3,3,0,4,4,l,1,1);
  if (l<7)
  box(3,3,7,4,4,l+1,1,0);
  result=voivol(16);               
}n--;
if(key2==3||key2==2){if(key2==3){msd=3;break;}
else{if(key2==2){msd=2;break;}}}
}
}
void serial (void) interrupt 4 using 1
{
uchar tempbuff;EA=0;
if(RI){
  RI=0;tempbuff=SBUF;
  switch(cnt){
   case 0:if(tempbuff==0xf2)cnt=1;else {cnt=0;}break;
   case 1:shuzu8X8[cd++]=tempbuff;
   if(cd==64){cnt=0;cd=0;read_flag=1;}
   else{break;}
  default:break;} }
EA=1;
}


void trailler(uint speed)
{
char i,j;
for (i=6;i>=-3;i--)
{
  if (i>=0)
  {
   for (j=0;j<8;j++)
   display[j][i]=display[j][i+1];
  }
  if (i<4)
  {
   for (j=0;j<8;j++)
   display[j][i+4]=0;
  }
  delay(speed);
}
}
void point(uchar x,uchar y,uchar z,uchar le)
{
uchar ch1,ch0;
ch1=1<<x;
ch0=~ch1;
if (le)
display[z][y]=display[z][y]|ch1;
else
display[z][y]=display[z][y]&ch0;
}
void type(uchar cha,uchar y)
{
uchar xx;
for (xx=0;xx<8;xx++)
{
display[xx][y]=table_cha[cha][xx];
}
}
void type_sj(uchar cha,uchar y)
{
uchar xx;
for (xx=0;xx<8;xx++)
{
display[xx][y]=table_cha_sj[cha][xx];
}
}
/*The first variable is the distance from the midpoint.
The second is the layer.
the third is the flash speed of the time between each two point.
The forth is the enable io,it controls weather draw or claen.*/
void cirp(char cpp,uchar dir,uchar le)
{
uchar a,b,c,cp;
if ((cpp<128)&(cpp>=0))
{
  if (dir)
  cp=127-cpp;
  else
  cp=cpp;
  a=(dat[cp]>>5)&0x07;
  b=(dat[cp]>>2)&0x07;
  c=dat[cp]&0x03;
  if (cpp>63)
  c=7-c;
  point (a,b,c,le);
}
}
void line(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le)
{
char t,a,b,c,a1,b1,c1,i;
a1=x2-x1;
b1=y2-y1;
c1=z2-z1;
t=maxt(abss(a1),abss(b1),abss(c1));
a=x1*10;
b=y1*10;
c=z1*10;
a1=a1*10/t;
b1=b1*10/t;
c1=c1*10/t;
for (i=0;i<t;i++)
{
  point(abs(a),abs(b),abs(c),le);
  a+=a1;
  b+=b1;
  c+=c1;
}
point(x2,y2,z2,le);
}
void box(unsigned char x1,unsigned char z1,unsigned char y1,unsigned char x2,unsigned char z2,unsigned char y2,unsigned char fill,unsigned char le)
{
uchar i,j,t=0;
max(&x1,&x2);
max(&y1,&y2);
max(&z1,&z2);
for (i=x1;i<=x2;i++)
  t|=1<<i;
if (!le)
  t=~t;
if (fill)
{
  if (le)
  {
   for (i=z1;i<=z2;i++)
   {
    for (j=y1;j<=y2;j++)
     display[j][i]|=t;
   }
  }
  else
  {
   for (i=z1;i<=z2;i++)
   {
    for (j=y1;j<=y2;j++)
     display[j][i]&=t;
   }
  }
}
else
{
  if (le)
  {
   display[y1][z1]|=t;
   display[y2][z1]|=t;
   display[y1][z2]|=t;
   display[y2][z2]|=t;
  }
  else
  {
    display[y1][z1]&=t;
   display[y2][z1]&=t;
   display[y1][z2]&=t;
   display[y2][z2]&=t;
  }
  t=(0x01<<x1)|(0x01<<x2);
  if (!le)
   t=~t;
  if (le)
  {
   for (j=z1;j<=z2;j+=(z2-z1))
   {
    for (i=y1;i<=y2;i++)
     display[i][j]|=t;
   }
   for (j=y1;j<=y2;j+=(y2-y1))
   {
    for (i=z1;i<=z2;i++)
     display[j][i]|=t;
   }
  }
  else
  {
   for (j=z1;j<=z2;j+=(z2-z1))
   {
    for (i=y1;i<=y2;i++)
    {
    display[i][j]&=t;
    }
   }
   for (j=y1;j<=y2;j+=(y2-y1))
   {
    for (i=z1;i<=z2;i++)
    {
    display[j][i]&=t;
    }
   }
  }
}
}
void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le)
{
uchar i;
max(&z1,&z2);
if (fill)
{
  for (i=z1;i<=z2;i++)
  {
   line (x1,y1,i,x2,y2,i,le);
  }
}
else
{
  line (x1,y1,z1,x2,y2,z1,le);
  line (x1,y1,z2,x2,y2,z2,le);
  line (x2,y2,z1,x2,y2,z2,le);
  line (x1,y1,z1,x1,y1,z2,le);
}
}

void poke(uchar n,uchar x,uchar y)
{
uchar i;
for (i=0;i<8;i++)
{
  point(x,y,i,judgebit(n,i));
}
}
void boxtola(char i,uchar n)
{
if ((i>=0)&(i<8))
{
  poke(n,0,7-i);
}
if ((i>=8)&(i<16))
{
  poke(n,i-8,0);
}
if ((i>=16)&(i<24))
{
  poke(n,7,i-16);
}
}
void rolldisplay_yd(uint speed)
{
         uchar j;
         char i,a;
         for (i=23;i>-112;i--)
         {
                   for (j=0;j<112;j++)
                   {
                            a=i+j;
                            if ((a>=0)&(a<24))
                            boxtola(a,table_yd[j]);
                   }
                   delay(speed);
         }
}
void rolldisplay(uint speed)
{
uchar xdata j;
char xdata i,a;
for (i=23;i>-40;i--)
{
  for (j=0;j<40;j++)
  {
   a=i+j;
   if ((a>=0)&(a<24))
   boxtola(a,table_id[j]);
  }
  delay(speed);
}
}
void roll_apeak_yz(uchar n,uint speed)
{
uchar xdata i;
switch(n)
{
  case 1:
   for (i=0;i<7;i++)
   {
    display[i][7]=0;
    display[7][6-i]=255;
    delay(speed);
   };
   break;
  case 2:
   for (i=0;i<7;i++)
   {
    display[7][7-i]=0;
    display[6-i][0]=255;
    delay(speed);
   };
   break;
  case 3:
   for (i=0;i<7;i++)
   {
    display[7-i][0]=0;
    display[0][i+1]=255;
    delay(speed);
   };
   break;
  case 0:
   for (i=0;i<7;i++)
   {
    display[0][i]=0;
    display[i+1][7]=255;
    delay(speed);
   };
}
}
void roll_apeak_xy(uchar n,uint speed)
{
uchar xdata i;
switch(n)
{
  case 1:
   for (i=0;i<7;i++)
   {
    line(0,i,0,0,i,7,0);
    line(i+1,7,0,i+1,7,7,1);
    delay(speed);
   };
   break;
  case 2:
   for (i=0;i<7;i++)
   {
    line(i,7,0,i,7,7,0);
    line(7,6-i,0,7,6-i,7,1);
    delay(speed);
   };
   break;
  case 3:
   for (i=0;i<7;i++)
   {
    line(7,7-i,0,7,7-i,7,0);
    line(6-i,0,0,6-i,0,7,1);
    delay(speed);
   };
   break;
  case 0:
   for (i=0;i<7;i++)
   {
    line(7-i,0,0,7-i,0,7,0);
    line(0,i+1,0,0,i+1,7,1);
    delay(speed);
   };
}
}
void roll_3_xy(uchar n,uint speed)
{
uchar xdata i;
switch(n)
{
  case 1:
   for (i=0;i<8;i++)
   {
    box_apeak_xy (0,i,0,7,7-i,7,1,1);
    delay(speed);
    if (i<7)
    box_apeak_xy (3,3,0,0,i,7,1,0);
   };
   break;
  case 2:
   for (i=0;i<8;i++)
   {
    box_apeak_xy (7-i,0,0,i,7,7,1,1);
    delay(speed);
    if (i<7)
    box_apeak_xy (3,4,0,i,7,7,1,0);
   };
   break;
  case 3:
   for (i=0;i<8;i++)
   {
    box_apeak_xy (0,i,0,7,7-i,7,1,1);
    delay(speed);
    if (i<7)
    box_apeak_xy (4,4,0,7,7-i,7,1,0);
   };
   break;
  case 0:
   for (i=0;i<8;i++)
   {
    box_apeak_xy (7-i,0,0,i,7,7,1,1);
    delay(speed);
    if (i<7)
    box_apeak_xy (4,3,0,7-i,0,7,1,0);
   };
}
}
void trans(uchar z,uint speed)
{
uchar i,j;
for (j=0;j<8;j++)
{
  for (i=0;i<8;i++)
  {
   display[z][i]>>=1;
  }
  delay(speed);
}
}
void tranoutchar(uchar c,uint speed)
{
uchar i,j,k,a,i2=0;
for (i=0;i<8;i++)
{
  if (i<7)
  box_apeak_xy (i+1,0,0,i+1,7,7,1,1);
  box_apeak_xy (i2,0,0,i2,7,7,1,0);
  a=0;
  i2=i+1;
  for (j=0;j<=i;j++)
  {
   a=a|(1<<j);
  }
  for (k=0;k<8;k++)
  {
   display[k][3]|=table_cha[c][k]&a;
   display[k][4]|=table_cha[c][k]&a;
  }
  delay(speed);
}
}
void tranoutchar_cu(uchar c,uint speed)
{
uchar i,j,k,a,i2=0;
for (i=0;i<8;i++)
{
  if (i<7)
  box_apeak_xy (i+1,0,0,i+1,7,7,1,1);
  box_apeak_xy (i2,0,0,i2,7,7,1,0);
  a=0;
  i2=i+1;
  for (j=0;j<=i;j++)
  {
   a=a|(1<<j);
  }
  for (k=0;k<8;k++)
  {
   display[k][3]|=table_cha_cu[c][k]&a;
   display[k][4]|=table_cha_cu[c][k]&a;
  }
  delay(speed);
}
}
void transss()
{
uchar i,j;
for (i=0;i<8;i++)
{
  for (j=0;j<8;j++)
  display[i][j]<<=1;
}
}
/*From now on,the function below is to display the flash.*/
void flash_1()
{
clear(0);
type(4,0);
delay(60000);
type(3,0);
delay(60000);
type(2,0);
delay(60000);
type(1,0);
delay(60000);
delay(60000);
}
void flash_16()
{
clear(0);
rolldisplay(30000);
}
void flash_17()
{
clear(0);
type(0,7);
delay(60000);
trailler(6000);
delay(60000);
}
void flash_12()
{
clear(0);
rolldisplay_yd(30000);
}
void flash_13()
{        
                 clear(0);
         type(0,7);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(1,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(2,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(3,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(4,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(5,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(6,7);
         delay(60000);
         trailler(9000);
         delay(60000);
                 clear(0);
         type(7,7);
         delay(60000);
         trailler(9000);
         delay(60000);
}
void flash_2()
{
uchar i;
clear(0);
for (i=129;i>0;i--)
{
  cirp(i-2,0,1);
  delay(8000);
  cirp(i-1,0,0);
}
delay(8000);
for (i=0;i<136;i++)
{
  cirp(i,1,1);
  delay(8000);
  cirp(i-8,1,0);
}
delay(8000);
  for (i=129;i>0;i--)
{
  cirp(i-2,0,1);
  delay(8000);
}
delay(60000);delay(60000);delay(60000);delay(60000);
delay(60000);delay(60000);delay(60000);delay(60000);
delay(60000);delay(60000);delay(60000);delay(60000);
delay(60000);delay(60000);delay(60000);delay(60000);
  for (i=0;i<128;i++)
{
  cirp(i-8,1,0);
  delay(8000);
}
delay(60000);
}
void flash_3()
{
char i;
for (i=0;i<8;i++)
{
  box_apeak_xy(0,i,0,7,i,7,1,1);
  delay(20000);
  if (i<7)
  box_apeak_xy(0,i,0,7,i,7,1,0);
}
for (i=7;i>=0;i--)
{
  box_apeak_xy(0,i,0,7,i,7,1,1);
  delay(20000);
  if (i>0)
  box_apeak_xy(0,i,0,7,i,7,1,0);
}
for (i=0;i<8;i++)
{
  box_apeak_xy(0,i,0,7,i,7,1,1);
  delay(20000);
  if (i<7)
  box_apeak_xy(0,i,0,7,i,7,1,0);
}
}
void flash_4()
{
char i,j,an[8];
for (j=7;j<15;j++)
  an[j-7]=j;
for (i=0;i<=16;i++)
{
  for (j=0;j<8;j++)
  {
   if ((an[j]<8)&(an[j]>=0))
   line(0,an[j],j,7,an[j],j,1);
  }
  for (j=0;j<8;j++)
  {
   if (((an[j]+1)<8)&(an[j]>=0))
   line(0,an[j]+1,j,7,an[j]+1,j,0);
  }
  for (j=0;j<8;j++)
  {
   if (an[j]>0)
   an[j]--;
  }
  delay(15000);
}
for (j=0;j<8;j++)
  an[j]=1-j;
for (i=0;i<=16;i++)
{
  for (j=0;j<8;j++)
  {
   if ((an[j]<8)&(an[j]>=0))
   line(0,an[j],j,7,an[j],j,1);
  }
  for (j=0;j<8;j++)
  {
   if (((an[j]-1)<7)&(an[j]>0))
   line(0,an[j]-1,j,7,an[j]-1,j,0);
  }
  for (j=0;j<8;j++)
  {
   if (an[j]<7)
   an[j]++;
  }
  delay(15000);
}
}void key_donghua_scan()
{
if(!K3)  //如果检测到低电平,说明按键按下
    {
        if(msd==1||msd==2){TR0=0;}
         delay10us(); //延时去抖,一般10-20ms
     if(!K3)     //再次确认按键是否按下,没有按下则退出
           {
        while(!K3)//如果确认按下按键等待按键释放,没有则退出
               {
                   if(test==1){key1=2;}
                   if(test==2){key2=2;}
                   PWM_POW=1;      
                   delay10us();        delay10us();delay10us();delay10us();        delay10us();delay10us();
                   PWM_POW=0;      
                         }
           }
        }
        if(msd==1||msd==2){TR0=1;}
}
void key_yinyue_scan()
{
if(!K4)  //如果检测到低电平,说明按键按下
    {
        if(msd==1||msd==2){TR0=0;}
         delay10us(); //延时去抖,一般10-20ms
     if(!K4)     //再次确认按键是否按下,没有按下则退出
           {
        while(!K4)//如果确认按下按键等待按键释放,没有则退出
               {
                   if(test==1){key1=3;}
                   if(test==2){key2=1;}
                   PWM_POW=1;      
                   delay10us();        delay10us();delay10us();delay10us();        delay10us();delay10us();
                   PWM_POW=0;     
                         }
           }
        }
        if(msd==1||msd==2){TR0=1;}
}

void flash_5()
{
uint a=15000;
char i=8,j,an[4];
for (j=7;j<11;j++)
  an[j-7]=j;
while(i--)
{
  for (j=0;j<4;j++)
  {
   if (an[j]<8)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]<7)
   box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (an[j]>3)
   an[j]--;
  }
  delay(a);
}
i=3;
for (j=0;j<4;j++)
an[j]=5-j;
while(i--)
{
  for (j=1;j<4;j++)
  {
   if (an[j]<4)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]<3)
   box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (an[j]>0)
   an[j]--;
  }
  delay(a);
}
i=3;
for (j=1;j<4;j++)
an[j]=4-j;
while(i--)
{
  for (j=1;j<4;j++)
  {
   if (an[j]>=0)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]>0)
   box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);
  }
  for (j=1;j<4;j++)
  {
   if (an[j]<3)
   an[j]++;
  }
  delay(a);
}
i=3;
for (j=0;j<4;j++)
an[j]=j+1;
while(i--)
{
  for (j=1;j<4;j++)
  {
   if (an[j]>3)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]>3)
   box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);
  }
  for (j=0;j<4;j++)
   an[j]++;
  delay(a);
}
i=3;
for (j=3;j<6;j++)
  an[j-2]=j;
while(i--)
{
  for (j=1;j<4;j++)
  {
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (an[j]>3)
   an[j]--;
  }
  delay(a);
}
i=3;
for (j=0;j<4;j++)
an[j]=5-j;
while(i--)
{
  for (j=1;j<4;j++)
  {
   if (an[j]<4)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]<3)
   box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (an[j]>0)
   an[j]--;
  }
  delay(a);
}
i=3;
for (j=0;j<4;j++)
an[j]=3-j;
an[0]=2;
while(i--)
{
  for (j=0;j<3;j++)
  {
   if (an[j]>=0)
    box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]>=0)
    box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (j<5-i)
   an[j]--;
  }
  delay(a);
}
i=10;
for (j=0;j<4;j++)
  an[j]=j-2;
while(i--)
{
  for (j=0;j<4;j++)
  {
   if (an[j]>=0)
   box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);
   if (an[j]>=0)
   box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);
  }
  for (j=0;j<4;j++)
  {
   if (an[j]<7)
   an[j]++;
  }
  delay(a);
}
}
void flash_6()
{
uchar i,j,k,z;
roll_apeak_yz(1,10000);
roll_apeak_yz(2,10000);
roll_apeak_yz(3,10000);
roll_apeak_yz(0,10000);
roll_apeak_yz(1,10000);
roll_apeak_yz(2,10000);
roll_apeak_yz(3,10000);
for (i=0;i<3;i++)
  {
   for (j=0;j<8;j++)
   {
    for (k=0;k<8;k++)
    {
     if ((table_3p[i][j]>>k)&1)
     {
      for (z=1;z<8;z++)
       {
        point (j,7-k,z,1);
        if (z-1)
        point (j,7-k,z-1,0);
        delay(5000);
       }
     }
    }
   }
   delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);
   trans(7,15000);
  }
}
void flash_7()
{
uchar i;
uint a=3000;
roll_apeak_yz(0,10000);
roll_apeak_yz(1,10000);
roll_apeak_yz(2,10000);
roll_apeak_yz(3,10000);
roll_apeak_yz(0,10000);
roll_apeak_yz(1,10000);
roll_apeak_yz(2,10000);
roll_apeak_yz(3,10000);
roll_apeak_yz(0,10000);
roll_apeak_yz(1,10000);
roll_apeak_yz(2,10000);
roll_apeak_xy(0,10000);
roll_apeak_xy(1,10000);
roll_apeak_xy(2,10000);
roll_apeak_xy(3,10000);
roll_apeak_xy(0,10000);
roll_apeak_xy(1,10000);
roll_apeak_xy(2,10000);
roll_apeak_xy(3,10000);
for (i=0;i<8;i++)
{
  box_apeak_xy (0,i,0,7-i,i,7,1,1);
  delay(a);
}
delay(30000);
roll_3_xy(0,a);
delay(30000);
roll_3_xy(1,a);
delay(30000);
roll_3_xy(2,a);
delay(30000);
roll_3_xy(3,a);
delay(30000);
roll_3_xy(0,a);
delay(30000);
roll_3_xy(1,a);
delay(30000);
roll_3_xy(2,a);
delay(30000);
roll_3_xy(3,a);
for (i=7;i>0;i--)
{
  box_apeak_xy(i,0,0,i,7,7,1,0);
  delay(a);
}
}
void flash_8()
{
uchar i;
for (i=5;i<8;i++)
{
  tranoutchar(i,10000);
  delay(60000);
  delay(60000);
}
}void fvb()
{
          if(read_flag)
           {
            read_flag=0;
                 for(saom=0;saom<8;saom++)
                 {
            displayck[saom+0]=((shuzu8X8[saom*8]>>7)&0x01)+(((shuzu8X8[saom*8+1]>>7)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>7)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>7)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>7)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>7)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>7)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>7)&0x01)<<7);       
                displayck[saom+8]=((shuzu8X8[saom*8]>>6)&0x01)+(((shuzu8X8[saom*8+1]>>6)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>6)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>6)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>6)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>6)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>6)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>6)&0x01)<<7);       
                displayck[saom+16]=((shuzu8X8[saom*8]>>5)&0x01)+(((shuzu8X8[saom*8+1]>>5)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>5)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>5)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>5)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>5)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>5)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>5)&0x01)<<7);       
                displayck[saom+24]=((shuzu8X8[saom*8]>>4)&0x01)+(((shuzu8X8[saom*8+1]>>4)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>4)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>4)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>4)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>4)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>4)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>4)&0x01)<<7);       
                displayck[saom+32]=((shuzu8X8[saom*8]>>3)&0x01)+(((shuzu8X8[saom*8+1]>>3)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>3)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>3)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>3)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>3)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>3)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>3)&0x01)<<7);       
                displayck[saom+40]=((shuzu8X8[saom*8]>>2)&0x01)+(((shuzu8X8[saom*8+1]>>2)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>2)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>2)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>2)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>2)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>2)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>2)&0x01)<<7);       
                displayck[saom+48]=((shuzu8X8[saom*8]>>1)&0x01)+(((shuzu8X8[saom*8+1]>>1)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>1)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>1)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>1)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>1)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>1)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>1)&0x01)<<7);       
                displayck[saom+56]=((shuzu8X8[saom*8]>>0)&0x01)+(((shuzu8X8[saom*8+1]>>0)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>0)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>0)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>0)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>0)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>0)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>0)&0x01)<<7);       
                 }
           }
           for(layerr=0;layerr<8;layerr++)
           {
                key_baihei_scan();  key_shangwiej_scan();   key_donghua_scan();        key_yinyue_scan();
                hansao(layerr);
                sendbyteck(~displayck[layerr*8+0],~displayck[layerr*8+2],~displayck[layerr*8+4],~displayck[layerr*8+7]);
                sendbyteck(~displayck[layerr*8+3],~displayck[layerr*8+1],~displayck[layerr*8+6],~displayck[layerr*8+5]);
                SUO=0;                             
                _nop_();
                SUO=1;
                M_EN=0;                             
                delayus(ld);                    
                M_EN=1;                                  

                if(key2==1||key2==2)
                {
                break;
                }
           }
}


void flash_9()
{
char i;
uchar j,an[8],x,y,t,x1,y1;
for (i=0;i<8;i++)
{
  box_apeak_xy (i,0,0,i,7,7,1,1);
  if (i)
  box_apeak_xy (i-1,0,0,i-1,7,7,1,0);
  delay(10000);
}
roll_apeak_xy(3,10000);
roll_apeak_xy(0,10000);
roll_apeak_xy(1,10000);
for (i=0;i<7;i++)
{
  line(6-i,6-i,0,6-i,6-i,7,1);
  line(i,7,0,i,7,7,0);
  delay(10000);
}
for (i=0;i<8;i++)
  an[i]=14;
for (i=0;i<85;i++)
{
  clear(0);
  for (j=0;j<8;j++)
  {
   t=an[j]%28;
   x=dat2[t]>>5;
   y=(dat2[t]>>2)&0x07;
   t=(an[j]-14)%28;
   x1=dat2[t]>>5;
   y1=(dat2[t]>>2)&0x07;
   line(x,y,j,x1,y1,j,1);
  }
  for (j=0;j<8;j++)
  {
  if ((i>j)&(j>i-71))
  an[j]++;
  }
  delay(5000);
}
for (i=0;i<85;i++)
{
  clear(0);
  for (j=0;j<8;j++)
  {
   t=an[j]%28;
   x=dat2[t]>>5;
   y=(dat2[t]>>2)&0x07;
   t=(an[j]-14)%28;
   x1=dat2[t]>>5;
   y1=(dat2[t]>>2)&0x07;
   line(x,y,j,x1,y1,j,1);
  }
  for (j=0;j<8;j++)
  {
  if ((i>j)&(j>i-71))
  an[j]--;
  }
  delay(5000);
}
for (i=0;i<29;i++)
{
  clear(0);
  t=an[0]%28;
  x=dat2[t]>>5;
  y=(dat2[t]>>2)&0x07;
  t=(an[0]-14)%28;
  x1=dat2[t]>>5;
  y1=(dat2[t]>>2)&0x07;
  box_apeak_xy(x,y,0,x1,y1,7,0,1);
  box_apeak_xy(x,y,1,x1,y1,6,0,1);
  an[0]++;
  delay(5000);
}
for (i=0;i<16;i++)
{
  clear(0);
  t=an[0]%28;
  x=dat2[t]>>5;
  y=(dat2[t]>>2)&0x07;
  t=(an[0]-14)%28;
  x1=dat2[t]>>5;
  y1=(dat2[t]>>2)&0x07;
  box_apeak_xy(x,y,0,x1,y1,7,1,1);
  an[0]--;
  delay(5000);
}
for (i=0;i<8;i++)
{
  line(i,i,0,0,0,i,0);
  delay(5000);
}
for (i=1;i<7;i++)
{
  line(i,i,7,7,7,i,0);
  delay(5000);
}
for (i=1;i<8;i++)
{
  clear(0);
  box(7,7,7,7-i,7-i,7-i,0,1);
  delay(10000);
}
for (i=1;i<7;i++)
{
  clear(0);
  box(0,0,0,7-i,7-i,7-i,0,1);
  delay(10000);
}
for (i=1;i<8;i++)
{
  clear(0);
  box(0,0,0,i,i,i,0,1);
  delay(10000);
}
for (i=1;i<7;i++)
{
  clear(0);
  box(7,0,0,i,7-i,7-i,0,1);
  delay(10000);
}
for (i=1;i<8;i++)
{
  box(7,0,0,7-i,i,i,1,1);
  delay(10000);
}
for (i=1;i<7;i++)
{
  clear(0);
  box(0,7,7,7-i,i,i,1,1);
  delay(10000);
}
}
void flash_10()
{
uchar i,j,an[4],x,y,t;
for (i=1;i<7;i++)
{
  clear(0);
  box(0,6,6,1,7,7,1,1);
  box(i,6,6-i,i+1,7,7-i,1,1);
  box(i,6,6,i+1,7,7,1,1);
  box(0,6,6-i,1,7,7-i,1,1);
  box(0,6-i,6,1,7-i,7,1,1);
  box(i,6-i,6-i,i+1,7-i,7-i,1,1);
  box(i,6-i,6,i+1,7-i,7,1,1);
  box(0,6-i,6-i,1,7-i,7-i,1,1);
  delay(30000);
}
for (i=0;i<4;i++)
{
  an[i]=6*i;
}
for (i=0;i<35;i++)
{
  clear(0);
  for(j=0;j<4;j++)
  {
   t=an[j]%24;
   x=dat3[t]>>4;
   y=dat3[t]&0x0f;
   box(x,y,0,x+1,y+1,1,1,1);
   box(x,y,6,x+1,y+1,7,1,1);
  }
  for (j=0;j<4;j++)
  an[j]++;
  delay(10000);
}
for (i=0;i<35;i++)
{
  clear(0);
  for(j=0;j<4;j++)
  {
   t=an[j]%24;
   x=dat3[t]>>4;
   y=dat3[t]&0x0f;
   box(x,y,0,x+1,y+1,1,1,1);
   box(x,y,6,x+1,y+1,7,1,1);
  }
  for (j=0;j<4;j++)
  an[j]--;
  delay(10000);
}
for (i=0;i<35;i++)
{
  clear(0);
  for(j=0;j<4;j++)
  {
   t=an[j]%24;
   x=dat3[t]>>4;
   y=dat3[t]&0x0f;
   box(x,0,y,x+1,1,y+1,1,1);
   box(x,6,y,x+1,7,y+1,1,1);
  }
  for (j=0;j<4;j++)
  an[j]++;
  delay(10000);
}
for (i=0;i<36;i++)
{
  clear(0);
  for(j=0;j<4;j++)
  {
   t=an[j]%24;
   x=dat3[t]>>4;
   y=dat3[t]&0x0f;
   box(x,0,y,x+1,1,y+1,1,1);
   box(x,6,y,x+1,7,y+1,1,1);
  }
  for (j=0;j<4;j++)
  an[j]--;
  delay(10000);
}
for (i=6;i>0;i--)
{
  clear(0);
  box(0,6,6,1,7,7,1,1);
  box(i,6,6-i,i+1,7,7-i,1,1);
  box(i,6,6,i+1,7,7,1,1);
  box(0,6,6-i,1,7,7-i,1,1);
  box(0,6-i,6,1,7-i,7,1,1);
  box(i,6-i,6-i,i+1,7-i,7-i,1,1);
  box(i,6-i,6,i+1,7-i,7,1,1);
  box(0,6-i,6-i,1,7-i,7-i,1,1);
  delay(30000);
}
}
void flash_11()
{
uchar i,j,t,x,y;
uchar code daa[13]={0,1,2,0x23,5,6,7,6,5,0x23,2,1,0};
clear(0);
for (j=0;j<5;j++)
{
  for (i=0;i<13;i++)
  {
   if (daa[i]>>4)
   {
    t=daa[i]&0x0f;
    line (0,0,t+1,0,7,t+1,1);
   }
   else
    t=daa[i];
   line (0,0,t,0,7,t,1);
   transss();
   delay(10000);
  }
}
for (j=1;j<8;j++)
{
  if (j>3)
   t=4;
  else
   t=j;
  for (i=0;i<24;i+=j)
  {
   x=dat3[i]>>4;
   y=dat3[i]&0x0f;
   box_apeak_xy(0,x,y,0,x+1,y+1,1,1);
   transss();
   delay(10000);
  }
}
for (j=1;j<8;j++)
{
  if (j>3)
   t=4;
  else
   t=j;
  for (i=0;i<24;i+=j)
  {
   x=dat3[i]>>4;
   y=dat3[i]&0x0f;
   point (0,x,y,1);
   transss();
   delay(10000);
  }
}
}void print1() interrupt 1
{
static uchar layert=0;
EA=0;
if(msd==1)         
{                 PWM_POW=0;
                 hansao(7-layert);          
                 sendbyte(~display[layert][0],~display[layert][2],~display[layert][4],~display[layert][7]);
                 sendbyte(~display[layert][3],~display[layert][1],~display[layert][6],~display[layert][5]);
                 SUO=0;_nop_();SUO=1;
                 M_EN=0;delayus(ld);M_EN=1;                                 
          if (layert<7)
               layert++;
          else
               layert=0;
             key_baihei_scan();  key_shangwiej_scan();   key_donghua_scan();        key_yinyue_scan();
                if(msd==1)   
                if(key2==2||key2==3){key3=2;        return;                       
                }
                 TH0=0xef;
         TL0=0x00;
}
if(msd==2)
{
             hansao(layert);           
                 sendbyte(~display[layert][0],~display[layert][2],~display[layert][4],~display[layert][7]);
                 sendbyte(~display[layert][3],~display[layert][1],~display[layert][6],~display[layert][5]);
                 SUO=0;_nop_();SUO=1;
                 M_EN=0;delayus(ld);M_EN=1;                                 
          if (layert<7)
               layert++;
          else
               layert=0;       
             key_baihei_scan();  key_shangwiej_scan();   key_donghua_scan();        key_yinyue_scan();
                if(msd==2)   
                if(key2==1||key2==3){key3=2;        return;                       
                }
                 TH0=0xef;
         TL0=0x00;
}
            EA=1;
}

void flash_14()
{
         clear(0);
         type_sj(0,0);
         delay(60000);
                 clear(0);
         type_sj(1,1);
         delay(60000);
                 clear(0);
         type_sj(2,2);
         delay(60000);
                 clear(0);
         type_sj(3,3);
         delay(60000);
         clear(0);
         type_sj(4,4);
         delay(60000);
                 clear(0);
         type_sj(5,5);
         delay(60000);
                 clear(0);
         type_sj(6,6);
         delay(60000);
                 clear(0);
         type_sj(7,7);
         delay(60000);
                 clear(0);

         delay(60000);
         clear(0);
         type_sj(0,7);
         delay(40000);
                 clear(0);
         type_sj(1,6);
         delay(40000);
                 clear(0);
         type_sj(2,5);
         delay(40000);
                 clear(0);
         type_sj(3,4);
         delay(40000);
                 clear(0);
         type_sj(4,3);
         delay(40000);
                 clear(0);
         type_sj(5,2);
         delay(40000);
                 clear(0);
         type_sj(6,1);
         delay(40000);
                 clear(0);
         type_sj(7,0);
         delay(40000);
                 clear(0);

}
void flash_18()
{
      uchar i,j,k,z;
      roll_apeak_yz(1,10000);
      roll_apeak_yz(2,10000);
      roll_apeak_yz(3,10000);
          delay(60000);delay(60000);
      for (i=0;i<11;i++)
       {
         for (j=0;j<8;j++)
         {
          for (k=0;k<8;k++)
          {
               if ((table_3p_zf[i][j]>>k)&1)
               {
         for (z=1;z<8;z++)
          {
               point (j,7-k,z,1);
               if (z-1)
               point (j,7-k,z-1,0);
               delay(1500);
          }
               }
          }
         }
                 delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);
         trans(7,15000);
       }
}
void flash_19()
{
uchar i;
for (i=0;i<9;i++)
{
  tranoutchar_cu(i,10000);
  delay(60000);
  delay(60000);
}
}

void sendbyte1(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{
    unsigned char c;
    for(c=0;c<8;c++)
   {
        CLK=0;
        M_LR_DS0=num1&0x01;
        M_LG_DS0=num2&0x01;
        M_HR_DS0=num3&0x01;
        M_HG_DS0=num4&0x01;
        CLK=1;
        num1>>=1;
        num2>>=1;
        num3>>=1;
        num4>>=1;
    }
}
void delays(int t)
{
        int i;
        while(t--)
                for(i=0;i<700;i++);
}
void zhen(uchar *a,uchar v)
{
char layer,smsd=2,smsx=0,sudu=5;
uint cckk;
while(v--)
{

        if(sudu==25){cckk=700;}
                else {
                cckk=ld;
                }
        if(ld==1){cckk=ld;}
        if(ld==1000){cckk=500;}
        ld=cckk;
  for(layer=0;layer<8;layer++)
  {
        if(xsdsq==1){;}
        else{key_baihei_scan();  key_shangwiej_scan();   key_donghua_scan();        key_yinyue_scan();}

        hansao(7-layer);
        sendbyte1(~a[layer*8+7],~a[layer*8+5],~a[layer*8+3],~a[layer*8+0]);
        sendbyte1(~a[layer*8+4],~a[layer*8+6],~a[layer*8+1],~a[layer*8+2]);
        SUO=0;                             
        _nop_();
        SUO=1;
        M_EN=0;                             
        delayus(ld);                    
        M_EN=1;                       
                if(msd==2||msd==6)   
                if(key2==1||key2==3)  
                {
                key3=1;        M_EN=1;                                  
                break;
                }
  }
        if(sudu==1){smsd=1;}
        if(sudu==5){smsd=5;}
        if(sudu==25){smsd=26;}
                else {smsd=6;}
        if(sudu==5&&ld==20){smsx=7;}
        delays(smsd+smsx);                  
}
}
void flash_20()
{
        uchar a[64]={0};
        char i;
        for(i=0;i<4;i++)
        {
                a[i*8+7]=0xff;
                a[(7-i)*8+7]=0xff;
                if(key3==1){break;}
                else{zhen(a,8);}
                delay(50);
        }
                if(key3==1){return;}
                else{zhen(a,30);}
        for(i=3;i>=0;i--)
        {
                a[i*8+7]=0;
                a[(7-i)*8+7]=0;
                if(key3==1){break;}
                else{zhen(a,8);}
                delay(50);
        }
}
void hy(uchar *tab,char v)
{
        uchar a[64]={0};
        char i,j;
        for(i=0;i<8;i++)
                a[i*8]=tab[i];
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);

        for(i=1;i<8;i++)
        {
            for(j=0;j<8;j++)
                    a[i+j*8]=a[i-1+j*8];
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }       
        for(i=0;i<7;i++)
        {
            for(j=0;j<8;j++)
                    a[i+j*8]=0;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
                if(key3==1){return;}
                else{zhen(a,23);}
                delay(50);       
}
void flash_21()
{
        char i;
        for(i=0;i<10;i++)
        hy(number+27*8+i*8,3);
}
uchar daoxu(uchar x)
{
        uchar k=0;
        char i;
        for(i=0;i<8;i++)
        {
                if((x>>(7-i))&0x01)
                        k|=0x01<<i;
        }
        return k;
}

void fun1(uchar *a,uchar d,uchar b,uchar c,uchar e)//滚动字幕数据处理
{
        char i;
        for(i=0;i<8;i++)
        {
                a[i]=e&0x01;
                e>>=1;
        }
        a[7]|=(c<<1);
        a[6]|=(c&0x80);
        for(i=0;i<6;i++)
        {
                a[5-i]|=((b<<(7-i))&0x80);
        }
        d=daoxu(d);
        a[0]|=((d>>1)&0x7e);
}

void zimu(uchar *x,char n,char v,int num)//滚动字幕,num表示循环次数,v表示滚动速度,n字符个数
{
        char i,j,k;
        uchar xdata a[64]={0},temp0[8],temp1[8],temp2[8],temp3[8],temp[8];
        for(i=0;i<8;i++)
        {
                temp0[i]=0;
                temp1[i]=0;
                temp2[i]=0;
                temp3[i]=0;
        }
        while(num--)
                for(j=0;j<n;j++)//滚动
                {
                        for(k=7;k>=0;k--)//读取数据
                                temp[7-k]=x[j*8+k];
                        for(k=0;k<8;k++)//移动8位
                        {
                                for(i=0;i<8;i++)
                                {
                                        temp0[i]=(temp0[i]<<1)|(temp1[i]>>7);
                                        temp1[i]=(temp1[i]<<1)|(temp2[i]>>7);
                                        temp2[i]=(temp2[i]<<1)|(temp3[i]>>7);
                                        temp3[i]=(temp3[i]<<1)|(temp[i]>>7);
                                        temp[i]<<=1;
                                        fun1(a+i*8,temp0[i],temp1[i],temp2[i],temp3[i]);
                                }
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                }
}
void key_baihei_scan()
{
if(!K1)  //如果检测到低电平,说明按键按下
    {
        if(msd==1||msd==2){TR0=0;}
         delay10us(); //延时去抖,一般10-20ms
     if(!K1)     //再次确认按键是否按下,没有按下则退出
           {
        while(!K1)//如果确认按下按键等待按键释放,没有则退出
               {
                   PWM_POW=1;      
                   delay10us();        delay10us();delay10us();delay10us();        delay10us();delay10us();
                   PWM_POW=0;      
                         }
                   if(test==1){key1=4;}
                   if(test==2){pu=~pu;if(pu==1){key2=4;ld=500;}if(pu==0){key2=5;ld=20;}}
           }
        }
        if(msd==1||msd==2){TR0=1;}
}

void flash_22()
{
    zimu(number,19,12,1);
}
void move(uchar *a,char kind,char direction,char length)//length不能为8
//kind=0 x轴,1 x轴,2 z轴;direction=0,负向,1正向
{
        char i,j;
        if(kind==0)
        {
                if(direction==1)
                        for(i=0;i<64;i++)
                                a[i]<<=length;
                else
                        for(i=0;i<64;i++)
                                a[i]>>=length;       
        }
        else if(kind==1)
        {
                if(direction==1)
                        for(j=0;j<8;j++)
                        {
                                for(i=7;i>=length;i--)
                                        a[i+j*8]=a[i-length+j*8];
                                for(i=0;i<length;i++)
                                        a[i+j*8]=0;                       
                        }       
                else
                        for(j=0;j<8;j++)
                        {
                                for(i=0;i<length;i++)
                                        a[i+j*8]=a[i+length+j*8];
                                for(i=(8-length);i<8;i++)
                                        a[i+j*8]=0;                       
                        }                       
        }
        else
        {
                if(direction==1)
                        for(j=0;j<8;j++)
                        {
                                for(i=7;i>=length;i--)
                                        a[j+i*8]=a[j+(i-length)*8];
                                for(i=0;i<length;i++)
                                        a[j+i*8]=0;                       
                        }       
                else
                        for(j=0;j<8;j++)
                        {
                                for(i=0;i<(8-length);i++)
                                        a[j+i*8]=a[j+(i+length)*8];
                                for(i=(8-length);i<8;i++)
                                        a[j+i*8]=0;                       
                        }       
        }
}

void flash_23()//条状升降
{
                char i,j,k,v=2;
                uchar a[64]={0};
                for(i=7;i>=0;i--)
                {
                        a[i]=0x01<<i;
                if(key3==1){break;}
                else{zhen(a,v+5);}
                        delay(50);
                }
                for(i=0;i<7;i++)
                {
                        for(j=0;j<8;j++)
                                a[j]=flash0__tab[i*8+j];
                if(key3==1){break;}
                else{zhen(a,v+5);}
                        delay(50);
                }
                for(i=0;i<7;i++)
                {
                        move(a,2,1,1);
                if(key3==1){break;}
                else{zhen(a,v+5);}
                        delay(50);
                }
                for(i=0;i<64;i++)
                {
                        if(i>55)
                                a[i]=0xff;
                        else
                                a[i]=0;
                }
                if(key3==1){return;}
                else{zhen(a,20);}
                delay(50);
                for(i=7;i>=0;i--)//1
                        for(j=6;j>=0;j--)
                        {
                                a[i+j*8]=0xff;
                                a[i+(j+1)*8]=0;
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                if(key3==1){return;}
                else{zhen(a,27);}
                for(i=7;i>=0;i--)//2
                        for(j=1;j<8;j++)
                        {
                                a[i+j*8]=0xff;
                                a[i+(j-1)*8]=0;
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                if(key3==1){return;}
                else{zhen(a,27);}
                delay(50);
                for(i=7;i>=0;i--)//3
                        for(k=6;k>=0;k--)
                        {
                                for(j=0;j<8;j++)
                                {
                                        if(k==0)
                                                a[j+k*8]|=(0x80>>(7-i));
                                        else
                                                a[j+k*8]=(0x80>>(7-i));
                                        a[j+(k+1)*8]^=(0x80>>(7-i));
                                }
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                if(key3==1){return;}
                else{zhen(a,27);}
                delay(50);
                for(i=7;i>=0;i--)//4
                        for(k=1;k<8;k++)
                        {
                                for(j=0;j<8;j++)
                                {
                                        if(k==7)
                                                a[j+k*8]|=(0x80>>(7-i));
                                        else
                                                a[j+k*8]=(0x80>>(7-i));
                                        a[j+(k-1)*8]^=(0x80>>(7-i));
                                }
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                if(key3==1){return;}
                else{zhen(a,27);}
                delay(50);
}
void sendbyte(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{   
    unsigned char c;        
    for(c=0;c<8;c++)                       
   {
      CLK=0;                                  
      M_LR_DS0=num1&0x80;                         
          M_LG_DS0=num2&0x80;                       
          M_HR_DS0=num3&0x80;                       
          M_HG_DS0=num4&0x80;                       
      CLK=1;                                
          num1<<=1;               
      num2<<=1;               
      num3<<=1;               
      num4<<=1;                       
    }
}
void Delaypwm(unsigned int tpwm)
{
while(--tpwm);
}
void PWM_LED()
{
unsigned int CYCLE=100,PWM_LOW=1110,xhs=60000;
PWM_POW=0;
if (xhs>1)
    {
CYCLE=1950,PWM_LOW=201;
PWM_POW=1;
Delaypwm(60000);
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){
     PWM_POW=0;
     Delaypwm(PWM_LOW);
     PWM_POW=1;
       Delaypwm(CYCLE-PWM_LOW);
   }
  for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){
     PWM_POW=0;
     Delaypwm(PWM_LOW);
     PWM_POW=1;
       Delaypwm(CYCLE-PWM_LOW);
   }
   xhs--;
}
}
void turn_on(uchar v)
{
        uchar a[64]={0};
        char i,j;
        a[7]=0x80;
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(i=1;i<8;i++)
        {
                a[i*8+7]=0x80;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=6;i>=0;i--)
        {
                for(j=0;j<8;j++)
                        a[j*8+i]=0x80;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }       
        for(i=0;i<64;i++)
                a[i]=0;       
}
void H_scan(uchar v)
{       
        uchar b[64]={0};
        char i,j;
       
        for(i=0;i<64;i++)
                b[i]=0x80;
        for(i=0;i<8;i++)
        {
                for(j=0;j<8;j++)
                b[j*8+i]=0x80;
                if(key3==1){break;}
                else{zhen(b,1);}
        }
        for(i=0;i<8;i++)
        {
                for(j=0;j<64;j++)
                        b[j]>>=1;
                if(key3==1){break;}
                else{zhen(b,v);}
                delay(50);
        }
}
void V_scan(uchar v)
{
        uchar a[64]={0};
        char i,j;
        for(i=0;i<8;i++)
                a[i]=0xff;
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(i=1;i<8;i++)
        {
                for(j=0;j<8;j++)
                {
                        a[i*8+j]=0xff;
                        a[(i-1)*8+j]=0;
                }
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void W_scan(uchar v)
{
        uchar a[64]={0};
        char i,j;
        for(i=0;i<8;i++)
                a[i*8+7]=0xff;
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(i=6;i>=0;i--)
        {
                for(j=0;j<8;j++)
                {
                        a[j*8+i]=0xff;
                        a[j*8+i+1]=0;
                }
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        M_EN=0;
}
void W_side(uchar *tab,char num,char v)
{
        uchar a[64]={0};
        int i,j;
        for(j=0;j<num;j++)
        {
                for(i=0;i<8;i++)
                        a[i*8+7]=tab[j*8+i];       
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void flash_24()         
{
        uchar i,v=10,a[64]={0};
        for(i=0;i<7;i++)
                a[7*8+i]=0xff;
        for(i=0;i<8;i++)
        {
                move(a,2,0,1);
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void flash_25()
{
        uchar a[64]={0};
        char i,j,num=5,v=3;
        while(num--)
        {
                for(i=1;i<8;i++)
                        a[i]=0xff;
                if(key3==1){break;}
                else{zhen(a,v);        }
                delay(50);
                for(i=1;i<8;i++)
                {
                        move(a,2,1,1);
                        for(j=0;j<8;j++)
                                a[j]=0xff;
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
                for(i=0;i<8;i++)
                {
                        if(num==0&&i==7)
                                continue;
                        move(a,2,1,1);
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
        }
        for(i=0;i<7;i++)
        {
                move(a,2,0,1);
                if(key3==1){break;}
                else{zhen(a,v+5);}
                delay(50);
        }
}
void leitu(uchar *b,char num,char v)
{
        uchar a[64]={0},p;
        char i,j,k,m;
        for(m=0;m<num;m++)
        {
                for(i=0;i<8;i++)
                        for(k=0;k<8;k++)
                                for(j=0;j<8;j++)
                                {
                                        p=b[m*64+i*8+k]&(0x01<<j);
                                        if(p)
                                        {
                                                a[i*8+k]|=p;
                if(key3==1){break;}
                else{zhen(a,v);}
                                                delay(50);
                                        }
                                }
                if(key3==1){break;}
                else{zhen(a,60);}
                delay(50);
                for(j=0;j<64;j++)
                {
                        if(!a[j])
                                continue;
                        a[j]=0;
                if(key3==1){break;}
                else{zhen(a,v-1);}
                        delay(50);
                }
                delays(30);
        }
}

void flash_26()
{
leitu(yc_table,5,2);
}
void flash_27()
{
        uchar a[64];
        char i,j,k,v=3;
        for(k=0;k<8;k++)
                for(i=0;i<8;i++)
                        for(j=0;j<8;j++)
                        {
                                a[tab_mian[i]*8+tab_xian[j]]|=(0x01<<tab_dian[(i+j)*8+k]);
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                if(key3==1){return;}
                else{zhen(a,90);}
                delay(50);
        for(k=0;k<8;k++)
                for(i=0;i<8;i++)
                        for(j=0;j<8;j++)
                        {
                                a[tab_mian[i]*8+tab_xian[j]]^=(0x01<<tab_dian[(i+j)*8+k]);
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
}

void water1(char x,char y,char v)
{
        uchar a[64]={0};
        char i,r;
        a[7*8+y]=0x01<<x;
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(i=6;i>=0;i--)
        {
                a[i*8+y]=a[(i+1)*8+y];
                a[(i+1)*8+y]=0;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(25);
        }//下落
        for(r=0;r<7;r++)
        {
                for(i=0;i<8;i++)
                        a[i]=tab_water[r*16+7-y+i]>>(7-x);
                if(key3==1){break;}
                else{zhen(a,v+1);}
                delay(25);
        }//扩散
}
void water2(char x1,char y1,char x2,char y2,char v)
{
        uchar a[64]={0};
        char i,r;
        a[7*8+y1]=0x01<<x1;
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(i=6;i>=0;i--)
        {
                move(a,2,0,1);
                if(i==5)
                {
                        a[7*8+y2]=0x01<<x2;                       
                }
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(25);
        }
        for(r=0;r<9;r++)
        {
                if(r<2)
                        move(a,2,0,1);
                else
                        for(i=0;i<8;i++)
                                a[i]=tab_water[(r-2)*16+7-y2+i]>>(7-x2);               
                if(r<7)
                        for(i=0;i<8;i++)
                                a[i]|=(tab_water[r*16+7-y1+i]>>(7-x1));
                if(r==1)
                        a[y2]|=0x01<<x2;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(25);
        }
}
void water3(char x1,char y1,char x2,char y2,char x3,char y3,char v)
{//3水滴
        uchar a[64]={0};
        char i,r;
        a[7*8+y1]=0x01<<x1;
                if(key3==1){return;}
                else{zhen(a,v);        }
        delay(25);
        for(i=6;i>=0;i--)
        {
                move(a,2,0,1);
                if(i==5)//第二点
                        a[7*8+y2]=0x01<<x2;       
                if(i==3)
                        a[7*8+y3]=0x01<<x3;        //第三点               
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(25);
        }
        for(r=0;r<11;r++)
        {
                if(r<4)
                        move(a,2,0,1);
                if(r<11&&r>=4)
                        for(i=0;i<8;i++)
                                a[i]=tab_water[(r-4)*16+7-y3+i]>>(7-x3);
                if(r<9&&r>=2)
                        for(i=0;i<8;i++)
                                a[i]|=tab_water[(r-2)*16+7-y2+i]>>(7-x2);               
                if(r<7)
                        for(i=0;i<8;i++)
                                a[i]|=(tab_water[r*16+7-y1+i]>>(7-x1));
                if(r==1)
                        a[y2]|=0x01<<x2;
                if(r==3)
                        a[y3]|=0x01<<x3;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(25);
        }
}
void flash_28()
{               
                water1(1,2,10);water1(2,4,10);
                water1(4,3,10);water1(7,1,10);
                water1(5,6,10);                       
                water2(0,2,7,1,9);
                water2(2,4,7,7,9);
                water2(4,7,7,1,9);
                water2(3,6,7,7,9);
                water2(4,1,6,6,9);
                water2(7,3,1,2,9);
                water3(0,4,7,4,5,1,9);
                water3(7,7,0,0,0,7,9);
                water3(0,6,6,6,5,1,9);
                water3(6,7,0,0,2,2,9);
                water3(3,3,6,6,2,2,9);
}
void link_pingmian1(char v)
{
        uchar a[64]={0};
        char i,j;
        for(i=0;i<8;i++)
                for(j=0;j<8;j++)
                {
                        a[7*8+j]|=(0x01<<i);
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
}
void pingmian1(char num,char v)
{
        char i,k;
        uchar a[64]={0};
        for(i=0;i<8;i++)
                a[7*8+i]=0xff;
                if(key3==1){return;}
                else{zhen(a,v);        }
        delay(50);
        while(num--)
                for(i=0;i<28;i++)
                {
                        if(i<7)
                                for(k=0;k<8;k++)
                                {
                                        a[(6-i)*8+k]=0x01;
                                        a[7*8+k]>>=1;
                                }
                        else if(i<14)
                                for(k=0;k<8;k++)
                                {
                                        a[k]|=0x01<<(i-6);
                                        a[(14-i)*8+k]=0;
                                }
                        else if(i<21)
                                for(k=0;k<8;k++)
                                {
                                        a[(i-13)*8+k]=0x80;
                                        a[k]<<=1;
                                }       
                        else
                                for(k=0;k<8;k++)
                                {
                                        a[7*8+k]|=0x80>>(i-20);
                                        a[(i-21)*8+k]=0;
                                }
                if(key3==1){break;}
                else{zhen(a,v);        }
                        delay(50);
                }
        M_EN=0;
}
void flash_29()
{
                link_pingmian1(1);
                pingmian1(8,3);
}

void print(uchar *a,char m)//m=0中空显示,m=1实心显示
{
        uchar p;
        char i,j,k;
        uchar b[64]={0};
        for(i=0;i<8;i++)
        {
                b[7*8+i]=0xff;
        }       
        for(i=0;i<8;i++)//行切换
        {
                for(j=0;j<8;j++)//点移动
                {
                        p=a[i]&(0x01<<j);
                        if(p)
                        {
                                for(k=6;k>0;k--)
                                {
                                        if(m==1&&k==6)
                                        {;}
                                        else
                                                b[(k+1)*8+7-i]&=(~p);
                                        b[k*8+7-i]|=(0x01<<j);
                if(key3==1){break;}
                else{zhen(b,1);}
                                        delay(50);
                                }
                                b[1*8+7-i]=0;
                                b[7-i]|=p;
                if(key3==1){break;}
                else{zhen(b,1);         }
                                delay(50);
                        }
                        b[7-i]|=p;
                }
        }
                if(key3==1){return;}
                else{zhen(b,40); }
        delay(50);
        b[0]=0;
        for(j=7;j>0;j--)
        {
                for(i=7;i>0;i--)
                {
                        b[i]=b[i-1];

                }
                if(key3==1){break;}
                else{zhen(b,5);        }
                        delay(50);               
        }
        M_EN=0;
}
void flash_30()
{
        char i;
        for(i=0;i<4;i++)
                print(tab_print+i*8,0);
}
void link_jb0(char v)
{
        uchar a[64]={0};
        char i;
        for(i=0;i<64;i++)
        {
                a[i]=0x80;
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void jb0(char num,char v)///////////////////////////////
{
        char i,k;
        uchar c[64]={0};
        for(i=0;i<64;i++)
                c[i]=0x80;
                if(key3==1){return;}
                else{zhen(c,v);}
        delay(50);
        while(num--)
                for(i=0;i<28;i++)
                {
                        if(i<7)
                                for(k=0;k<8;k++)
                                {
                                        c[k*8]|=(0x80>>(i+1));
                                        c[k*8+7-i]=0;
                                }
                        else if(i<14)
                                for(k=0;k<8;k++)
                                {
                                        c[k*8+i-6]=0x01;
                                        c[k*8]>>=0x01;
                                }
                        else if(i<21)
                                for(k=0;k<8;k++)
                                {
                                        c[k*8+i-14]=0;
                                        c[k*8+7]|=(0x01<<(i-13));
                                }
                        else if(i<28)
                                for(k=0;k<8;k++)
                                {
                                        c[k*8+27-i]=0x80;
                                        c[k*8+7]<<=1;
                                }
                if(key3==1){break;}
                else{zhen(c,v);}
                        delay(50);
                }
        M_EN=0;
}
void yinchu(uchar *table,char n,char v)
{
/****************************
n为帧数
******************************/
        char i,j,k;
        uchar a[64]={0},p;
        for(k=0;k<n;k++)
        {
                for(i=0;i<8;i++)
                {
                        p=0xff;
                        for(j=0;j<64;j++)
                        {
                                a[j]=(table[j+k*64]|(0x80>>i))&(p<<(7-i));
                        }
                if(key3==1){break;}
                else{zhen(a,v);        }
                        delay(50);
                }
                if(key3==1){break;}
                else{zhen(table+k*64,50);}
                delay(50);
        }

}
void flash_31()
{
        link_jb0(1);
        jb0(4,3);
        yinchu(yc_table,5,9);
        link_jb0(1);
        jb0(4,3);
}               
void link(char v)
{
/****************************
旋转衔接
******************************/
        char i,j,k;
        uchar a[64]={0};
        for(i=0;i<64;i++)
                a[i]=0x80;
                if(key3==1){return;}
                else{zhen(a,3);        }
        delay(50);
        for(i=0;i<8;i++)
        {
                for(j=0;j<8;j++)
                {
                        if(i<7)
                                a[j*8+7-i]&=0x7f;
                        a[j*8+i]|=(0x80>>i);
                }
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=0;i<6;i++)
        {
                for(j=0;j<8;j++)
                        for(k=0;k<8;k++)
                                a[j*8+k]=tab_xuanzhuantiao[(i+8)*8+k];
                if(key3==1){break;}
                else{zhen(a,3);}
                delay(50);
        }
}
void xuanzhuantiao(char kind,char num,char v)//空心旋转,kind=1实心,否则空心
{
        uchar a[64]={0};
        char i,j,k;
        while(num--)
        {
                for(i=0;i<14;i++)
                {
                        for(j=0;j<8;j++)
                        {
                                for(k=0;k<8;k++)
                                {
                                        if(k>1&&k<6&&j>1&&j<6&&kind!=1)
                                                a[k+j*8]=tab_xuanzhuantiao[i*8+k]&0xc3;
                                        else
                                                a[k+j*8]=tab_xuanzhuantiao[i*8+k];
                                }
                        }
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
        }
}
void flash_32()
{
        link(9);         //从左边开始进入连接选择条的开端
        xuanzhuantiao(1,8,4);//实心旋转显示选择一个面
        xuanzhuantiao(0,8,4);//空心旋转显示选择一个面
}
void xuanzhuantiao2(char num,char v)//空心旋转,kind=1实心,否则空心
{
        uchar a[64]={0};
        char i,j,k;
        while(num--)
                for(i=0;i<56;i++)
                {
                        for(j=0;j<8;j++)
                                for(k=0;k<8;k++)
                                        a[j*8+k]=tab_xuanzhuantiao2[i*8+k];
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
}
void flash_33()
{
        xuanzhuantiao2(3,3);
}
void qumianxuanzhuan(char kind,char num,char v)//曲面旋转
{
        uchar a[64]={0};
        char i,j,k;
        for(j=0;j<8;j++)
                for(i=0;i<8;i++)
                        a[i+j*8]=tab_xuanzhuantiao[i];
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        if(kind==1)
        {
                for(j=1;j<8;j++)//顺时针初形变换
                {
                        for(i=0;i<j;i++)
                                for(k=0;k<8;k++)
                                        a[k+i*8]=tab_xuanzhuantiao[(j-i)*8+k];
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
                for(i=8;i<14;i++)
                {
                        move(a,2,1,1);
                        for(j=0;j<8;j++)
                                a[j]=tab_xuanzhuantiao[i*8+j];
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
        }
        else
        {
                for(j=1;j<8;j++)//逆时针初形变换
                {
                        for(i=0;i<j;i++)
                                for(k=0;k<8;k++)
                                        a[k+i*8]=tab_xuanzhuantiao[(14-j+i)*8+k];
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
                for(i=7;i>=0;i--)
                {
                        move(a,2,1,1);
                        for(j=0;j<8;j++)
                                a[j]=tab_xuanzhuantiao[i*8+j];
                if(key3==1){break;}
                else{zhen(a,v);        }
                        delay(50);
                }
        }

        while(num--)//主循环
        {
                if(kind==1)
                        for(i=0;i<14;i++)
                        {
                                move(a,2,1,1);
                                for(j=0;j<8;j++)
                                        a[j]=tab_xuanzhuantiao[i*8+j];
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                else
                        for(i=13;i>=0;i--)
                        {
                                move(a,2,1,1);                               
                                for(j=0;j<8;j++)
                                        a[j]=tab_xuanzhuantiao[i*8+j];
                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
        }
        if(kind==1)
                for(j=0;j<7;j++)
                {
                        for(i=7;i>=j;i--)
                        {
                                if(i>j)
                                        for(k=0;k<8;k++)
                                                a[k+i*8]=tab_xuanzhuantiao[(14-i+j)*8+k];
                                else
                                        for(k=0;k<8;k++)
                                                a[k+i*8]=tab_xuanzhuantiao[k];
                        }
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
        else
                for(j=1;j<7;j++)
                {
                        for(i=7;i>=j;i--)
                        {
                                if(i>j)
                                        for(k=0;k<8;k++)
                                                a[k+i*8]=tab_xuanzhuantiao[(i-j)*8+k];
                                else
                                        for(k=0;k<8;k++)
                                                a[k+i*8]=tab_xuanzhuantiao[k];
                        }
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
}
void flash_34()
{
        qumianxuanzhuan(1,10,4);
        qumianxuanzhuan(0,10,4);
}
void qumianxuanzhuan2(char num,char v)//曲面旋转
{
        uchar a[64]={0};
        char i,j,k;
        for(j=0;j<8;j++)
                for(i=0;i<8;i++)
                        a[i+j*8]=tab_xuanzhuantiao[i];
                if(key3==1){return;}
                else{zhen(a,v);}
        delay(50);
        for(j=1;j<8;j++)
        {
                for(i=0;i<j;i++)
                        for(k=0;k<8;k++)
                                a[k+i*8]=tab_xuanzhuantiao[(14-j+i)*8+k];
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        while(num--)
        {
                for(j=1;j<8;j++)
                {
                        move(a,2,1,1);
                        for(i=0;i<j;i++)
                        {
                                for(k=0;k<8;k++)
                                {
                                        if(j!=7|i!=0)
                                                a[i*8+k]=tab_xuanzhuantiao[k+(j+7-i)*8];
                                        else
                                                a[k]=tab_xuanzhuantiao[k];
                                }
                        }
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
                for(j=1;j<8;j++)
                {
                        move(a,2,1,1);
                        for(i=0;i<j;i++)
                        {
                                for(k=0;k<8;k++)
                                        a[i*8+k]=tab_xuanzhuantiao[k+(14-j+i)*8];
                        }
                if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
        }
}
void flash_35()
{
        qumianxuanzhuan2(13,4);
}
void donghua(uchar *tab,uchar num,uchar n,char v)
{
        char i;
        while(n--)
        {
                for(i=0;i<num;i++)//清空
                {
                if(key3==1){break;}
                else{zhen(tab+i*64,v);}
                        delay(50);
                }
        }
}
void xzcube()
{
                char i;
                donghua(y_table,6,8,8);
                for(i=0;i<26;i++)
                {
                        if(i==12||i==13||i==14)
                                {                if(key3==1){break;}
                else{zhen(yx_table+i*64,30);}
                                delay(50);}
                        else {
                                                if(key3==1){break;}
                else{zhen(yx_table+i*64,14);}
                                delay(50);  }
                }
                donghua(x_table,6,8,8);
                for(i=0;i<26;i++)
                {
                        if(i==12||i==13||i==14)
                                {                if(key3==1){break;}
                else{zhen(xz_table+i*64,30);}
                                delay(50);}
                        else{
                                                if(key3==1){break;}
                else{zhen(xz_table+i*64,14);}
                                delay(50);}
                }
                donghua(z_table,6,8,8);
}
void flash_36()
{
        donghua(bianxing_table,11,1,24);
        xzcube();
        donghua(y_table,6,5,5);
        donghua(x_table,6,5,5);
        donghua(z_table,6,5,5);
}
void produce_cube(uchar *a,char n)
{
        char i,j;
        for(i=0;i<8;i++)
                for(j=0;j<8;j++)
                {
                        if(j<n&&i<n)
                                a[j+i*8]=0xff>>(8-n);
                        else
                                a[j+i*8]=0;
                }       
}
void link00()
{
        uchar a[64]={0};
        char i;
        for(i=10;i>7;i--)
        {
                                if(key3==1){break;}
                else{zhen(bianxing_table+i*64,70);}
                delay(50);
        }
        produce_cube(a,6);
        move(a,1,1,1);
        move(a,0,1,1);
                        if(key3==1){return;}
                else{zhen(a,110);}
        delay(50);
        produce_cube(a,8);
                        if(key3==1){return;}
                else{zhen(a,110);}
        delay(50);
}
void flash_37()         
{
        link00();  
}
void shensuo(uchar v)
{
        char i,j;
        uchar a[64]={0};
        for(i=0;i<64;i++)
                a[i]=0xff;
        for(i=0;i<7;i++)
        {
                move(a,0,0,1);
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=0;i<7;i++)
        {
                move(a,0,1,1);
                for(j=0;j<64;j++)
                        a[j]|=0x01;
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=0;i<7;i++)
        {
                move(a,2,0,1);
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=0;i<7;i++)
        {
                move(a,2,1,1);
                for(j=0;j<8;j++)
                        a[j]|=0xff;
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
        for(i=7;i>0;i--)
        {
                for(j=0;j<8;j++)
                        a[j*8+i]=0;
                                if(key3==1){break;}
                else{zhen(a,v);        }
                delay(50);
        }
        for(i=1;i<8;i++)
        {
                for(j=0;j<8;j++)
                        a[j*8+i]|=0xff;
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void flash_38()         
{
        shensuo(5);
}
void produce_empty(uchar *a,char n)//0<n<=8,注意n不能为0
{
        char j;
        uchar p;
        for(j=0;j<64;j++)
                a[j]=0;
        p=0xff>>(8-n);
/************X4列*************/
        a[(n-1)*8+n-1]=p;
        a[(n-1)*8]=p;
        a[0]=p;
        a[n-1]=p;
        for(j=0;j<n;j++)
        {
                p=(0x01|(0x01<<(n-1)));
/************竖直4列*************/
                a[j*8]|=p;
                a[j*8+n-1]|=p;
/************Y4列*************/
                a[j]|=p;
                a[(n-1)*8+j]|=p;
        }
}
void cube(char empty,char kind,char v)
{
        uchar a[64]={0};
        char i;
        for(i=1;i<=8;i++)//生成
        {
                if(empty==0)
                        produce_cube(a,i);
                else
                        produce_empty(a,i);
                if(kind==0)
                        {;}
                else if(kind==1)
                        move(a,1,1,8-i);
                else if(kind==2)
                {
                        move(a,1,1,8-i);
                        move(a,0,1,8-i);
                }
                else
                        move(a,0,1,8-i);
                                if(key3==1){break;}
                else{zhen(a,v);        }
                delay(50);
        }
        for(i=7;i>0;i--)//退出
        {
                if(empty==0)
                        produce_cube(a,i);
                else
                        produce_empty(a,i);
                if(kind==0)
                {
                        move(a,1,1,8-i);
                        move(a,0,1,8-i);
                }
                else if(kind==1)
                        move(a,0,1,8-i);
                else if(kind==2)
                        {;}
                else
                        move(a,1,1,8-i);                               
                                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}
void flash_39()          
{
        char i,j;
                for(i=0;i<3;i++)         
                        for(j=0;j<3;j++)
                                cube(0,j,6);
                for(i=0;i<3;i++)     
                        for(j=0;j<3;j++)
                                cube(1,j,6);
}

void flash_40()         
{
        donghua(hart_table,2,10,32);
}
void shandian(char v)
{
                char i,j;
                uchar a[64];
                for(i=0;i<64;i++)
                        a[i]=tab_shandian[64*21+i];
                for(i=0;i<22;i++)
                                        if(key3==1){break;}
                else{zhen(tab_shandian+64*i,v);}
                        delay(50);
                for(i=0;i<22;i++)
                {
                        for(j=0;j<64;j++)
                                a[j]=a[j]&(~tab_shandian[64*i+j]);
                                        if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
}
void flash_41()         
{
                char i;
                for(i=2;i>0;i--)
                        shandian(i);       
}
void szfc0(char v)//数字上浮
{
        char i,j;
        uchar a[64];
        for(i=0;i<64;i++)
        {
                a[i]=0;
        }
        for(j=124;j>=0;j--)
        {
                for(i=7;i>=0;i--)
                {
                        a[i*8+3]=szfc_table[j+i];
                        a[i*8+4]=szfc_table[j+i];
                }
                                if(key3==1){break;}
                else{zhen(a,v);        }
                delay(50);
        }
}
void flash_42()         
{
                szfc0(10);
}
void rain(char menu,char num,char v)
{//menu=0,up;menu=1,down
        uchar a[64]={0};
        char i,j;
        if(menu==0)
        {
                for(i=0;i<8;i++)
                        a[i]=tab_rain[i];
                                if(key3==1){return;}
                else{zhen(a,v);}
                delay(50);
                for(i=1;i<8;i++)
                {
                        move(a,2,1,1);
                        for(j=0;j<8;j++)
                                a[j]=tab_rain[i*8+j];
                                        if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }       
                while(num--)
                {       
                        for(i=0;i<8;i++)
                        {
                                move(a,2,1,1);
                                for(j=0;j<8;j++)
                                        a[j]=tab_rain[i*8+j];
                                                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }
                }
        }
        else
        {
                for(i=0;i<8;i++)
                        a[7*8+i]=tab_rain[i];
                                if(key3==1){return;}
                else{zhen(a,v);}
                delay(50);
                for(i=1;i<8;i++)
                {
                        move(a,2,0,1);
                        for(j=0;j<8;j++)
                                a[7*8+j]=tab_rain[i*8+j];
                                        if(key3==1){break;}
                else{zhen(a,v);}
                        delay(50);
                }
                while(num--)
                {       
                        for(i=0;i<8;i++)
                        {
                                move(a,2,0,1);
                                for(j=0;j<8;j++)
                                        a[j+7*8]=tab_rain[i*8+j];
                                                if(key3==1){break;}
                else{zhen(a,v);}
                                delay(50);
                        }                               
                }
        }
}
void flash_15()         
{
        rain(1,10,9);
        rain(0,10,9);
}
void delayyp(unsigned int n1)
{
    unsigned int xdata i;
    while(n1--)
     for (i=0;i<200;i++);
}
unsigned int Read_ADC0()
{
ADC_CONTR|=0x08;
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&0x10));
ADC_CONTR&=~0x10;
return ((ADC_RES<<2)|(ADC_RESL));
}
unsigned int voivol(unsigned int n)
{
unsigned int xdata val,result,rel=0;
while(n)
{
  val=Read_ADC0();
  delayyp(2);
  result=val;
  rel=rel+result;
  n--;
}
return rel;
}
void Vol_watch_0(unsigned char kxg)
{
unsigned int xdata result=0,l=1,n=500;
while(n)
{
  if ((result>>5)>l)
  l=result>>5;
  else
   if (l>1)
    l--;
  if (l>7)
  l=7;

if(kxg==1)
{
  box(0,0,0,l,l,l,0,1);
  result=voivol(16);
  box(0,0,0,7,7,7,1,0);          
}
if(kxg==2)
{
  box(7,7,7,7-l,7-l,7-l,0,1);
  result=voivol(16);
  box(7,7,7,7-l,7-l,7-l,1,0);
}
if(kxg==3)
{  box(7,0,7,0,l,0,0,1);
  result=voivol(16);
  box(l,0,l,0,7,0,1,0);          
}
if(kxg==4)
{   
  box(l,l,l,7-l,7-l,7-l,0,1);
  result=voivol(16);
  box(7-l,7-l,7-l,l,l,l,1,0);       
}
if(kxg==5)
{
  box(0,7,7,l,7-l,0,0,1);
  result=voivol(16);
  box(0,7,7,l,7-l,0,1,0);         
}
if(kxg==6)
{
  box(l,l,l,7-l,7-l,7-l,0,1);
  result=voivol(16);
  box(7-l,7-l,7-l,7,7,7,1,0);       
}
if(kxg==7)
{
  box(l,0,7,0,7,0,0,1);
  result=voivol(16);
  box(7,0,l,0,l,0,1,0);             
}
  n--;
if(key2==3||key2==2){if(key2==3){msd=3;break;}
else{if(key2==2){msd=2;break;}}}
}
}

void Vol_watch_2()
{
unsigned int xdata result=0,l=0,n=500;
while(n)
{
  if ((result>>5)>l)
  l=result>>5;
  else
   if (l>0)
    l--;
  if (l>7)
  l=7;
  clear(0);
  switch(l)
  {
   case 0:point(4,4,4,1);break;
   case 1:box(3,3,3,4,4,4,1,1);break;
   case 2:box(2,2,2,4,4,4,1,1);break;
   case 3:box(2,2,2,5,5,5,1,1);break;
   case 4:box(1,1,1,5,5,5,1,1);break;
   case 5:box(1,1,1,6,6,6,1,1);break;
   case 6:box(0,0,0,6,6,6,1,1);break;
   default:box(0,0,0,7,7,7,1,1);
  }
  result=voivol(16);
  n--;
  if(key2==3||key2==2){if(key2==3){msd=3;break;}
else{if(key2==2){msd=2;break;}}}
}
}
void Vol_watch_3()
{
unsigned int result,l,n=500;
while(n)
{
  result=voivol(3);
  l=result>>3;
  if (l>7)
  l=7;
  transss();
  box_apeak_xy(0,0,0,0,7,l,1,1);
  delayyp(60);
  n--;
  if(key2==3||key2==2){if(key2==3){msd=3;break;}
else{if(key2==2){msd=2;break;}}}
}
}
void init_uart(void)
{
PCON |= 0x80;
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xFE;
TMOD &= 0x0F;
TMOD |= 0x20;                                          
TL1 = 0xE8;
TH1 = 0xE8;
ET1 = 0;
TR1 = 1;
ES=1;
EA=1;
}
void sendbyteck(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{
    unsigned char c;
    for(c=0;c<8;c++)
   {
        CLK=0;
        M_LR_DS0=num1&0x01;
        M_LG_DS0=num2&0x01;
        M_HR_DS0=num3&0x01;
        M_HG_DS0=num4&0x01;
        CLK=1;
        num1>>=1;
        num2>>=1;
        num3>>=1;
        num4>>=1;
    }
}
void key_shangwiej_scan()
{
if(!K2)  //如果检测到低电平,说明按键按下
    {
        if(msd==1||msd==2){TR0=0;}
         delay10us();  //延时去抖,一般10-20ms
     if(!K2)     //再次确认按键是否按下,没有按下则退出
           {
        while(!K2)//如果确认按下按键等待按键释放,没有则退出
               {
                   if(test==1){key1=1;}
                   if(test==2){key2=3;}
                   PWM_POW=1;      
                   delay10us();        delay10us();delay10us();delay10us();        delay10us();delay10us();
                   PWM_POW=0;      
                         }
           }
        }
        if(msd==1||msd==2){TR0=1;}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
void main()
{
        sinter();
        clear(0);
        PWM_LED();//开启PWM呼吸灯功能
        turn_on(10);
        H_scan(10);
        V_scan(10);
        W_scan(10);
        PWM_POW=0;//打开电源指示灯
        test=1;       
        while(1)
        {
                ld=500;
                H_scan(40);
                if(key1==1||key1==2||key1==3||key1==4){        break;}        V_scan(40);
                if(key1==1||key1==2||key1==3||key1==4)        {break;}W_scan(40);
                if(key1==1||key1==2||key1==3||key1==4)        {break;}}
        while(1)
        {
                if(key1==3)        {H_scan(40); } if(key1==2){V_scan(40); }if(key1==1){W_scan(40);        }if(key1==4){
                test=2;          
                msd=2;   
                ld=500;
                break; //退出测试功能
                }
        }
        delay(10);         TR0=0;       
        while(1)  /*play list*/
        {
                if(msd==1)         
                {       
                        key3=3;       
                        TR0=0;                          
                        EA=0;
                        xsdsq=1;
                        hy(number+(36+1)*8,10);       
                        W_side(number+(36+1)*8,1,200);
                        xsdsq=0;
                        PWM_POW=0;
                        TR0=1;                                  //开启定时器显示扫描
                        EA=1;
                        test=2;
                   while(1)
                   {
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{  clear(0); Vol_watch_0(1);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(2);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(3);        }
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(4);        }
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{  clear(0); Vol_watch_0(5);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{  clear(0); Vol_watch_0(6);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{   clear(0); Vol_watch_0(7);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0);         Vol_watch_1(1);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0);         Vol_watch_1(2);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(3); }
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0);         Vol_watch_1(4);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0);         Vol_watch_1(5);}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0);         Vol_watch_2();}
                                if(key2==3||key2==2){if(key2==3){msd=3;break;}
                                else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_3();}
                   }
                }
                if(msd==2)         
                {       
                        key3=3;       
                        xsdsq=1;
                        hy(number+(36+2)*8,10);       
                        W_side(number+(36+2)*8,1,200);
                        xsdsq=0;
                   while(1)
                   {
                                msd=6;
                                TR0=0;                                  //关闭定时器显示扫描
                                EA=0;
                                 flash_20();         //第一个面屏幕上下拉开
                                flash_21();         //从后面往前面显示数组的数字9-0
                                flash_22();         //围绕着最外面的LED循环滚动显示数组中内容
                                flash_23();         //分层升降左右上下前后以此打开升降测试
                                 flash_24();  //从最上面的一个面往下面的一层移动完
                                 flash_25();         //光立方全亮并且闪烁5次
                                 flash_26();  //从下面往上面依次显示出数组中的内容IXU
                                 flash_27();         //狼七八咋的显示出LED的每一个灯展示灯火效果
                                 flash_28();         //显示从上面往下面滴水的效果
                                 flash_29();         //将4个面围城圈圈然后旋转几次
                                 flash_30();         //空心显示将数组内容打印出来可以打印4个数组内容
                                 flash_31();         //将左右的四个面围绕成圈圈转起来4次之后从左边往右边显示数组中一幅图像64个的数据
                                 flash_32();         //从左边显示一个面然后旋转出一个面的空心效果实心效果
                                 flash_33();         //旋转单个面依次交换到买一个面
                                 flash_34();         //以中点位轴进行选择左右旋转切换实现波纹的效果
                                 flash_35();         //旋转左右为中心加快速度实现每个面的抖动效果
                                flash_36();         //将数组中的内容显示出现进行旋转是一个正方形的
                                flash_37();         //将方形变形缩小然后变成一个全亮的效果
                                flash_38();         //前后左右上下伸缩全亮
                                flash_39();         //实心和空心缩放和放大正方形全亮显示
                                flash_40();         //动画显示一个数组里面的心形数据 会动的心形
                                flash_41();         //显示一个电梯的图形
                                flash_42();         //显示数字往上移动出来
                                flash_15();  //显示下雨的效果
                                   msd=2;                       
                                TR0=1;               
                                EA=1;
               
                //显示中有些动画包含本店的数据如果不需要请自己将动画函数屏蔽
                //flash_14();flash_18();flash_12();
                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_1();}//包含第一个面显示4321倒计时的文字
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_17();}//显示出一个VI的版本标志然后从最里面往外面滚动出来
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_16();}//从边边的左右中滚动显示默认的英文字母ideasoft
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_14();}//一个一个的字变出来显示上升沿电子光立方可以修改显示数据
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_18();}//显示出上升沿电子8X8X8光立方下雨效果飘出字移动出去
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_2();}//图形圈圈显示出来
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_3();}//从前一排显示到后面一排两次
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_4();}//从前一排斜杆到最后一排两次
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_5();}//框框伸缩从中间到前面到后面
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_6();}//滚四边的圈圈然后下雨效果飘出字移动出去
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_7();}//滚四边包括前后左右滚然后出来半边三角形
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_8();}//从左移动一排到右边中间显示文字图形
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_9();}//从左到右边滚出斜杆然后螺旋转轴旋转框框显示方框伸缩孔空心和实心
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_10();}//从最左小脚伸缩出框框然后变轮子前后左右上下滚动然后收缩还原
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_11();}//象红旗一样被风飘动象蛇一样飘动走动
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_12();}//滚动上升沿电子的字模数据文字移动显示出来
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_13();}//渐变出来文字VI1234IXU的图案
                                                if(key2==1||key2==3){if(key2==1){msd=1;break;}
                                else{if(key2==3){msd=3;break;}}}else{flash_19();}//平行滑动显示出3D CULE FFT的字?
                                TR0=0;                       
                                EA=0;
                                PWM_POW=0;
                        }
                }
                if(msd==3)         
                {
                        key3=3;                               
                        TR0=0;                         
                        EA=0;
                        xsdsq=1;
                        hy(number+(36+3)*8,10);
                        W_side(number+(36+3)*8,1,200);       
                        xsdsq=0;
                        PWM_POW=0;
                        init_uart();
                           test=2;
                   while(1)
                   {
                                fvb();
                                if(key2==1||key2==2){if(key2==1){msd=1;break;}
                             else{if(key2==2){msd=2;break;}}}
                        }
                }
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表