光立方程序8=8=8

合集下载

888光立方仿真

888光立方仿真

如此组成一个灯板,8 次循环下来,就全部灯都点亮了*/
}
void liang()
//点亮所有的灯
{
unsigned int i;
for(i=0;i<5000;i++)
{
DataPort=0x00; //先给行(灯板的公共端)输入数据
line_LATCH=1; //打开锁存,把数据 0x00 放进去
line_LATCH=0; //关闭锁存,阻止外部数据进来
DataPort=Data[8+i]; //把数组 Data[8~15]里的值依次传给第二灯板的 573 锁存器中 LATCH2=1;LATCH2=0;
DataPort=Data[16+i]; //把数组 Data[16~23]里的值依次传给第三灯板的 573 锁存器中 LATCH3=1;LATCH3=0;
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; unsigned char code laihui1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; unsigned char code laihui2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; unsigned char code laihui3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; unsigned char code laihui4[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; unsigned char code laihui5[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

推荐-3D光立方说明书 精品

推荐-3D光立方说明书 精品

3D光立方说明书摘要光立方是一个长、宽、高由8×8×8 个LED 灯组成的真实3D 立方体显示器。

其最大的特点,就是带给观赏者立体的超酷的3D视觉体验。

因此各大网站也充斥着各种各样的光立方版本。

但是这各种版本的光立方的制作方法都很复杂,而且成本也很高,而本设计与之相比则制作简单精美,成本低廉。

为保证光立方精美的外形,本设计还提供了一种光立方的制作模板,以确保将动手能力导致的美观差异降到最低。

为降低其成本,本设计采用了STC12C5A60S2单片机,这种单片机自带有A/D转换模块;使用的锁存器是常用的SN74HC573。

这样可以保证在降低制作成本的情况下,毫不影响作品的美观;再加上显示效果极佳的高亮雾面的蓝色方形LED,硬件电路无需添加额外的驱动和上拉电阻,即可实现其强大的功能:除了能显示3D 图形,还可以支持多级亮度和速度调整,允许用户自拓展音频显示功能,就像音乐显示器一样。

用户还可以在不改动硬件电路的情况下设计出自己喜欢的的自定义图形。

这些充分体现了制作成本低、显示效果好、功能完善的特点。

最后,经过软硬件调试,解决了一些硬件电路短路,程序报错的问题,完美地实现了多种图形动态显示,流畅的图形变换和音频显示的多种功能。

关键词:光立方制作模板音频显示 A/D转换ABSTRACTLight-cube is a long, wide, high is posed of 8 x 8 x 8 leds true 3 d volumetric display. Its biggest characteristic, is to bring the viewer stereo cool 3 d visual experience. So each big web site is filled with all kinds of cubic light version.But all versions of this light cubic method is very plex, and the cost is also high, and pared with this design is beautifully simple and low cost.In order to ensure the exquisite cubic shape, this design also provides a light cube production template, to ensure that the ability to appearance difference to a minimum.To reduce its cost, this design USES STC12C5A60S2 MCU, the MCU built-in A/D conversion module; Use the latch is SN74HC573 in mon use. So that in the case of lower production costs, not effect the beauty of the works; Plus showed excellent results highlighted square LED fog below in blue, don't need to add additional hardware circuit drive pull up resistance, and its powerful functions can be realized: in addition to display 3 d graphics, can support multiple levels of brightness and speed adjustment, allows the user to expand the audio display function, like music display. Users can also in the case of do not change the hardware circuit design their own custom graphics. These fully reflect the production of low cost, good effect of display, the characteristics of the function is perfect.Finally, after the hardware and software debugging, solve some of the short circuit hardware circuit, program error, perfect the dynamic variety of graphic display, smooth graphics transform and audio display a variety of functions.Key words: light-cube making stencil audio-display A/D conversion目录1、引言1.1研究意义LED射灯是指发出的光线是方向性的(directional)的LED灯泡, 主要类型有MR16,GU10, PAR series.LED球泡灯是指发出的光线为发散性的LED灯泡, 主要类型为:E27 base.按照功率来分, LED灯泡可分为: 小功率(主要为5mm LED生产的)和大功率(主要1 W, 3 W ,甚至5 W LED生产的)。

光立方制作教程

光立方制作教程

五一长假漫漫,时间很充分,正好有时间去干那些因为时间不足而搁置已久的一些想法,首先想到的是做一个光立方,器件年前就买了,因为时间问题被长久搁置了;之前论坛已经有人晒过,不过有的只是作品展示,在此我将详细的向大家解析一下光立方的制作流程,望大家喜欢;先上资料:首先是前期准备工作,器件的选取,我的器件清单如下:LED选取:如果有条件的话可以使用7色彩灯,视觉效果将会更好;或者是长方形发光二极管,方便焊接;制作前先按照下图对小灯进行弯折处理如果看不懂的话,请努力发挥自己的空间想象能力,之后就会豁然开朗的,这是一个漫长而痛苦的过程,建议每天睡前折一些,我断断续续干了近十天吧五一前虽然大块时间没有,但是每晚折小灯的时间绝对是有的实际焊接时,请注意变通,每一层都会有一行需要多弯一下的,以实现共阴处理;主要器件如下:先在万用板上规划一下光立方小灯之间的间隔,建议2CM为宜,用铅笔或者彩笔在板子上确定64个点,以方便下一步操作;找一块木板,最小是2020CM,我找的时候费了点劲,采用爆破拆出来的,然后把万用板放在木板上,四角用大头钉固定以确保扎点时位置不变,用圆规进行采点,记住是64个点,是77的方格;不要因为计算错误,以适用万用板而导致光立方间隔过密;采用手钻打孔,不直接用大钻,是防止打孔过程中,孔洞打偏;大钻扩孔,钻头选择要适宜,防止LED小灯插上后不稳,或者插上焊完取不出来,我采用的是的钻头;游标卡车是为了测钻头大小的;焊接时,建议一列一列的焊接,层共阴,列共阳这样操作起来比较容易,防止全部插上在焊接时,过多的小灯产生阻碍,由于我是左撇子,所以我是从右向左焊接;这是焊接好的第一层;焊完之后,现将小灯阳极管教理顺,与共阴平面呈垂直关系,以方便之后焊接;将LED点阵层起下的时候,为美观起见,请注意不要破坏小灯的相对位置及高低层次,为了增强光立方坚固度,建议,每层上跨接一些硬些的细铜丝;要牢记:焊完一层后切记要记得检测是否有小灯在焊接过程中损坏;检测方法如下:层接地,即阴极接地,用一个串有1K限流电阻的导线接5V,然后依次接小灯阳极;主控电路焊接,焊前首先考虑布局,此电路板尺寸712,有点小,但是好歹排上了,如果空间足够的话,建议限流电阻接在LED阳极上即74hc573的输出端,晶振放IC座里侧能节省部分空间;背面图如下进行主要跳线后,跳线尽量要美观些;主控焊接完成后的背面图;正面图插上芯片后的效果图主控做好了,进行光立方之间的层层连接,由于焊接过程过于枯燥,所以建议焊完八层LED后,再焊控制板,最后在进行光立方的层层连接;焊接过程注意每层之间的高度,以及是否四角等高,别到最后才发现有一角低了;方法:四周架立柱,之后层层间用横梁支撑,直尺定高;一开始用的是吃饭剩的一次性筷子,后来筷子不够,灵机一动上锯条;焊完后的光立方,自我感觉良好,不过由于小灯弯折有点参差不齐,所以个别地方不是太美观;焊接底座时建议一列列得插,以减轻插接难度;毕竟64个小灯引脚不是那么好弄得;进行跳线;不要随意跳线,要有一个统一的顺序,这样编程时方便些; 使用杜邦线进行连接;最后拍了下视频,由于小灯质量限制,以及限流可能有点大,所以最后效果不是太好,但是切记限流绝对不能省;。

手把手教你光立方取模软件的使用(以字符R为例)

手把手教你光立方取模软件的使用(以字符R为例)

手把手教你光立方取模软件的使用
(以字符R为例)
1、3D8光立方取模软件的视图分为:正视图,侧视图和俯视图,取模时只需要在你想要的视图上操作即可,不必管其他视图的变化
代表光立方的三视图分别是:正视图,侧视图和俯视图
2、用鼠标点击8*8的小方格,白色代表点亮,灰色代表熄灭,数据会显示在下面的hex显示区内
3、将R顺时针旋转180度,将旋转后的图形以白点的形式绘制在正视图的第一个8*8方框内(旋转是为了使图形数据与程序一致)
在正视图中点亮一个“R”的字符
4、找到hex文本框里第八行的第三到六的数据,这四个数据即为有效数据。

(图形不同获得的数据大小不同,总之除零以外的数据都是有效的)
”R”的数据显示在hex数据区内
5、用keil打开程序,找到名为ZIMO.H的文件。

在ZIMO.H里定义了一个名为table_id的数组,用hex文本框里的四个数据替换其中一组,点击保存并编译。

6、打开stc下载软件,如stc-isp-15xx-v6.61。

单片机型号选择stc12c5a60s2,点击“打开程序文件”到你程序文件夹得hex文件里添加后缀为.hex的文件。

7、将下载线一端插在电脑上一端用杜邦线插在spi下载口上(注意:上有标号不要差错)打开电源,点击下载软件的“下载”然后再重启一次电源,当提示操作成功时程序就下载完成了,。

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

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

目录摘要 .......................................................................................................................................................... X XX 关键词 ...................................................................................................................................................... X XX 1绪论 . 02总体设计 (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)#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,0 x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7 e,0x3c}; (17)/*the "ideasoft"*/ (17)uchar code table_id[40]={0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x89,0x89,0x00,0xf 8,0x27,0x27,0xf8,0x00,0x8f,0x89,0x89,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,0xf c,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x8 5,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,0x 6f,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,0 x31,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,0xf c,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 64,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10}; (17)/*3p char*/ (17)uchar codex3f,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<<b); (18)if (num) (18)n=1; (18)else (18)n=0; (18)return n; (18)} (18)/*To figure out the round number*/ (18)uchar abs(uchar a) (18){ (18)uchar b; (18)b=a/10; (18)a=a-b*10; (18)if (a>=5) (18)b++; (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<b) (19)a=b; (19)if (a<c) (19)a=c; (19)return a; (19)} (19)void clear(char le) (19){ (19)uchar i,j; (19)for (j=0;j<8;j++) (19){ (19)for (i=0;i<8;i++) (19)display[j][i]=le; (19)} (19)} (19)void trailler(uint speed) (19){ (19)char i,j; (19)for (i=6;i>=-3;i--) (19){ (19)if (i>=0) (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<<x; (19)ch0=~ch1; (20)if (le) (20)display[z][y]=display[z][y]|ch1; (20)else (20)display[z][y]=display[z][y]&ch0; (20)} (20)void type(uchar cha,uchar y) (20){ (20)uchar xx; (20)for (xx=0;xx<8;xx++) (20){ (20)display[xx][y]=table_cha[cha][xx]; (20)} (20)} (20)/*The first variable is the distance from the midpoint. (20)The second is the layer (20)the third is the flash speed of the time between each two point. (20)The forth is the enable io,it controls weather draw or claen.*/ (20)void cirp(char cpp,uchar dir,uchar le) (20){ (20)uchar a,b,c,cp; (20)if ((cpp<128)&(cpp>=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=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<t;i++) (21){ (21)point(abs(a),abs(b),abs(c),le); (21)a+=a1; (21)b+=b1; (21)c+=c1; (21)} (21)point(x2,y2,z2,le); (21)} (21)void box(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) (21){ (21)uchar i,j,t=0; (21)max(&x1,&x2); (21)max(&y1,&y2); (21)max(&z1,&z2); (21)for (i=x1;i<=x2;i++) (21)t|=1<<i; (21)if (!le) (21)t=~t; (21)if (fill) (21){ (21)if (le) (21){ (21)for (i=z1;i<=z2;i++) (21){ (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<<x1)|(0x01<<x2); (22)if (!le) (22)t=~t; (22)if (le) (22){ (22)for (j=z1;j<=z2;j+=(z2-z1)) (22){ (22)for (i=y1;i<=y2;i++) (22)display[i][j]|=t; (22)} (22)for (j=y1;j<=y2;j+=(y2-y1)) (22){ (22)for (i=z1;i<=z2;i++) (22)display[j][i]|=t; (22)} (22)} (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)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){ (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)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)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<<j); (27)} (27)for (k=0;k<8;k++) (27){ (27)display[k][3]|=table_cha[c][k]&a; (27)display[k][4]|=table_cha[c][k]&a; (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-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)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)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){ (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)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)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)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(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<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)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)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)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)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)} (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)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<<i; (44)delay(3); (44)P0=display[layer][i]; (44)P1=1<<layer; (44)if (layer<7) (44)layer++; (44)else (44)layer=0; (44)TH0=0xc0; (44)TL0=0; (44)} (44)P0; 573 in p2 (44)P1; uln2803 p0 (44)P2; 573 LE p1 (44)void print() interrupt 1 (44){ (44)uchar i; (44)static uchar layer=0; (44)_P3(0); (44)for (i=0;i<8;i++) (44){ (44)P2=1<<i; (44)delay(3); (44)P0=display[layer][i]; (44)delay(3); (44)} (45)_P3(1<<layer); (45)if (layer<7) (45)layer++; (45)else (45)layer=0; (45)TH0=0xc0; (45)TL0=0; (45)} (45)void print() interrupt 1 (45){ (45)uchar i; (45)static uchar layer=0; (45)P0=0; (45)P1=0x00; (45)for (i=0;i<8;i++) (45){ (45)P1=0x00; (45)P2=display[layer][i]; (45)delay(3); (45)P1=1<<i;_crol_(0xfe,i) ; (45)。

光立方的工作原理

光立方的工作原理

光立方的工作原理
光立方由若干个二极管led灯以立方体形式搭建,4*4*4、8*8*8、16*16*16甚至更多,又由单片机、锁存器、译码器等电器元件驱动,形成立体动画效果。

其中8*8*8光立方最为常见。

例如:8*8*8光立方是由512个发光二极管按照立方体的方式搭建焊接起来的,有层共阴束共阳和层共阳束共阴两种方案,每一层有8*8个发光二极管,共8层。

用c语言编译单片机程序使自定义动画效果得以实现。

光立方工作原理
光立方简单讲就是用单片机控制很多规则排列的LED的亮和灭。

1、单个LED的控制方式
先了解单个LED的控制方式,可以是将正极接电源,负极通过一个限流电阻连接至单片机的某个IO口。

IO口输出低电平时,LED就亮,反之,LED灭。

3d8光立方程序

3d8光立方程序

/*railway 3*/
uchar code dat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x0x60,0x50,0x40,0x30,0x20,0x10};
EX1=1;
EA=1;
}
void delay5us(void) //误差 -0.026765046296us STC 1T 22.1184Mhz
{
unsigned char a,b;
for(b=7;b>0;b--)
for(a=2;a>0;a--);
/*3p char*/
uchar code table_3p[3][8]={0xff,0x89,0xf5,0x93,0x93,0xf5,0x89,0xff,0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18};
/*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.*/
display[j][i]=display[j][i+1];
}
if (i<4)
{
for (j=0;j<8;j++)
uchar i,j;

光立方 单片机控制的小型立方体led灯组

光立方 单片机控制的小型立方体led灯组

光立方单片机控制的小型立方体led灯组件状态机方案### 一、硬件简介LED Cube(又称立方体LED或多边形LED灯)是一种新型的灯具,它有一系列LED灯以立方体的形式,排列成一个多维数组进行显示,能够产生出各种逼真的3D图形和照明效果,从而创造出炫丽的视觉效果,吸引着众多爱好者。

### 二、硬件原理LED Cube原理是利用8根数线来控制8层的LED灯,每一根数线上接有8个LED灯,分别对应到8*8的矩阵中,每一层的LED灯可以被控制按照设定的顺序显示出3D立方体图案,每一层LED灯通过立方体状态机化算法制定方案,来控制8根数线上的LED灯以达到刷新一层灯的功能,最终形成立方体图案。

### 三、状态机方案由于硬件资源有限,硬件系统中不会有任何复杂的控制算法,此时就需要使用状态机方法来实现立方体的控制。

状态机方案的原理就是把系统的不同状态定义成一系列的状态,并且根据给定的输入,切换不同的状态。

每一个状态都有相应的操作,当系统处在某一个状态时,将会执行这个状态的操作,也就是说,立方体的控制就是把控制LED灯的指令写入到状态机中,并且让状态机根据给定的输入来切换控制LED灯模式。

### 四、控制算法控制LED Cube的流程可以总结为两个步骤:1. 第一步是先通过分层控制,将立方体LED灯的状态分层定义,每一层的LED 灯组成一个8*8的矩阵,也就是每一层的LED灯会视为一个独立的8*8矩阵,由8根数线来控制,然后根据状态机定义该状态下的操作,比如定义每一层灯皆闪,每一层灯以顺时针旋转,每一层灯全部熄灭等等;2. 第二步是根据输入,控制状态机切换状态,也就是作为状态机输入信号,比如按下一个按钮时,将会切换到一个新的状态,比如每一层以顺时针旋转更换到每一层逆时针旋转。

通过以上的控制算法,就可以实现LED Cube的控制,让立方体LED灯形成不同的3D图形和照明效果。

光立方作品报告书

光立方作品报告书

电子设计报告书--基于单片机的光立方制作作品名称: 8*8*8光立方制作基于单片机的光立方设计摘要:本次主要是介绍基于STC12C5A60S2 单片机的光立方设计,通过STC12C5A60S2 单片机、74HC573芯片和ULN 2803芯片控制led灯的亮灭实现8*8*8光立方的制作,并使光立方呈现出立体的动画效果。

关键词:单片机、光立方、74HC573、ULN2803一、绪论大一的时候就很想做一个电子作品了,但那时因为知识面和时间的限制,没有达成这么一个小目标,现在,终于又有了这么一个机会去制作一个电子作品,所以当我看到这个比赛时,立刻就找了几个志同道合的同学组建了一支队伍。

由于大家都是第一次参加这种类型的比赛,所以刚开始都不知道要弄个什么作品比较好。

选难度太大的去做又有种一步登天的味道,太简单的感觉弄出来也学不到太多东西。

然后加上之前有在网上看到过许多光立方的视频,觉得挺炫酷的,加成本低廉,所以我们小组就一致决定要制作一个8*8*8的光立方。

二、功能简介在查阅了许多相关资料之后,我们决定焊接一个含有以下功能的8*8*8光立方。

1、能通过单片机控制每个led灯的亮灭2、能通过单片机程序工作能表示一些简单的动画图案2、作品含电源总开关、两个按键电路和复位按键3、具备USB接口通电和下载程序的功能三、总体设计思路通过以STC12C5A60S2单片机为控制核心设计一个由512个蓝色LED灯组成的光立方。

系统主要由主控、驱动、显示等模块构成。

主控方面采用STC12C5A60S2单片机作为主控芯片,因为STC12C5A60S2单片机比常用的89c51单片机内存大很多(89c51只有8K的内存,STC12C5A60S2则有60K),而光立方需要形成多种动画程序量大,可能会有溢出的情况发生。

而且TC12C5A60S2单片机比常用的89c51单片机运行速度快很多(大概快8-12倍);所以主控芯片我们决定采用STC12C5A60S2单片机。

自己写的光立方程序

自己写的光立方程序

#include <REG52.H>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar display[8][8];uchar code Tab_BMP1[]={0xC3,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0xC3};/*rank:A,1,2,3,4,I,心,U*/uchar code table_cha[8][8]={0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,0x18,0x18,0x24,0x24,0x42,0xE7,0x0 0,0x00};/*the "ideasoft"*/uchar code table_id[40]={0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,0x18,0x18,0x24,0x24,0x42,0xE7,0x00,0 x00};/*railway*/uchar code dat[128]={0x99,0x24,0x42,0x81,0x81,0x42,0x24,0x99,0x20,0x20,0x3F,0x24,0x24,0xFC,0x04,0x04, 0xC3,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0xC3};/*railway 2*/uchar codedat2[28]={0x99,0x24,0x42,0x81,0x81,0x42,0x24,0x99,0x20,0x20,0x3F,0x24,0x24,0xFC,0x04,0x04, 0xC3,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0xC3};/*railway 3*/uchar code dat3[24]={0x99,0x24,0x42,0x81,0x81,0x42,0x24,0x99,0x20,0x20,0x3F,0x24,0x24,0xFC,0x04,0x04, 0xC3,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0xC3};/*3p char*/uchar code table_3p[3][8]={0x99,0x24,0x42,0x81,0x81,0x42,0x24,0x99,0x20,0x20,0x3F,0x24,0x24,0xFC,0x04, 0x04,0xC3,0xE7,0x7E,0x24,0x24,0x7E,0xE7,0xC3};/*initializtionThat 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;}void delay5us(void) //误差-0.026765046296us STC 1T 22.1184Mhz {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){num=num&(1<<b);if (num)n=1;elsen=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)return b;}/*To figure out the absolute value*/ uchar abss(char a){if (a<0)a=-a;return a;}/*The function can comparat the character. And remove the big one to the back.*/ void max(uchar *a,uchar *b){uchar t;if ((*a)>(*b)){t=(*a);(*a)=(*b);(*b)=t;}}/*The function is to figure out the max number and return it.*/ uchar maxt(uchar a,uchar b,uchar c){if (a<b)a=b;if (a<c)a=c;return a;}void clear(char le){uchar i,j;for (j=0;j<8;j++){for (i=0;i<8;i++)display[j][i]=le;}}void trailler(uint speed){char i,j;for (i=6;i>=-3;i--){if (i>=0){for (j=0;j<8;j++)display[j][i]=display[j][i+1];}if (i<4){for (j=0;j<8;j++)display[j][i+4]=0;}delay(speed);}}void point(uchar x,uchar y,uchar z,uchar le){uchar ch1,ch0;ch1=1<<x;ch0=~ch1;if (le)display[z][y]=display[z][y]|ch1;elsedisplay[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;elsecp=cpp;a=(dat[cp]>>5)&0x07;b=(dat[cp]>>2)&0x07;c=dat[cp]&0x03;if (cpp>63)c=7-c;point (a,b,c,le);}}void line(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le) {char t,a,b,c,a1,b1,c1,i;a1=x2-x1;b1=y2-y1;c1=z2-z1;t=maxt(abss(a1),abss(b1),abss(c1));a=x1*10;b=y1*10;c=z1*10;a1=a1*10/t;b1=b1*10/t;c1=c1*10/t;for (i=0;i<t;i++){point(abs(a),abs(b),abs(c),le);a+=a1;b+=b1;c+=c1;}point(x2,y2,z2,le);}void box(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<<i;if (!le)t=~t;if (fill){if (le){for (i=z1;i<=z2;i++){for (j=y1;j<=y2;j++)display[j][i]|=t;}}else{for (i=z1;i<=z2;i++){for (j=y1;j<=y2;j++)display[j][i]&=t;}}}else{{display[y1][z1]|=t;display[y2][z1]|=t;display[y1][z2]|=t;display[y2][z2]|=t; }else{display[y1][z1]&=t;display[y2][z1]&=t;display[y1][z2]&=t;display[y2][z2]&=t; }t=(0x01<<x1)|(0x01<<x2);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;}}{for (j=z1;j<=z2;j+=(z2-z1)){for (i=y1;i<=y2;i++){display[i][j]&=t;}}for (j=y1;j<=y2;j+=(y2-y1)){for (i=z1;i<=z2;i++){display[j][i]&=t;}}}}}void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le){uchar i;max(&z1,&z2);if (fill){for (i=z1;i<=z2;i++){line (x1,y1,i,x2,y2,i,le);}}else{line (x1,y1,z1,x2,y2,z1,le);line (x1,y1,z2,x2,y2,z2,le);line (x2,y2,z1,x2,y2,z2,le);line (x1,y1,z1,x1,y1,z2,le);}}void poke(uchar n,uchar x,uchar y){uchar i;for (i=0;i<8;i++){point(x,y,i,judgebit(n,i));}}void boxtola(char i,uchar n){if ((i>=0)&(i<8)){poke(n,0,7-i);}if ((i>=8)&(i<16)){poke(n,i-8,0);}if ((i>=16)&(i<24)){poke(n,7,i-16);}}void rolldisplay(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: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);};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:for (i=0;i<8;i++){box_apeak_xy (7-i,0,0,i,7,7,1,1);delay(speed);if (i<7)box_apeak_xy (4,3,0,7-i,0,7,1,0);};}}void trans(uchar z,uint speed){uchar i,j;for (j=0;j<8;j++){for (i=0;i<8;i++){display[z][i]>>=1;}delay(speed);}}void tranoutchar(uchar c,uint speed){uchar i,j,k,a,i2=0;for (i=0;i<8;i++){if (i<7)box_apeak_xy (i+1,0,0,i+1,7,7,1,1);box_apeak_xy (i2,0,0,i2,7,7,1,0);a=0;i2=i+1;for (j=0;j<=i;j++){a=a|(1<<j);}for (k=0;k<8;k++){display[k][3]|=table_cha[c][k]&a;display[k][4]|=table_cha[c][k]&a;}delay(speed);}}void 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_0(void){uchar i,j=0;clear(0);for (j=0; j<8; j++){for (i=0; i<8; i++){display[j][i] = Tab_BMP1[i];}delay(8000);delay(8000);delay(8000);}clear(0);for (j=0; j<8; j++){for (i=0; i<8; i++){display[i][j] = Tab_BMP1[i];}delay(8000);delay(8000);delay(8000);}}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);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(){char i,j,an[8];for (j=7;j<15;j++)an[j-7]=j;for (i=0;i<=16;i++){for (j=0;j<8;j++){if ((an[j]<8)&(an[j]>=0))line(0,an[j],j,7,an[j],j,1);}for (j=0;j<8;j++){if (((an[j]+1)<8)&(an[j]>=0))line(0,an[j]+1,j,7,an[j]+1,j,0);}for (j=0;j<8;j++){if (an[j]>0)an[j]--;}delay(15000);}for (j=0;j<8;j++)an[j]=1-j;for (i=0;i<=16;i++){for (j=0;j<8;j++){if ((an[j]<8)&(an[j]>=0))line(0,an[j],j,7,an[j],j,1);}for (j=0;j<8;j++){if (((an[j]-1)<7)&(an[j]>0))line(0,an[j]-1,j,7,an[j]-1,j,0);}for (j=0;j<8;j++){if (an[j]<7)an[j]++;}delay(15000);}}void flash_5(){uint a=15000;//a=delaychar i=8,j,an[4];//1for (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);}//2i=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);}//3i=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);}//4i=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);}//5i=3;for (j=3;j<6;j++)an[j-2]=j;while(i--){for (j=1;j<4;j++){box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);}for (j=0;j<4;j++){if (an[j]>3)an[j]--;}delay(a);}//6i=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);}//7i=3;for (j=0;j<4;j++)an[j]=3-j;an[0]=2;while(i--){for (j=0;j<3;j++){if (an[j]>=0)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1);if (an[j]>=0)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0);}for (j=0;j<4;j++){。

光立方制作教程范文

光立方制作教程范文

光立方制作教程范文光立方是一种比较复杂的装置,可以通过灯光和反射制造出立体的光影效果。

在这个教程中,我将为你详细讲解如何制作一个光立方,并提供一些材料和建议。

材料清单:1.透明的亚克力(至少6个相同大小的面板)2.密封胶3.刻刀4.钳子5.磨砂纸6.LED灯带(选择适合你的立方体尺寸的长度)7.电线8.电池盒和开关9.螺丝钉和螺丝刀10.热熔胶枪(可选)步骤1:准备工作首先,你需要确定光立方的尺寸。

一个标准的尺寸是30×30×30厘米,但你可以根据个人喜好调整尺寸。

然后,购买足够数量的亚克力板,确保它们大小相同。

步骤2:制作立方体框架使用刻刀将亚克力板切割成6个相等大小的面板。

将这些面板用成正方形或长方形的形式排列,然后使用密封胶将它们黏合在一起。

在黏合之前,确保所有边缘都是光滑的,如果有需要,使用磨砂纸进行打磨。

黏合好后,用夹子固定它们,让它们干燥。

如果需要,你也可以使用热熔胶枪来黏合亚克力板。

步骤3:安装灯光在立方体的内部沿边缘黏贴一圈LED灯带。

你可以使用热熔胶枪将灯带固定在立方体内部。

确保灯带均匀分布,并注意不要让任何电线暴露在外。

步骤4:连接电线使用电池盒和开关连接LED灯带。

将电池盒固定在立方体的底部,并通过亚克力板上的小孔将电线引出。

在电线的末端安装开关,并将开关连接到电池盒上。

这样,你就可以随时控制光立方的开关。

步骤5:封闭光立方使用刻刀在立方体的一个面板上切割一个小孔,以便将电线引出。

然后使用密封胶将该面板黏上,确保所有边缘都是严密封闭的。

这样,你的光立方就完成了。

步骤6:测试和调整将电池装入盒子中并打开开关,测试LED灯带是否正常工作。

如果有任何问题,你可以检查电线连接以及开关是否正常工作。

步骤7:定制光立方一旦光立方制作完成,你可以根据个人喜好进行定制。

例如,你可以在立方体的底部安装小脚架,这样可以使立方体稳定地放置在桌面上。

你还可以在立方体的面板上刻字、画图案或进行其他装饰。

光立方的工作原理_基于74hc573的8-8-8光立方LED的控制方式

光立方的工作原理_基于74hc573的8-8-8光立方LED的控制方式

光立方的工作原理_基于74hc573的8*8*8光立方LED的控制方式光立方由若干个二极管led灯以立方体形式搭建,4*4*4、8*8*8、16*16*16甚至更多,又由单片机、锁存器、译码器等电器元件驱动,形成立体动画效果。

其中8*8*8光立方最为常见。

例如:8*8*8光立方是由512个发光二极管按照立方体的方式搭建焊接起来的,有层共阴束共阳和层共阳束共阴两种方案,每一层有8*8个发光二极管,共8层。

用c语言编译单片机程序使自定义动画效果得以实现。

光立方工作原理光立方简单讲就是用单片机控制很多规则排列的LED的亮和灭。

1、单个LED的控制方式先了解单个LED的控制方式,可以是将正极接电源,负极通过一个限流电阻连接至单片机的某个IO口。

IO口输出低电平时,LED就亮,反之,LED灭。

如果我们想驱动任意位置的led,我们只需要在该位置led所使用的列线接地,行线接上+V 即可。

学过单片机的朋友们,都知道数码管是怎么点亮的,其中有位选和段选之分,通过扫描来实现所有数码管能正常工作以实现显示我们想要的数字。

点阵也一样,尽管是8*8的点阵,如果我们让整体能随意显示图案,那也需要用扫描的方式才能够实现,否则,无法实现对其精准的控制。

所谓扫描,就是说,我们一次只能让一行排或者一竖排的灯亮。

每次只能这么点,8次为一个周期,从左至右依次点一次,那么循环起来,我们看到的就是完整的图像了。

2、每一层LED的控制方式若按照单个LED的控制方式,每个LED需要占用单片机的一个IO口,控制100个LED 就需要100个IO口。

那么,有没有一种方式,可以用较少的IO口,控制较多的LED呢?答案是肯定的,这种方法,就是扫描驱动电路。

光立方制作教程

光立方制作教程

光立方制作第一步:
材料数量参考价格
白发蓝LED 600 54
74HC573 8套20
ULN2803 1套 3
8P排线15个20
20*30万能板1个20
单片机开发板1个48
STC12C5A60S2 1个9
174
单片机开发板可以不用,按原理图焊接就行,我有开发板所以就利用上了,成本在140左右,2、折LED每个灯折三次,本产品采用层共阴,束共阳的原理制作。

每个灯阴极折一次,阳极折两次,参考图如下:
注:折灯要有耐心哦、
3、折好513个LED后,开始使用自制
模具焊接阴极,本人只用了8个孔,没
有打8*8是我孔,我感觉把那个没啥必
要。

注:模具就是自己的鞋盒子、、、嘿嘿
光立方制作第二步焊接没条的阳极,将阳极摞起来,共8层。

这个我认为我的制作方法也不怎么好,但是我感觉我用着这种方法焊接的速度和用的时间都是相当可观的。

下面就是我的制作图,上图
看看:
注:焊
接阳极用了半天就OK了、、
1、竖起来插到板子上给大家看看:
2、半天的成果:
光立方第三步:
把每层的阴极连接起来,很简单的,忘记照照片了,不会的可以咨询Q:3
可以互相交流。

1、成功后后面的布线情况:
2、正面线路情况:
光立方成品演示:
由于时间问题,我只拍了两个效果,其他的我会发到优酷视频,大家可以查找、、、
2013年3月3日星期日
河北师范大学职业技术学院。

8阶光立方的制作

8阶光立方的制作

8阶光立方的制作摘要光立方是一个电子工程方面DIY的绝好实例,不管国内国外都有非常多的爱好者。

它同时要求制作者具有软硬件设计及手工制作等多方面的能力,目前youtube上最大的DIY光立方是32阶全彩光立光,引脚数多达131,072个,这对于个人来说绝对算是个大型的工程了。

要制作出一个漂亮的光立方,除了电路设计与程序设计,辅助工具设计也很重要,缺少它甚至是无法完成整个制作的。

另一方面,很多验证性工作也属于辅助设计,理论往往与实际会有很大的出入,这时就需要一步步去验证原始设计。

网络上大多参考资料都只是一个制作记录,并没有详细分析为什么要这么做,是否还有其它的实现方法等等。

因此,在遇到不同的实际环境的时候,出了问题却往往找不到原因在哪里,这就造成很多的困惑。

本文试着从设计原理的角度来分析如何做一个8阶单色光立方,以及记录在制作过程当中遇到的各种问题与解决办法。

控制芯片采用STC MCU,输出为串口转并口,驱动芯片选用东芝16位移位寄存器,3个级联达48位并口输出,512个LED使用16*32矩阵接法。

目录1 准备篇1.1设计框架1.2 主芯片选型1.3 所需工具材料2设计篇2.1 电路设计2.2 程序设计2.3辅助工具设计3 完善篇3.1 迭代3.2 功能扩展1 准备篇光立方,由若干个LED以立方体的形式搭建而成。

最常见的为8*8*8(512个LED),8阶光立方,也叫cube8。

当灯按照一定的规则依次变换点亮的时候,可以产生十分唯美的灯光效果图,现在大多随着动感的音乐节奏一起变化,声色交错,让人赏心悦目。

1-1光立方(蓝光)——cube8效果图1.1 设计框架第一个需要思考的问题是:如何连接这512个灯?有个前提条件需要满足:每个灯都必须可以单独点亮。

那么,任何两个灯都不可以串联。

最直接的办法是并联这512个灯,共阳或者共阴,然后提供512个输出。

但这样做至少有两个非常大的缺点:首先,一般情况下无论是MCU、ARM、FPGA都无法提供这么多输出位,即使是使用多个16位移位寄存器,那么也需要32个,这无论在成本还是在实际焊接都十分不划算;其次,就算512个输出位不是问题,因为是立方体形式,线路之间会存在互相遮挡,所以,必须要求连接线路最少,显然,直接并联是最傻的情况。

光立方(含程序)毕业设计

光立方(含程序)毕业设计

毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<reg52.h>#define uchar unsigned charuchart,i,k,a,s;sbit d1=P0^4;sbit d2=P0^6;sbit q0=P0^0;sbit q1=P0^1;sbit q2=P0^2;sbit q3=P0^3;sbit key=P0^5;void delay(uchar z){ucharx,y;for(x=z;x>0;x--)for(y=11;y>0;y--);}voidyi(){P0=0xff;d1=0;d2=1;P1=0xa5;delay(8);P1=0xb5;delay(8);P1=0xc5;delay(8);P1=0xd5;delay(8 );P1=0xe5;delay(8);P1=0xf5;delay(8);}voider(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x03;delay(8);P1=0x04;delay(8);P1=0x07;delay(8);P1=0x0e;delay(8);P1=0x0e;delay(8);P1=0x0f;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x50;delay(8); P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xc0;delay(8);P1=0xf0;delay(8);}void san(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x03;delay(8);P1=0x04;delay(8);P1=0x07;delay(8);P1=0x0e;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0x50;delay(8);P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xc0;delay(8);P1=0xf0;delay(8);}voidsi(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x01;delay(8);P1=0x02;delay(8);P1=0x03;delay(8);P1=0x07;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0x50;delay(8);P1=0xc0;delay(8);}void qi(){P0=0xff;d1=1;d2=0;P1=0x03;delay(8);P1=0x04;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0x50;delay(8);P1=0xf0;delay(8);}voidba(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x01;delay(8);P1=0x02;delay(8);P1=0x03;delay(8);P1=0x04;delay(8); P1=0x07;delay(8);P1=0x0e;delay(8);P1=0x0e;delay(8);P1=0x0f;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0x50;delay(8);P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xc0;delay(8);P1=0xf0;delay(8);}voidjiu(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x01;delay(8);P1=0x02;delay(8);P1=0x03;delay(8);P1=0x04;delay(8); P1=0x07;delay(8);P1=0x0e;delay(8);P1=0x0e;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0x50;delay(8);P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xc0;delay(8);P1=0xf0;delay(8);}voidbayiqi(){switch(t){case 0: P0=0xff;P2=0xfe;ba();break;delay(1);case 1: P2=0xfd;ba();break;delay(1);case 2: P2=0xfb;ba();break;delay(1);case 3: P2=0xf7;ba();break;delay(1);case 4: P2=0xef;ba();break;delay(1);case 5: P2=0xf7;ba();break;delay(1);case 6: P2=0xfb;ba();break;delay(1);case 7: P2=0xfd;ba();break;delay(1);case 8: P2=0xfe;ba();break;delay(1);case 9: P2=0xfe;yi();break;delay(1);case 10: P2=0xfd;yi();break;delay(1);case 11: P2=0xfb;yi();break;delay(1);case 12: P2=0xf7;yi();break;delay(1);case 13: P2=0xef;yi();break;delay(1);case 14: P2=0xf7;yi();break;delay(1);case 15: P2=0xfb;yi();break;delay(1);case 16: P2=0xfd;yi();break;delay(1);case 17: P2=0xfe;yi();break;delay(1);case 18: P2=0xfe;qi();break;delay(1);case 19: P2=0xfd;qi();break;delay(1);case 20: P2=0xfb;qi();break;delay(1);case 21: P2=0xf7;qi();break;delay(1);case 22: P2=0xef;qi();break;delay(1);case 23: P2=0xf7;qi();break;delay(1);case 24: P2=0xfb;qi();break;delay(1);case 25: P2=0xfd;qi();break;delay(1);case 26: P2=0xfe;qi();break;delay(1);}}voidyisanyisi(){switch(t){case 0: P0=0xff;P2=0xfe;yi();break;delay(1);case 1: P2=0xfd;yi();break;delay(1);case 2: P2=0xfb;yi();break;delay(1);case 3: P2=0xf7;yi();break;delay(1);case 4: P2=0xef;yi();break;delay(1);case 5: P2=0xf7;yi();break;delay(1);case 6: P2=0xfb;yi();break;delay(1);case 7: P2=0xfd;yi();break;delay(1);case 8: P2=0xfe;yi();break;delay(1);case 9: P2=0xfe;yi();break;delay(1);case 10: P2=0xfd;san();break;delay(1);case 11: P2=0xfb;san();break;delay(1);case 12: P2=0xf7;san();break;delay(1);case 13: P2=0xef;san();break;delay(1);case 14: P2=0xf7;san();break;delay(1);case 15: P2=0xfb;san();break;delay(1);case 16: P2=0xfd;san();break;delay(1);case 17: P2=0xfe;san();break;delay(1);case 18: P2=0xfe;yi();break;delay(1);case 19: P2=0xfd;yi();break;delay(1);case 20: P2=0xfb;yi();break;delay(1);case 21: P2=0xf7;yi();break;delay(1);case 22: P2=0xef;yi();break;delay(1);case 23: P2=0xf7;yi();break;delay(1);case 24: P2=0xfb;yi();break;delay(1);case 25: P2=0xfd;yi();break;delay(1);case 26: P2=0xfe;yi();break;delay(1);case 27: P2=0xfe;si();break;delay(1);case 28: P2=0xfd;si();break;delay(1);case 29: P2=0xfb;si();break;delay(1);case 30: P2=0xf7;si();break;delay(1);case 31: P2=0xef;si();break;delay(1);case 32: P2=0xf7;si();break;delay(1);case 33: P2=0xfb;si();break;delay(1);case 34: P2=0xfd;si();break;delay(1);case 35: P2=0xfe;si();break;delay(1);}}voidxin(){P0=0xff;d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P1=0x09;delay(8);P1=0x0a;delay(8);P1=0x0b;delay(8); P1=0x0f;delay(8);P1=0x02;delay(8);P1=0x01;delay(8);P1=0x00;delay(8);P1=0x06;delay(8);P1=0x07;delay(8); P1=0x0f;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x40;delay(8);P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xe0;delay(8);q1=0;delay(8);q2=0;delay(8);q3=0;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0xb0;delay(8);P1=0xc0;delay(8); P1=0xd0;delay(8);P1=0x80;delay(8);}voidshanxin(){switch(t){case 0: P2=0xfe;xin();break;delay(1);case 1: P2=0xfd;xin();break;delay(1);case 2: P2=0xfb;xin();break;delay(1);case 3: P2=0xf7;xin();break;delay(1);case 4: P2=0xef;xin();break;delay(1);case 5: P2=0xf7;xin();break;delay(1);case 6: P2=0xfb;xin();break;delay(1);case 7: P2=0xfd;xin();break;delay(1);}}voidqierjiu(){switch(t){case 0: P0=0xff;P2=0xfe;qi();break;delay(1);case 1: P2=0xfd;qi();break;delay(1);case 2: P2=0xfb;qi();break;delay(1);case 3: P2=0xf7;qi();break;delay(1);case 4: P2=0xef;qi();break;delay(1);case 5: P2=0xf7;qi();break;delay(1);case 6: P2=0xfb;qi();break;delay(1);case 7: P2=0xfd;qi();break;delay(1);case 8: P2=0xfe;qi();break;delay(1);case 9: P2=0xfe;er();break;delay(1);case 10: P2=0xfd;er();break;delay(1);case 11: P2=0xfb;er();break;delay(1);case 12: P2=0xf7;er();break;delay(1);case 13: P2=0xef;er();break;delay(1);case 14: P2=0xf7;er();break;delay(1);case 15: P2=0xfb;er();break;delay(1);case 16: P2=0xfd;er();break;delay(1);case 17: P2=0xfe;er();break;delay(1);case 18: P2=0xfe;jiu();break;delay(1);case 19: P2=0xfd;jiu();break;delay(1);case 20: P2=0xfb;jiu();break;delay(1);case 21: P2=0xf7;jiu();break;delay(1);case 22: P2=0xef;jiu();break;delay(1);case 23: P2=0xf7;jiu();break;delay(1);case 24: P2=0xfb;jiu();break;delay(1);case 25: P2=0xfd;jiu();break;delay(1);case 26: P2=0xfe;jiu();break;delay(1);}}void ii(){P0=0xff;d1=1;d2=0;P1=0x04;delay(8);d1=0;d2=1;P1=0x04;delay(8);P1=0x54;delay(8);P1=0x94;delay(8);P1=0xa4;delay(8);P1=0xb4;delay(8); P1=0xc4;delay(8);P1=0xd4;delay(8);P1=0xe4;delay(8);P1=0xf4;delay(8);}voidll(){P0=0xff;d1=1;d2=0;P1=0x50;delay(8);P1=0x51;delay(8);P1=0x52;delay(8);P1=0x53;delay(8);P1=0x5f;delay(8); P1=0x5e;delay(8);d1=0;d2=1;P1=0x5e;delay(8);P1=0x9e;delay(8);P1=0xae;delay(8);}voidoo(){P0=0xff;d1=1;d2=0;P1=0x04;delay(8);P1=0x02;delay(8);P1=0x0a;delay(8);P1=0x0b;delay(8);P1=0x0f;delay(8);d1=0;d2=1;P1=0x10;delay(8);P1=0x40;delay(8);P1=0x90;delay(8);P1=0xa0;delay(8);P1=0xf0;delay(8); q2=0;delay(8);q3=0;delay(8);}voidvv(){P0=0xff;d1=1;d2=0;P1=0x08;delay(8);P1=0x09;delay(8);P1=0x0a;delay(8);P1=0x0b;delay(8);P1=0x0f;delay(8);d1=0;d2=1;P1=0x90;delay(8);;P1=0xa0;delay(8);P1=0x40;delay(8);q0=0;delay(8);q1=0;delay(8);q2=0;delay(8);q3=0;delay(8);}voidee(){P0=0xff;d1=1;d2=0;P1=0x00;delay(8);P1=0x01;delay(8);P1=0x02;delay(8);P1=0x03;delay(8);P1=0x0f;delay(8); P1=0x0e;delay(8);P1=0x04;delay(8);P1=0x07;delay(8);d1=0;d2=1;P1=0xc0;delay(8);P1=0x30;delay(8);P1=0xf0;delay(8);P1=0x00;delay(8);P1=0x50;delay(8); P1=0x90;delay(8);P1=0xa0;delay(8);}voidyy(){P0=0xff;d1=1;d2=0;P1=0x08;delay(8);P1=0x02;delay(8);P1=0x06;delay(8);P1=0x07;delay(8);d1=0;d2=1;P1=0x07;delay(8);P1=0x97;delay(8);P1=0x87;delay(8);P1=0xe7;delay(8);}voiduu(){P0=0xff;d1=1;d2=0;P1=0x08;delay(8);P1=0x09;delay(8);P1=0x0a;delay(8);P1=0x0b;delay(8);P1=0x0c;delay(8); P1=0x0e;delay(8);d1=0;d2=1;P1=0x00;delay(8);P1=0x10;delay(8);P1=0x20;delay(8);P1=0x30;delay(8);P1=0x40;delay(8); P1=0xa0;delay(8);P1=0x90;delay(8);}voidiloveyou(){switch(t){case 0: P0=0xff;P2=0xfe;ii();break;delay(1);case 1: P2=0xfd;ii();break;delay(1);case 2: P2=0xfb;ii();break;delay(1);case 3: P2=0xf7;ii();break;delay(1);case 4: P2=0xef;ii();break;delay(1);case 5: P2=0xf7;ii();break;delay(1);case 6: P2=0xfb;ii();break;delay(1);case 7: P2=0xfd;ii();break;delay(1);case 9: P2=0xfe;ll();break;delay(1); case 10: P2=0xfd;ll();break;delay(1); case 11: P2=0xfb;ll();break;delay(1); case 12: P2=0xf7;ll();break;delay(1); case 13: P2=0xef;ll();break;delay(1); case 14: P2=0xf7;ll();break;delay(1); case 15: P2=0xfb;ll();break;delay(1); case 16: P2=0xfd;ll();break;delay(1); case 17: P2=0xfe;ll();break;delay(1); case 18: P2=0xfe;oo();break;delay(1); case 19: P2=0xfd;oo();break;delay(1); case 20: P2=0xfb;oo();break;delay(1); case 21: P2=0xf7;oo();break;delay(1); case 22: P2=0xef;oo();break;delay(1); case 23: P2=0xf7;oo();break;delay(1); case 24: P2=0xfb;oo();break;delay(1); case 25: P2=0xfd;oo();break;delay(1); case 26: P2=0xfe;oo();break;delay(1); case 27: P2=0xfe;vv();break;delay(1); case 28: P2=0xfd;vv();break;delay(1); case 29: P2=0xfb;vv();break;delay(1); case 30: P2=0xf7;vv();break;delay(1); case 31: P2=0xef;vv();break;delay(1); case 32: P2=0xf7;vv();break;delay(1); case 33: P2=0xfb;vv();break;delay(1); case 34: P2=0xfd;vv();break;delay(1); case 35: P2=0xfe;vv();break;delay(1); case 36: P2=0xfe;ee();break;delay(1); case 37: P2=0xfd;ee();break;delay(1); case 38: P2=0xfb;ee();break;delay(1); case 39: P2=0xf7;ee();break;delay(1); case 40: P2=0xef;ee();break;delay(1); case 41: P2=0xf7;ee();break;delay(1); case 42: P2=0xfb;ee();break;delay(1); case 43: P2=0xfd;ee();break;delay(1); case 44: P2=0xfe;ee();break;delay(1); case 45: P2=0xfe;yy();break;delay(1); case 46: P2=0xfd;yy();break;delay(1); case 47: P2=0xfb;yy();break;delay(1); case 48: P2=0xf7;yy();break;delay(1); case 49: P2=0xef;yy();break;delay(1); case 50: P2=0xf7;yy();break;delay(1); case 51: P2=0xfb;yy();break;delay(1);case 53: P2=0xfe;yy();break;delay(1);case 54: P2=0xfe;oo();break;delay(1);case 55: P2=0xfd;oo();break;delay(1);case 56: P2=0xfb;oo();break;delay(1);case 57: P2=0xf7;oo();break;delay(1);case 58: P2=0xef;oo();break;delay(1);case 59: P2=0xf7;oo();break;delay(1);case 60: P2=0xfb;oo();break;delay(1);case 61: P2=0xfd;oo();break;delay(1);case 62: P2=0xfe;oo();break;delay(1);case 63: P2=0xfe;uu();break;delay(1);case 64: P2=0xfd;uu();break;delay(1);case 65: P2=0xfb;uu();break;delay(1);case 66: P2=0xf7;uu();break;delay(1);case 67: P2=0xef;uu();break;delay(1);case 68: P2=0xf7;uu();break;delay(1);case 69: P2=0xfb;uu();break;delay(1);case 70: P2=0xfd;uu();break;delay(1);case 71: P2=0xfe;uu();break;delay(1);}}{switch(t){case 0: P0=0xff;d1=1;d2=0;P1=0x05;P2=0xfe;break;delay(1);case 1: d1=1;d2=0;P1=0x05;P2=0xfd;break;delay(1);case 2: d1=1;d2=0;P1=0x05;P2=0xfb;break;delay(1);case 3: d1=1;d2=0;P1=0x05;P2=0xf7;break;delay(1);case 4: d1=1;d2=0;P1=0x05;P2=0xef;break;delay(1);case 5: d1=1;d2=0;P1=0x05;P2=0xf7;break;delay(1);case 6: d1=1;d2=0;P1=0x05;P2=0xfb;break;delay(1);case 7: d1=1;d2=0;P1=0x05;P2=0xfd;break;delay(1);case 8: d1=1;d2=0;P1=0x05;P2=0xfe;break;delay(1);case 9: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 10: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 11: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 12: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 13: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xef;break;delay(1);case 14: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 15: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 16: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 17: d1=1;d2=0;P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 18:d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 19: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 20: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 21: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 22: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xef;break;delay(1);case 23: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 24: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 25: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 26: d1=1;d2=0;P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 27: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;br eak;delay(1);case 28: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;br eak;delay(1);case 29: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;br eak;delay(1);case 30: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;br eak;delay(1);case 31: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xef;br eak;delay(1);case 32: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;br eak;delay(1);case 33: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfb;br eak;delay(1);case 34: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfd;br eak;delay(1);case 35: d1=1;d2=0;P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xfe;br eak;delay(1);case 36: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfe;break;delay(1);case 37: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfd;break;delay(1);case 38: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfb;break;delay(1);case 39: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xf7;break;delay(1);case 40: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xef;break;delay(1);case 41: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xf7;break;delay(1);case 42: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfb;break;delay(1);case 43: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfd;break;delay(1);case 44: d1=1;d2=0;P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;de lay(8);P2=0xfe;break;delay(1);case 45: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 46: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 47: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 48: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 49: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xef;break;delay(1);case 50: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);P2=0xf7;break;delay(1);case 51: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfb;break;delay(1);case 52: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfd;break;delay(1);case 53: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);P2=0xfe;break;delay(1);case 54: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfe;break;delay(1);case 55: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfd;break;delay(1);case 56: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfb;break;delay(1);case 57: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xf7;break;delay(1);case 58: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xef;break;delay(1);case 59: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xf7;break;delay(1);case 60: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfb;break;delay(1);case 61: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfd;break;delay(1);case 62: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;delay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P2=0xfe;break;delay(1);case 63: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfe;break;delay(1);case 64: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfd;break;delay(1);case 65: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfb;break;delay(1);case 66: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xf7;break;delay(1);case 67: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xef;break;delay(1);case 68: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xf7;break;delay(1);case 69: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfb;break;delay(1);case 70: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfd;break;delay(1);case 71: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P2=0xfe;break;delay(1);case 72: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfe;break;delay(1);case 73:d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfd;break;delay(1);case 74: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfb;break;delay(1);case 75: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);;P2=0xf7;break;delay(1);case 76: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xef;break;delay(1);case 77: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xf7;break;delay(1);case 78: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfb;break;delay(1);case 79: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfd;break;delay(1);case 80: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);P2=0xfe;break;delay(1);case 81: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xfe;break;delay(1);case 82: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xfd;b reak;delay(1);case 83: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xfb;b reak;delay(1);case 84: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xf7;b reak;delay(1);case 85: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xef;b reak;delay(1);case 86: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xf7;b reak;delay(1);case 87: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xf7;b reak;delay(1);case 88: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xfd;b reak;delay(1);case 89:d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);P2=0xfe;b reak;delay(1);case 90: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xfe;break;delay(1);case 91: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xfd;break;delay(1);case 92: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xfb;break;delay(1);case 93: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xf7;break;delay(1);case 94: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xef;break;delay(1);case 95: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xf7;break;delay(1);case 96: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xf7;break;delay(1);case 97: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xfd;break;delay(1);case 98: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);P2=0xfe;break;delay(1);case 99: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);q1=0;delay(8);P2=0xfe;break;delay(1);case 100: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);q1=0;delay(8);P2=0xfd;break;delay(1);case 101: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);q1=0;delay(8);P2=0xfb;break;delay(1);case 102: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela y(8);q1=0;delay(8);P2=0xf7;break;delay(1);case 103: d1=1;d2=0;P1=0x0f;delay(8);P1=0x0b;delay(8);P1=0x0a;delay(8);P1=0x09;delay(8);P1=0x03;de lay(8);P1=0x05;delay(8);d1=0;d2=1;P1=0x90;delay(8);P1=0xa0;delay(8);P1=0x40;delay(8);q3=0;delay(8);q2=0;dela。

相关文档
最新文档