久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11815|回復: 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, 下載次數: 167)


評分

參與人數 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合激情网| 毛片一区二区三区 | 亚洲在线 | 久久精品69 | 亚洲成人在线免费 | 亚洲午夜三级 | 久久国产精品久久 | 欧美嘿咻 | 久久精品国产a三级三级三级 | 日韩免费一区 | 日韩视频a| 2021天天躁夜夜看 | 成人一区二区在线 | 欧美视频免费在线 | 免费观看一级特黄欧美大片 | 51ⅴ精品国产91久久久久久 | 99精品久久 | 亚洲精品二三区 | 久久久久久久久91 | 91久久国产 | 国产美女久久 | 亚洲精品电影在线观看 | 成人亚洲片 | 一区二区高清在线观看 | 国产精品久久av | 国产激情99| 99久久婷婷国产综合精品电影 | 性一区 | 亚洲免费在线 | 亚洲永久入口 | 国产一级片免费在线观看 | av片网 | 精品久久久久久久人人人人传媒 | 日韩视频中文字幕 | 成人国产精品免费观看视频 | 日韩电影a | 欧美日韩国产三级 | 精品国产乱码久久久久久蜜退臀 | 日韩一区二区三区四区五区 | 成人一区二区视频 | 国产精品久久久久久久岛一牛影视 |