您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页光立方_毕业论文(含程序原理图实物图)

光立方_毕业论文(含程序原理图实物图)

来源:意榕旅游网
 -

目录

摘要 .......................................................................................................................................................... XXX 关键词 ...................................................................................................................................................... XXX 1绪论 ............................................................................................................................................................. 0 2总体设计...................................................................................................................................................... 1

工作原理 ................................................................................................................................................. 1 各模块方案选择与论证 ......................................................................................................................... 1

单片机主控制模块 ......................................................................................................................... 1 驱动模块 ......................................................................................................................................... 1 显示模块 ......................................................................................................................................... 1

图2-2 雾面乳型LED灯 ................................................................................................................................ 2 3 系统硬件电路设计与实现 ......................................................................................................................... 2

硬件电路设计 ......................................................................................................................................... 2

单片机最小系统 ............................................................................................................................. 2 驱动模块的设计 ............................................................................................................................. 4 主程序设计 ............................................................................................................................................. 8 系统调试 ................................................................................................................................................. 9

硬件测试 ......................................................................................................................................... 9 软件测试 ....................................................................................................................................... 10 结果分析 ............................................................................................................................................... 10 6结论 ........................................................................................................................................................... 11 Keywords....................................................................................................................................................... 13 致谢语 .......................................................................................................................................................... 14

-

.............................................................................................................................................................. 16

.............................................................................................................................................................. 16 程序清单 ............................................................................................................................................... 17 #include <> ......................................................................................................................................... 17 I

-

#include <> ......................................................................................................................................... 17 #define uchar unsigned char ......................................................................................................... 17 #define uint unsigned int ............................................................................................................. 17 sbit p30 = P1^0; ............................................................................................................................... 17 sbit p31 = P1^1; ............................................................................................................................... 17 sbit p32 = P1^2; ............................................................................................................................... 17 sbit p33 = P1^3; ............................................................................................................................... 17 sbit p34 = P1^4; ............................................................................................................................... 17 sbit p35 = P1^5; ............................................................................................................................... 17 sbit p36 = P1^6; ............................................................................................................................... 17 sbit p37 = P1^7; ............................................................................................................................... 17 uchar display[8][8]; ....................................................................................................................... 17 /*rank:A,1,2,3,4,I,心,U*/ ............................................................................................................. 17 uchar code table_cha[8][8]={0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0x66,0x30,0x18,0xc,0x6,0xf6,0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c}; ............................................................................................................................................... 17 /*the \"ideasoft\"*/ ........................................................................................................................... 17 uchar code table_id[40]={0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x,0x,0x00,0xf8,0x27,0x27,0xf8,0x00,0x8f,0x,0x,0xf9,0x00,0xff,0x81,0x81,0xff,0x00,0xff,0x09,0x09,0x09,0x01,0x0,0x01,0x01,0xff,0x01,0x01,0x00}; ........................................................... 17 /*railway*/ ......................................................................................................................................... 17 uchar code dat[128]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4}; ..................... 17 /*railway 2*/ ..................................................................................................................................... 17 uchar code dat2[28]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4}; ............................. 17 /*railway 3*/ ..................................................................................................................................... 17 uchar code dat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x65,0x,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10}; ............................................................. 17 /*3p char*/ ......................................................................................................................................... 17 uchar code table_3p[3][8]={0xff,0x,0xf5,0x93,0x93,0xf5,0x,0xff,0x0e,0x1f,0x3f,0x7e,0x7e,0II

-

x3f,0x1f,0x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18}; ................................................. 17 /*initializtion ................................................................................................................................. 17 That is to initialize the program . ......................................................................................... 17 It is write to set the timer in c52 mcu. ............................................................................... 17 So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/ .............................................................................................................................................................. 17 void sinter() ..................................................................................................................................... 17 { ............................................................................................................................................................ 17 IE=0x82; ............................................................................................................................................... 17 TCON=0x01; ........................................................................................................................................... 17 TH0=0xc0; ............................................................................................................................................. 17 TL0=0;................................................................................................................................................... 17 TR0=1;................................................................................................................................................... 17 } ............................................................................................................................................................ 17 void delay5us(void) 误差 STC 1T ........................................................................................... 18 { ............................................................................................................................................................ 18 unsigned char a,b; ........................................................................................................................... 18 for(b=7;b>0;b--) ............................................................................................................................... 18 for(a=2;a>0;a--); ............................................................................................................................. 18 } ............................................................................................................................................................ 18 void delay(uint i) ........................................................................................................................... 18 { ............................................................................................................................................................ 18 while (i--){ ....................................................................................................................................... 18 delay5us();}12t的mcu 注释这个延时即可 ................................................................................... 18 } ............................................................................................................................................................ 18 /*To judge the num bit*/ ............................................................................................................... 18 uchar judgebit(uchar num,uchar b) ............................................................................................. 18 { ............................................................................................................................................................ 18 char n; ................................................................................................................................................. 18 num=num&(1<=5) ............................................................................................................................................. 18 b++;....................................................................................................................................................... 18 return b; ............................................................................................................................................. 18 III

-

} ............................................................................................................................................................ 18 /*To figure out the absolute value*/ ....................................................................................... 18 uchar abss(char a) ........................................................................................................................... 18 { ............................................................................................................................................................ 18 if (a<0) ............................................................................................................................................... 18 a=-a;..................................................................................................................................................... 18 return a; ............................................................................................................................................. 18 } ............................................................................................................................................................ 18 /*The function can comparat the character. ........................................................................... 18 And remove the big one to the back.*/ ..................................................................................... 18 void max(uchar *a,uchar *b) ......................................................................................................... 18 { ............................................................................................................................................................ 18 uchar t; ............................................................................................................................................... 18 if ((*a)>(*b)) ................................................................................................................................... 18 { ............................................................................................................................................................ 18 t=(*a); ................................................................................................................................................. 18 (*a)=(*b); ........................................................................................................................................... 19 (*b)=t; ................................................................................................................................................. 19 } ............................................................................................................................................................ 19 } ............................................................................................................................................................ 19 /*The function is to figure out the max number and return it.*/ ................................. 19 uchar maxt(uchar a,uchar b,uchar c) ......................................................................................... 19 { ............................................................................................................................................................ 19 if (a=-3;i--) ......................................................................................................................... 19 { ............................................................................................................................................................ 19 if (i>=0) ............................................................................................................................................. 19 { ............................................................................................................................................................ 19 IV

-

for (j=0;j<8;j++) ............................................................................................................................. 19 display[j][i]=display[j][i+1]; ................................................................................................... 19 } ............................................................................................................................................................ 19 if (i<4) ............................................................................................................................................... 19 { ............................................................................................................................................................ 19 for (j=0;j<8;j++) ............................................................................................................................. 19 display[j][i+4]=0; ........................................................................................................................... 19 } ............................................................................................................................................................ 19 delay(speed); ..................................................................................................................................... 19 } ............................................................................................................................................................ 19 } ............................................................................................................................................................ 19 void point(uchar x,uchar y,uchar z,uchar le) ....................................................................... 19 { ............................................................................................................................................................ 19 uchar ch1,ch0; ................................................................................................................................... 19 ch1=1<=0)) ................................................................................................................. 20 { ............................................................................................................................................................ 20 if (dir) ............................................................................................................................................... 20 cp=127-cpp; ......................................................................................................................................... 20 else....................................................................................................................................................... 20 cp=cpp; ................................................................................................................................................. 20 a=(dat[cp]>>5)&0x07; ....................................................................................................................... 20 b=(dat[cp]>>2)&0x07; ....................................................................................................................... 20 c=dat[cp]&0x03; ................................................................................................................................. 20 V

-

if (cpp>63) ......................................................................................................................................... 20 c=7-c;................................................................................................................................................... 20 point (a,b,c,le); ............................................................................................................................. 20 } ............................................................................................................................................................ 20 } ............................................................................................................................................................ 20 void line(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le) ............. 20 { ............................................................................................................................................................ 20 char t,a,b,c,a1,b1,c1,i; ............................................................................................................... 20 a1=x2-x1; ............................................................................................................................................. 20 b1=y2-y1; ............................................................................................................................................. 20 c1=z2-z1; ............................................................................................................................................. 20 t=maxt(abss(a1),abss(b1),abss(c1)); ......................................................................................... 20 a=x1*10; ............................................................................................................................................... 20 b=y1*10; ............................................................................................................................................... 21 c=z1*10; ............................................................................................................................................... 21 a1=a1*10/t; ......................................................................................................................................... 21 b1=b1*10/t; ......................................................................................................................................... 21 c1=c1*10/t; ......................................................................................................................................... 21 for (i=0;i-

display[j][i]|=t; ............................................................................................................................. 21 } ............................................................................................................................................................ 21 } ............................................................................................................................................................ 21 else....................................................................................................................................................... 21 { ............................................................................................................................................................ 21 for (i=z1;i<=z2;i++) ....................................................................................................................... 21 { ............................................................................................................................................................ 21 for (j=y1;j<=y2;j++) ....................................................................................................................... 21 display[j][i]&=t; ............................................................................................................................. 21 } ............................................................................................................................................................ 21 } ............................................................................................................................................................ 21 } ............................................................................................................................................................ 21 else....................................................................................................................................................... 21 { ............................................................................................................................................................ 22 if (le) ................................................................................................................................................. 22 { ............................................................................................................................................................ 22 display[y1][z1]|=t; ......................................................................................................................... 22 display[y2][z1]|=t; ......................................................................................................................... 22 display[y1][z2]|=t; ......................................................................................................................... 22 display[y2][z2]|=t; ......................................................................................................................... 22 } ............................................................................................................................................................ 22 else....................................................................................................................................................... 22 { ............................................................................................................................................................ 22 display[y1][z1]&=t; ......................................................................................................................... 22 display[y2][z1]&=t; ......................................................................................................................... 22 display[y1][z2]&=t; ......................................................................................................................... 22 display[y2][z2]&=t; ......................................................................................................................... 22 } ............................................................................................................................................................ 22 t=(0x01<-

{ ............................................................................................................................................................ 22 for (j=z1;j<=z2;j+=(z2-z1)) ......................................................................................................... 22 { ............................................................................................................................................................ 22 for (i=y1;i<=y2;i++) ....................................................................................................................... 22 { ............................................................................................................................................................ 22 display[i][j]&=t; ............................................................................................................................. 22 } ............................................................................................................................................................ 22 } ............................................................................................................................................................ 22 for (j=y1;j<=y2;j+=(y2-y1)) ......................................................................................................... 22 { ............................................................................................................................................................ 22 for (i=z1;i<=z2;i++) ....................................................................................................................... 22 { ............................................................................................................................................................ 23 display[j][i]&=t; ............................................................................................................................. 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) ................................................................................................................................... 23 { ............................................................................................................................................................ 23 uchar i; ............................................................................................................................................... 23 max(&z1,&z2); ..................................................................................................................................... 23 if (fill) ............................................................................................................................................. 23 { ............................................................................................................................................................ 23 for (i=z1;i<=z2;i++) ....................................................................................................................... 23 { ............................................................................................................................................................ 23 line (x1,y1,i,x2,y2,i,le); ........................................................................................................... 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 else....................................................................................................................................................... 23 { ............................................................................................................................................................ 23 line (x1,y1,z1,x2,y2,z1,le); ....................................................................................................... 23 line (x1,y1,z2,x2,y2,z2,le); ....................................................................................................... 23 line (x2,y2,z1,x2,y2,z2,le); ....................................................................................................... 23 line (x1,y1,z1,x1,y1,z2,le); ....................................................................................................... 23 } ............................................................................................................................................................ 23 } ............................................................................................................................................................ 23 void poke(uchar n,uchar x,uchar y) ........................................................................................... 23 { ............................................................................................................................................................ 23 uchar i; ............................................................................................................................................... 23 for (i=0;i<8;i++) ............................................................................................................................. 23 { ............................................................................................................................................................ 23 point(x,y,i,judgebit(n,i)); ......................................................................................................... 23 } ............................................................................................................................................................ 23 VIII

-

} ............................................................................................................................................................ 23 void boxtola(char i,uchar n) ....................................................................................................... 23 { ............................................................................................................................................................ 23 if ((i>=0)&(i<8)) ............................................................................................................................. 23 { ............................................................................................................................................................ 23 poke(n,0,7-i); ................................................................................................................................... 23 } ............................................................................................................................................................ 23 if ((i>=8)&(i<16)) ........................................................................................................................... 23 { ............................................................................................................................................................ 23 poke(n,i-8,0); ................................................................................................................................... 23 } ............................................................................................................................................................ 24 if ((i>=16)&(i<24)) ......................................................................................................................... 24 { ............................................................................................................................................................ 24 poke(n,7,i-16); ................................................................................................................................. 24 } ............................................................................................................................................................ 24 } ............................................................................................................................................................ 24 void rolldisplay(uint speed) ....................................................................................................... 24 { ............................................................................................................................................................ 24 uchar j; ............................................................................................................................................... 24 char i,a; ............................................................................................................................................. 24 for (i=23;i>-40;i--) ....................................................................................................................... 24 { ............................................................................................................................................................ 24 for (j=0;j<40;j++) ........................................................................................................................... 24 { ............................................................................................................................................................ 24 a=i+j;................................................................................................................................................... 24 if ((a>=0)&(a<24)) ........................................................................................................................... 24 boxtola(a,table_id[j]); ................................................................................................................. 24 } ............................................................................................................................................................ 24 delay(speed); ..................................................................................................................................... 24 } ............................................................................................................................................................ 24 } ............................................................................................................................................................ 24 void roll_apeak_yz(uchar n,uint speed) ................................................................................... 24 { ............................................................................................................................................................ 24 uchar i; ............................................................................................................................................... 24 switch(n) ............................................................................................................................................. 24 { ............................................................................................................................................................ 24 case 1: ................................................................................................................................................. 24 for (i=0;i<7;i++) ............................................................................................................................. 24 { ............................................................................................................................................................ 24 display[i][7]=0; ............................................................................................................................... 24 display[7][6-i]=255; ....................................................................................................................... 24 delay(speed); ..................................................................................................................................... 24 }; .......................................................................................................................................................... 24 break;................................................................................................................................................... 24 case 2: ................................................................................................................................................. 24 IX

-

for (i=0;i<7;i++) ............................................................................................................................. 24 { ............................................................................................................................................................ 24 display[7][7-i]=0; ........................................................................................................................... 24 display[6-i][0]=255; ....................................................................................................................... 24 delay(speed); ..................................................................................................................................... 24 }; .......................................................................................................................................................... 24 break;................................................................................................................................................... 24 case 3: ................................................................................................................................................. 24 for (i=0;i<7;i++) ............................................................................................................................. 25 { ............................................................................................................................................................ 25 display[7-i][0]=0; ........................................................................................................................... 25 display[0][i+1]=255; ....................................................................................................................... 25 delay(speed); ..................................................................................................................................... 25 }; .......................................................................................................................................................... 25 break;................................................................................................................................................... 25 case 0: ................................................................................................................................................. 25 for (i=0;i<7;i++) ............................................................................................................................. 25 { ............................................................................................................................................................ 25 display[0][i]=0; ............................................................................................................................... 25 display[i+1][7]=255; ....................................................................................................................... 25 delay(speed); ..................................................................................................................................... 25 }; .......................................................................................................................................................... 25 } ............................................................................................................................................................ 25 } ............................................................................................................................................................ 25 void roll_apeak_xy(uchar n,uint speed) ................................................................................... 25 { ............................................................................................................................................................ 25 uchar i; ............................................................................................................................................... 25 switch(n) ............................................................................................................................................. 25 { ............................................................................................................................................................ 25 case 1: ................................................................................................................................................. 25 for (i=0;i<7;i++) ............................................................................................................................. 25 { ............................................................................................................................................................ 25 line(0,i,0,0,i,7,0); ....................................................................................................................... 25 line(i+1,7,0,i+1,7,7,1); ............................................................................................................... 25 delay(speed); ..................................................................................................................................... 25 }; .......................................................................................................................................................... 25 break;................................................................................................................................................... 25 case 2: ................................................................................................................................................. 25 for (i=0;i<7;i++) ............................................................................................................................. 25 { ............................................................................................................................................................ 25 line(i,7,0,i,7,7,0); ....................................................................................................................... 25 line(7,6-i,0,7,6-i,7,1); ............................................................................................................... 25 delay(speed); ..................................................................................................................................... 25 }; .......................................................................................................................................................... 25 break;................................................................................................................................................... 25 X

-

case 3: ................................................................................................................................................. 25 for (i=0;i<7;i++) ............................................................................................................................. 25 { ............................................................................................................................................................ 25 line(7,7-i,0,7,7-i,7,0); ............................................................................................................... 25 line(6-i,0,0,6-i,0,7,1); ............................................................................................................... 25 delay(speed); ..................................................................................................................................... 25 }; .......................................................................................................................................................... 26 break;................................................................................................................................................... 26 case 0: ................................................................................................................................................. 26 for (i=0;i<7;i++) ............................................................................................................................. 26 { ............................................................................................................................................................ 26 line(7-i,0,0,7-i,0,7,0); ............................................................................................................... 26 line(0,i+1,0,0,i+1,7,1); ............................................................................................................... 26 delay(speed); ..................................................................................................................................... 26 }; .......................................................................................................................................................... 26 } ............................................................................................................................................................ 26 } ............................................................................................................................................................ 26 void roll_3_xy(uchar n,uint speed) ........................................................................................... 26 { ............................................................................................................................................................ 26 uchar i; ............................................................................................................................................... 26 switch(n) ............................................................................................................................................. 26 { ............................................................................................................................................................ 26 case 1: ................................................................................................................................................. 26 for (i=0;i<8;i++) ............................................................................................................................. 26 { ............................................................................................................................................................ 26 box_apeak_xy (0,i,0,7,7-i,7,1,1); ............................................................................................. 26 delay(speed); ..................................................................................................................................... 26 if (i<7) ............................................................................................................................................... 26 box_apeak_xy (3,3,0,0,i,7,1,0); ................................................................................................. 26 }; .......................................................................................................................................................... 26 break;................................................................................................................................................... 26 case 2: ................................................................................................................................................. 26 for (i=0;i<8;i++) ............................................................................................................................. 26 { ............................................................................................................................................................ 26 box_apeak_xy (7-i,0,0,i,7,7,1,1); ............................................................................................. 26 delay(speed); ..................................................................................................................................... 26 if (i<7) ............................................................................................................................................... 26 box_apeak_xy (3,4,0,i,7,7,1,0); ................................................................................................. 26 }; .......................................................................................................................................................... 26 break;................................................................................................................................................... 26 case 3: ................................................................................................................................................. 26 for (i=0;i<8;i++) ............................................................................................................................. 26 { ............................................................................................................................................................ 26 box_apeak_xy (0,i,0,7,7-i,7,1,1); ............................................................................................. 26 delay(speed); ..................................................................................................................................... 26 XI

-

if (i<7) ............................................................................................................................................... 26 box_apeak_xy (4,4,0,7,7-i,7,1,0); ............................................................................................. 26 }; .......................................................................................................................................................... 26 break;................................................................................................................................................... 26 case 0: ................................................................................................................................................. 26 for (i=0;i<8;i++) ............................................................................................................................. 27 { ............................................................................................................................................................ 27 box_apeak_xy (7-i,0,0,i,7,7,1,1); ............................................................................................. 27 delay(speed); ..................................................................................................................................... 27 if (i<7) ............................................................................................................................................... 27 box_apeak_xy (4,3,0,7-i,0,7,1,0); ............................................................................................. 27 }; .......................................................................................................................................................... 27 } ............................................................................................................................................................ 27 } ............................................................................................................................................................ 27 void trans(uchar z,uint speed) ................................................................................................... 27 { ............................................................................................................................................................ 27 uchar i,j; ........................................................................................................................................... 27 for (j=0;j<8;j++) ............................................................................................................................. 27 { ............................................................................................................................................................ 27 for (i=0;i<8;i++) ............................................................................................................................. 27 { ............................................................................................................................................................ 27 display[z][i]>>=1; ........................................................................................................................... 27 } ............................................................................................................................................................ 27 delay(speed); ..................................................................................................................................... 27 } ............................................................................................................................................................ 27 } ............................................................................................................................................................ 27 void tranoutchar(uchar c,uint speed) ....................................................................................... 27 { ............................................................................................................................................................ 27 uchar i,j,k,a,i2=0; ......................................................................................................................... 27 for (i=0;i<8;i++) ............................................................................................................................. 27 { ............................................................................................................................................................ 27 if (i<7) ............................................................................................................................................... 27 box_apeak_xy (i+1,0,0,i+1,7,7,1,1); ......................................................................................... 27 box_apeak_xy (i2,0,0,i2,7,7,1,0); ............................................................................................. 27 a=0;....................................................................................................................................................... 27 i2=i+1; ................................................................................................................................................. 27 for (j=0;j<=i;j++) ........................................................................................................................... 27 { ............................................................................................................................................................ 27 a=a|(1<-

delay(speed); ..................................................................................................................................... 27 } ............................................................................................................................................................ 27 } ............................................................................................................................................................ 27 void transss() ................................................................................................................................... 28 { ............................................................................................................................................................ 28 uchar i,j; ........................................................................................................................................... 28 for (i=0;i<8;i++) ............................................................................................................................. 28 { ............................................................................................................................................................ 28 for (j=0;j<8;j++) ............................................................................................................................. 28 display[i][j]<<=1; ........................................................................................................................... 28 } ............................................................................................................................................................ 28 } ............................................................................................................................................................ 28 /*From now on,the function below is to display the flash.*/ ......................................... 28 void flash_1() ................................................................................................................................... 28 { ............................................................................................................................................................ 28 clear(0); ............................................................................................................................................. 28 type(1,0); ........................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 type(2,0); ........................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 type(3,0); ........................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 type(4,0); ........................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 clear(0); ............................................................................................................................................. 28 rolldisplay(30000); ......................................................................................................................... 28 type(0,7); ........................................................................................................................................... 28 delay(60000); ..................................................................................................................................... 28 trailler(6000); ................................................................................................................................. 28 delay(60000); ..................................................................................................................................... 28 } ............................................................................................................................................................ 28 void flash_2() ................................................................................................................................... 28 { ............................................................................................................................................................ 28 uchar i; ............................................................................................................................................... 28 for (i=129;i>0;i--) ......................................................................................................................... 28 { ............................................................................................................................................................ 28 cirp(i-2,0,1); ................................................................................................................................... 28 delay(8000); ....................................................................................................................................... 28 cirp(i-1,0,0); ................................................................................................................................... 28 } ............................................................................................................................................................ 28 delay(8000); ....................................................................................................................................... 28 for (i=0;i<136;i++) ......................................................................................................................... 28 { ............................................................................................................................................................ 28 cirp(i,1,1); ....................................................................................................................................... 28 XIII

-

delay(8000); ....................................................................................................................................... 29 cirp(i-8,1,0); ................................................................................................................................... 29 } ............................................................................................................................................................ 29 delay(8000); ....................................................................................................................................... 29 for (i=129;i>0;i--) ......................................................................................................................... 29 { ............................................................................................................................................................ 29 cirp(i-2,0,1); ................................................................................................................................... 29 delay(8000); ....................................................................................................................................... 29 } ............................................................................................................................................................ 29 delay(8000); ....................................................................................................................................... 29 for (i=0;i<128;i++) ......................................................................................................................... 29 { ............................................................................................................................................................ 29 cirp(i-8,1,0); ................................................................................................................................... 29 delay(8000); ....................................................................................................................................... 29 } ............................................................................................................................................................ 29 delay(60000); ..................................................................................................................................... 29 } ............................................................................................................................................................ 29 void flash_3() ................................................................................................................................... 29 { ............................................................................................................................................................ 29 char i; ................................................................................................................................................. 29 for (i=0;i<8;i++) ............................................................................................................................. 29 { ............................................................................................................................................................ 29 box_apeak_xy(0,i,0,7,i,7,1,1); ................................................................................................... 29 delay(20000); ..................................................................................................................................... 29 if (i<7) ............................................................................................................................................... 29 box_apeak_xy(0,i,0,7,i,7,1,0); ................................................................................................... 29 } ............................................................................................................................................................ 29 for (i=7;i>=0;i--) ........................................................................................................................... 29 { ............................................................................................................................................................ 29 box_apeak_xy(0,i,0,7,i,7,1,1); ................................................................................................... 29 delay(20000); ..................................................................................................................................... 29 if (i>0) ............................................................................................................................................... 29 box_apeak_xy(0,i,0,7,i,7,1,0); ................................................................................................... 29 } ............................................................................................................................................................ 29 for (i=0;i<8;i++) ............................................................................................................................. 29 { ............................................................................................................................................................ 29 box_apeak_xy(0,i,0,7,i,7,1,1); ................................................................................................... 29 delay(20000); ..................................................................................................................................... 29 if (i<7) ............................................................................................................................................... 29 box_apeak_xy(0,i,0,7,i,7,1,0); ................................................................................................... 29 } ............................................................................................................................................................ 29 } ............................................................................................................................................................ 29 void flash_4() ................................................................................................................................... 29 { ............................................................................................................................................................ 30 char i,j,an[8]; ................................................................................................................................. 30 XIV

-

for (j=7;j<15;j++) ........................................................................................................................... 30 an[j-7]=j; ........................................................................................................................................... 30 for (i=0;i<=16;i++) ......................................................................................................................... 30 { ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if ((an[j]<8)&(an[j]>=0)) ............................................................................................................. 30 line(0,an[j],j,7,an[j],j,1); ....................................................................................................... 30 } ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if (((an[j]+1)<8)&(an[j]>=0)) ..................................................................................................... 30 line(0,an[j]+1,j,7,an[j]+1,j,0); ............................................................................................... 30 } ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if (an[j]>0) ....................................................................................................................................... 30 an[j]--; ............................................................................................................................................... 30 } ............................................................................................................................................................ 30 delay(15000); ..................................................................................................................................... 30 } ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 an[j]=1-j; ........................................................................................................................................... 30 for (i=0;i<=16;i++) ......................................................................................................................... 30 { ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if ((an[j]<8)&(an[j]>=0)) ............................................................................................................. 30 line(0,an[j],j,7,an[j],j,1); ....................................................................................................... 30 } ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if (((an[j]-1)<7)&(an[j]>0)) ....................................................................................................... 30 line(0,an[j]-1,j,7,an[j]-1,j,0); ............................................................................................... 30 } ............................................................................................................................................................ 30 for (j=0;j<8;j++) ............................................................................................................................. 30 { ............................................................................................................................................................ 30 if (an[j]<7) ....................................................................................................................................... 30 an[j]++; ............................................................................................................................................... 30 } ............................................................................................................................................................ 30 delay(15000); ..................................................................................................................................... 30 } ............................................................................................................................................................ 30 } ............................................................................................................................................................ 31 void flash_5() ................................................................................................................................... 31 { ............................................................................................................................................................ 31 XV

-

uint a=15000;a=delay ....................................................................................................................... 31 char i=8,j,an[4]; ............................................................................................................................. 31 1 ............................................................................................................................................................ 31 for (j=7;j<11;j++) ........................................................................................................................... 31 an[j-7]=j; ........................................................................................................................................... 31 while(i--) ........................................................................................................................................... 31 { ............................................................................................................................................................ 31 for (j=0;j<4;j++) ............................................................................................................................. 31 { ............................................................................................................................................................ 31 if (an[j]<8) ....................................................................................................................................... 31 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 31 if (an[j]<7) ....................................................................................................................................... 31 box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); ................................................................... 31 } ............................................................................................................................................................ 31 for (j=0;j<4;j++) ............................................................................................................................. 31 { ............................................................................................................................................................ 31 if (an[j]>3) ....................................................................................................................................... 31 an[j]--; ............................................................................................................................................... 31 } ............................................................................................................................................................ 31 delay(a); ............................................................................................................................................. 31 } ............................................................................................................................................................ 31 2 ............................................................................................................................................................ 31 i=3;....................................................................................................................................................... 31 for (j=0;j<4;j++) ............................................................................................................................. 31 an[j]=5-j; ........................................................................................................................................... 31 while(i--) ........................................................................................................................................... 31 { ............................................................................................................................................................ 31 for (j=1;j<4;j++) ............................................................................................................................. 31 { ............................................................................................................................................................ 31 if (an[j]<4) ....................................................................................................................................... 31 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 31 if (an[j]<3) ....................................................................................................................................... 31 box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); ................................................................... 31 } ............................................................................................................................................................ 31 for (j=0;j<4;j++) ............................................................................................................................. 31 { ............................................................................................................................................................ 31 if (an[j]>0) ....................................................................................................................................... 31 an[j]--; ............................................................................................................................................... 31 } ............................................................................................................................................................ 31 delay(a); ............................................................................................................................................. 31 } ............................................................................................................................................................ 32 3 ............................................................................................................................................................ 32 i=3;....................................................................................................................................................... 32 for (j=1;j<4;j++) ............................................................................................................................. 32 an[j]=4-j; ........................................................................................................................................... 32 XVI

-

while(i--) ........................................................................................................................................... 32 { ............................................................................................................................................................ 32 for (j=1;j<4;j++) ............................................................................................................................. 32 { ............................................................................................................................................................ 32 if (an[j]>=0) ..................................................................................................................................... 32 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 32 if (an[j]>0) ....................................................................................................................................... 32 box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); ................................................................... 32 } ............................................................................................................................................................ 32 for (j=1;j<4;j++) ............................................................................................................................. 32 { ............................................................................................................................................................ 32 if (an[j]<3) ....................................................................................................................................... 32 an[j]++; ............................................................................................................................................... 32 } ............................................................................................................................................................ 32 delay(a); ............................................................................................................................................. 32 } ............................................................................................................................................................ 32 4 ............................................................................................................................................................ 32 i=3;....................................................................................................................................................... 32 for (j=0;j<4;j++) ............................................................................................................................. 32 an[j]=j+1; ........................................................................................................................................... 32 while(i--) ........................................................................................................................................... 32 { ............................................................................................................................................................ 32 for (j=1;j<4;j++) ............................................................................................................................. 32 { ............................................................................................................................................................ 32 if (an[j]>3) ....................................................................................................................................... 32 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 32 if (an[j]>3) ....................................................................................................................................... 32 box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); ................................................................... 32 } ............................................................................................................................................................ 32 for (j=0;j<4;j++) ............................................................................................................................. 32 an[j]++; ............................................................................................................................................... 32 delay(a); ............................................................................................................................................. 32 } ............................................................................................................................................................ 32 5 ............................................................................................................................................................ 32 i=3;....................................................................................................................................................... 32 for (j=3;j<6;j++) ............................................................................................................................. 32 an[j-2]=j; ........................................................................................................................................... 32 while(i--) ........................................................................................................................................... 32 { ............................................................................................................................................................ 33 for (j=1;j<4;j++) ............................................................................................................................. 33 { ............................................................................................................................................................ 33 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 33 box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); ................................................................... 33 } ............................................................................................................................................................ 33 for (j=0;j<4;j++) ............................................................................................................................. 33 XVII

-

{ ............................................................................................................................................................ 33 if (an[j]>3) ....................................................................................................................................... 33 an[j]--; ............................................................................................................................................... 33 } ............................................................................................................................................................ 33 delay(a); ............................................................................................................................................. 33 } ............................................................................................................................................................ 33 6 ............................................................................................................................................................ 33 i=3;....................................................................................................................................................... 33 for (j=0;j<4;j++) ............................................................................................................................. 33 an[j]=5-j; ........................................................................................................................................... 33 while(i--) ........................................................................................................................................... 33 { ............................................................................................................................................................ 33 for (j=1;j<4;j++) ............................................................................................................................. 33 { ............................................................................................................................................................ 33 if (an[j]<4) ....................................................................................................................................... 33 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 33 if (an[j]<3) ....................................................................................................................................... 33 box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); ................................................................... 33 } ............................................................................................................................................................ 33 for (j=0;j<4;j++) ............................................................................................................................. 33 { ............................................................................................................................................................ 33 if (an[j]>0) ....................................................................................................................................... 33 an[j]--; ............................................................................................................................................... 33 } ............................................................................................................................................................ 33 delay(a); ............................................................................................................................................. 33 } ............................................................................................................................................................ 33 7 ............................................................................................................................................................ 33 i=3;....................................................................................................................................................... 33 for (j=0;j<4;j++) ............................................................................................................................. 33 an[j]=3-j; ........................................................................................................................................... 33 an[0]=2; ............................................................................................................................................... 33 while(i--) ........................................................................................................................................... 33 { ............................................................................................................................................................ 33 for (j=0;j<3;j++) ............................................................................................................................. 33 { ............................................................................................................................................................ 33 if (an[j]>=0) ..................................................................................................................................... 33 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 34 if (an[j]>=0) ..................................................................................................................................... 34 box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); ................................................................... 34 } ............................................................................................................................................................ 34 for (j=0;j<4;j++) ............................................................................................................................. 34 { ............................................................................................................................................................ 34 if (j<5-i) ........................................................................................................................................... 34 an[j]--; ............................................................................................................................................... 34 } ............................................................................................................................................................ 34 XVIII

-

delay(a); ............................................................................................................................................. 34 } ............................................................................................................................................................ 34 8 ............................................................................................................................................................ 34 i=10;..................................................................................................................................................... 34 for (j=0;j<4;j++) ............................................................................................................................. 34 an[j]=j-2; ........................................................................................................................................... 34 while(i--) ........................................................................................................................................... 34 { ............................................................................................................................................................ 34 for (j=0;j<4;j++) ............................................................................................................................. 34 { ............................................................................................................................................................ 34 if (an[j]>=0) ..................................................................................................................................... 34 box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); ........................................................................... 34 if (an[j]>=0) ..................................................................................................................................... 34 box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); ................................................................... 34 } ............................................................................................................................................................ 34 for (j=0;j<4;j++) ............................................................................................................................. 34 { ............................................................................................................................................................ 34 if (an[j]<7) ....................................................................................................................................... 34 an[j]++; ............................................................................................................................................... 34 } ............................................................................................................................................................ 34 delay(a); ............................................................................................................................................. 34 } ............................................................................................................................................................ 34 } ............................................................................................................................................................ 34 void flash_6() ................................................................................................................................... 34 { ............................................................................................................................................................ 34 uchar i,j,k,z; ................................................................................................................................... 34 roll_apeak_yz(1,10000); ................................................................................................................. 34 roll_apeak_yz(2,10000); ................................................................................................................. 34 roll_apeak_yz(3,10000); ................................................................................................................. 34 roll_apeak_yz(0,10000); ................................................................................................................. 34 roll_apeak_yz(1,10000); ................................................................................................................. 34 roll_apeak_yz(2,10000); ................................................................................................................. 34 roll_apeak_yz(3,10000); ................................................................................................................. 34 for (i=0;i<3;i++) ............................................................................................................................. 34 { ............................................................................................................................................................ 34 for (j=0;j<8;j++) ............................................................................................................................. 35 { ............................................................................................................................................................ 35 for (k=0;k<8;k++) ............................................................................................................................. 35 { ............................................................................................................................................................ 35 if ((table_3p[i][j]>>k)&1) ........................................................................................................... 35 { ............................................................................................................................................................ 35 for (z=1;z<8;z++) ............................................................................................................................. 35 { ............................................................................................................................................................ 35 point (j,7-k,z,1); ........................................................................................................................... 35 if (z-1) ............................................................................................................................................... 35 XIX

-

point (j,7-k,z-1,0); ....................................................................................................................... 35 delay(5000); ....................................................................................................................................... 35 } ............................................................................................................................................................ 35 } ............................................................................................................................................................ 35 } ............................................................................................................................................................ 35 } ............................................................................................................................................................ 35 trans(7,15000); ................................................................................................................................. 35 } ............................................................................................................................................................ 35 } ............................................................................................................................................................ 35 void flash_7() ................................................................................................................................... 35 { ............................................................................................................................................................ 35 uchar i; ............................................................................................................................................... 35 uint a=3000; ....................................................................................................................................... 35 roll_apeak_yz(0,10000); ................................................................................................................. 35 roll_apeak_yz(1,10000); ................................................................................................................. 35 roll_apeak_yz(2,10000); ................................................................................................................. 35 roll_apeak_yz(3,10000); ................................................................................................................. 35 roll_apeak_yz(0,10000); ................................................................................................................. 35 roll_apeak_yz(1,10000); ................................................................................................................. 35 roll_apeak_yz(2,10000); ................................................................................................................. 35 roll_apeak_yz(3,10000); ................................................................................................................. 35 roll_apeak_yz(0,10000); ................................................................................................................. 35 roll_apeak_yz(1,10000); ................................................................................................................. 35 roll_apeak_yz(2,10000); ................................................................................................................. 35 roll_apeak_xy(0,10000); ................................................................................................................. 35 roll_apeak_xy(1,10000); ................................................................................................................. 35 roll_apeak_xy(2,10000); ................................................................................................................. 35 roll_apeak_xy(3,10000); ................................................................................................................. 35 roll_apeak_xy(0,10000); ................................................................................................................. 35 roll_apeak_xy(1,10000); ................................................................................................................. 35 roll_apeak_xy(2,10000); ................................................................................................................. 35 roll_apeak_xy(3,10000); ................................................................................................................. 35 for (i=0;i<8;i++) ............................................................................................................................. 36 { ............................................................................................................................................................ 36 box_apeak_xy (0,i,0,7-i,i,7,1,1); ............................................................................................. 36 delay(a); ............................................................................................................................................. 36 } ............................................................................................................................................................ 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(0,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(1,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(2,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(3,a); ................................................................................................................................. 36 XX

-

delay(30000); ..................................................................................................................................... 36 roll_3_xy(0,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(1,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(2,a); ................................................................................................................................. 36 delay(30000); ..................................................................................................................................... 36 roll_3_xy(3,a); ................................................................................................................................. 36 for (i=7;i>0;i--) ............................................................................................................................. 36 { ............................................................................................................................................................ 36 box_apeak_xy(i,0,0,i,7,7,1,0); ................................................................................................... 36 delay(a); ............................................................................................................................................. 36 } ............................................................................................................................................................ 36 } ............................................................................................................................................................ 36 void flash_8() ................................................................................................................................... 36 { ............................................................................................................................................................ 36 uchar i; ............................................................................................................................................... 36 for (i=5;i<8;i++) ............................................................................................................................. 36 { ............................................................................................................................................................ 36 tranoutchar(i,10000); ..................................................................................................................... 36 delay(60000); ..................................................................................................................................... 36 delay(60000); ..................................................................................................................................... 36 } ............................................................................................................................................................ 36 } ............................................................................................................................................................ 36 void flash_9() ................................................................................................................................... 36 { ............................................................................................................................................................ 36 char i; ................................................................................................................................................. 36 uchar j,an[8],x,y,t,x1,y1; ........................................................................................................... 36 for (i=0;i<8;i++) ............................................................................................................................. 36 { ............................................................................................................................................................ 36 box_apeak_xy (i,0,0,i,7,7,1,1); ................................................................................................. 36 if (i)................................................................................................................................................... 37 box_apeak_xy (i-1,0,0,i-1,7,7,1,0); ......................................................................................... 37 delay(10000); ..................................................................................................................................... 37 } ............................................................................................................................................................ 37 roll_apeak_xy(3,10000); ................................................................................................................. 37 roll_apeak_xy(0,10000); ................................................................................................................. 37 roll_apeak_xy(1,10000); ................................................................................................................. 37 for (i=0;i<7;i++) ............................................................................................................................. 37 { ............................................................................................................................................................ 37 line(6-i,6-i,0,6-i,6-i,7,1); ....................................................................................................... 37 line(i,7,0,i,7,7,0); ....................................................................................................................... 37 delay(10000); ..................................................................................................................................... 37 } ............................................................................................................................................................ 37 for (i=0;i<8;i++) ............................................................................................................................. 37 XXI

-

an[i]=14; ............................................................................................................................................. 37 for (i=0;i<85;i++) ........................................................................................................................... 37 { ............................................................................................................................................................ 37 clear(0); ............................................................................................................................................. 37 for (j=0;j<8;j++) ............................................................................................................................. 37 { ............................................................................................................................................................ 37 t=an[j]%28; ......................................................................................................................................... 37 x=dat2[t]>>5; ..................................................................................................................................... 37 y=(dat2[t]>>2)&0x07; ....................................................................................................................... 37 t=(an[j]-14)%28; ............................................................................................................................... 37 x1=dat2[t]>>5; ................................................................................................................................... 37 y1=(dat2[t]>>2)&0x07; ..................................................................................................................... 37 line(x,y,j,x1,y1,j,1); ................................................................................................................... 37 } ............................................................................................................................................................ 37 for (j=0;j<8;j++) ............................................................................................................................. 37 { ............................................................................................................................................................ 37 if ((i>j)&(j>i-71)) ......................................................................................................................... 37 an[j]++; ............................................................................................................................................... 37 } ............................................................................................................................................................ 37 delay(5000); ....................................................................................................................................... 37 } ............................................................................................................................................................ 37 for (i=0;i<85;i++) ........................................................................................................................... 37 { ............................................................................................................................................................ 37 clear(0); ............................................................................................................................................. 37 for (j=0;j<8;j++) ............................................................................................................................. 37 { ............................................................................................................................................................ 37 t=an[j]%28; ......................................................................................................................................... 37 x=dat2[t]>>5; ..................................................................................................................................... 37 y=(dat2[t]>>2)&0x07; ....................................................................................................................... 37 t=(an[j]-14)%28; ............................................................................................................................... 38 x1=dat2[t]>>5; ................................................................................................................................... 38 y1=(dat2[t]>>2)&0x07; ..................................................................................................................... 38 line(x,y,j,x1,y1,j,1); ................................................................................................................... 38 } ............................................................................................................................................................ 38 for (j=0;j<8;j++) ............................................................................................................................. 38 { ............................................................................................................................................................ 38 if ((i>j)&(j>i-71)) ......................................................................................................................... 38 an[j]--; ............................................................................................................................................... 38 } ............................................................................................................................................................ 38 delay(5000); ....................................................................................................................................... 38 } ............................................................................................................................................................ 38 for (i=0;i<29;i++) ........................................................................................................................... 38 { ............................................................................................................................................................ 38 clear(0); ............................................................................................................................................. 38 t=an[0]%28; ......................................................................................................................................... 38 XXII

-

x=dat2[t]>>5; ..................................................................................................................................... 38 y=(dat2[t]>>2)&0x07; ....................................................................................................................... 38 t=(an[0]-14)%28; ............................................................................................................................... 38 x1=dat2[t]>>5; ................................................................................................................................... 38 y1=(dat2[t]>>2)&0x07; ..................................................................................................................... 38 box_apeak_xy(x,y,0,x1,y1,7,0,1); ............................................................................................... 38 box_apeak_xy(x,y,1,x1,y1,6,0,1); ............................................................................................... 38 an[0]++; ............................................................................................................................................... 38 delay(5000); ....................................................................................................................................... 38 } ............................................................................................................................................................ 38 for (i=0;i<16;i++) ........................................................................................................................... 38 { ............................................................................................................................................................ 38 clear(0); ............................................................................................................................................. 38 t=an[0]%28; ......................................................................................................................................... 38 x=dat2[t]>>5; ..................................................................................................................................... 38 y=(dat2[t]>>2)&0x07; ....................................................................................................................... 38 t=(an[0]-14)%28; ............................................................................................................................... 38 x1=dat2[t]>>5; ................................................................................................................................... 38 y1=(dat2[t]>>2)&0x07; ..................................................................................................................... 38 box_apeak_xy(x,y,0,x1,y1,7,1,1); ............................................................................................... 38 an[0]--; ............................................................................................................................................... 38 delay(5000); ....................................................................................................................................... 38 } ............................................................................................................................................................ 38 for (i=0;i<8;i++) ............................................................................................................................. 38 { ............................................................................................................................................................ 38 line(i,i,0,0,0,i,0); ....................................................................................................................... 38 delay(5000); ....................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<7;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 line(i,i,7,7,7,i,0); ....................................................................................................................... 39 delay(5000); ....................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<8;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 clear(0); ............................................................................................................................................. 39 box(7,7,7,7-i,7-i,7-i,0,1); ......................................................................................................... 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<7;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 clear(0); ............................................................................................................................................. 39 box(0,0,0,7-i,7-i,7-i,0,1); ......................................................................................................... 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 XXIII

-

for (i=1;i<8;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 clear(0); ............................................................................................................................................. 39 box(0,0,0,i,i,i,0,1); ..................................................................................................................... 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<7;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 clear(0); ............................................................................................................................................. 39 box(7,0,0,i,7-i,7-i,0,1); ............................................................................................................. 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<8;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 box(7,0,0,7-i,i,i,1,1); ................................................................................................................. 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 for (i=1;i<7;i++) ............................................................................................................................. 39 { ............................................................................................................................................................ 39 clear(0); ............................................................................................................................................. 39 box(0,7,7,7-i,i,i,1,1); ................................................................................................................. 39 delay(10000); ..................................................................................................................................... 39 } ............................................................................................................................................................ 39 } ............................................................................................................................................................ 39 void flash_10() ................................................................................................................................. 40 { ............................................................................................................................................................ 40 uchar i,j,an[4],x,y,t; ................................................................................................................... 40 for (i=1;i<7;i++) ............................................................................................................................. 40 { ............................................................................................................................................................ 40 clear(0); ............................................................................................................................................. 40 box(0,6,6,1,7,7,1,1); ..................................................................................................................... 40 box(i,6,6-i,i+1,7,7-i,1,1); ......................................................................................................... 40 box(i,6,6,i+1,7,7,1,1); ................................................................................................................. 40 box(0,6,6-i,1,7,7-i,1,1); ............................................................................................................. 40 box(0,6-i,6,1,7-i,7,1,1); ............................................................................................................. 40 box(i,6-i,6-i,i+1,7-i,7-i,1,1); ................................................................................................. 40 box(i,6-i,6,i+1,7-i,7,1,1); ......................................................................................................... 40 box(0,6-i,6-i,1,7-i,7-i,1,1); ..................................................................................................... 40 delay(30000); ..................................................................................................................................... 40 } ............................................................................................................................................................ 40 for (i=0;i<4;i++) ............................................................................................................................. 40 { ............................................................................................................................................................ 40 an[i]=6*i; ........................................................................................................................................... 40 } ............................................................................................................................................................ 40 for (i=0;i<35;i++) ........................................................................................................................... 40 XXIV

-

{ ............................................................................................................................................................ 40 clear(0); ............................................................................................................................................. 40 for(j=0;j<4;j++) ............................................................................................................................... 40 { ............................................................................................................................................................ 40 t=an[j]%24; ......................................................................................................................................... 40 x=dat3[t]>>4; ..................................................................................................................................... 40 y=dat3[t]&0x0f; ................................................................................................................................. 40 box(x,y,0,x+1,y+1,1,1,1); ............................................................................................................. 40 box(x,y,6,x+1,y+1,7,1,1); ............................................................................................................. 40 } ............................................................................................................................................................ 40 for (j=0;j<4;j++) ............................................................................................................................. 40 an[j]++; ............................................................................................................................................... 40 delay(10000); ..................................................................................................................................... 40 } ............................................................................................................................................................ 40 for (i=0;i<35;i++) ........................................................................................................................... 40 { ............................................................................................................................................................ 40 clear(0); ............................................................................................................................................. 40 for(j=0;j<4;j++) ............................................................................................................................... 40 { ............................................................................................................................................................ 40 t=an[j]%24; ......................................................................................................................................... 40 x=dat3[t]>>4; ..................................................................................................................................... 40 y=dat3[t]&0x0f; ................................................................................................................................. 40 box(x,y,0,x+1,y+1,1,1,1); ............................................................................................................. 41 box(x,y,6,x+1,y+1,7,1,1); ............................................................................................................. 41 } ............................................................................................................................................................ 41 for (j=0;j<4;j++) ............................................................................................................................. 41 an[j]--; ............................................................................................................................................... 41 delay(10000); ..................................................................................................................................... 41 } ............................................................................................................................................................ 41 for (i=0;i<35;i++) ........................................................................................................................... 41 { ............................................................................................................................................................ 41 clear(0); ............................................................................................................................................. 41 for(j=0;j<4;j++) ............................................................................................................................... 41 { ............................................................................................................................................................ 41 t=an[j]%24; ......................................................................................................................................... 41 x=dat3[t]>>4; ..................................................................................................................................... 41 y=dat3[t]&0x0f; ................................................................................................................................. 41 box(x,0,y,x+1,1,y+1,1,1); ............................................................................................................. 41 box(x,6,y,x+1,7,y+1,1,1); ............................................................................................................. 41 } ............................................................................................................................................................ 41 for (j=0;j<4;j++) ............................................................................................................................. 41 an[j]++; ............................................................................................................................................... 41 delay(10000); ..................................................................................................................................... 41 } ............................................................................................................................................................ 41 for (i=0;i<36;i++) ........................................................................................................................... 41 XXV

-

{ ............................................................................................................................................................ 41 clear(0); ............................................................................................................................................. 41 for(j=0;j<4;j++) ............................................................................................................................... 41 { ............................................................................................................................................................ 41 t=an[j]%24; ......................................................................................................................................... 41 x=dat3[t]>>4; ..................................................................................................................................... 41 y=dat3[t]&0x0f; ................................................................................................................................. 41 box(x,0,y,x+1,1,y+1,1,1); ............................................................................................................. 41 box(x,6,y,x+1,7,y+1,1,1); ............................................................................................................. 41 } ............................................................................................................................................................ 41 for (j=0;j<4;j++) ............................................................................................................................. 41 an[j]--; ............................................................................................................................................... 41 delay(10000); ..................................................................................................................................... 41 } ............................................................................................................................................................ 41 for (i=6;i>0;i--) ............................................................................................................................. 41 { ............................................................................................................................................................ 41 clear(0); ............................................................................................................................................. 41 box(0,6,6,1,7,7,1,1); ..................................................................................................................... 41 box(i,6,6-i,i+1,7,7-i,1,1); ......................................................................................................... 41 box(i,6,6,i+1,7,7,1,1); ................................................................................................................. 42 box(0,6,6-i,1,7,7-i,1,1); ............................................................................................................. 42 box(0,6-i,6,1,7-i,7,1,1); ............................................................................................................. 42 box(i,6-i,6-i,i+1,7-i,7-i,1,1); ................................................................................................. 42 box(i,6-i,6,i+1,7-i,7,1,1); ......................................................................................................... 42 box(0,6-i,6-i,1,7-i,7-i,1,1); ..................................................................................................... 42 delay(30000); ..................................................................................................................................... 42 } ............................................................................................................................................................ 42 } ............................................................................................................................................................ 42 void flash_11() ................................................................................................................................. 42 { ............................................................................................................................................................ 42 uchar i,j,t,x,y; ............................................................................................................................... 42 uchar code daa[13]={0,1,2,0x23,5,6,7,6,5,0x23,2,1,0}; ..................................................... 42 for (j=0;j<5;j++) ............................................................................................................................. 42 { ............................................................................................................................................................ 42 for (i=0;i<13;i++) ........................................................................................................................... 42 { ............................................................................................................................................................ 42 if (daa[i]>>4) ................................................................................................................................... 42 { ............................................................................................................................................................ 42 t=daa[i]&0x0f; ................................................................................................................................... 42 line (0,0,t+1,0,7,t+1,1); ............................................................................................................. 42 } ............................................................................................................................................................ 42 else....................................................................................................................................................... 42 t=daa[i]; ............................................................................................................................................. 42 line (0,0,t,0,7,t,1); ..................................................................................................................... 42 transss(); ........................................................................................................................................... 42 XXVI

-

delay(10000); ..................................................................................................................................... 42 } ............................................................................................................................................................ 42 } ............................................................................................................................................................ 42 for (j=1;j<8;j++) ............................................................................................................................. 42 { ............................................................................................................................................................ 42 if (j>3) ............................................................................................................................................... 42 t=4;....................................................................................................................................................... 42 else....................................................................................................................................................... 42 t=j;....................................................................................................................................................... 42 for (i=0;i<24;i+=j) ......................................................................................................................... 42 { ............................................................................................................................................................ 42 x=dat3[i]>>4; ..................................................................................................................................... 42 y=dat3[i]&0x0f; ................................................................................................................................. 42 box_apeak_xy(0,x,y,0,x+1,y+1,1,1); ........................................................................................... 42 transss(); ........................................................................................................................................... 42 delay(10000); ..................................................................................................................................... 42 } ............................................................................................................................................................ 42 } ............................................................................................................................................................ 42 for (j=1;j<8;j++) ............................................................................................................................. 43 { ............................................................................................................................................................ 43 if (j>3) ............................................................................................................................................... 43 t=4;....................................................................................................................................................... 43 else....................................................................................................................................................... 43 t=j;....................................................................................................................................................... 43 for (i=0;i<24;i+=j) ......................................................................................................................... 43 { ............................................................................................................................................................ 43 x=dat3[i]>>4; ..................................................................................................................................... 43 y=dat3[i]&0x0f; ................................................................................................................................. 43 point (0,x,y,1); ............................................................................................................................... 43 transss(); ........................................................................................................................................... 43 delay(10000); ..................................................................................................................................... 43 } ............................................................................................................................................................ 43 } ............................................................................................................................................................ 43 } ............................................................................................................................................................ 43 void _P3(uchar x) ............................................................................................................................. 43 { ............................................................................................................................................................ 43 p30 = x&0x01; ..................................................................................................................................... 43 p31 = (x&0x02)>>1; ........................................................................................................................... 43 p32 = (x&0x04)>>2; ........................................................................................................................... 43 p33 = (x&0x08)>>3; ........................................................................................................................... 43 p34 = (x&0x10)>>4; ........................................................................................................................... 43 p35 = (x&0x20)>>5; ........................................................................................................................... 43 p36 = (x&0x40)>>6; ........................................................................................................................... 43 p37 = (x&0x80)>>7; ........................................................................................................................... 43 } ............................................................................................................................................................ 43 XXVII

-

void main() ......................................................................................................................................... 43 { ............................................................................................................................................................ 43 sinter(); ............................................................................................................................................. 43 while(1){ ............................................................................................................................................. 43 clear(0); ............................................................................................................................................. 43 /*play list*/ ..................................................................................................................................... 43 flash_1(); ........................................................................................................................................... 43 clear(0); ............................................................................................................................................. 43 flash_2(); ........................................................................................................................................... 43 flash_3(); ........................................................................................................................................... 43 flash_4(); ........................................................................................................................................... 43 flash_4(); ........................................................................................................................................... 43 flash_5(); ........................................................................................................................................... 43 flash_5(); ........................................................................................................................................... 43 flash_6(); ........................................................................................................................................... 43 flash_7(); ........................................................................................................................................... 43 flash_8(); ........................................................................................................................................... 43 flash_9(); ........................................................................................................................................... 43 flash_10(); ......................................................................................................................................... 43 clear (0); ........................................................................................................................................... 43 flash_11(); ......................................................................................................................................... 43 flash_9(); ........................................................................................................................................... 43 flash_5(); ........................................................................................................................................... 43 flash_7(); ........................................................................................................................................... 44 flash_5(); ........................................................................................................................................... 44 flash_6(); ........................................................................................................................................... 44 flash_8(); ........................................................................................................................................... 44 flash_9(); ........................................................................................................................................... 44 flash_10(); ......................................................................................................................................... 44 } ............................................................................................................................................................ 44 } ............................................................................................................................................................ 44 P0; 573 in ....................................................................................................................................... 44 P1; uln2803 ....................................................................................................................................... 44 P2; 573 LE ......................................................................................................................................... 44 void print() interrupt 1 ............................................................................................................... 44 { ............................................................................................................................................................ 44 uchar i; ............................................................................................................................................... 44 static uchar layer=0; ..................................................................................................................... 44 P1=0;..................................................................................................................................................... 44 for (i=0;i<8;i++) ............................................................................................................................. 44 { ............................................................................................................................................................ 44 P2=1<-

} ............................................................................................................................................................ 44 P1=1<-

} ............................................................................................................................................................ 45 P0=1<基于单片机的光立方设计

刘荣

三明学院 09级 电子信息工程专业 福建三明 365004

摘要 本文介绍了一款基于STC12C5A60S2 单片机光立方的设计并阐述了整体设计思路,介绍了系

统软硬件设计的主要方法。系统采用的是8*8*8模式构成512个LED灯后组成的光立方,距离为14cm*14cm*20cm(长.宽.高)果。

[10]

,所设计的光立方驱动电路采用uln2803芯片,呈现出立体动画效

关键词 光立方;74HC573;单片机

XXX

-

XXXI

-

1绪论

课题研究的背景:

“光立方”一词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。由此,也掀起了光立方的设计与学习热潮,在原有的基础上不断增加难度,增加变换花样,吸引电子爱好者对其研究、创新。

事实上,“光立方”已经渗透到以下几个方面:照明类LED光效——户外景观照明展开的视觉装饰活动;信息传播类LED光效——各种类型的大屏幕点缀着人们的生活;光立方制作所需材料较常见,成本低廉、性价比高等优点具有较高的研究价值。

课题研究的意义:

本次毕业设计一改传统的平面流水灯的风格,而是从平面向立体发展,通过更宽广的三维空间呈现出更加绚丽的效果,直接冲击着人们审美视觉,不在停留在乏味的平面成像。设计并采用更优于C51的STC12C5A60S2 单片机,使系统具有更强大的功能和驱动能力。再者,从平面向立体这符合科技发展的要求,适应主流。3D8光立方主体部分由512LED灯组成,在制作过程中锻炼学习动手焊接能力,并以低成本,智能化产品对实现经济利益、商业价值的形成具有积极的推动作用。

论文研究内容与结构安排

本文研究的内容如下:

单片机控制模块:采用60K STC12C5A60S2控制核心,其它相关的外围电路构成本系统的模块; 时钟信号电路:采用普通晶体时钟源,其中晶体用的石英晶振;

显示模块:通过对单片机编程,利用程序来控制LED的亮灭,以达到动画的效果。 具体介绍内容安排如下:

第二章主要阐述系统方案的选择与论证,将系统分为主控模块、驱动模块、显示模块等,并分别对各模块方案进行了选择与论证。

第三章主要介绍了个硬件电路的设计,还对各单元实现的功能以及芯片引脚功能特点进行说明。 同时阐述整个系统的设计思路以及搭建方法。 第四章主要阐述主程序的编写以及整个软件的框架。

第五章阐述的是整个光立方系统的调试过程以及在调试过程中出现的软件、硬件问题。并阐述了解决这些问题的办法。

第六章主要对整个毕业设计的设计过程进行总结,并阐述了在制作过程中的收获和心得。

0

-

2总体设计

工作原理

本设计以STC12C5A60S2单片机为控制核心设计一个由512个蓝色LED灯组成的光立方。系统主要由主控、驱动、显示等模块构成。系统模块框图如图2-1:

图2-1 系统结构框图

各模块方案选择与论证 单片机主控制模块

方案一:采用常用的c51单片机作为主控芯片,由于c51只有8K的内存,而光立方需要形成多种动画程序量大,可能会有溢出的情况发生。所以不采用此方案。

方案二:采用51系列的增强型芯片60K STC12C5A60S2单片机作为主控芯片,其主要优点1.无法解密,采用第六代加密技术;2.超强抗干扰;3.内部集成高可靠复位电路,外部复位可用可不用;4.速度快,比8051快8-12倍 驱动模块

方案一:采用8个8050NPN三极管驱动,虽能起到反相的作用。但由于需要八个数量较多,对于整体布局效果不佳,影响美观。并且性价比不高,所以不采用此方案。

方案二:采用八重达林顿uln2803,1 至 8脚为8路输入,18 到 11脚为8路输出。驱动能力 500MA \\50V。因为整个光立方体由512个LED灯组成,所需电流也较大,并且一片芯片就能等效8个三极管的作用,大大缩小元器件占用空间。综上所述选择ULN2803芯片。 显示模块

方案一:由于我们常用的LED灯不容易聚光,光发散比较厉害点亮时相互之间将会有影响,容易影响视角效果。

[11]

[2]

;因此采用此方案。

1

-

方案二:我们放弃我们经常用的草帽型LED,采用的是白发雾状(乳型)蓝灯,工作电压为~,工作电流2mA~10mA。使用雾状的比较聚光,512个灯同时点亮时也同样能够达到动画的效果,如图2-2所示:

图2-2 雾面乳型LED灯

3 系统硬件电路设计与实现

硬件电路设计

本电路是由STC12C5A60S2单片机为控制核心,其和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,具有串口烧写编程功能,低功耗;时钟源电路有很多种,比如阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通晶体时钟源,其中晶体用12MHZ的石英晶振[12]。显示部份由显示部份由512个雾面LED灯组成来进行显示。

单片机最小系统

单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对STC12C5A60S2单片机来说, 最小系统一般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设备等(见图3-1)。

单片机的最小系统如下图所示:

[7]

[1]

2

-

图3-1单片机最小系统框图

图3-2 单片机最小系统

时钟电路

在设计时钟电路之前,让我们先了解下单片机上的时钟管脚:

XTAL1(19 脚) :芯片内部振荡电路输入端。 XTAL2(18 脚) :芯片内部振荡电路输出端。

XTAL1 和XTAL2 是输入和输出反相放大器,它可以被配置为使用石英晶振的片内振荡器。 内部方式的时钟电路如图3-3(a)所示,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。经过综合考虑,本设计中采用了 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。一般情况下选取33pF 的陶瓷电容就可以了。

[8]

[9]

3

-

外部方式的时钟电路如图3-3(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。

[15]

(a)内部方式时钟电路 (b)外部方式时钟电路

图3-3 时钟电路

另外值得一提的是检测晶振是否能够起振的方法可使用示波器能看到XTAL2 输出的非常好看的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压。 P0 口外接上拉电阻

STC12C5A60S2单片机的P0 端口为开漏输出,内部无上拉电阻(图3-6)。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号正常输出,一定要外接上拉电阻。

[16]

[13]

图3-6 P0端口的1位结构

驱动模块的设计

本设计采用的是ULN2803达林顿管驱动器进行驱动。 ULN2803,采用AP=DIP18,AFW=SOL18封装方式。

ULN2803是八重达林顿,1 至 8脚为8路输入,18 到 11脚为8路输出。驱动能力 500MA \\50V。应用时9脚接地,如果驱动感性负载,10脚接负载电源V+。输入的电平信号为0,或5V。输入0时,输出达林顿管截止。输入为5V电平时,输出达林顿饱和。输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作。 4

[5]

[8]

-

八路NPN连接晶体管阵系列特别适用于低逻辑电平数字电路如图3-7(诸如TTL, CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机工业中。所拥有的器件具有集电极开路输出和续流箱位二极管,用于抑制跃变。ULN2803的设计与标准TTL系列兼容,而ULN2804 最适于6至15伏高电平CMOS或PMOS。

[3]

[3]

(a)ULN2803引脚图 (b) ULN2803逻辑图 图3-7 ULN2803芯片

光立方整体设计思路 LED灯排序方式设计

将每层的LED排序如图3-8,D0,D1,D2,D3…D62,D63分别为个LED阵列实际排序方式,也

______

______

______

______

______

______

就是光立方的俯视图,对应下图分别是其数据信号OUT0,OUT1,OUT2,OUT3…OUT62,OUT63;

图3-8 3D8光立方效果图

5

-

LED灯接法方式设计

1.“光立方”是由8层这样布局的LED组成,每层位置排列全部一致,如图3-9 。每层LED的所有正极全部接到一起,然后连接74hc573的行扫描驱动电路,通过74hc573译码确定使能哪一层

3.各层同一位置LED的负极连接都一起,例如第一层的D0和第二、三、四…等层的D0的负极都

______

连接一起,然后再把它们接到OUT0上面,如图3-10。

图3-9 LED层与层的连接方式 图 3-10 LED负极与输出端连接方式

光立方搭建方法 将LED从点到线的搭建

首先制作一块搭建用的木板如图3-11,木板孔与孔直接的距离为,必须与电路板上的两空距离一致。将LED灯逐个安在板上,并对LED的脚进行折弯使正极引脚与负极的夹角为直角。最后将8个LED的阴极焊接在一起,如 图3-12。注意:弯折阴极脚时弯曲处尽量靠近灯体不要留太长,这样焊接阳极时不容易造成短路。

将LED从线到面的搭建

图3-11搭建木板 图3-12 已搭好的8个LED灯

进行八次上诉焊接后接下来就是将8束的

LED焊接起来。在从点到线时是将所有LED

的阴极连在一起,而这次则是将所有LED阳极弯折并依次连接,如图3-13。注意:由于焊接过程中将产生静电容易将LED烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具6

-

检测。同时检测灯与灯之间有没虚焊情况。

图3-13 已搭好的8排LED灯

将LED从面到体的搭建

最后一个步骤是将已焊好的8个面进行焊接,其方法是将之前8个面上的阴极对应位置依次焊接,最后留出的8个阴极与ULN2803的输出端进行连接,LED的阳极则与74hc573的数据输出端依次 连接,如图3-14。

图3-14 已搭好的8层LED灯

7

-

4 系统软件设计

主程序设计

程序主函数运行流程框图如图4-1。

图4-1 主程序框图

首先,将系统所需要的文件的宏定义文件包含进来。定义:74hc573控制输入模块 P0口;uln2803驱动模块 P1;74hc573控制输出模块 P2口。

初始化定时器0,延时5us,开中断,使其处于等待中断状态。接着,初始化光立方体,驱动光立方,利用扫描形式使光立方体的LED灯逐个点亮形成动画。

8

-

5 系统调试及结果分析

系统调试 硬件测试

本系统由于用到较多的LED灯,对于焊接和调试造成一定的难度,512个灯中只要有一个出问题替换工作将是非常的麻烦,必须把八层的LED拆开再取出坏的LED重新焊接。在对电路检查时由于本设计电路版面较大,检查起来并非易事。

在设计过程中发现了一些问题。以下为主要的问题及解决方案:

1、本系统由于程序量要求大,512个LED灯需要较高的驱动电流和较大工作量的编程,传统的8K C51单片机将导致程序溢出无法编译。

解决方法:采用单片机STC12C5A60S2 单片机,STC12C5A60S2单片机内部就自带高达60K FLASH ROM,并具有自带的AD功能,对光立方功能拓展提供了更宽广的平台。

2、本系统在硬件测试时发现光立方体的LED灯普遍偏暗,电流较低,无法达到预期的效果。 解决方法:首先先进行电路的检测,测试是否存在短路、短路情况。发现没有问题,接着在io口上接了上拉电阻,问题得以解决。

3、调试过程中烧入全亮程序发现有一束八个灯同时不亮。

解决方法:由于74hc573控制着光立方体XY灯的亮灭,一个引脚控制八个LED,由此原理可以猜测可能是其中一个控制其亮灭的74hc573引脚出问题。通过与其他引脚的电压对比,发现控制这八个灯的引脚电压明显偏低,经仔细检查果真由于线路断路造成,问题得以解决。[6]

4、在调试过程中发现插上已烧入程序的单片机后对光立方主体起不到控制的作用。

解决方法:根据经验猜测是单片机引脚没起作用造成的。后来换了块单片机发现动画出来了,由此判断是单片机烧坏造成。

5、调试过程中发现uln2803不起作用,将其输入端口直接接VCC却不能逐层点亮。 解决方法:根据经验判断为驱动芯片烧坏,换了块芯片问题还是还是没有得以解决[4]。于是开始检测与之相连的最小系统,通过测试最小系统上的电容等元器件后发现问题依然存在。但由于整体布局中线路较多遂放弃一个个器件进行检查而是单独外接一块最小系统来对比论证,通过实践得知问题确实出现在原先的最小系统上。

6、由于电烙铁工作时会有较小的静电产生,很容易烧坏LED灯。

解决问题:问题可能处在电烙铁在工作过程中产生的静电上,以下为减少静电影响的方法:1.将烙铁头跟接地线相连,以泄放产生的静电。2.如果烙铁没有接地线那就光脚才在地上也会降低静电的影响。把八个灯归为一组,焊完组个检查,焊完个整排再进行检查,把LED坏的概率降到最低。

9

-

软件测试

3D8光立方主要是通过程序来控制光立方体从而达到多种动画变化的效果。由于要形成多样的3D动画,在变成过程中也出现了不少的问题。最后经过多次的细心修改,顺利的完成了编程工作。主要问题有:

1、烧入程序后,不能显示完整的动画。

解决方法:重新检查程序,检查对应的引脚定义有没错。再者检查延时是否过快导致动画不明显。

2、第一次烧入程序时用<>作为头文件名,发现程序溢出编译不通过并且检查程序无错误。 解决方法:该问题可能是52单片机为8K内存,而本光立方设计程序达到35K远远超出52单片机的内存,于是将头文件名改为<>,并配合keil4进行编译,编译通过。

结果分析

本设计通过硬件设备和软件完美配合,总共呈现十一个连续的动画效果。经过多次的反复测试与分析,所呈现的动画与程序中预期的效果吻合,符合设计要求。在软硬件测试过程中让我们对原先设计的电路的原理及功能进一步熟悉,并对各电路模块和相关的芯片联合工作更加了解。在这个调试的过程中虽然挺枯燥无味,但锻炼我们发现问题并解决问题的能力,对我们的专业知识起到了温故知新的作用。

10

-

6结论

经过一周的选题,最后和我的导师商讨后定下了毕业设计的题目:基于单片机的光立方设计。

本设计采用60K STC12C5A60S2单片机作为主控芯片,通过程序来实现立体动画。本设计的亮点是将原先平面的流水灯延伸到立体空间,使实现的动画更能冲击视觉效果,拥有更广阔的市场价值。

刚确定这个课题时欣喜与茫然同在,对于网上各种各样的光立方成品让人赞叹不已,也想能通过亲自来制作一个属于自己的光立方。与此同时,光立方毕竟是个新鲜产物,网上较多的是成品材料并没有太多的经验可以引以为鉴。在制作过程中遇到许多的困难,就比如说怎么把那512个LED从点到线、从线到面、从面到体就是必须要克服的难题。但是功夫不负有心人,经过指导老师的精心指导以及同学们的热心帮助,终于完成了硬件和软件的测试。

通过这次的毕业设计,过程中很多我不懂的问题都会主动查阅资料来寻找答案,在此将大学所学的专业知识进行了重温并付付诸实践,从而使我的专业涵养得到了提高。由于此设计需要较高的焊接技巧,制作过程中也无形锻炼了自己的动手能力。这将对于毕业后在社会工作中将是一笔宝贵的财富。

当然,通过本次的设计也发现自身的不足以及知识漏洞。比如对于51单片机升级版的单片机的功能不能熟练应用,和相应芯片的结合应用不熟练。在绘制PCB的过程中也遇到了问题,虽然之前有学过该门课程但是应用起来还是挺吃力的。对模电、数电的知识还有带提高,而且编写程序的能力还有较大的提升空间。我希望在今后的工作中能够逐渐得以改善,不要把知识面局限在书本上应多付诸实践。

整个毕业设计过程有苦有甜,也将为大学的学生生涯画上浓厚的一笔。当然,我仍然要不断地充实自己,争取在所学领域有所作为,使自己的知识和技能会更上一层楼。

11

-

参考文献

[1]阎石. 数字电子技术基础第四版[M].北京:高等教育出版社, :77 -174 [2] 张瑞玲.单片机原理与应用 西北工业大学出版社2010年12月

[3]刘守义主编. 数字电子技术(第二版) [M]. 西安电子科技大学出版社, 2007,7 [4]陈堂敏.刘焕平主编.单片机原理与应用.北京:北京理工大学出版社,2007 [5]余孟尝《数字电子技术基础简明教程》·高等教育出版社

[6]邓元庆.数字电路与逻辑设计[M].北京:电子工业出版社, 1995:49- 195. [7]肖洪兵.跟我学用单片机[M].北京航空航天大学出版社,2002 [8]杨元挺《电子技术技能训练》·电子工业出版社

[9]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009

[10]潘永雄.《新编单片机原理与应用》,西安:西安电子科技大学出版社,2003 [11]童诗白,华成英,《模拟电子技术基础》,北京:高等教育出版社,2000 [12]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,

[13]冯建华,赵亮.单片机应用系统设计与产品开发[M].北京:人民邮电出版社,2004 [14]付晓光.单片机原理与使用技术[M].清华大学出版社,ISBN7- 81082- 169- 5TP [15]胡汉才《单片机原理及其接口技术》·(第2版) 北京:清华大学出版社 [16]李中发《数字电子技术基础》·中国水利水电出版社

12

-

Microcontroller-based light cube design

LiuRong

Sanming College 09 Electronic and Information Engineering, Fujian Sanming 365004 Abstract This paper presents a based light cube design STC12C5A60S2 microcontroller and

elaborated the overall design of the system hardware is described in detail, the specific implementation process of software design. The system uses 8 * 8 * 8 mode, a distance of 14cm * 14cm * 20cm (long wide high) optical the cubic drive circuit designed using uln2803 off time, and ultimately makes the entire three-dimensional show a different shape and pattern it presents a beautiful, colorful effects!

Keywords Light Cube; 74HC573; microcontroller

13

-

致谢语

转眼间,我已在三明学院度度过了四个年头。四年,一段不短的时间,四年的光阴让我成长,让我从青涩走向成熟。特别是,在读大四的这年,让我的人生有了新的起航。

大学四年的学习以今天的毕业论文画了一个句号。本研究及学位论文是在我的导师伍坪老师的亲切关怀和悉心指导下完成的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了伍坪老师很多的宝贵时间和精力。每次遇到难题,我最先做的就是向伍老师寻求帮助,而伍老师每次不管忙或闲,总会抽空来找我面谈,然后一起商量解决的办法。伍老师平日里工作繁多,但我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。在此谨向伍老师致以诚挚的谢意和崇高的敬意。

同时,本篇毕业论文的写作也得到了班级同学的热情帮助。感谢在整个毕业设计期间给予过我帮助的伙伴们。在此,我再一次真诚地向帮助过我的老师和同学表示感谢!

14

-

附 录

1、实物图:

15

-

2、系统原理图:

3、系统PCB图:

16

-

程序清单

#include <> #include <>

#define uchar unsigned char

#define uint unsigned int sbit p30 = P1^0; sbit p31 = P1^1; sbit p32 = P1^2; sbit p33 = P1^3; sbit p34 = P1^4; sbit p35 = P1^5; sbit p36 = P1^6; sbit p37 = P1^7; uchar display[8][8];

/*rank:A,1,2,3,4,I,心,U*/

uchar code table_cha[8][8]={0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0x66,0x30,0x18,0xc,0x6,0xf6,0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c};

/*the \"ideasoft\"*/

uchar code table_id[40]={0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x,0x,0x00,0xf8,0x27,0x27,0xf8,0x00,0x8f,0x,0x,0xf9,0x00,0xff,0x81,0x81,0xff,0x00,0xff,0x09,0x09,0x09,0x01,0x0,0x01,0x01,0xff,0x01,0x01,0x00};

/*railway*/

uchar code dat[128]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4};

/*railway 2*/

uchar code dat2[28]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4};

/*railway 3*/

uchar code dat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x65,0x,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10};

/*3p char*/

uchar code table_3p[3][8]={0xff,0x,0xf5,0x93,0x93,0xf5,0x,0xff,0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18};

/*initializtion

That is to initialize the program .

It is write to set the timer in c52 mcu.

So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/

void sinter() {

IE=0x82;

TCON=0x01;

TH0=0xc0;

TL0=0;

TR0=1; } 17

-

void delay5us(void) 误差 STC 1T {

unsigned char a,b; for(b=7;b>0;b--)

for(a=2;a>0;a--); }

void delay(uint i)

{

while (i--){

delay5us();}12t的mcu 注释这个延时即可 }

/*To judge the num bit*/

uchar judgebit(uchar num,uchar b) {

char n;

num=num&(1<if (num)

n=1;

else

n=0;

return n; }

/*To figure out the round number*/

uchar abs(uchar a) {

uchar b;

b=a/10;

a=a-b*10;

if (a>=5)

b++;

return b; }

/*To figure out the absolute value*/

uchar abss(char a) {

if (a<0)

a=-a;

return a; }

/*The function can comparat the character.

And remove the big one to the back.*/

void max(uchar *a,uchar *b) {

uchar t;

if ((*a)>(*b)) {

t=(*a); 18

-

(*a)=(*b);

(*b)=t; } }

/*The function is to figure out the max number and return it.*/

uchar maxt(uchar a,uchar b,uchar c) {

if (aa=b;

if (aa=c;

return a; }

void clear(char le) {

uchar i,j;

for (j=0;j<8;j++)

{

for (i=0;i<8;i++)

display[j][i]=le;

} }

void trailler(uint speed) {

char i,j;

for (i=6;i>=-3;i--)

{

if (i>=0)

{

for (j=0;j<8;j++)

display[j][i]=display[j][i+1];

}

if (i<4)

{

for (j=0;j<8;j++)

display[j][i+4]=0;

}

delay(speed);

} }

void point(uchar x,uchar y,uchar z,uchar le) {

uchar ch1,ch0;

ch1=1<-

ch0=~ch1;

if (le)

display[z][y]=display[z][y]|ch1;

else

display[z][y]=display[z][y]&ch0; }

void type(uchar cha,uchar y)

{

uchar xx;

for (xx=0;xx<8;xx++)

{

display[xx][y]=table_cha[cha][xx];

} }

/*The first variable is the distance from the midpoint.

The second is the layer.

the third is the flash speed of the time between each two point.

The forth is the enable io,it controls weather draw or claen.*/

void cirp(char cpp,uchar dir,uchar le) {

uchar a,b,c,cp;

if ((cpp<128)&(cpp>=0))

{

if (dir)

cp=127-cpp;

else

cp=cpp;

a=(dat[cp]>>5)&0x07;

b=(dat[cp]>>2)&0x07;

c=dat[cp]&0x03;

if (cpp>63)

c=7-c;

point (a,b,c,le);

} }

void line(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le) {

char t,a,b,c,a1,b1,c1,i;

a1=x2-x1;

b1=y2-y1;

c1=z2-z1;

t=maxt(abss(a1),abss(b1),abss(c1));

a=x1*10; 20

-

b=y1*10;

c=z1*10;

a1=a1*10/t;

b1=b1*10/t;

c1=c1*10/t;

for (i=0;i{

point(abs(a),abs(b),abs(c),le);

a+=a1;

b+=b1;

c+=c1;

}

point(x2,y2,z2,le); }

void box(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) {

uchar i,j,t=0;

max(&x1,&x2);

max(&y1,&y2);

max(&z1,&z2);

for (i=x1;i<=x2;i++)

t|=1<if (!le)

t=~t;

if (fill)

{

if (le)

{

for (i=z1;i<=z2;i++)

{

for (j=y1;j<=y2;j++)

display[j][i]|=t;

}

}

else

{

for (i=z1;i<=z2;i++)

{

for (j=y1;j<=y2;j++)

display[j][i]&=t;

}

}

}

else 21

-

{

if (le)

{

display[y1][z1]|=t;

display[y2][z1]|=t;

display[y1][z2]|=t;

display[y2][z2]|=t;

}

else

{

display[y1][z1]&=t;

display[y2][z1]&=t;

display[y1][z2]&=t;

display[y2][z2]&=t;

}

t=(0x01<if (!le)

t=~t;

if (le)

{

for (j=z1;j<=z2;j+=(z2-z1))

{

for (i=y1;i<=y2;i++)

display[i][j]|=t;

}

for (j=y1;j<=y2;j+=(y2-y1))

{

for (i=z1;i<=z2;i++)

display[j][i]|=t;

}

}

else

{

for (j=z1;j<=z2;j+=(z2-z1))

{

for (i=y1;i<=y2;i++)

{

display[i][j]&=t;

}

}

for (j=y1;j<=y2;j+=(y2-y1))

{

for (i=z1;i<=z2;i++) 22

-

{

display[j][i]&=t;

}

}

}

} }

void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) {

uchar i;

max(&z1,&z2);

if (fill)

{

for (i=z1;i<=z2;i++)

{

line (x1,y1,i,x2,y2,i,le);

}

}

else

{

line (x1,y1,z1,x2,y2,z1,le);

line (x1,y1,z2,x2,y2,z2,le);

line (x2,y2,z1,x2,y2,z2,le);

line (x1,y1,z1,x1,y1,z2,le);

} }

void poke(uchar n,uchar x,uchar y) {

uchar i;

for (i=0;i<8;i++)

{

point(x,y,i,judgebit(n,i));

} }

void boxtola(char i,uchar n) {

if ((i>=0)&(i<8))

{

poke(n,0,7-i);

}

if ((i>=8)&(i<16))

{

poke(n,i-8,0); 23

-

}

if ((i>=16)&(i<24))

{

poke(n,7,i-16);

} }

void rolldisplay(uint speed) {

uchar j;

char i,a;

for (i=23;i>-40;i--)

{

for (j=0;j<40;j++)

{

a=i+j;

if ((a>=0)&(a<24))

boxtola(a,table_id[j]);

}

delay(speed);

} }

void roll_apeak_yz(uchar n,uint speed) {

uchar i;

switch(n)

{

case 1:

for (i=0;i<7;i++)

{

display[i][7]=0;

display[7][6-i]=255;

delay(speed);

};

break;

case 2:

for (i=0;i<7;i++)

{

display[7][7-i]=0;

display[6-i][0]=255;

delay(speed);

};

break;

case 3: 24

-

for (i=0;i<7;i++)

{

display[7-i][0]=0;

display[0][i+1]=255;

delay(speed);

};

break;

case 0:

for (i=0;i<7;i++)

{

display[0][i]=0;

display[i+1][7]=255;

delay(speed);

};

} }

void roll_apeak_xy(uchar n,uint speed) {

uchar i;

switch(n)

{

case 1:

for (i=0;i<7;i++)

{

line(0,i,0,0,i,7,0);

line(i+1,7,0,i+1,7,7,1);

delay(speed);

};

break;

case 2:

for (i=0;i<7;i++)

{

line(i,7,0,i,7,7,0);

line(7,6-i,0,7,6-i,7,1);

delay(speed);

};

break;

case 3:

for (i=0;i<7;i++)

{

line(7,7-i,0,7,7-i,7,0);

line(6-i,0,0,6-i,0,7,1);

delay(speed); 25

-

};

break;

case 0:

for (i=0;i<7;i++)

{

line(7-i,0,0,7-i,0,7,0);

line(0,i+1,0,0,i+1,7,1);

delay(speed);

};

} }

void roll_3_xy(uchar n,uint speed) {

uchar i;

switch(n)

{

case 1:

for (i=0;i<8;i++)

{

box_apeak_xy (0,i,0,7,7-i,7,1,1);

delay(speed);

if (i<7)

box_apeak_xy (3,3,0,0,i,7,1,0);

};

break;

case 2:

for (i=0;i<8;i++)

{

box_apeak_xy (7-i,0,0,i,7,7,1,1);

delay(speed);

if (i<7)

box_apeak_xy (3,4,0,i,7,7,1,0);

};

break;

case 3:

for (i=0;i<8;i++)

{

box_apeak_xy (0,i,0,7,7-i,7,1,1);

delay(speed);

if (i<7)

box_apeak_xy (4,4,0,7,7-i,7,1,0);

};

break;

case 0: 26

-

for (i=0;i<8;i++)

{

box_apeak_xy (7-i,0,0,i,7,7,1,1);

delay(speed);

if (i<7)

box_apeak_xy (4,3,0,7-i,0,7,1,0);

};

} }

void trans(uchar z,uint speed) {

uchar i,j;

for (j=0;j<8;j++)

{

for (i=0;i<8;i++)

{

display[z][i]>>=1;

}

delay(speed);

} }

void tranoutchar(uchar c,uint speed) {

uchar i,j,k,a,i2=0;

for (i=0;i<8;i++)

{

if (i<7)

box_apeak_xy (i+1,0,0,i+1,7,7,1,1);

box_apeak_xy (i2,0,0,i2,7,7,1,0);

a=0;

i2=i+1;

for (j=0;j<=i;j++)

{

a=a|(1<}

for (k=0;k<8;k++)

{

display[k][3]|=table_cha[c][k]&a;

display[k][4]|=table_cha[c][k]&a;

}

delay(speed);

} } 27

-

void transss() {

uchar i,j;

for (i=0;i<8;i++)

{

for (j=0;j<8;j++)

display[i][j]<<=1;

} }

/*From now on,the function below is to display the flash.*/

void flash_1() {

clear(0);

type(1,0);

delay(60000);

type(2,0);

delay(60000);

type(3,0);

delay(60000);

type(4,0);

delay(60000);

delay(60000);

clear(0);

rolldisplay(30000);

type(0,7);

delay(60000);

trailler(6000);

delay(60000); }

void flash_2() {

uchar i;

for (i=129;i>0;i--)

{

cirp(i-2,0,1);

delay(8000);

cirp(i-1,0,0);

}

delay(8000);

for (i=0;i<136;i++)

{

cirp(i,1,1); 28

-

delay(8000);

cirp(i-8,1,0);

}

delay(8000);

for (i=129;i>0;i--)

{

cirp(i-2,0,1);

delay(8000);

}

delay(8000);

for (i=0;i<128;i++)

{

cirp(i-8,1,0);

delay(8000);

}

delay(60000); }

void flash_3() {

char i;

for (i=0;i<8;i++)

{

box_apeak_xy(0,i,0,7,i,7,1,1);

delay(20000);

if (i<7)

box_apeak_xy(0,i,0,7,i,7,1,0);

}

for (i=7;i>=0;i--)

{

box_apeak_xy(0,i,0,7,i,7,1,1);

delay(20000);

if (i>0)

box_apeak_xy(0,i,0,7,i,7,1,0);

}

for (i=0;i<8;i++)

{

box_apeak_xy(0,i,0,7,i,7,1,1);

delay(20000);

if (i<7)

box_apeak_xy(0,i,0,7,i,7,1,0);

} }

void flash_4() 29

-

{

char i,j,an[8];

for (j=7;j<15;j++)

an[j-7]=j;

for (i=0;i<=16;i++)

{

for (j=0;j<8;j++)

{

if ((an[j]<8)&(an[j]>=0))

line(0,an[j],j,7,an[j],j,1);

}

for (j=0;j<8;j++)

{

if (((an[j]+1)<8)&(an[j]>=0))

line(0,an[j]+1,j,7,an[j]+1,j,0);

}

for (j=0;j<8;j++)

{

if (an[j]>0)

an[j]--;

}

delay(15000);

}

for (j=0;j<8;j++)

an[j]=1-j;

for (i=0;i<=16;i++)

{

for (j=0;j<8;j++)

{

if ((an[j]<8)&(an[j]>=0))

line(0,an[j],j,7,an[j],j,1);

}

for (j=0;j<8;j++)

{

if (((an[j]-1)<7)&(an[j]>0))

line(0,an[j]-1,j,7,an[j]-1,j,0);

}

for (j=0;j<8;j++)

{

if (an[j]<7)

an[j]++;

}

delay(15000);

} 30

-

}

void flash_5() {

uint a=15000;a=delay

char i=8,j,an[4];

1

for (j=7;j<11;j++)

an[j-7]=j;

while(i--)

{

for (j=0;j<4;j++)

{

if (an[j]<8)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]<7)

box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (an[j]>3)

an[j]--;

}

delay(a);

}

2

i=3;

for (j=0;j<4;j++)

an[j]=5-j;

while(i--)

{

for (j=1;j<4;j++)

{

if (an[j]<4)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]<3)

box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (an[j]>0)

an[j]--;

}

delay(a); 31

-

}

3

i=3;

for (j=1;j<4;j++)

an[j]=4-j;

while(i--)

{

for (j=1;j<4;j++)

{

if (an[j]>=0)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]>0)

box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);

}

for (j=1;j<4;j++)

{

if (an[j]<3)

an[j]++;

}

delay(a);

}

4

i=3;

for (j=0;j<4;j++)

an[j]=j+1;

while(i--)

{

for (j=1;j<4;j++)

{

if (an[j]>3)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]>3)

box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);

}

for (j=0;j<4;j++)

an[j]++;

delay(a);

}

5

i=3;

for (j=3;j<6;j++)

an[j-2]=j;

while(i--) 32

-

{

for (j=1;j<4;j++)

{

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (an[j]>3)

an[j]--;

}

delay(a);

}

6

i=3;

for (j=0;j<4;j++)

an[j]=5-j;

while(i--)

{

for (j=1;j<4;j++)

{

if (an[j]<4)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]<3)

box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (an[j]>0)

an[j]--;

}

delay(a);

}

7

i=3;

for (j=0;j<4;j++)

an[j]=3-j;

an[0]=2;

while(i--)

{

for (j=0;j<3;j++)

{

if (an[j]>=0) 33

-

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]>=0)

box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (j<5-i)

an[j]--;

}

delay(a);

}

8

i=10;

for (j=0;j<4;j++)

an[j]=j-2;

while(i--)

{

for (j=0;j<4;j++)

{

if (an[j]>=0)

box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);

if (an[j]>=0)

box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0);

}

for (j=0;j<4;j++)

{

if (an[j]<7)

an[j]++;

}

delay(a);

} }

void flash_6() {

uchar i,j,k,z;

roll_apeak_yz(1,10000);

roll_apeak_yz(2,10000);

roll_apeak_yz(3,10000);

roll_apeak_yz(0,10000);

roll_apeak_yz(1,10000);

roll_apeak_yz(2,10000);

roll_apeak_yz(3,10000);

for (i=0;i<3;i++)

{ 34

-

for (j=0;j<8;j++)

{

for (k=0;k<8;k++)

{

if ((table_3p[i][j]>>k)&1)

{

for (z=1;z<8;z++)

{

point (j,7-k,z,1);

if (z-1)

point (j,7-k,z-1,0);

delay(5000);

}

}

}

}

trans(7,15000);

} }

void flash_7() {

uchar i;

uint a=3000;

roll_apeak_yz(0,10000);

roll_apeak_yz(1,10000);

roll_apeak_yz(2,10000);

roll_apeak_yz(3,10000);

roll_apeak_yz(0,10000);

roll_apeak_yz(1,10000);

roll_apeak_yz(2,10000);

roll_apeak_yz(3,10000);

roll_apeak_yz(0,10000);

roll_apeak_yz(1,10000);

roll_apeak_yz(2,10000);

roll_apeak_xy(0,10000);

roll_apeak_xy(1,10000);

roll_apeak_xy(2,10000);

roll_apeak_xy(3,10000);

roll_apeak_xy(0,10000);

roll_apeak_xy(1,10000);

roll_apeak_xy(2,10000);

roll_apeak_xy(3,10000); 35

-

for (i=0;i<8;i++)

{

box_apeak_xy (0,i,0,7-i,i,7,1,1);

delay(a);

}

delay(30000);

roll_3_xy(0,a);

delay(30000);

roll_3_xy(1,a);

delay(30000);

roll_3_xy(2,a);

delay(30000);

roll_3_xy(3,a);

delay(30000);

roll_3_xy(0,a);

delay(30000);

roll_3_xy(1,a);

delay(30000);

roll_3_xy(2,a);

delay(30000);

roll_3_xy(3,a);

for (i=7;i>0;i--)

{

box_apeak_xy(i,0,0,i,7,7,1,0);

delay(a);

} }

void flash_8() {

uchar i;

for (i=5;i<8;i++)

{

tranoutchar(i,10000);

delay(60000);

delay(60000);

} }

void flash_9() {

char i;

uchar j,an[8],x,y,t,x1,y1;

for (i=0;i<8;i++)

{

box_apeak_xy (i,0,0,i,7,7,1,1); 36

-

if (i)

box_apeak_xy (i-1,0,0,i-1,7,7,1,0);

delay(10000);

}

roll_apeak_xy(3,10000);

roll_apeak_xy(0,10000);

roll_apeak_xy(1,10000);

for (i=0;i<7;i++)

{

line(6-i,6-i,0,6-i,6-i,7,1);

line(i,7,0,i,7,7,0);

delay(10000);

}

for (i=0;i<8;i++)

an[i]=14;

for (i=0;i<85;i++)

{

clear(0);

for (j=0;j<8;j++)

{

t=an[j]%28;

x=dat2[t]>>5;

y=(dat2[t]>>2)&0x07;

t=(an[j]-14)%28;

x1=dat2[t]>>5;

y1=(dat2[t]>>2)&0x07;

line(x,y,j,x1,y1,j,1);

}

for (j=0;j<8;j++)

{

if ((i>j)&(j>i-71))

an[j]++;

}

delay(5000);

}

for (i=0;i<85;i++)

{

clear(0);

for (j=0;j<8;j++)

{

t=an[j]%28;

x=dat2[t]>>5;

y=(dat2[t]>>2)&0x07; 37

-

t=(an[j]-14)%28;

x1=dat2[t]>>5;

y1=(dat2[t]>>2)&0x07;

line(x,y,j,x1,y1,j,1);

}

for (j=0;j<8;j++)

{

if ((i>j)&(j>i-71))

an[j]--;

}

delay(5000);

}

for (i=0;i<29;i++)

{

clear(0);

t=an[0]%28;

x=dat2[t]>>5;

y=(dat2[t]>>2)&0x07;

t=(an[0]-14)%28;

x1=dat2[t]>>5;

y1=(dat2[t]>>2)&0x07;

box_apeak_xy(x,y,0,x1,y1,7,0,1);

box_apeak_xy(x,y,1,x1,y1,6,0,1);

an[0]++;

delay(5000);

}

for (i=0;i<16;i++)

{

clear(0);

t=an[0]%28;

x=dat2[t]>>5;

y=(dat2[t]>>2)&0x07;

t=(an[0]-14)%28;

x1=dat2[t]>>5;

y1=(dat2[t]>>2)&0x07;

box_apeak_xy(x,y,0,x1,y1,7,1,1);

an[0]--;

delay(5000);

}

for (i=0;i<8;i++)

{

line(i,i,0,0,0,i,0); 38

-

delay(5000);

}

for (i=1;i<7;i++)

{

line(i,i,7,7,7,i,0);

delay(5000);

}

for (i=1;i<8;i++)

{

clear(0);

box(7,7,7,7-i,7-i,7-i,0,1);

delay(10000);

}

for (i=1;i<7;i++)

{

clear(0);

box(0,0,0,7-i,7-i,7-i,0,1);

delay(10000);

}

for (i=1;i<8;i++)

{

clear(0);

box(0,0,0,i,i,i,0,1);

delay(10000);

}

for (i=1;i<7;i++)

{

clear(0);

box(7,0,0,i,7-i,7-i,0,1);

delay(10000);

}

for (i=1;i<8;i++)

{

box(7,0,0,7-i,i,i,1,1);

delay(10000);

}

for (i=1;i<7;i++)

{

clear(0);

box(0,7,7,7-i,i,i,1,1);

delay(10000);

} } 39

-

void flash_10() {

uchar i,j,an[4],x,y,t;

for (i=1;i<7;i++)

{

clear(0);

box(0,6,6,1,7,7,1,1);

box(i,6,6-i,i+1,7,7-i,1,1);

box(i,6,6,i+1,7,7,1,1);

box(0,6,6-i,1,7,7-i,1,1);

box(0,6-i,6,1,7-i,7,1,1);

box(i,6-i,6-i,i+1,7-i,7-i,1,1);

box(i,6-i,6,i+1,7-i,7,1,1);

box(0,6-i,6-i,1,7-i,7-i,1,1);

delay(30000);

}

for (i=0;i<4;i++)

{

an[i]=6*i;

}

for (i=0;i<35;i++)

{

clear(0);

for(j=0;j<4;j++)

{

t=an[j]%24;

x=dat3[t]>>4;

y=dat3[t]&0x0f;

box(x,y,0,x+1,y+1,1,1,1);

box(x,y,6,x+1,y+1,7,1,1);

}

for (j=0;j<4;j++)

an[j]++;

delay(10000);

}

for (i=0;i<35;i++)

{

clear(0);

for(j=0;j<4;j++)

{

t=an[j]%24;

x=dat3[t]>>4;

y=dat3[t]&0x0f; 40

-

box(x,y,0,x+1,y+1,1,1,1);

box(x,y,6,x+1,y+1,7,1,1);

}

for (j=0;j<4;j++)

an[j]--;

delay(10000);

}

for (i=0;i<35;i++)

{

clear(0);

for(j=0;j<4;j++)

{

t=an[j]%24;

x=dat3[t]>>4;

y=dat3[t]&0x0f;

box(x,0,y,x+1,1,y+1,1,1);

box(x,6,y,x+1,7,y+1,1,1);

}

for (j=0;j<4;j++)

an[j]++;

delay(10000);

}

for (i=0;i<36;i++)

{

clear(0);

for(j=0;j<4;j++)

{

t=an[j]%24;

x=dat3[t]>>4;

y=dat3[t]&0x0f;

box(x,0,y,x+1,1,y+1,1,1);

box(x,6,y,x+1,7,y+1,1,1);

}

for (j=0;j<4;j++)

an[j]--;

delay(10000);

}

for (i=6;i>0;i--)

{

clear(0);

box(0,6,6,1,7,7,1,1);

box(i,6,6-i,i+1,7,7-i,1,1); 41

-

box(i,6,6,i+1,7,7,1,1);

box(0,6,6-i,1,7,7-i,1,1);

box(0,6-i,6,1,7-i,7,1,1);

box(i,6-i,6-i,i+1,7-i,7-i,1,1);

box(i,6-i,6,i+1,7-i,7,1,1);

box(0,6-i,6-i,1,7-i,7-i,1,1);

delay(30000);

} }

void flash_11() {

uchar i,j,t,x,y;

uchar code daa[13]={0,1,2,0x23,5,6,7,6,5,0x23,2,1,0};

for (j=0;j<5;j++)

{

for (i=0;i<13;i++)

{

if (daa[i]>>4)

{

t=daa[i]&0x0f;

line (0,0,t+1,0,7,t+1,1);

}

else

t=daa[i];

line (0,0,t,0,7,t,1);

transss();

delay(10000);

}

}

for (j=1;j<8;j++)

{

if (j>3)

t=4;

else

t=j;

for (i=0;i<24;i+=j)

{

x=dat3[i]>>4;

y=dat3[i]&0x0f;

box_apeak_xy(0,x,y,0,x+1,y+1,1,1);

transss();

delay(10000);

}

} 42

-

for (j=1;j<8;j++)

{

if (j>3)

t=4;

else

t=j;

for (i=0;i<24;i+=j)

{

x=dat3[i]>>4;

y=dat3[i]&0x0f;

point (0,x,y,1);

transss();

delay(10000);

}

} }

void _P3(uchar x) {

p30 = x&0x01;

p31 = (x&0x02)>>1; p32 = (x&0x04)>>2; p33 = (x&0x08)>>3; p34 = (x&0x10)>>4; p35 = (x&0x20)>>5; p36 = (x&0x40)>>6; }

p37 = (x&0x80)>>7; void main() {

sinter();

clear(0); while(1){

/*play list*/

flash_1();

clear(0);

flash_2();

flash_3();

flash_4();

flash_4();

flash_5();

flash_5();

flash_6();

flash_7();

flash_8();

flash_9();

flash_10();

clear (0);

flash_11();

flash_9();

flash_5(); 43

-

flash_7();

flash_5();

flash_6();

flash_8();

flash_9();

flash_10();

} }

P0; 573 in P1; uln2803 P2; 573 LE

void print() interrupt 1 {

uchar i;

static uchar layer=0;

P1=0;

for (i=0;i<8;i++)

{

P2=1<delay(3);

P0=display[layer][i];

delay(3);

}

P1=1<if (layer<7)

layer++;

else

layer=0;

TH0=0xc0;

TL0=0; }

P0; 573 in p2 P1; uln2803 p0 P2; 573 LE p1

void print() interrupt 1 {

uchar i;

static uchar layer=0;

_P3(0);

for (i=0;i<8;i++)

{

P2=1<delay(3);

P0=display[layer][i];

delay(3); 44

-

}

_P3(1<if (layer<7)

layer++;

else

layer=0;

TH0=0xc0;

TL0=0; }

void print() interrupt 1 {

uchar i;

static uchar layer=0;

P0=0; for (i=0;i<8;i++) P1=0x00;

{ P2=display[layer][i];

P1=0x00;

delay(3);

P1=1<P0=1<if (layer<7)

layer++;

else

layer=0;

TH0=0xc0;

TL0=0xc0; }

45

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务