找回密码
 立即注册

QQ登录

只需一步,快速开始

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

4层4*4*4光立方完整版制作资料超级全 带单色与彩色的

  [复制链接]
跳转到指定楼层
楼主
4*4*4光立方


焊接制作方法:
本光立方采用束共阳层共阴的接法。
先介绍一下,层的接法:

P2.0-P2.7为层控制线,我们先帮光立方分为左右2侧,每测2列LED负极接在一起为1个层。左侧最顶层(也就是第4层)的共阴极层控制线为P2.0,左侧第2层的共阴极层控制线为P2.1,左侧第3层的共阴极层控制线为P2.2,左侧第4层(也就是最底层)


(完整教程请下载附件……)

元件清单:
元件名称数量
PCB板
1
红蓝双色超高亮长脚LED
70
40P圆排母
2
5MMLED 间隔柱
5
5MM七彩LED
4
15MM铜柱
4
DC005线
1
DC005座
1
25V470UF电解电容
1
1K电阻
4
40P芯片底座
1
STC12C5A60S2烧写好程序
1
22P 瓷片电容
3
11.0592M晶振
1
单芯导线
1

单片机源程序如下:

  1. /*
  2. *程序功能:cube4光立方彩色版本,实现各种动画效果,配套取模软件
  3. *作者:梦嵌工作室
  4. *版本:cube V1.0
  5. *备注:
  6. *
  7. */
  8. #include <stc12c5a60s2.h>
  9. #include <intrins.h>

  10. #define uint unsigned int
  11. #define uchar unsigned char
  12. #define MAX_Delay  8
  13. #define MIN_Delay  1

  14. sbit S_1 = P1 ^ 1;
  15. sbit S_2 = P1 ^ 2;
  16. unsigned int pwm;
  17. unsigned char TimeDelay = 10;
  18. unsigned char Mode = 1;
  19. unsigned char code tabP2[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};  //扫描
  20. uchar  s=0;

  21. void DELAY_MS (uchar i){
  22. //        unsigned int i;
  23. //        while( --a != 0){
  24. //                for(i = 0; i < 600; i++);
  25. //        }
  26.         uchar x,j;
  27.         for(j=0;j<i;j++)
  28.         for(x=0;x<=148;x++);        
  29. }

  30. void Adc_Delay (uint a){  
  31.         uint i;                                      
  32.         while( --a != 0){
  33.                 for(i = 0; i < 600; i++);
  34.                 }
  35. }

  36. void Delay(uint z)
  37. {
  38.         uint x,y;
  39.         for(x=80;x>0;x--)
  40.         for(y=z;y>0;y--);
  41. }

  42. void timer1_init()
  43. {
  44.         TMOD |= 0x10;
  45.         TH1 = 0;
  46.         TL1 = 0;
  47.         ET1 = 1;
  48.         TR1 = 1;
  49.         EA = 1;
  50. }

  51. /*******************************************************************************
  52. **********************         AD转换函数               **************/
  53. /******************************************************************************/
  54. unsigned char Read (unsigned char CHA)
  55. {
  56.         unsigned char AD_FIN=0; //存储A/D转换标志
  57.     CHA &= 0x07;            //选择ADC的8个接口中的一个(0000 0111 清0高5位)
  58.     ADC_CONTR = 0x00;                //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)
  59.     _nop_();
  60.     ADC_CONTR |= CHA;       //选择A/D当前通道
  61.     _nop_();
  62.     ADC_CONTR |= 0x80;      //启动A/D电源
  63.     Adc_Delay(1);            //使输入电压达到稳定(1ms即可)
  64.     ADC_CONTR |= 0x08;      //启动A/D转换(0000 1000 令ADCS = 1)
  65.         _nop_();
  66.         _nop_();
  67.         _nop_();
  68.         _nop_();
  69.     while (AD_FIN ==0)
  70.         {                                                                     //等待A/D转换结束
  71.         AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否
  72.     }
  73.     ADC_CONTR &= 0xE7;      //1111 0111 清ADC_FLAG位, 关闭A/D转换,
  74. return (ADC_RES);          //返回A/D转换结果(8位)
  75. }

  76. /*******************************************************************************
  77. *************     AD电容式触摸按键检测程序        ******************/
  78. /*********************************************************************************************/

  79. //bit 1表示有感应物,0表示没有感应物 S1
  80. /**********************************************************************************************/
  81. bit S1(void)
  82. {
  83.         unsigned char R,mm=0,i,j,k;
  84.         bit aa;
  85.                 j=0;k=0;
  86.                 for(i=0;i<10;i++)
  87.                 {               //一次采集数据的数量
  88.                           Adc_Delay(3);
  89.                         R=Read(1);  //读对应的口,触发对应的触摸按键
  90.                         
  91.                         if(R<0x2f)
  92.                         {                         //此参数可调整感应灵敏度值在0x01到0x2F
  93.                                 k++;               
  94.                         }
  95.                         if(R == 0xFF)
  96.                         {
  97.                                 j++;        
  98.                         }
  99.                 }
  100.                 if(k>1 && j>1)
  101.                 {
  102.                         mm++;
  103.                 }
  104.                 else
  105.                 {
  106.                         mm=0;
  107.                 }

  108.         if(mm>0)
  109.         {
  110.                 aa =1;
  111.         }
  112.         else
  113.         {
  114.                 aa=0;
  115.         }
  116. return(aa);
  117. }

  118. /*********************************************************************************************/
  119.                         //                  S2
  120. /**********************************************************************************************/
  121. bit S2(void)
  122. {
  123.         unsigned char R,mm=0,i,j,k;
  124.         bit aa;
  125.                 j=0;k=0;
  126.                 for(i=0;i<10;i++)
  127.                 { //一次采集数据的数量
  128.                         Adc_Delay(3);
  129.                         R=Read(2);

  130.                         if(R<0x2F)
  131.                         { //此参数可调整感应灵敏度值在0x01到0x2F
  132.                                 k++;               
  133.                         }
  134.                         if(R == 0xFF)
  135.                         {
  136.                                 j++;        
  137.                         }
  138.                 }
  139.                 if(k>1 && j>1)
  140.                 {
  141.                         mm++;
  142.                 }
  143.                 else
  144.                 {
  145.                         mm=0;
  146.                 }        
  147.         
  148.         if(mm>0)
  149.         {
  150.                 aa =1;
  151.         }
  152.         else
  153.         {
  154.                 aa=0;
  155.         }
  156. return(aa);                                                                                                                        
  157.                                                                                 
  158. }

  159. //结束呼吸灯专用
  160. uchar code table[]={
  161. 0,0,1,2,3,4,5,6,7,8,9,10,
  162. 11,12,13,14,15,16,17,18,
  163. 19,20,21,22,23,24,25,26,27,
  164. 28,29,30,31,32,33,34,35,36,
  165. 37,38,39,40,41,42,43,44,45,
  166. 46,47,48,49,50,51,52,53,54,
  167. 55,56,57,58,59,60,61,62,63,
  168. 64,65,66,67,68,69,70,71,72,
  169. 73,74,75,76,77,78,79,80,81,82,
  170. 83,84,85,86,87,88,89,90,91,
  171. 92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,
  172. 110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
  173. };

  174. void PwmUp(uint a, uchar c)
  175. {
  176.         uchar i;
  177.         if(c == 1)
  178.                 P3 = 0X00;
  179.         else
  180.                 P0 = 0X00;
  181.         P2 = 0X00;
  182.         i = table[a];
  183.         Delay(i);
  184.         if(c == 1)
  185.                 P3 = 0XFF;
  186.         else
  187.                 P0 = 0XFF;
  188.         P2 = 0X00;
  189.         Delay(150-i);
  190. }

  191. void PwmDown(uint a,uchar c)
  192. {
  193.         uchar i;
  194.         if(c == 1)
  195.                 P3 = 0XFF;
  196.         else
  197.                 P0 = 0XFF;
  198.         P2 = 0X00;
  199.         i = table[a];
  200.         Delay(i);
  201.         if(c == 1)
  202.                 P3 = 0X00;
  203.         else
  204.                 P0 = 0X00;
  205.         P2 = 0X00;
  206.         Delay(150-i);        
  207. }


  208. void PwmAllon(uchar c)
  209. {
  210.         int i;
  211.         for(i = 0; i < 150 ;i++)
  212.         {
  213.                 PwmDown(i,c);        
  214.         }
  215.         if(c == 1)
  216.                 P3 = 0X00;
  217.         else
  218.                 P0 = 0X00;
  219.         P2 = 0X00;
  220. }

  221. void PwmOff(uchar c)
  222. {
  223.         int i;
  224. //        P3 = 0XFF;
  225. //        P2 = 0X00;
  226. //        Delay(100);

  227.         for(i = 0; i < 150; i++)
  228.         {
  229.                  PwmUp(i,c);        
  230.         }
  231.         
  232.         //P3 = 0X00;
  233. }

  234. void Allfalloff(uchar c,uchar time)  //由全亮到下落关闭只剩一排
  235. {
  236.         unsigned char code tabP0[5][8]={
  237.         {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  238.         {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},
  239.         {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},
  240.         {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
  241.         {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  242.         };
  243.         int j,k,i;
  244.         if(c==1)
  245.                 P3 = 0X00;
  246.         else if(c==2)
  247.                 P0 = 0X00;
  248.         else
  249.                 {
  250.                         P3 = 0XFF;
  251.                         P0 = 0XFF;
  252.                 }
  253.         for(j=0;j<5;j++)
  254.         {
  255.                 for(k=0;k<15;k++)
  256.                 {
  257.                         for(i=0;i<8;i++)
  258.                         {
  259.                         //        P0=0;
  260.                                 P2=tabP2[i];
  261.                                 if(c == 1)
  262.                                         P0=tabP0[j][i];
  263.                                 else if(c == 2)
  264.                                         P3 = tabP0[j][i];
  265.                                 else
  266.                                         P0=tabP0[j][i];
  267.                                 DELAY_MS(time);

  268.                         }
  269.                 }
  270.         }               
  271. }

  272. void Randomlight(uchar c,uchar time)   //随机亮完
  273. {
  274. unsigned char code tabP0[38][8]={
  275. {0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
  276. {0x00,0x20,0x00,0x00,0x00,0x00,0x10,0x00},
  277. {0x00,0x20,0x00,0x00,0x00,0x02,0x10,0x00},
  278. {0x00,0x20,0x04,0x00,0x00,0x02,0x10,0x00},
  279. {0x00,0xA0,0x04,0x00,0x00,0x02,0x10,0x00},
  280. {0x00,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},
  281. {0x40,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},
  282. {0x40,0xA0,0x24,0x10,0x20,0x02,0x10,0x00},
  283. {0x40,0xA0,0x24,0x10,0x20,0x22,0x10,0x00},
  284. {0x40,0xA0,0x24,0x10,0x20,0x22,0x14,0x42},
  285. {0x40,0xA0,0x24,0x10,0x20,0x26,0x14,0x42},
  286. {0x40,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},
  287. {0x44,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},
  288. {0x44,0xA0,0x25,0x50,0x20,0x26,0x14,0x42},
  289. {0x44,0xA0,0x25,0x50,0xA0,0x26,0x14,0x42},
  290. {0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x43},
  291. {0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x53},
  292. {0x44,0xA0,0x65,0x50,0xA0,0x27,0x54,0x53},
  293. {0x44,0xA0,0x65,0x50,0xA0,0xA7,0x54,0x53},
  294. {0x44,0xA0,0x65,0x50,0xA8,0xA7,0x54,0x53},
  295. {0x44,0xA0,0x65,0x50,0xA8,0xA7,0x56,0x5B},
  296. {0x46,0xA0,0x67,0x52,0xA8,0xA7,0x56,0x5B},
  297. {0x46,0xA1,0x67,0x52,0xA8,0xA7,0x56,0x5B},
  298. {0x46,0xB1,0x67,0x52,0xA8,0xA7,0x56,0x5B},
  299. {0x46,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B},
  300. {0x56,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B},
  301. {0x56,0xB1,0x67,0x5A,0xA8,0xE7,0x56,0x5B},
  302. {0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x5F},
  303. {0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x7F},
  304. {0x56,0xF9,0x67,0x7A,0xAA,0xE7,0x56,0x7F},
  305. {0x56,0xF9,0x67,0x7A,0xAE,0xE7,0x5E,0x7F},
  306. {0x5E,0xFD,0x67,0x7B,0xAE,0xE7,0x5E,0x7F},
  307. {0x5E,0xFD,0x67,0x7B,0xEE,0xE7,0xDE,0xFF},
  308. {0xDE,0xFD,0xE7,0xFB,0xEF,0xE7,0xFF,0xFF},
  309. {0xDE,0xFD,0xF7,0xFB,0xFF,0xF7,0xFF,0xFF},
  310. {0xDE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  311. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}
  312. };
  313.          int j,k,i;
  314.         if(c==1)
  315.                 P3 = 0X00;
  316.         else if(c==2)
  317.                 P0 = 0X00;
  318.         else
  319.                 {
  320.                         P3 = 0XFF;
  321.                         P0 = 0XFF;
  322.                 }

  323.         for(j=0;j<38;j++)
  324.         {
  325.                 for(k=0;k<10;k++)
  326.                 {
  327.                         for(i=0;i<8;i++)
  328.                         {
  329.                         //        P0=0;
  330.                                 P2=tabP2[i];
  331.                                 if(c == 1)
  332.                                         P0=tabP0[j][i];
  333.                                 else if(c == 2)
  334.                                         P3 = tabP0[j][i];
  335.                                 else
  336.                                         {
  337.                                         P3 = tabP0[j][i];
  338.                                         P0=tabP0[j][i];
  339.                                         }
  340.                                 DELAY_MS(time);

  341.                         }
  342.                 }
  343.         }        
  344. }

  345. void Randomoff(uchar c,uchar time)     //随机灭完
  346. {
  347.         unsigned char code tabP0[23][8]={
  348. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  349. {0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xDF},
  350. {0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xED,0xDF},
  351. {0xFF,0xF7,0xDD,0xFF,0xFF,0xFF,0xED,0xDF},
  352. {0xFF,0xF7,0xDD,0xEF,0xFF,0xDF,0xED,0xDF},
  353. {0xFF,0xF7,0x5D,0xAF,0xFD,0xDF,0xED,0xDF},
  354. {0xFF,0xF7,0x5C,0xAF,0xDD,0xDF,0xED,0xDF},
  355. {0xFF,0xE7,0x5C,0xAF,0xDD,0xDF,0x6D,0xDD},
  356. {0xFF,0xE7,0x5C,0x2F,0xDD,0xD7,0x6D,0x9D},
  357. {0xFF,0xE5,0x5C,0x2F,0xDD,0xD7,0x69,0x9D},
  358. {0xFF,0xA5,0x5C,0x2B,0xDD,0x57,0x69,0x9D},
  359. {0xFF,0xA5,0x5C,0x29,0xDD,0x57,0x69,0x8D},
  360. {0xBD,0x85,0x5C,0x29,0xDD,0x57,0x69,0x8D},
  361. {0xBD,0x85,0x54,0x29,0xDD,0x53,0x48,0x8D},
  362. {0x9D,0x85,0x54,0x29,0xDD,0x53,0x08,0x8D},
  363. {0x9D,0x81,0x54,0x09,0xDD,0x13,0x08,0x8D},
  364. {0x95,0x81,0x54,0x09,0xDD,0x12,0x08,0x85},
  365. {0x95,0x01,0x54,0x09,0xC9,0x12,0x08,0x85},
  366. {0x95,0x01,0x54,0x01,0x89,0x12,0x08,0x84},
  367. {0x95,0x01,0x40,0x01,0x89,0x02,0x08,0x80},
  368. {0x95,0x00,0x40,0x01,0x88,0x02,0x08,0x00},
  369. {0x94,0x00,0x00,0x00,0x88,0x00,0x08,0x00},
  370. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

  371.         };
  372.         int j,k,i;
  373.                 if(c==1)
  374.                 P3 = 0X00;
  375.         else if(c==2)
  376.                 P0 = 0X00;
  377.         else
  378.                 {
  379.                         P3 = 0XFF;
  380.                         P0 = 0XFF;
  381.                 }
  382.         for(j=0;j<23;j++)
  383.         {
  384.                 for(k=0;k<10;k++)
  385.                 {
  386.                         for(i=0;i<8;i++)
  387.                         {
  388.                         //        P0=0;
  389.                                 P2=tabP2[i];
  390.                                 if(c == 1)
  391.                                         P0=tabP0[j][i];
  392.                                 else if(c == 2)
  393.                                         P3 = tabP0[j][i];
  394.                                 else
  395.                                         P0=tabP0[j][i];
  396.                                 DELAY_MS(time);

  397.                         }
  398.                 }
  399.         }
  400. }

  401. void Righttoleft(uchar c,uchar time)                //右面平移到左面
  402. {
  403.                 unsigned char code tabP0[4][8]={
  404.         {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},
  405.         {0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},
  406.         {0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},
  407.         {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00}
  408.         };
  409.         int j,k,i;
  410.         if(c==1)
  411.                 P3 = 0X00;
  412.         else if(c==2)
  413.                 P0 = 0X00;
  414.         else
  415.                 {
  416.                         P3 = 0XFF;
  417.                         P0 = 0XFF;
  418.                 }
  419.         for(j=0;j<4;j++)
  420.         {
  421.                 for(k=0;k<10;k++)
  422.                 {
  423.                         for(i=0;i<8;i++)
  424.                         {
  425.                         //        P0=0;
  426.                                 P2=tabP2[i];
  427.                                 if(c == 1)
  428.                                         P0=tabP0[j][i];
  429.                                 else if(c == 2)
  430.                                         P3 = tabP0[j][i];
  431.                                 else
  432.                                 {
  433.                                         P0=tabP0[j][i];
  434.                                         P3 = tabP0[j][i];
  435.                                 }
  436.                                 DELAY_MS(time);

  437.                         }
  438.                 }
  439.         }
  440. }
  441. void Lefttoright(uchar c,uchar time)                //左面平移到右面
  442. {
  443.         unsigned char code tabP0[4][8]={
  444.         {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},
  445.         {0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},
  446.         {0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},
  447.         {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}
  448.         };
  449.         int j,k,i;
  450.                 if(c==1)
  451.                 P3 = 0X00;
  452.         else if(c==2)
  453.                 P0 = 0X00;
  454.         else
  455.                 {
  456.                         P3 = 0XFF;
  457.                         P0 = 0XFF;
  458.                 }
  459.         for(j=0;j<4;j++)
  460.         {
  461.                 for(k=0;k<10;k++)
  462.                 {
  463.                         for(i=0;i<8;i++)
  464.                         {
  465.                         //        P0=0;
  466.                                 P2=tabP2[i];
  467.                                 if(c == 1)
  468.                                         P0=tabP0[j][i];
  469.                                 else if(c == 2)
  470.                                         P3 = tabP0[j][i];
  471.                                 else
  472.                                         P0=tabP0[j][i];
  473.                                 DELAY_MS(time);

  474.                         }
  475.                 }
  476.         }
  477. }

  478. void turnD(uchar c,uchar time)                    //从右面到下面
  479. {
  480.         unsigned char code tabP0[6][8]={
  481. {0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F,0x0F},
  482. {0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F},
  483. {0x0F,0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F},
  484. {0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0xFF},
  485. {0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0xFF},
  486. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}
  487.         };
  488.         int j,k,i;
  489.                 if(c==1)
  490.                 P3 = 0X00;
  491.         else if(c==2)
  492.                 P0 = 0X00;
  493.         else
  494.                 {
  495.                         P3 = 0XFF;
  496.                         P0 = 0XFF;
  497.                 }
  498.         for(j=0;j<6;j++)
  499.         {
  500.                 for(k=0;k<10;k++)
  501.                 {
  502.                         for(i=0;i<8;i++)
  503.                         {
  504.                         //        P0=0;
  505.                                 P2=tabP2[i];
  506.                                 if(c == 1)
  507.                                         P0=tabP0[j][i];
  508.                                 else if(c == 2)
  509.                                         P3 = tabP0[j][i];
  510.                                 else
  511.                                         P0=tabP0[j][i];
  512.                                 DELAY_MS(time);

  513.                         }
  514.                 }
  515.         }
  516. }

  517. void Toptofollowing(uchar c,uchar time)         //上面平移到下面
  518. {
  519.         unsigned char code tabP0[4][8]={
  520. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  521. {0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00},
  522. {0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00},
  523. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},

  524.         };
  525.         int j,k,i;
  526.         if(c==1)
  527.                 P3 = 0X00;
  528.         else if(c==2)
  529.                 P0 = 0X00;
  530.         else
  531.                 {
  532.                         P3 = 0XFF;
  533.                         P0 = 0XFF;
  534.                 }
  535.         for(j=0;j<4;j++)
  536.         {
  537.                 for(k=0;k<10;k++)
  538.                 {
  539.                         for(i=0;i<8;i++)
  540.                         {
  541.                         //        P0=0;
  542.                                 P2=tabP2[i];
  543.                                 if(c == 1)
  544.                                         P0=tabP0[j][i];
  545.                                 else if(c == 2)
  546.                                         P3 = tabP0[j][i];
  547.                                 else
  548.                                         P0=tabP0[j][i];
  549.                                 DELAY_MS(time);

  550.                         }
  551.                 }
  552.         }               
  553. }
  554. void Followingtotop(uchar c,uchar time)         //下面平移到上面
  555. {
  556.         unsigned char code tabP0[4][8]={
  557. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
  558. {0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00},
  559. {0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00},
  560. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},

  561.         };
  562.         int j,k,i;
  563.         if(c==1)
  564.                 P3 = 0X00;
  565.         else if(c==2)
  566.                 P0 = 0X00;
  567.         else
  568.                 {
  569.                         P3 = 0XFF;
  570.                         P0 = 0XFF;
  571.                 }
  572.         for(j=0;j<4;j++)
  573.         {
  574.                 for(k=0;k<10;k++)
  575.                 {
  576.                         for(i=0;i<8;i++)
  577.                         {
  578.                         //        P0=0;
  579.                                 P2=tabP2[i];
  580.                                 if(c == 1)
  581.                                         P0=tabP0[j][i];
  582.                                 else if(c == 2)
  583.                                         P3 = tabP0[j][i];
  584.                                 else
  585.                                         P0=tabP0[j][i];
  586.                                 DELAY_MS(time);

  587.                         }
  588.                 }
  589.         }        
  590. }

  591. void Alllight(uchar c,uchar time)            //右到左全亮
  592. {
  593.         unsigned char code tabP0[4][8]={
  594.         {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},
  595.         {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF},
  596.         {0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF},
  597.         {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}
  598.         };
  599.         int j,k,i;
  600.                 if(c==1)
  601.                 P3 = 0X00;
  602.         else if(c==2)
  603.                 P0 = 0X00;
  604.         else
  605.                 {
  606.                         P3 = 0XFF;
  607.                         P0 = 0XFF;
  608.                 }
  609.         for(j=0;j<4;j++)
  610.         {
  611.                 for(k=0;k<10;k++)
  612.                 {
  613.                         for(i=0;i<8;i++)
  614.                         {
  615.                         //        P0=0;
  616.                                 P2=tabP2[i];
  617.                                 if(c == 1)
  618.                                         P0=tabP0[j][i];
  619.                                 else if(c == 2)
  620.                                         P3 = tabP0[j][i];
  621.                                 else
  622.                                         P0=tabP0[j][i];
  623.                                 DELAY_MS(time);

  624.                         }
  625.                 }
  626.         }
  627. }

  628. void Evel(uchar c,uchar time)            // 斜面亮
  629. {
  630.         unsigned char code tabP0[7][8]={
  631.         {0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xF7},
  632.         {0x00,0x00,0x00,0xEC,0x00,0x00,0x00,0x73},
  633.         {0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x23},
  634.         {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  635.         {0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21},
  636.         {0x00,0x48,0x48,0x48,0x00,0x21,0x21,0x21},
  637.         {0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21},
  638.         };
  639.         int j,k,i;
  640.         if(c==1)
  641.                 P3 = 0X00;
  642.         else if(c==2)
  643.                 P0 = 0X00;
  644.         else
  645.                 {
  646.                         P3 = 0XFF;
  647.                         P0 = 0XFF;
  648.                 }
  649.         for(j=0;j<7;j++)
  650.         {
  651.                 for(k=0;k<10;k++)
  652.                 {
  653.                         for(i=0;i<8;i++)
  654.                         {
  655.                                 P0=0;
  656.                                 P2=tabP2[i];
  657.                                 if(c == 1)
  658.                                         P0=tabP0[j][i];
  659.                                 else if(c == 2)
  660.                                         P3 = tabP0[j][i];
  661.                                 else
  662.                                         P0=tabP0[j][i];
  663.                                 DELAY_MS(time);

  664.                         }
  665.                 }
  666.         }
  667. }

  668. void Followtotop(uchar c,uchar time)         //上面转移到后面  可以接旋转
  669. {
  670.         unsigned char code tabP0[10][8]={
  671. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  672. {0xEE,0x11,0x00,0x00,0xFF,0x00,0x00,0x00},
  673. {0xEC,0x12,0x01,0x00,0xFF,0x00,0x00,0x00},
  674. {0xC8,0x24,0x12,0x01,0xEF,0x10,0x00,0x00},
  675. {0x88,0x48,0x24,0x12,0xCE,0x21,0x10,0x00},
  676. {0x88,0x88,0x48,0x24,0x8C,0x42,0x21,0x10},
  677. {0x88,0x88,0x88,0x48,0x88,0x84,0x42,0x21},
  678. {0x88,0x88,0x88,0x88,0x88,0x88,0x84,0x42},
  679. {0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x84},
  680. {0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88}

  681.         };
  682.         int j,k,i;
  683.         if(c==1)
  684.                 P3 = 0X00;
  685.         else if(c==2)
  686.                 P0 = 0X00;
  687.         else
  688.                 {
  689.                         P3 = 0XFF;
  690.                         P0 = 0XFF;
  691.                 }
  692.         for(j=0;j<15;j++)
  693.         {
  694.                 for(k=0;k<10;k++)
  695.                 {
  696.                         for(i=0;i<8;i++)
  697.                         {
  698.                         //        P0=0;
  699.                                 P2=tabP2[i];
  700.                                 if(c == 1)
  701.                                         P0=tabP0[j][i];
  702.                                 else if(c == 2)
  703.                                         P3 = tabP0[j][i];
  704.                                 else
  705.                                         P0=tabP0[j][i];
  706.                                 DELAY_MS(time);

  707.                         }
  708.                 }
  709.         }        
  710. }


  711. void Spin(uchar c,uchar time)            // 旋转
  712. {
  713.         unsigned char code tabP0[8][8]={
  714. {0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21},
  715. {0x44,0x44,0x44,0x44,0x22,0x22,0x22,0x22},
  716. {0x22,0x22,0x22,0x22,0x44,0x44,0x44,0x44},
  717. {0x21,0x21,0x21,0x21,0x48,0x48,0x48,0x48},
  718. {0x31,0x31,0x31,0x31,0xC8,0xC8,0xC8,0xC8},
  719. {0x30,0x30,0x30,0x30,0xC0,0xC0,0xC0,0xC0},
  720. {0xC0,0xC0,0xC0,0xC0,0x30,0x30,0x30,0x30},
  721. {0xC8,0xC8,0xC8,0xC8,0x31,0x31,0x31,0x31},
  722.         };
  723.         int j,k,i;
  724.         if(c==1)
  725.                 P3 = 0X00;
  726.         else if(c==2)
  727.                 P0 = 0X00;
  728.         else
  729.                 {
  730.                         P3 = 0XFF;
  731.                         P0 = 0XFF;
  732.                 }
  733.         for(j=0;j<8;j++)
  734.         {
  735.                 for(k=0;k<8;k++)
  736.                 {
  737.                         for(i=0;i<8;i++)
  738.                         {
  739.                         //        P0=0;
  740.                                 P2=tabP2[i];
  741.                                 if(c == 1)
  742.                                         P0=tabP0[j][i];
  743.                                 else if(c == 2)
  744.                                         P3 = tabP0[j][i];
  745.                                 else
  746.                                         P0=tabP0[j][i];
  747.                                 DELAY_MS(time);

  748.                         }
  749.                 }
  750.         }
  751. }


  752. void Thenthelast(uchar c,uchar time)  //接旋转下来到第一排
  753. {
  754.                 unsigned char code tabP0[3][8]={
  755. {0x00,0x48,0x48,0x48,0x00,0x21,0x21,0x21},
  756. {0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21},
  757. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21}
  758.         };
  759.         int j,k,i;
  760.         if(c==1)
  761.                 P3 = 0X00;
  762.         else if(c==2)
  763.                 P0 = 0X00;
  764.         else
  765.                 {
  766.                         P3 = 0XFF;
  767.                         P0 = 0XFF;
  768.                 }
  769.         for(j=0;j<3;j++)
  770.         {
  771.                 for(k=0;k<10;k++)
  772.                 {
  773.                         for(i=0;i<8;i++)
  774.                         {
  775.                         //        P0=0;
  776.                                 if(c == 1)
  777.                                         P0=tabP0[j][i];
  778.                                 else if(c == 2)
  779.                                         P3 = tabP0[j][i];
  780.                                 else
  781.                                         P0=tabP0[j][i];
  782.                                 DELAY_MS(time);

  783.                         }
  784.                 }
  785.         }        

  786. }
  787. void Thelast(uchar c,uchar time)  //接下来一排斜的 后4点转到左上1
  788. {
  789.                 unsigned char code tabP0[43][8]={
  790. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  791. {0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x23},
  792. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27},
  793. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F},
  794. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8E},
  795. {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x8C},
  796. {0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x88},
  797. {0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x80},
  798. {0x00,0x00,0x00,0x8E,0x00,0x00,0x00,0x00},
  799. {0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00},
  800. {0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00},
  801. {0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x10},
  802. {0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x30},
  803. {0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x70},
  804. {0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x70},
  805. {0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60},
  806. {0x00,0x00,0x00,0x60,0x00,0x00,0x20,0x40},
  807. {0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00},
  808. {0x00,0x00,0x40,0x20,0x00,0x00,0x60,0x00},
  809. {0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00},
  810. {0x00,0x00,0x60,0x00,0x00,0x20,0x40,0x00},
  811. {0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00},
  812. {0x00,0x40,0x20,0x00,0x00,0x60,0x00,0x00},
  813. {0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00},
  814. {0x00,0x60,0x00,0x00,0x20,0x40,0x00,0x00},
  815. {0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x00},
  816. {0x40,0x20,0x00,0x00,0x60,0x00,0x00,0x00},
  817. {0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00},
  818. {0x70,0x00,0x00,0x00,0x40,0x00,0x00,0x00},
  819. {0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x00},
  820. {0x30,0x00,0x00,0x00,0x11,0x00,0x00,0x00},
  821. {0x10,0x00,0x00,0x00,0x13,0x00,0x00,0x00},
  822. {0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00},
  823. {0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00},
  824. {0x00,0x00,0x00,0x00,0x8E,0x00,0x00,0x00},
  825. {0x80,0x00,0x00,0x00,0x8C,0x00,0x00,0x00},
  826. {0x88,0x00,0x00,0x00,0x88,0x00,0x00,0x00},
  827. {0x8C,0x00,0x00,0x00,0x80,0x00,0x00,0x00},
  828. {0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  829. {0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  830. {0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  831. {0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  832. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

  833.         };
  834.         int j,k,i;
  835.         if(c==1)
  836.                 P3 = 0X00;
  837.         else if(c==2)
  838.                 P0 = 0X00;
  839.         else
  840.                 {
  841.                         P3 = 0XFF;
  842.                         P0 = 0XFF;
  843.                 }
  844.         for(j=0;j<43;j++)
  845.         {
  846.                 for(k=0;k<10;k++)
  847.                 {
  848.                         for(i=0;i<8;i++)
  849.                         {
  850.                         //        P0=0;
  851.                                 P2=tabP2[i];
  852.                                 if(c == 1)
  853.                                         P0=tabP0[j][i];
  854.                                 else if(c == 2)
  855.                                         P3 = tabP0[j][i];
  856.                                 else
  857.                                         P0=tabP0[j][i];
  858.                                 DELAY_MS(time);

  859.                         }
  860.                 }
  861.         }        

  862. }

  863. void Twoidea(uchar c,uchar time)    //左上1开始 三个走 最后 底层亮完
  864. {
  865.         unsigned char code tabP0[19][8]={
  866. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  867. {0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00},
  868. {0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00},
  869. {0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00},
  870. {0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x00},
  871. {0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00},
  872. {0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00},
  873. {0x00,0x00,0x00,0x8F,0x00,0x00,0x00,0x00},
  874. {0x00,0x00,0x00,0xCF,0x00,0x00,0x00,0x00},
  875. {0x00,0x00,0x00,0xEF,0x00,0x00,0x00,0x00},
  876. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
  877. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x10},
  878. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x30},
  879. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x70},
  880. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xF0},
  881. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xF8},
  882. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFC},
  883. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFE},
  884. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
  885.         };
  886.         int j,k,i;
  887.         if(c==1)
  888.                 P3 = 0X00;
  889.         else if(c==2)
  890.                 P0 = 0X00;
  891.         else
  892.                 {
  893.                         P3 = 0XFF;
  894.                         P0 = 0XFF;
  895.                 }
  896.         for(j=0;j<19;j++)
  897.         {
  898.                 for(k=0;k<8;k++)
  899.                 {
  900.                         for(i=0;i<8;i++)
  901.                         {
  902.                
  903.                                 P2=tabP2[i];
  904.                                 if(c == 1)
  905.                                         P0=tabP0[j][i];
  906.                                 else if(c == 2)
  907.                                         P3 = tabP0[j][i];
  908.                                 else
  909.                                         P0=tabP0[j][i];
  910.                                 DELAY_MS(time);

  911.                         }
  912.                 }
  913.         }        

  914. }
  915. void Around2(uchar c,uchar time)  //从左下第一点贪吃蛇样  转到左上第一点
  916. {
  917.                 unsigned char code tabP0[27][8]={
  918. {0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00},
  919. {0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00},
  920. {0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x10},
  921. {0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11},
  922. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13},
  923. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07},
  924. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E},
  925. {0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0C},
  926. {0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x08},
  927. {0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00},
  928. {0x00,0x00,0x8C,0x00,0x00,0x00,0x00,0x00},
  929. {0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00},
  930. {0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00},
  931. {0x00,0x10,0x03,0x00,0x00,0x00,0x00,0x00},
  932. {0x00,0x10,0x01,0x00,0x00,0x10,0x00,0x00},
  933. {0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00},
  934. {0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00},
  935. {0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00},
  936. {0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00},
  937. {0x00,0x00,0x00,0x00,0x80,0x0C,0x00,0x00},
  938. {0x80,0x00,0x00,0x00,0x80,0x08,0x00,0x00},
  939. {0x88,0x00,0x00,0x00,0x80,0x00,0x00,0x00},
  940. {0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  941. {0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  942. {0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  943. {0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  944. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}

  945.         };
  946.         int j,k,i;
  947.         if(c==1)
  948.                 P3 = 0X00;
  949.         else if(c==2)
  950.                 P0 = 0X00;
  951.         else
  952.                 {
  953.                         P3 = 0XFF;
  954.                         P0 = 0XFF;
  955.                 }
  956.         for(j=0;j<3;j++)
  957.         {
  958.                 for(k=0;k<10;k++)
  959.                 {
  960.                         for(i=0;i<8;i++)
  961.                         {
  962.                                 P2=tabP2[i];
  963.                                 if(c == 1)
  964.                                         P0=tabP0[j][i];
  965.                                 else if(c == 2)
  966.                                         P3 = tabP0[j][i];
  967.                                 else
  968.                                         P0=tabP0[j][i];
  969.                                 DELAY_MS(time);

  970.                         }
  971.                 }
  972.         }

  973. }

  974. void Spread(uchar c,uchar time) //从左上1扩散全部一次         最后回到右上1
  975. {
  976.         unsigned char code tabP0[42][8]={
  977. {0x13,0x01,0x00,0x00,0x00,0x00,0x00,0x00},
  978. {0x37,0x33,0x01,0x00,0x10,0x00,0x00,0x00},
  979. {0x7F,0x37,0x13,0x01,0x31,0x10,0x00,0x00},
  980. {0xFF,0x7F,0x37,0x13,0x73,0x31,0x10,0x00},
  981. {0xFF,0xFF,0x7F,0x3F,0xFF,0x77,0x33,0x11},
  982. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77,0x33},
  983. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  984. {0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF},
  985. {0xFF,0xFF,0xFE,0xEC,0xFF,0xFF,0xFF,0xFF},
  986. {0xFF,0xFE,0xEC,0xC8,0xFF,0xFF,0xFF,0xEF},
  987. {0xFE,0xEC,0xC8,0x80,0xFF,0xFF,0xEF,0xCE},
  988. {0xEC,0xC8,0x80,0x00,0xFF,0xEF,0xCE,0x8C},
  989. {0xC8,0x80,0x00,0x00,0xEF,0xCE,0x8C,0x08},
  990. {0x80,0x00,0x00,0x00,0xCE,0x8C,0x08,0x00},
  991. {0x00,0x00,0x00,0x00,0x8C,0x08,0x00,0x00},
  992. {0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00},
  993. {0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00},
  994. {0x00,0x00,0x00,0x00,0x8C,0x08,0x00,0x00},
  995. {0x80,0x00,0x00,0x00,0xCE,0x8C,0x08,0x00},
  996. {0xC8,0x80,0x00,0x00,0xEF,0xCE,0x8C,0x08},
  997. {0xEC,0xC8,0x80,0x00,0xFF,0xEF,0xCE,0x8C},
  998. {0xFE,0xEC,0xC8,0x80,0xFF,0xFF,0xEF,0xCE},
  999. {0xFF,0xFE,0xEC,0xC8,0xFF,0xFF,0xFF,0xEF},
  1000. {0xFF,0xFF,0xFE,0xEC,0xFF,0xFF,0xFF,0xFF},
  1001. {0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF},
  1002. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  1003. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xEC},
  1004. {0xFF,0xFF,0xFF,0xEF,0xFF,0xFE,0xEC,0xC8},
  1005. {0xFF,0xFF,0xEF,0xCE,0xFE,0xEC,0xC8,0x80},
  1006. {0xFF,0xEF,0xCE,0x8C,0xEC,0xC8,0x80,0x00},
  1007. {0xEF,0xCE,0x8C,0x08,0xC8,0x80,0x00,0x00},
  1008. {0xCE,0x8C,0x08,0x00,0x80,0x00,0x00,0x00},
  1009. {0x8C,0x08,0x00,0x00,0x00,0x00,0x00,0x00},
  1010. {0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1011. {0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1012. {0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1013. {0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1014. {0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1015. {0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1016. {0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00},
  1017. {0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00},
  1018. {0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00},


  1019.         };
  1020.         int j,k,i;
  1021.         if(c==1)
  1022.                 P3 = 0X00;
  1023.         else if(c==2)
  1024.                 P0 = 0X00;
  1025.         else
  1026.                 {
  1027.                         P3 = 0XFF;
  1028.                         P0 = 0XFF;
  1029.                 }
  1030.         for(j=0;j<42;j++)
  1031.         {
  1032.                 for(k=0;k<10;k++)
  1033.                 {
  1034.                         for(i=0;i<8;i++)
  1035.                         {
  1036.         ;
  1037.                                 P2=tabP2[i];
  1038.                                 if(c == 1)
  1039.                                         P0=tabP0[j][i];
  1040.                                 else if(c == 2)
  1041.                                         P3 = tabP0[j][i];
  1042.                                 else
  1043.                                         P0=tabP0[j][i];
  1044.                                 DELAY_MS(time);


  1045.                         }
  1046.                 }
  1047.         }        


  1048. }

  1049. void Framework(uchar c,uchar time)//从右上第一点延伸框架
  1050. {
  1051.                 unsigned char code tabP0[8][8]={
  1052. {0x00,0x00,0x00,0x00,0x13,0x01,0x00,0x00},
  1053. {0x10,0x00,0x00,0x00,0x17,0x01,0x01,0x00},
  1054. {0x11,0x00,0x00,0x00,0x1F,0x01,0x01,0x01},
  1055. {0x13,0x01,0x00,0x00,0x9F,0x09,0x01,0x13},
  1056. {0x97,0x01,0x01,0x10,0x9F,0x09,0x09,0x17},
  1057. {0x9F,0x01,0x01,0x11,0x9F,0x09,0x09,0x9F},
  1058. {0x9F,0x09,0x01,0x93,0x9F,0x09,0x09,0x9F},
  1059. {0x9F,0x09,0x09,0x9F,0x9F,0x09,0x09,0x9F},
  1060.         };
  1061.         int j,k,i;
  1062.         if(c==1)
  1063.                 P3 = 0X00;
  1064.         else if(c==2)
  1065.                 P0 = 0X00;
  1066.         else
  1067.                 {
  1068.                         P3 = 0XFF;
  1069.                         P0 = 0XFF;
  1070.                 }
  1071.         for(j=0;j<8;j++)
  1072.         {
  1073.                 for(k=0;k<10;k++)
  1074.                 {
  1075.                         for(i=0;i<8;i++)
  1076.                         {
  1077.                
  1078.                                 P2=tabP2[i];
  1079.                                 if(c == 1)
  1080.                                         P0=tabP0[j][i];
  1081.                                 else if(c == 2)
  1082.                                         P3 = tabP0[j][i];
  1083.                                 else
  1084.                                         P0=tabP0[j][i];
  1085.                                 DELAY_MS(time);

  1086.                         }
  1087.                 }
  1088.         }
  1089. }

  1090. void Nextkj1(uchar c,uchar time)  //第一种接框架后 4个小正方形转动最后全亮
  1091. {
  1092.                 unsigned char code tabP0[32][8]={
  1093. {0x9F,0x09,0x09,0x9F,0x9F,0x09,0x09,0x9F},
  1094. {0x06,0x99,0x99,0x06,0x06,0x99,0x99,0x06},
  1095. {0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00},
  1096. {0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00},
  1097. {0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0,0x00},
  1098. {0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0x00},
  1099. {0x00,0x00,0x00,0x00,0xCC,0xCC,0x00,0x00},
  1100. {0x00,0x00,0x00,0x00,0x66,0x66,0x00,0x00},
  1101. {0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00},
  1102. {0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00},
  1103. {0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33},
  1104. {0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66},
  1105. {0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0xCC},
  1106. {0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0},
  1107. {0x00,0x00,0xCC,0xCC,0x00,0x00,0x00,0x00},
  1108. {0x00,0xCC,0xCC,0x00,0x00,0x00,0x00,0x00},
  1109. {0xCC,0xCC,0x00,0x00,0x00,0x00,0x00,0x00},
  1110. {0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00},
  1111. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00},
  1112. {0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x00},
  1113. {0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00},
  1114. {0x33,0x33,0x77,0x77,0x00,0x00,0x00,0x00},
  1115. {0x33,0x33,0xFF,0xFF,0x00,0x00,0x00,0x00},
  1116. {0x33,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00},
  1117. {0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00},
  1118. {0xFF,0xFF,0xFF,0xFF,0xCC,0xCC,0x00,0x00},
  1119. {0xFF,0xFF,0xFF,0xFF,0xEE,0xEE,0x00,0x00},
  1120. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00},
  1121. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x33,0x00},
  1122. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x33,0x33},
  1123. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77,0x77},
  1124. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},

  1125.         };
  1126.         int j,k,i;
  1127.         if(c==1)
  1128.                 P3 = 0X00;
  1129.         else if(c==2)
  1130.                 P0 = 0X00;
  1131.         else
  1132.                 {
  1133.                         P3 = 0XFF;
  1134.                         P0 = 0XFF;
  1135.                 }
  1136.         for(j=0;j<32;j++)
  1137.         {
  1138.                 for(k=0;k<10;k++)
  1139.                 {
  1140.                         for(i=0;i<8;i++)
  1141.                         {
  1142.                                 P2=tabP2[i];
  1143.                                 if(c == 1)
  1144.                                         P0=tabP0[j][i];
  1145.                                 else if(c == 2)
  1146.                                         P3 = tabP0[j][i];
  1147.                                 else
  1148.                                         P0=tabP0[j][i];
  1149.                                 DELAY_MS(time);

  1150.                         }
  1151.                 }
  1152.         }

  1153. }

  1154. void Nextkj2(uchar c,uchar time)  //第二种接框架后  最后上面一排亮
  1155. {
  1156.         unsigned char code tabP0[10][8]={
  1157. {0x9F,0x09,0x09,0x9F,0x9F,0x09,0x09,0x9F},
  1158. {0xF0,0x90,0x90,0xF0,0x9F,0x09,0x09,0x9F},
  1159. {0x00,0x00,0x00,0x00,0xFF,0x99,0x99,0xFF},
  1160. {0x00,0x00,0x00,0x00,0x0F,0x09,0x09,0x0F},
  1161. {0x00,0x00,0x00,0x00,0x0F,0x09,0x09,0x00},
  1162. {0x00,0x00,0x00,0x00,0x0F,0x09,0x00,0x00},
  1163. {0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00},
  1164. {0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  1165. {0xF0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  1166. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}
  1167.         };
  1168.         int j,k,i;
  1169.         if(c==1)
  1170.                 P3 = 0X00;
  1171.         else if(c==2)
  1172.                 P0 = 0X00;
  1173.         else
  1174.                 {
  1175.                         P3 = 0XFF;
  1176.                         P0 = 0XFF;
  1177.                 }
  1178.         for(j=0;j<10;j++)
  1179.         {
  1180.                 for(k=0;k<10;k++)
  1181.                 {
  1182.                         for(i=0;i<8;i++)
  1183.                         {
  1184.                                 P2=tabP2[i];
  1185.                                 if(c == 1)
  1186.                                         P0=tabP0[j][i];
  1187.                                 else if(c == 2)
  1188.                                         P3 = tabP0[j][i];
  1189.                                 else
  1190.                                         P0=tabP0[j][i];
  1191.                                 DELAY_MS(time);

  1192.                         }
  1193.                 }
  1194.         }

  1195. }

  1196. void Drip(uchar c,uchar time) //接上面全亮的,滴水  ,最后最下面的一排亮
  1197. {
  1198.                 unsigned char code tabP0[25][8]={
  1199. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  1200. {0xFE,0x01,0x00,0x00,0xFF,0x00,0x00,0x00},
  1201. {0xFC,0x02,0x01,0x00,0xFF,0x00,0x00,0x00},
  1202. {0xF8,0x04,0x02,0x01,0xFF,0x00,0x00,0x00},
  1203. {0xF0,0x08,0x04,0x03,0xFF,0x00,0x00,0x00},
  1204. {0xF0,0x00,0x08,0x07,0xFF,0x00,0x00,0x00},
  1205. {0xF0,0x00,0x00,0x0F,0xFF,0x00,0x00,0x00},
  1206. {0xE0,0x10,0x00,0x0F,0xFF,0x00,0x00,0x00},
  1207. {0xC0,0x20,0x10,0x0F,0xFF,0x00,0x00,0x00},
  1208. {0x80,0x40,0x20,0x1F,0xFF,0x00,0x00,0x00},
  1209. {0x00,0x80,0x40,0x3F,0xFF,0x00,0x00,0x00},
  1210. {0x00,0x00,0x80,0x7F,0xFF,0x00,0x00,0x00},
  1211. {0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00},
  1212. {0x00,0x00,0x00,0xFF,0xEF,0x10,0x00,0x00},
  1213. {0x00,0x00,0x00,0xFF,0xCF,0x20,0x10,0x00},
  1214. {0x00,0x00,0x00,0xFF,0x8F,0x40,0x20,0x10},
  1215. {0x00,0x00,0x00,0xFF,0x0F,0x80,0x40,0x30},
  1216. {0x00,0x00,0x00,0xFF,0x0F,0x00,0x80,0x70},
  1217. {0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0xF0},
  1218. {0x00,0x00,0x00,0xFF,0x0E,0x01,0x00,0xF0},
  1219. {0x00,0x00,0x00,0xFF,0x0C,0x02,0x01,0xF0},
  1220. {0x00,0x00,0x00,0xFF,0x08,0x04,0x02,0xF1},
  1221. {0x00,0x00,0x00,0xFF,0x00,0x08,0x04,0xF3},
  1222. {0x00,0x00,0x00,0xFF,0x00,0x00,0x08,0xF7},
  1223. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},

  1224.         };
  1225.         int j,k,i;
  1226.         if(c==1)
  1227.                 P3 = 0X00;
  1228.         else if(c==2)
  1229.                 P0 = 0X00;
  1230.         else
  1231.                 {
  1232.                         P3 = 0XFF;
  1233.                         P0 = 0XFF;
  1234.                 }
  1235.         for(j=0;j<25;j++)
  1236.         {
  1237.                 for(k=0;k<15;k++)
  1238.                 {
  1239.                         for(i=0;i<8;i++)
  1240.                         {
  1241.                                 P2=tabP2[i];
  1242.                                 if(c == 1)
  1243.                                         P0=tabP0[j][i];
  1244.                                 else if(c == 2)
  1245.                                         P3 = tabP0[j][i];
  1246.                                 else
  1247.                                         P0=tabP0[j][i];
  1248.                                 DELAY_MS(time);

  1249.                         }
  1250.                 }
  1251.         }        
  1252. }        

  1253. void Around(uchar c,uchar time)  //最前面一面全亮开始 围着光立方转 最后回到第一面
  1254. {
  1255.         unsigned char code tabP0[12][8]={
  1256. {0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10},
  1257. {0x17,0x17,0x17,0x17,0x00,0x00,0x00,0x00},
  1258. {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},
  1259. {0x8E,0x8E,0x8E,0x8E,0x00,0x00,0x00,0x00},
  1260. {0x8C,0x8C,0x8C,0x8C,0x80,0x80,0x80,0x80},
  1261. {0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88},
  1262. {0x80,0x80,0x80,0x80,0x8C,0x8C,0x8C,0x8C},
  1263. {0x00,0x00,0x00,0x00,0x8E,0x8E,0x8E,0x8E},
  1264. {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},
  1265. {0x00,0x00,0x00,0x00,0x17,0x17,0x17,0x17},
  1266. {0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13},
  1267. {0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11}
  1268.         };
  1269.         int j,k,i;
  1270.         if(c==1)
  1271.                 P3 = 0X00;
  1272.         else if(c==2)
  1273.                 P0 = 0X00;
  1274.         else
  1275.                 {
  1276.                         P3 = 0XFF;
  1277.                         P0 = 0XFF;
  1278.                 }
  1279.         for(j=0;j<12;j++)
  1280.         {
  1281.                 for(k=0;k<10;k++)
  1282.                 {
  1283.                         for(i=0;i<8;i++)
  1284.                         {
  1285.                                 P2=tabP2[i];
  1286.                                 if(c == 1)
  1287.                                         P0=tabP0[j][i];
  1288.                                 else if(c == 2)
  1289.                                         P3 = tabP0[j][i];
  1290.                                 else
  1291.                                         P0=tabP0[j][i];
  1292.                                 DELAY_MS(time);

  1293.                         }
  1294.                 }
  1295.         }        
  1296. }

  1297. void Aroundnext(uchar c,uchar time)           //接Around 第一面转到第一列
  1298. {
  1299.         unsigned char code tabP0[13][8]={
  1300. {0x11,0x11,0x11,0x10,0x11,0x11,0x11,0x13},
  1301. {0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x17},
  1302. {0x11,0x11,0x10,0x00,0x11,0x11,0x13,0x0F},
  1303. {0x11,0x10,0x00,0x00,0x11,0x13,0x17,0x8E},
  1304. {0x10,0x00,0x00,0x80,0x13,0x17,0x0F,0x8C},
  1305. {0x00,0x00,0x00,0x88,0x17,0x0F,0x8E,0x88},
  1306. {0x00,0x00,0x80,0x8C,0x0F,0x8E,0x8C,0x80},
  1307. {0x00,0x80,0x88,0x8E,0x8E,0x8C,0x88,0x00},
  1308. {0x80,0x88,0x8C,0x0F,0x8C,0x88,0x80,0x00},
  1309. {0x88,0x8C,0x8E,0x0F,0x88,0x80,0x00,0x00},
  1310. {0x8C,0x8E,0x0F,0x0F,0x80,0x00,0x00,0x00},
  1311. {0x8E,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},
  1312. {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},

  1313.         };
  1314.         int j,k,i;
  1315.         if(c==1)
  1316.                 P3 = 0X00;
  1317.         else if(c==2)
  1318.                 P0 = 0X00;
  1319.         else
  1320.                 {
  1321.                         P3 = 0XFF;
  1322.                         P0 = 0XFF;
  1323.                 }
  1324.         for(j=0;j<13;j++)
  1325.         {
  1326.                 for(k=0;k<13;k++)
  1327.                 {
  1328.                         for(i=0;i<8;i++)
  1329.                         {
  1330.                                 P2=tabP2[i];
  1331.                                 if(c == 1)
  1332.                                         P0=tabP0[j][i];
  1333.                                 else if(c == 2)
  1334.                                         P3 = tabP0[j][i];
  1335.                                 else
  1336.                                         P0=tabP0[j][i];
  1337.                                 DELAY_MS(time);

  1338.                         }
  1339.                 }
  1340.         }
  1341.         
  1342. }
  1343. void Rain(uchar c,uchar time)  //全关 水滴到全关
  1344. {
  1345.         unsigned char code tabP0[40][8]={
  1346. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1347. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1348. {0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00},
  1349. {0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00},
  1350. {0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00},
  1351. {0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x10},
  1352. {0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x51},
  1353. {0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x84},
  1354. {0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00},
  1355. {0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00},
  1356. {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00},
  1357. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13},
  1358. {0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x45},
  1359. {0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x89},
  1360. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1361. {0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00},
  1362. {0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00},
  1363. {0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00},
  1364. {0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x8C},
  1365. {0x00,0x00,0x00,0xE4,0x00,0x00,0x00,0x32},
  1366. {0x00,0x00,0x00,0xC4,0x00,0x00,0x00,0x31},
  1367. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1368. {0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1369. {0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},
  1370. {0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00},
  1371. {0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00},
  1372. {0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x00},
  1373. {0x00,0x00,0x00,0x2A,0x00,0x00,0x00,0x68},
  1374. {0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x1B},
  1375. {0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1B},
  1376. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1377. {0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00},
  1378. {0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00},
  1379. {0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00},
  1380. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08},
  1381. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C},
  1382. {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x4A},
  1383. {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x29},
  1384. {0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x19},
  1385. {0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x19}

  1386.         };
  1387.         int j,k,i;
  1388.         if(c==1)
  1389.                 P3 = 0X00;
  1390.         else if(c==2)
  1391.                 P0 = 0X00;
  1392.         else
  1393.                 {
  1394.                         P3 = 0XFF;
  1395.                         P0 = 0XFF;
  1396.                 }
  1397.         for(j=0;j<40;j++)
  1398.         {
  1399.                 for(k=0;k<11;k++)
  1400.                 {
  1401.                         for(i=0;i<8;i++)
  1402.                         {
  1403.                                 P2=tabP2[i];
  1404.                                 if(c == 1)
  1405.                                         P0=tabP0[j][i];
  1406.                                 else if(c == 2)
  1407.                                         P3 = tabP0[j][i];
  1408.                                 else
  1409.                                         P0=tabP0[j][i];
  1410.                                 DELAY_MS(time);

  1411.                         }
  1412.                 }
  1413.         }        
  1414. }

  1415. void Nextfourspread(uchar c,uchar time)    //由右上四个小正方体扩散一次 在扩散一次 回到中间四个
  1416. {
  1417.         unsigned char code tabP0[28][8]={
  1418. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1419. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00},
  1420. {0x77,0x77,0x07,0x00,0x77,0x31,0x00,0x00},
  1421. {0xFF,0x77,0x77,0x11,0x77,0x77,0x31,0x00},
  1422. {0xFF,0xFF,0xFF,0x77,0xFF,0xFF,0x73,0x31},
  1423. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x73},
  1424. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  1425. {0xFF,0xFF,0xEC,0xCC,0xFF,0xFF,0xFF,0xEF},
  1426. {0xFF,0xFE,0xCC,0xC8,0xFF,0xFF,0xEF,0xCE},
  1427. {0xFF,0xEC,0xC8,0x88,0xFF,0xEF,0xEC,0x8C},
  1428. {0xFE,0xC8,0x88,0x80,0xFE,0xCE,0x8C,0x80},
  1429. {0x00,0x00,0x00,0x00,0xCE,0xCC,0x88,0x00},
  1430. {0x00,0x00,0x00,0x00,0xCC,0xCC,0x00,0x00},
  1431. {0x00,0x00,0x00,0x00,0xCC,0xCC,0x00,0x00},
  1432. {0x00,0x00,0x00,0x00,0xCC,0xCC,0x00,0x00},
  1433. {0x00,0x00,0x00,0x00,0xEE,0xCC,0x08,0x00},
  1434. {0xE0,0x80,0x00,0x00,0xEF,0xCC,0x88,0x88},
  1435. {0xEC,0xC8,0x80,0x00,0xFF,0xEE,0x8C,0x88},
  1436. {0xEE,0xEC,0xCC,0x00,0xFF,0xEF,0xCC,0x8C},
  1437. {0xFE,0xFE,0xEC,0x8C,0xFF,0xEF,0xEF,0xEC},
  1438. {0xFF,0xFF,0xFE,0xEC,0xFF,0xFF,0xFF,0xEF},
  1439. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  1440. {0xC3,0xE7,0x7E,0x3C,0x3C,0x7E,0xE7,0xC3},
  1441. {0x42,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0x42},
  1442. {0x00,0x66,0x76,0x20,0x00,0x66,0xE7,0x42},
  1443. {0x00,0x66,0x66,0x00,0x00,0x66,0x66,0x00},
  1444. {0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00},
  1445. {0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00}
  1446.         };
  1447.         int j,k,i;
  1448.         if(c==1)
  1449.                 P3 = 0X00;
  1450.         else if(c==2)
  1451.                 P0 = 0X00;
  1452.         else
  1453.                 {
  1454.                         P3 = 0XFF;
  1455.                         P0 = 0XFF;
  1456.                 }

  1457.         for(j=0;j<28;j++)
  1458.         {
  1459.                 for(k=0;k<12;k++)
  1460.                 {
  1461.                         for(i=0;i<8;i++)
  1462.                         {
  1463.                                 P2=tabP2[i];
  1464.                                 if(c == 1)
  1465.                                         P0=tabP0[j][i];
  1466.                                 else if(c == 2)
  1467.                                         P3 = tabP0[j][i];
  1468.                                 else
  1469.                                         P0=tabP0[j][i];
  1470.                                 DELAY_MS(time);

  1471.                         }
  1472.                 }
  1473.         }
  1474. }

  1475. void Fourspread(uchar c,uchar time) //从中间四个小灯亮扩散到外面四个亮
  1476. {
  1477.         unsigned char code tabP0[12][8]={
  1478. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1479. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1480. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00},
  1481. {0x05,0x00,0x05,0x00,0x50,0x00,0x50,0x00},
  1482. {0x09,0x00,0x00,0x09,0x09,0x00,0x00,0x09},
  1483. {0x05,0x00,0x05,0x00,0x50,0x00,0x50,0x00},
  1484. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00},
  1485. {0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00},
  1486. {0x00,0x66,0x66,0x00,0x00,0x00,0x00,0x00},
  1487. {0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00},
  1488. {0x09,0x00,0x00,0x09,0x09,0x00,0x00,0x09},
  1489. {0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00}

  1490.         };
  1491.         int j,k,i;
  1492.         if(c==1)
  1493.                 P3 = 0X00;
  1494.         else if(c==2)
  1495.                 P0 = 0X00;
  1496.         else
  1497.                 {
  1498.                         P3 = 0XFF;
  1499.                         P0 = 0XFF;
  1500.                 }
  1501.         for(j=0;j<12;j++)
  1502.         {
  1503.                 for(k=0;k<18;k++)
  1504.                 {
  1505.                         for(i=0;i<8;i++)
  1506.                         {
  1507.                                 P2=tabP2[i];
  1508.                                 if(c == 1)
  1509.                                         P0=tabP0[j][i];
  1510.                                 else if(c == 2)
  1511.                                         P3 = tabP0[j][i];
  1512.                                 else
  1513.                                         P0=tabP0[j][i];
  1514.                                 DELAY_MS(time);

  1515.                         }
  1516.                 }
  1517.         }        
  1518. }

  1519. void Any1(uchar c,uchar time)    //3个点 贪吃蛇样 到最上面一层全亮  可以接上面到后面在接旋转
  1520. {
  1521.                 unsigned char code tabP0[52][8]={
  1522. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1523. {0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00},
  1524. {0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00},
  1525. {0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00},
  1526. {0x00,0x00,0x01,0x11,0x00,0x00,0x00,0x00},
  1527. {0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x10},
  1528. {0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11},
  1529. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13},
  1530. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07},
  1531. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E},
  1532. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C},
  1533. {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x88},
  1534. {0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80},
  1535. {0x00,0x00,0x04,0x88,0x00,0x00,0x00,0x00},
  1536. {0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00},
  1537. {0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00},
  1538. {0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00},
  1539. {0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00},
  1540. {0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00},
  1541. {0x00,0x00,0x60,0x00,0x00,0x00,0x40,0x00},
  1542. {0x00,0x00,0x40,0x00,0x00,0x00,0x44,0x00},
  1543. {0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00},
  1544. {0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x00},
  1545. {0x00,0x00,0x00,0x00,0x00,0x0C,0x08,0x00},
  1546. {0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00},
  1547. {0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00},
  1548. {0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00},
  1549. {0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00},
  1550. {0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00},
  1551. {0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00},
  1552. {0x00,0x80,0x00,0x00,0x00,0xC0,0x00,0x00},
  1553. {0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00},
  1554. {0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},
  1555. {0x00,0x62,0x00,0x00,0x00,0x00,0x00,0x00},
  1556. {0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00},
  1557. {0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00},
  1558. {0x08,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},
  1559. {0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00},
  1560. {0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1561. {0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1562. {0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1563. {0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1564. {0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1565. {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1566. {0xFF,0x00,0x00,0x00,0x80,0x00,0x00,0x00},
  1567. {0xFF,0x00,0x00,0x00,0xC0,0x00,0x00,0x00},
  1568. {0xFF,0x00,0x00,0x00,0xE0,0x00,0x00,0x00},
  1569. {0xFF,0x00,0x00,0x00,0xF0,0x00,0x00,0x00},
  1570. {0xFF,0x00,0x00,0x00,0xF1,0x00,0x00,0x00},
  1571. {0xFF,0x00,0x00,0x00,0xF3,0x00,0x00,0x00},
  1572. {0xFF,0x00,0x00,0x00,0xF7,0x00,0x00,0x00},
  1573. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},


  1574.         };
  1575.         int j,k,i;
  1576.         if(c==1)
  1577.                 P3 = 0X00;
  1578.         else if(c==2)
  1579.                 P0 = 0X00;
  1580.         else
  1581.                 {
  1582.                         P3 = 0XFF;
  1583.                         P0 = 0XFF;
  1584.                 }
  1585.         for(j=0;j<52;j++)
  1586.         {
  1587.                 for(k=0;k<10;k++)
  1588.                 {
  1589.                         for(i=0;i<8;i++)
  1590.                         {
  1591.                                 P0=0;
  1592.                                 P2=tabP2[i];
  1593.                                 if(c == 1)
  1594.                                         P0=tabP0[j][i];
  1595.                                 else if(c == 2)
  1596.                                         P3 = tabP0[j][i];
  1597.                                 else
  1598.                                         P0=tabP0[j][i];
  1599.                                 DELAY_MS(time);


  1600.                         }
  1601.                 }
  1602.         }        

  1603. }
  1604. void Any2(uchar c,uchar time)                //从底下中间一个小正方体  慢慢向上走 到顶层扩散开  在下到底层
  1605. {
  1606.                 unsigned char code tabP0[8][8]={
  1607. {0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60},
  1608. {0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00},
  1609. {0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00},
  1610. {0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00},
  1611. {0x9F,0x00,0x00,0x00,0x9F,0x00,0x00,0x00},
  1612. {0x00,0x9F,0x00,0x00,0x00,0x9F,0x00,0x00},
  1613. {0x00,0x00,0x9F,0x00,0x00,0x00,0x9F,0x00},
  1614. {0x00,0x00,0x00,0x9F,0x00,0x00,0x00,0x9F},


  1615.         };
  1616.         int j,k,i;
  1617.         if(c==1)
  1618.                 P3 = 0X00;
  1619.         else if(c==2)
  1620.                 P0 = 0X00;
  1621.         else
  1622.                 {
  1623.                         P3 = 0XFF;
  1624.                         P0 = 0XFF;
  1625.                 }
  1626.         for(j=0;j<8;j++)
  1627.         {
  1628.                 for(k=0;k<10;k++)
  1629.                 {
  1630.                         for(i=0;i<8;i++)
  1631.                         {
  1632.                                 P2=tabP2[i];
  1633.                                 if(c == 1)
  1634.                                         P0=tabP0[j][i];
  1635.                                 else if(c == 2)
  1636.                                         P3 = tabP0[j][i];
  1637.                                 else
  1638.                                         P0=tabP0[j][i];
  1639.                                 DELAY_MS(time);

  1640.                         }
  1641.                 }
  1642.         }

  1643. }
  1644. void Any3(uchar c,uchar time)      //从顶层转到斜面 可以接旋转
  1645. {
  1646.                 unsigned char code tabP0[46][8]={
  1647. {0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1648. {0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1649. {0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1650. {0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1651. {0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1652. {0x11,0x00,0x00,0x00,0x10,0x00,0x00,0x00},
  1653. {0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00},
  1654. {0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00},
  1655. {0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00},
  1656. {0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00},
  1657. {0x00,0x00,0x00,0x00,0x8C,0x00,0x00,0x00},
  1658. {0x80,0x00,0x00,0x00,0x88,0x00,0x00,0x00},
  1659. {0x88,0x00,0x00,0x00,0x80,0x00,0x00,0x00},
  1660. {0x88,0x04,0x00,0x00,0x00,0x00,0x00,0x00},
  1661. {0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00},
  1662. {0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00},
  1663. {0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00},
  1664. {0x00,0x11,0x00,0x00,0x00,0x10,0x00,0x00},
  1665. {0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00},
  1666. {0x00,0x00,0x00,0x00,0x00,0x11,0x02,0x00},
  1667. {0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x00},
  1668. {0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00},
  1669. {0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x00},
  1670. {0x00,0x00,0x80,0x00,0x00,0x00,0x88,0x00},
  1671. {0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00},
  1672. {0x00,0x00,0x8C,0x00,0x00,0x00,0x00,0x00},
  1673. {0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00},
  1674. {0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00},
  1675. {0x00,0x00,0x03,0x10,0x00,0x00,0x00,0x00},
  1676. {0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x10},
  1677. {0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11},
  1678. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13},
  1679. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07},
  1680. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E},
  1681. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C},
  1682. {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x88},
  1683. {0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80},
  1684. {0x00,0x00,0x00,0xC8,0x00,0x00,0x00,0x00},
  1685. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x20},
  1686. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  1687. {0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x21},
  1688. {0x00,0x00,0x00,0x48,0x00,0x01,0x21,0x21},
  1689. {0x00,0x00,0x40,0x48,0x01,0x21,0x21,0x21},
  1690. {0x00,0x40,0x48,0x48,0x21,0x21,0x21,0x21},
  1691. {0x40,0x48,0x48,0x48,0x21,0x21,0x21,0x21},
  1692. {0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21},

  1693.         };
  1694.         int j,k,i;
  1695.         if(c==1)
  1696.                 P3 = 0X00;
  1697.         else if(c==2)
  1698.                 P0 = 0X00;
  1699.         else
  1700.                 {
  1701.                         P3 = 0XFF;
  1702.                         P0 = 0XFF;
  1703.                 }
  1704.         for(j=0;j<46;j++)
  1705.         {
  1706.                 for(k=0;k<10;k++)
  1707.                 {
  1708.                         for(i=0;i<8;i++)
  1709.                         {
  1710.                                 P2=tabP2[i];
  1711.                                 if(c == 1)
  1712.                                         P0=tabP0[j][i];
  1713.                                 else if(c == 2)
  1714.                                         P3 = tabP0[j][i];
  1715.                                 else
  1716.                                         P0=tabP0[j][i];
  1717.                                 DELAY_MS(time);

  1718.                         }
  1719.                 }
  1720.         }

  1721. }
  1722. void Any4(uchar c,uchar time)                 //右上一个小正方体 绕绕绕到左上
  1723. {
  1724.         unsigned char code tabP0[21][8]={
  1725. {0x00,0x00,0x00,0x00,0x8C,0x88,0x00,0x00},
  1726. {0x00,0x00,0x00,0x00,0xCC,0x8C,0x00,0x00},
  1727. {0x00,0x00,0x00,0x00,0xCC,0xCC,0x00,0x00},
  1728. {0x00,0x00,0x00,0x00,0x66,0x66,0x00,0x00},
  1729. {0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00},
  1730. {0x00,0x00,0x00,0x00,0x01,0x33,0x32,0x00},
  1731. {0x00,0x00,0x00,0x00,0x00,0x21,0x33,0x12},
  1732. {0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33},
  1733. {0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x36},
  1734. {0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66},
  1735. {0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0x64},
  1736. {0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0xCC},
  1737. {0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0},
  1738. {0x00,0x00,0xCC,0xCC,0x00,0x00,0x00,0x00},
  1739. {0x00,0x00,0x6C,0xC6,0x00,0x00,0x00,0x00},
  1740. {0x00,0x00,0x66,0x66,0x00,0x00,0x00,0x00},
  1741. {0x00,0x00,0x66,0x33,0x00,0x00,0x00,0x00},
  1742. {0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00},
  1743. {0x00,0x21,0x32,0x13,0x00,0x00,0x00,0x00},
  1744. {0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00},
  1745. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00}
  1746.         };
  1747.         int j,k,i;
  1748.         if(c==1)
  1749.                 P3 = 0X00;
  1750.         else if(c==2)
  1751.                 P0 = 0X00;
  1752.         else
  1753.                 {
  1754.                         P3 = 0XFF;
  1755.                         P0 = 0XFF;
  1756.                 }
  1757.         for(j=0;j<21;j++)
  1758.         {
  1759.                 for(k=0;k<10;k++)
  1760.                 {
  1761.                         for(i=0;i<8;i++)
  1762.                         {
  1763.                                 P2=tabP2[i];
  1764.                                 if(c == 1)
  1765.                                         P0=tabP0[j][i];
  1766.                                 else if(c == 2)
  1767.                                         P3 = tabP0[j][i];
  1768.                                 else
  1769.                                         P0=tabP0[j][i];
  1770.                                 DELAY_MS(time);

  1771.                         }
  1772.                 }
  1773.         }

  1774.         
  1775. }

  1776. void Any5(uchar c,uchar time)                                //从地下旋转起来  接旋转
  1777. {
  1778.         unsigned char code tabP0[36][8]={
  1779. {0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xF7},
  1780. {0x00,0x00,0x00,0xEE,0x00,0x00,0x00,0x77},
  1781. {0x00,0x00,0x00,0xEC,0x00,0x00,0x00,0x63},
  1782. {0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0x21},
  1783. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  1784. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  1785. {0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x23},
  1786. {0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x44},
  1787. {0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x48},
  1788. {0x00,0x00,0x00,0x31,0x00,0x00,0x00,0xC8},
  1789. {0x00,0x00,0x00,0xD0,0x00,0x00,0x00,0xB0},
  1790. {0x00,0x00,0x00,0xC8,0x00,0x00,0x00,0x31},
  1791. {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
  1792. {0x00,0x00,0x48,0x00,0x00,0x00,0x21,0x00},
  1793. {0x00,0x00,0x44,0x00,0x00,0x00,0x22,0x00},
  1794. {0x00,0x00,0x22,0x00,0x00,0x00,0x44,0x00},
  1795. {0x00,0x00,0x21,0x00,0x00,0x00,0x48,0x00},
  1796. {0x00,0x00,0x31,0x00,0x00,0x00,0xC8,0x00},
  1797. {0x00,0x00,0xD0,0x00,0x00,0x00,0xB0,0x00},
  1798. {0x00,0x00,0x48,0x00,0x00,0x00,0x21,0x00},
  1799. {0x00,0x4C,0x00,0x00,0x00,0x23,0x00,0x00},
  1800. {0x00,0x22,0x00,0x00,0x00,0x44,0x00,0x00},
  1801. {0x00,0x21,0x00,0x00,0x00,0x48,0x00,0x00},
  1802. {0x00,0x31,0x00,0x00,0x00,0xC8,0x00,0x00},
  1803. {0x00,0xD0,0x00,0x00,0x00,0xB0,0x00,0x00},
  1804. {0x00,0x48,0x00,0x00,0x00,0x21,0x00,0x00},
  1805. {0x44,0x00,0x00,0x00,0x21,0x00,0x00,0x00},
  1806. {0x26,0x00,0x00,0x00,0x46,0x00,0x00,0x00},
  1807. {0x21,0x00,0x00,0x00,0x48,0x00,0x00,0x00},
  1808. {0x31,0x00,0x00,0x00,0xC8,0x00,0x00,0x00},
  1809. {0xD0,0x00,0x00,0x00,0xB0,0x00,0x00,0x00},
  1810. {0xC8,0x00,0x00,0x00,0x31,0x00,0x00,0x00},
  1811. {0x48,0x00,0x00,0x00,0x21,0x00,0x00,0x00},
  1812. {0x48,0x48,0x00,0x00,0x21,0x21,0x00,0x00},
  1813. {0x48,0x48,0x48,0x00,0x21,0x21,0x21,0x00},
  1814. {0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21},

  1815.         };
  1816.         int j,k,i;
  1817.         if(c==1)
  1818.                 P3 = 0X00;
  1819.         else if(c==2)
  1820.                 P0 = 0X00;
  1821.         else
  1822.                 {
  1823.                         P3 = 0XFF;
  1824.                         P0 = 0XFF;
  1825.                 }
  1826.         for(j=0;j<36;j++)
  1827.         {
  1828.                 for(k=0;k<10;k++)
  1829.                 {
  1830.                         for(i=0;i<8;i++)
  1831.                         {
  1832.                                 P2=tabP2[i];
  1833.                                 if(c == 1)
  1834.                                         P0=tabP0[j][i];
  1835.                                 else if(c == 2)
  1836.                                         P3 = tabP0[j][i];
  1837.                                 else
  1838.                                         P0=tabP0[j][i];
  1839.                                 DELAY_MS(time);

  1840.                         }
  1841.                 }
  1842.         }

  1843. }

  1844. void Any6(uchar c,uchar time)     //从下随机升起 一直上去 最后灭  快速过场
  1845. {
  1846.         unsigned char code tabP0[9][8]={
  1847. {0x00,0x00,0x00,0x52,0x00,0x00,0x00,0xC2},
  1848. {0x00,0x00,0xA0,0x52,0x00,0x00,0x64,0xC2},
  1849. {0x00,0x40,0xA4,0x52,0x00,0xA0,0x64,0xC2},
  1850. {0x00,0x42,0xA4,0x52,0x00,0xAA,0x64,0xC2},
  1851. {0x62,0x42,0xA4,0x52,0x26,0xAA,0x64,0xC2},
  1852. {0x62,0x42,0xA4,0x00,0x26,0xAA,0x64,0x00},
  1853. {0x62,0x42,0x00,0x00,0x26,0xAA,0x00,0x00},
  1854. {0x62,0x00,0x00,0x00,0x26,0x00,0x00,0x00},
  1855. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
  1856.         };
  1857.         int j,k,i;
  1858.         if(c==1)
  1859.                 P3 = 0X00;
  1860.         else if(c==2)
  1861.                 P0 = 0X00;
  1862.         else
  1863.                 {
  1864.                         P3 = 0XFF;
  1865.                         P0 = 0XFF;
  1866.                 }
  1867.         for(j=0;j<9;j++)
  1868.         {
  1869.                 for(k=0;k<9;k++)
  1870.                 {
  1871.                         for(i=0;i<8;i++)
  1872.                         {
  1873.                                 P2=tabP2[i];
  1874.                                 if(c == 1)
  1875.                                         P0=tabP0[j][i];
  1876.                                 else if(c == 2)
  1877.                                         P3 = tabP0[j][i];
  1878.                                 else
  1879.                                         P0=tabP0[j][i];
  1880.                                 DELAY_MS(time);

  1881.                         }
  1882.                 }
  1883.         }

  1884.         
  1885.         
  1886. }
  1887. void Any7(uchar c,uchar time)   //音频显示      从底层亮完开始,最后全灭
  1888. {
  1889.                 unsigned char code tabP0[20][8]={
  1890. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
  1891. {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},
  1892. {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},
  1893. {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},
  1894. {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
  1895. {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},
  1896. {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},
  1897. {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  1898. {0x00,0x00,0x0F,0xFF,0x00,0x00,0x00,0xFF},
  1899. {0x00,0x0F,0xFF,0xFF,0x00,0x00,0x0F,0xFF},
  1900. {0x0F,0x0F,0x0F,0xFF,0x00,0x0F,0xFF,0xFF},
  1901. {0x00,0x0F,0xFF,0xFF,0x0F,0x0F,0x0F,0xFF},
  1902. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  1903. {0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00},
  1904. {0x00,0x33,0x33,0x33,0x00,0x00,0x00,0x00},
  1905. {0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00},
  1906. {0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30},
  1907. {0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30},
  1908. {0x00,0x30,0x30,0x30,0x00,0x30,0x30,0x30},
  1909. {0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30}
  1910.         };
  1911.         int j,k,i;
  1912.         if(c==1)
  1913.                 P3 = 0X00;
  1914.         else if(c==2)
  1915.                 P0 = 0X00;
  1916.         else
  1917.                 {
  1918.                         P3 = 0XFF;
  1919.                         P0 = 0XFF;
  1920.                 }
  1921.         for(j=0;j<20;j++)
  1922.         {
  1923.                 for(k=0;k<22;k++)
  1924.                 {
  1925.                         for(i=0;i<8;i++)
  1926.                         {
  1927.                                 P2=tabP2[i];
  1928.                                 if(c == 1)
  1929.                                         P0=tabP0[j][i];
  1930.                                 else if(c == 2)
  1931.                                         P3 = tabP0[j][i];
  1932.                                 else
  1933.                                         P0=tabP0[j][i];
  1934.                                 DELAY_MS(time);

  1935.                         }
  1936.                 }
  1937.         }


  1938. }
  1939. void Any8(uchar c,uchar time)                   //由全灭 到右下第一个起来成一竖列 然后竖列逐个走 最后到左上一个亮
  1940. {
  1941.         unsigned char code tabP0[25][8]={
  1942. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},
  1943. {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01},
  1944. {0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01},
  1945. {0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01},
  1946. {0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x01},
  1947. {0x00,0x00,0x00,0x00,0x04,0x02,0x01,0x01},
  1948. {0x00,0x00,0x00,0x00,0x08,0x04,0x02,0x01},
  1949. {0x00,0x00,0x00,0x00,0x08,0x08,0x04,0x02},
  1950. {0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x04},
  1951. {0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08},
  1952. {0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80},
  1953. {0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40},
  1954. {0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20},
  1955. {0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},
  1956. {0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},
  1957. {0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00},
  1958. {0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00},
  1959. {0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00},
  1960. {0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00},
  1961. {0x04,0x08,0x08,0x08,0x00,0x00,0x00,0x00},
  1962. {0x02,0x04,0x08,0x08,0x00,0x00,0x00,0x00},
  1963. {0x01,0x02,0x04,0x08,0x00,0x00,0x00,0x00},
  1964. {0x01,0x02,0x04,0x00,0x00,0x00,0x00,0x00},
  1965. {0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00},
  1966. {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
  1967.         };
  1968.         int j,k,i;
  1969.         if(c==1)
  1970.                 P3 = 0X00;
  1971.         else if(c==2)
  1972.                 P0 = 0X00;
  1973.         else
  1974.                 {
  1975.                         P3 = 0XFF;
  1976.                         P0 = 0XFF;
  1977.                 }
  1978.         for(j=0;j<25;j++)
  1979.         {
  1980.                 for(k=0;k<22;k++)
  1981.                 {
  1982.                         for(i=0;i<8;i++)
  1983.                         {
  1984.                                 P2=tabP2[i];
  1985.                                 if(c == 1)
  1986.                                         P0=tabP0[j][i];
  1987.                                 else if(c == 2)
  1988.                                         P3 = tabP0[j][i];
  1989.                                 else
  1990.                                         P0=tabP0[j][i];
  1991.                                 DELAY_MS(time);

  1992.                         }
  1993.                 }
  1994.         }
  1995. }
  1996. void Any9(uchar c,uchar time)           //由上面一排全亮  转到左上小正方形
  1997. {
  1998.         unsigned char code tabP0[30][8]={
  1999. {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
  2000. {0xFE,0x01,0x00,0x00,0xFF,0x00,0x00,0x00},
  2001. {0xFE,0x00,0x01,0x00,0xFF,0x00,0x00,0x00},
  2002. {0xFE,0x00,0x00,0x01,0xFF,0x00,0x00,0x00},
  2003. {0xFC,0x02,0x00,0x00,0xFF,0x00,0x00,0x00},
  2004. {0xFC,0x00,0x02,0x00,0xFF,0x00,0x00,0x00},
  2005. {0xFC,0x00,0x00,0x02,0xFF,0x00,0x00,0x00},
  2006. {0xF8,0x04,0x00,0x00,0xFF,0x00,0x00,0x00},
  2007. {0xF8,0x00,0x04,0x00,0xFF,0x00,0x00,0x00},
  2008. {0xF8,0x00,0x00,0x04,0xFF,0x00,0x00,0x00},
  2009. {0xF0,0x08,0x00,0x00,0xFF,0x00,0x00,0x00},
  2010. {0xF0,0x00,0x08,0x00,0xFF,0x00,0x00,0x00},
  2011. {0xF0,0x00,0x00,0x08,0xFF,0x00,0x00,0x00},
  2012. {0xE0,0x10,0x00,0x00,0xFF,0x00,0x00,0x00},
  2013. {0xE0,0x00,0x10,0x00,0xFF,0x00,0x00,0x00},
  2014. {0xE0,0x00,0x00,0x10,0xFF,0x00,0x00,0x00},
  2015. {0xC0,0x20,0x00,0x00,0xFF,0x00,0x00,0x00},
  2016. {0xC0,0x00,0x20,0x00,0xFF,0x00,0x00,0x00},
  2017. {0xC0,0x00,0x00,0x20,0xFF,0x00,0x00,0x00},
  2018. {0x80,0x40,0x00,0x00,0xFF,0x00,0x00,0x00},
  2019. {0x80,0x00,0x40,0x00,0xFF,0x00,0x00,0x00},
  2020. {0x80,0x00,0x00,0x40,0xFF,0x00,0x00,0x00},
  2021. {0x00,0x80,0x00,0x00,0xFF,0x00,0x00,0x00},
  2022. {0x00,0x00,0x80,0x00,0xFF,0x00,0x00,0x00},
  2023. {0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00},
  2024. {0x00,0x00,0x00,0x00,0x77,0x22,0x00,0x00},
  2025. {0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00},
  2026. {0x30,0x00,0x00,0x00,0x30,0x33,0x00,0x00},
  2027. {0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00},
  2028. {0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00},
  2029.         };
  2030.         int j,k,i;
  2031.         if(c==1)
  2032.                 P3 = 0X00;
  2033.         else if(c==2)
  2034.                 P0 = 0X00;
  2035.         else
  2036.                 {
  2037.                         P3 = 0XFF;
  2038.                         P0 = 0XFF;
  2039. ……………………

  2040. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
4层光立方完整版超级全.rar (1.04 MB, 下载次数: 164)


评分

参与人数 3黑币 +56 收起 理由
15479468 + 5 赞一个!
294763531 + 1 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:185353 发表于 2017-8-29 16:22 | 只看该作者
下来玩玩。需求不大
回复

使用道具 举报

板凳
ID:245601 发表于 2017-11-19 10:18 | 只看该作者
很齐全,很全面,支持你 ,希望能经常的分享
回复

使用道具 举报

地板
ID:259759 发表于 2017-12-10 14:35 | 只看该作者
大佬66666666666666666666666
回复

使用道具 举报

5#
ID:277059 发表于 2018-1-17 16:42 | 只看该作者
下载看看
回复

使用道具 举报

6#
ID:277136 发表于 2018-1-18 09:12 | 只看该作者
很给力!   
下载下来玩玩!~
回复

使用道具 举报

7#
ID:327529 发表于 2018-5-13 11:10 | 只看该作者
楼主好,我以前也有制作做这设计图的444光立方,记得有取模软件可以设计动画。但,上个月清理电脑的时候不小心将取模软件删除了,请问您有这设计的取模软件吗?
回复

使用道具 举报

8#
ID:337280 发表于 2018-6-7 17:22 | 只看该作者
程序感觉很麻烦啊      取模软件拿走  自己试试
回复

使用道具 举报

9#
ID:384454 发表于 2018-8-9 09:54 | 只看该作者
虽然我是想做一个8*8*8的光立方,但是看了你这个的代码之后我决定还是先做4*4*4,饭要一口一口的吃,路要一步一步的走
回复

使用道具 举报

10#
ID:384558 发表于 2018-8-15 09:40 | 只看该作者
谢谢分享,支持
回复

使用道具 举报

11#
ID:384558 发表于 2018-8-17 12:40 | 只看该作者
下来看看,学习一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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