LED光立方课程设计

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

目录
1 课程设计要求及总体方案介绍............................................ 错误!未定义书签。

1.1 设计课题任务要求..................................................... 错误!未定义书签。

1.2 3D LED光立方的优越性及主要应用........................ 错误!未定义书签。

1.3 设计课题主要原理..................................................... 错误!未定义书签。

1.4 3D LED设计总体方案................................................ 错误!未定义书签。

2 硬件系统设计........................................................................ 错误!未定义书签。

2.1 硬件各部分电路原理介绍......................................... 错误!未定义书签。

2.2 LED灯的选择.............................................................. 错误!未定义书签。

2.3 LED灯制作过程.......................................................... 错误!未定义书签。

3 软件系统设计........................................................................ 错误!未定义书签。

3.1 3DLED主函数及主流程图.......................................... 错误!未定义书签。

3.2 控制一个面数据的函数及流程图............................. 错误!未定义书签。

3.3 控制八个面数据的函数及流程图............................. 错误!未定义书签。

3.4 图形代码显示原理..................................................... 错误!未定义书签。

4 设计调试及分析.................................................................... 错误!未定义书签。

4.1 硬件性能的检测......................................................... 错误!未定义书签。

4.2 程序调试..................................................................... 错误!未定义书签。

4.3 设计问题分析及使用说明......................................... 错误!未定义书签。

4.4 设计体会及教学建议................................................. 错误!未定义书签。

结束语.......................................................................................... 错误!未定义书签。

致谢.......................................................................................... 错误!未定义书签。

参考文献...................................................................................... 错误!未定义书签。

附录.......................................................................................... 错误!未定义书签。

1 课程设计要求及总体方案介绍
1.1 设计课题任务要求
(1)合理控制512个LED灯的亮和灭。

(2)编程实现不同图案的转变。

(3)采用不同的延时时间使LED灯图案转变的速度不同。

1.2 3D LED光立方的优越性及主要应用
(1)3DLED以其功耗低,寿命长,亮度高,视角大,可视距离远等优点而具有极为广阔的发展前景。

随着人们生活水平的提高,3DLED逐渐应用于各行各业。

人们对其的要求也越来越高,已经不再满足于二维平面,进而转向三维平面。

3DLED的出现是一个很好的契机。

(2)3DLED光立体极具观赏性,人们可以根据自己的要求,设计不同的图案,展现不同的立体效果。

可以说它是变幻无穷的。

因其极大地观赏性,使人们在接受信息,数据的同时更加印象深刻,使信息的传输更有效率。

(3)随着3D技术的逐步发展,3DLED被广泛应用于现实生活中,比如LED显示屏,LED图像,LED立体摄影。

这些技术在我们的生活中随处可见,比如电影院,会议场合,舞台设计,以及各种娱乐场所。

1.3 设计课题主要原理
光立方也就是LED的立体阵列,一般的LED是平面的,比如一个字,而光立方则是在多个等间距的平面再组合成一个立体。

这样就可以显示3D图形。

8*8*8光立方我们把它拆成8个面,如图1所示,每个面64个灯,或说成64束。

我们要控制这64个灯使其自由变换,然后控制每个层依次点亮即可。

图1 立体布局图
学过点阵的都知道,如果要控制8*8点阵,需要16个引脚,那么8*8*8点阵我们再用8个引脚充当8*8点阵的总开关即可,如图2所示,我们只要把64个LED灯的阴极连接在一起就可以了。

图2 层面俯视图
1.4 3D LED设计总体方案
本文采用STC89C516单片机为主控芯片,结合其它外围电路包括晶振电路,电源电路以及LED灯控制模块。

LED灯控制模块由74HC573和ULN2803两块芯片分别控制LED灯的阳极和阴极。

以此来实现设计要求。

系统整体设计框图如图3所示:
图3 系统整体设计框图
我只要控制这64个灯使其能够自由变换,然后再通过控制每个层依次点亮即可,由于我们眼睛的视觉暂留,使我们感觉看到的东西是一起再亮的。

这样我们就看到了一个完整的个体。

ULN2803控制的每一个层。

同时要注意每个74HC573输出的引脚对应的按顺序的x轴的8个引脚。

这样做完全为了后期编写程序方便。

因为我们的动画是实时运算的,而且我所采用的是STC89C516单片机。

2 硬件系统设计
2.1 硬件各部分电路原理介绍
(1)单片机STC89C516原理及功能介绍
本设计采用STC89C516单片机为核心控制器,指令代码完全兼容以往的AT89S52单片机。

由于光立方的程序量比较大,而且要求相对比较高,因此经过考虑之后我们决定用51系列的增强型单片机STC89C516。

STC89C516单片机内部结构与资源如图4所示:
图4 单片机内部结构图
STC89C516在3DLED光立方设计中的作用:
LED光立方主要用到了STC89C516单片机中的P0口、P1口、P2口、串行输入输出端以及外接晶体引线端XTAL1和XTAL2。

P0口主要作为数据输出端,单片机通过控制74HC573的使能端来控制74HC573的输出与锁存。

P1口主要作为数据的输出端,单片机的输出的控制LED阳极引脚的数据传送到74HC573的输入端。

P2 口主要作为数据的输出端,单片机内部输出的控制LED阴极引脚的数据传送到ULN2803的输入端。

下载模块中单片机STC89C516串行口RXD、TXD作为数据的串行输入和输出端。

串行口的主要功能是实现数据的串行化和反串行化,串行化是指把并行的数据转变为串行数据,而反串行化则是把串行数据转变为并行数据。

串行口的数据发送是一个串行化的过程,在这个过程中,把写入发送寄存器的并行数据,按帧的格式要求插入格式信息,构成串行位串,经TXD引脚串行输出。

当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于外接外部时钟信号。

(2) 74HC573 芯片控制LED灯阳极电路原理
74HC573器件的输入是和标准CMOS是输出兼容的,加上拉电阻,他们还能和LS/ALSTTL输出兼容。

当锁存使能端为高时,这些器件的锁存对于数据是透明的,也就是说输出同步。

当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。

X=不用关心
Z=高阻抗
我采用了74HC573暂存的方法,来分别把由单片机P1口输出的64个灯的亮灭信息存到这个上面,然后再一起输出到灯上。

我们通过控制每块芯片的LE使能端来控制74HC573数据的输出与锁存。

(3) ULN2803芯片控制LED灯阴极电路原理
由于灯的个数比较多,因此所需要的电流相对也比较大,所以选择ULN2803,ULN2803是八重达林顿,1至8脚为8路输入,18到11脚为8路输出。

驱动能力500MA \50V。

应用时9脚接地,要是驱动感性负载,10脚接负载电源V+。

输入的电平信号为0或5V。

输入0时,输出达林顿管截止,输入为5V电平时,输出达林顿饱和。

输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作。

单片机通过控制P2口将控制每一层LED灯的开关信号即控制LED灯阴极的数据传送到ULN2803输入端,ULN2803输出取反后,再输出到LED灯阴极引脚。

(4)晶振电路原理
STC89C516引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1连接。

晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~40pF之间。

根据实际情况,本设计中采用12MHZ做系统的外部晶振。

电容取值为33pF。

(5)复位电路原理
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。

无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。

在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。

地址锁存信号ALE也为高电平。

2.2 LED灯的选择
设计课题中我们所选用的是3MM白发蓝长脚高亮的LED灯,它有功耗低、寿命长、视角大的优点。

其主要性能参数如下:
外观尺寸:3.0*5.3MM 工作电压:3.0-3.2V 工作电流:15-20MA
峰值波长:515-517NM 耗散功率:60MW 发光角度:6000-8000MCD 工作温度:-40℃—+90℃储存温度:-40℃- +80℃
焊锡条件:回流焊260℃5秒以内手工焊250-275℃3秒内
2.3 LED灯制作过程
为了保持整体的通透性,立体感,3DLED光立方没有设计额外的支架,所有的搭接直接用LED的管脚。

(1)水平折弯:基本徒手可以完成,将512个LED灯的阴极都弯曲成90度,为了焊接的统一性,折弯时尽量保持角度的统一,还要注意区分阴极与阳极,由于我们做的是共阴,所以将阴极折弯。

(2)由点到线:自备一块木板,在上面打8*8的64个孔,每个孔的间距大约为2cm,将折好的LED插入一排后,其阴极正好搭接在一起,进行焊接,实现LED 共阴。

因为LED很脆弱,很容易因为焊接时温度过高而烧坏LED,所以每次焊接完后都要去检查每个灯是否会亮,这是很重要的一步。

(3)由线到面:将焊接好的一条一条的LED灯平躺在平面上,将露出的LED的阴极弯折成直角,使其可以与前后同一层LED的阴极进行焊接,实现8*8平面的层共阴。

(4)由面到体:将焊接好的一个一个LED面叠起来,进行焊接,实现8*8*8光立方。

一个平面搞定后,不要觉得这样就完成了,把灯取下来之前,先用万用表检查,电子表有专门检查二极管的档,比机械的要方便些。

确保你焊接好的灯珠都是会亮的,焊接的时候,难免有的灯珠被烫坏或者有正负短接的地方。

把灯珠从模板上取下的时候,要比较小心,这个想必大家都会,取下之后,再仔细检查正面和背面有没有焊锡不够的地方。

从第二层开始,就得注意层面的摆放了,上一层的管脚向下弯折90度后,慢慢的向下放,保证管脚不能和下一层的短接。

(5)这是焊接完成后的LED灯,它由八个面构成了LED光立方体。

如图5所示:
图5 焊接完成后的光立方
(6)焊接完毕通电后效果图,如图6所示:
灯控制程序、图形控制码等组成。

3.1 3DLED主函数及主流程图
程序流程图如图7所示:
图7 主流程框图
/********************************
函数名: main
函数功能:动态扫描将图形显示出来
*********************************/
void main()
{ uint i;
while(1)
{ i=delay_time; //动态扫描次数
while(i--) //循环控制
send_dis0(); //图形显示代码
} }
3.2 控制一个面数据的函数及流程图
程序流程图如图8所示:
图8 控制一个面流程图
/********************************
程序名: send_num
程序功能:一个面的64个灯阳极的数据送入74HC573
程序入口: *p 需要送入数据的起始地址
*********************************/
void send_num(uchar *p)
{ uchar i,j=0x01;
for(i=0;i<8;i++) //LED灯每层总共8行,循环次数总共控制8次
{ P0=j; //数据送至P0口控制使能端LE
P1=*(p+i); //将图形代码送至P1口,并送入74HC573的输入端 j=_crol_(j,1); //P0口数据循环左移
}
}
3.3 控制八个面数据的函数及流程图
程序流程图如图9所示:
9 控制八个面流程图
/*****************
***************
函数名:
send_dis
函数功能:将8个
面的
数据
给别
送入
573
并动
态显
示出
来,
并将
控制每个面的开关数据送入ULN2803
*********************************/
void send_dis0()
{ uchar i,j=0x01;
for(i=0;i<8;i++)
{ P2=j; //将控制每一层阴极的数据送入P2口
send_num(f0[i]); //调用控制每一层阳极数据的子程序
j=_crol_(j,1); //P2口控制层的开关数据循环左移
Delay_1ms(2); //延时函数
} }
3.4 图形代码显示原理
图10 显示4*4*4的正方体
其代码如下:
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
本设计中因为使用图形的点阵显示,需要提取图形字模,对于8*8*8光立方的图形点阵字模是从点阵字库文件中提取出来的,因此我们首先来了解图形点阵字模的提取方法。

本设计8*8*8光立方所用取字模是可通过鼠标画图的方式自定义图片,只要弄清字库文件中每个面的分布对应我们自己所做的实物的各个面,就可以按照自己的意愿去显示图形了。

若要显示4*4*4的正方体,取字模如图10所示。

4 设计调试及分析
4.1 硬件性能的检测
(1)电路板制作完成后,首先检查电路元器件的焊接是否正确,对照原理图一步一步进行了检查。

比如检查单片机和芯片有没有接反,电容的正负极有没有接反。

(2)除了检查元器件外还要检查线路。

用万用表仔细检查每条线路是否存在短路和断路的现象,还有元器件有没有虚焊,仔细检查,逐次排除可能带来的误差和影响。

(3)将焊接好的LED光立方体焊接到电路板上。

然后再检查每个LED灯在焊接的过程中是否损坏,尤其是底层的灯。

(4)检查完成后再通电看所有的灯是否全亮。

4.2 程序调试
将编写好的程序写入单片机中。

第一个测试程序是显示一个8*8*8的立方体的边框。

图形基本将立方体显示出来了,但是仍可能看到个别灯没有点亮,或者有的灯亮度不高。

经过测试发现这些灯有的已经损坏了,有的焊锡已经脱落。

我将能焊接好的灯重新焊接好,不过,还是存在个别在中间的灯无法更换。

经过对硬件的不断调整,配合程序的调试,我们找到了硬件中出现的问题,而且通过不断地修改程序,基本达到设计要求。

将程序编写完整后,再将所有的程序烧写进单片机,此时就可以看到不断变化的图案了。

4.3 设计问题分析及使用说明
(1)其实,本次设计在电路板的制作过程中就遇到了瓶颈。

由于粗心没有仔细检查好电路原理图。

发现LE使能端和阳极数据输入端同时接到了P1口。

最后只能选择割线再飞线的方法将LE使能端接到单片机的P0口。

(2)通过观察现象发现LED灯的点亮有些杂乱无章。

开始,很苦恼不知道什么原因,不过还是发现P0口没有接上拉电阻,最后再将上拉电阻接好,才看到了LED灯显示的稳定的图案。

(3)确认硬件没有严重的问题后,再编写程序的过程中,发现实际显示的字符图案和我所预想图案方向不一样。

重新设置好光立方的三维坐标后,再将新的图形代码写入单片机,最终还是看到了完整的图案。

(4)将所有程序都写入单片机。

原本会出现动态变化的各种图形,但是却发现永远只显示第一个图形代码所表示的图形。

开始不知道是什么原因,因为通过分析发现程序的逻辑基本不存在什么问题。

不过,最终发现LED灯显示是我们采用的是静态扫描,所以无法实现。

后来我们通过将控制LED灯阳极和阴极的显示函数改为动态扫描,就是多次调用显示函数子程序。

最终,将所有的图案有序的显示出来了。

(5)光立方制作完成后就对它进行了演示,我们是采用电源开关来直接控制。

通电后,将写好的程序通过下载线写入单片机,就可以看到连续变化的图案了。

4.4 设计体会及教学建议
(1)此次LED光立方设计基本还是成功的,我们采用的单片机内存大,能够储存较大的程序量。

而且我们所用到的外部芯片使用时,程序书写原理简单。

光立方整体的演示效果还是具有一定的观赏性。

(2)设计过程中,也存在一些难点,比如:利用三维空间合理的设计图形代码,要求具有良好的空间想象能力;怎样实现LED灯图形的转换;怎样合理的控制每
个引脚的高低电平。

(3)总的来说,本次设计还存在不足的地方。

我们可以将高亮的LED灯换成雾面的,这样点亮的过程中,就不会将其它灯也照亮了。

还有就是,我们以后可以采用贴片的封装形式,那样就可以让整个LED光立方视觉效果更好。

512个灯的焊接方式也可以改进,层的共阴方式可以转变,这样立方体的显示效果会更好。

(4)本次课程设计是在王韧老师的指导下完成的,老师扎实的专业知识、丰厚的人文素养,严谨的治学态度深深的感染着我。

不过,希望老师以后能够以更加严谨的态度对待我们,让我们能够得到更大的提升。

结束语
经过近两个多月的调试与修改,最终看到了绚丽多姿,变化多端的LED光立方的图案。

虽然和起初所设想的图形的千变万化有点差距,花样不是特别多,不过,还是尽力了。

在此过程中,我学会到了很多,不仅仅是学习了STC89C516单片机的原理、74HC573和ULN2803芯片的功能和原理。

在很大程度上培养了自己独立思考的能力。

无论是在硬件制作过程中所遇到的问题还是在程序编写的过程中遇到的疑难,我学会了自己独立的发现问题,分析问题,遇到实在不明白的我会通过上网找资料、翻阅书籍、向老师同学请教来解决。

尽管困难重重,但是最终我还是一步一个脚印的走过来了,它让我收获到的不仅仅是成功的喜悦,而是在此过程中我所遇到的足以让我受益匪浅。

我知道无论做什么,细致、认真是必不可少的,这次设计让我深深地感受到做事认真的重要性,这样可以避免走很多弯路。

作为一名通信工程专业的学生,我知道我要学习的课程还有很多,我要提升的空间还有很大。

往后我会更加认真的学习理论知识,将其合理的运用到实践中来。

这次课程设计,让我受益匪浅,我会继续努力,争取下次做得更好。

致谢
本次3DLED光立方的设计是在王韧老师的悉心指导下完成的,老师渊博的知识教授于我,让我在实践的过程中避免了很多的错误。

在设计的过程中,老师时常慰问我们,让我在困惑中,找回了思路。

衷心的感谢王韧老师,他不仅教授我学习上的专业知识,而且还教给我很多做人的道理。

同时感谢实验室的老师和同学,他们不但给我提供了一个很好的学习空间,而且,对我起到了很大的指导作用。

实验室的同学为我提供必要的实验器材和元件,为设计的成功提供了很多帮助。

最后,再次感谢再这次设计中所有帮助过我的良师益友,设计的成功离不开你们对我的指导与帮助。

参考文献
[1] 李广第,朱月秀,冷祖祁.单片机基础[M].北京:北京航空航天大学出版社,
2007.6
LiGuangDi, ZhuYueXiu, LengZuQi. Single chip microcomputer based [M].
Beijing: Beijing university of aeronautics &astronautics press, 2007.6
[2] 恰汗·合孜尔.C语言程序设计(第三版) [M].北京:中国铁道出版社,2010
QaHan·.HeZiEr. C language program design, (third edition) [M]. Beijing: China railway publishing house, 2010
[3] 谢自美.电子线路设计·实验·测试(第三版) [M].武汉:华中科技大学出版
社,2006
XieZiMei. Electronic circuit design ·experimental ·test (third edition) [M].
Wuhan: central China university of science and technology press, 2006
[4] 邱光源.电路(第五版) [M].北京:高等教育出版社,2006
QiuGuangYuan. Circuit (fifth edition) [M]. Beijing: higher education press, 2006 [5] 阎石.数字电子技术基础(第五版) [M].北京:高等教育出版社,2006
YanShi.digital electronic technology foundation (fifth edition) [M]. Beijing: higher education press, 2006
附录
附录A: 顶层PCB图
附录B: 底层PCB图
附录C:原理图
附录D:元件清单
附录E: 实物印制电路板图
附录F:C语言源程序
/****
****
****
****
****
****

称:
基于
STC8
9C51
6
单片
机的
LED
光立


者:
曾倩

间:
2012
年12
月23

设计要求:(1)合理控制512个LED灯的亮和灭。

(2)编程实现不同图案的转变。

(3)采用不同的延时时间使LED灯图案转变的速度不同。

电路描述:单片机STC89C516
控制LED阳极数据输出与锁存芯片74HC573。

控制LED阴极数据输出芯片ULN2803。

**************************/
/******************C语言源程序*******************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define delay_time 40
uchar code f1[8][8]=
{ 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, }; //显示正方体8x8x8 uchar code f2[8][8]=
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; //显示正方体6x6x6 uchar code f3[8][8]=
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3C, 0x24, 0x24, 0x3C, 0x00, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x00, 0x3C, 0x24, 0x24, 0x3C, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; // 显示正方体 4x4x4 uchar code f4[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };// 显示正方体2x2x2 uchar code f5[8][8]=
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; //旋转1 uchar code f6[8][8]=
{0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; //旋转2 uchar code f7[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xDF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; //旋转3 uchar code f8[8][8]=
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, }; //旋转4 uchar code f9[8][8]=
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, }; //旋转5
{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8,
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; //旋转6 uchar code f11[8][8]=
{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};//旋转7 uchar code f12[8][8]=
{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };//旋转8 uchar code f13[8][8]=
{0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,};//旋转9 uchar code f14[8][8]=
{0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, };//旋转10
{0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, };//旋转11
uchar code f16[8][8]=
{0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x0F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x1F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, };//旋转12
uchar code f17[8][8]=
{0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00,
0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00,
0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };//三角递减,四角靠拢1 uchar code f18[8][8]=
{0xC0, 0xA0, 0x90, 0x88, 0x84, 0x82, 0x81, 0x80,
0xA0, 0x90, 0x88, 0x84, 0x82, 0x81, 0x80, 0x80,
0x90, 0x88, 0x84, 0x82, 0x81, 0x80, 0x80, 0x80,
0x88, 0x84, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80,
0x84, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
0x82, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, };//三角递减,四角靠拢2 uchar code f19[8][8]=
{0xA0, 0x90, 0x88, 0x84, 0x82, 0x81, 0x80, 0x80,
0x90, 0x48, 0x44, 0x42, 0x41, 0x40, 0x40, 0x80,
0x88, 0x44, 0x02, 0x01, 0x00, 0x00, 0x40, 0x80,
0x84, 0x42, 0x01, 0x00, 0x00, 0x00, 0x40, 0x80,
0x82, 0x41, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80,
0x81, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80,
0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, };//三角递减,四角靠拢3 uchar code f20[8][8]=
{0x90, 0x88, 0x84, 0x82, 0x81, 0x80, 0x80, 0x80,
0x88, 0x44, 0x42, 0x41, 0x40, 0x40, 0x40, 0x80,
0x84, 0x42, 0x21, 0x20, 0x20, 0x20, 0x40, 0x80,
0x82, 0x41, 0x20, 0x00, 0x00, 0x20, 0x40, 0x80,
0x81, 0x40, 0x20, 0x00, 0x00, 0x20, 0x40, 0x80,
0x80, 0x40, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80,
0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, };//三角递减,四角靠拢4 uchar code f21[8][8]=
{0x88, 0x84, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80,
0x84, 0x42, 0x41, 0x40, 0x40, 0x40, 0x40, 0x80,
0x82, 0x41, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80,
0x81, 0x40, 0x20, 0x10, 0x10, 0x20, 0x40, 0x80,
0x80, 0x40, 0x20, 0x10, 0x10, 0x20, 0x40, 0x80,
0x80, 0x40, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80,
0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, };//三角递减,四角靠拢5 uchar code f22[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };//爆炸1
uchar code f23[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x42, 0x00, 0x42, 0x42, 0x00, 0x42, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x42, 0x00, 0x18, 0x18, 0x00, 0x42, 0x00,
0x00, 0x42, 0x00, 0x18, 0x18, 0x00, 0x42, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00,
0x00, 0x42, 0x00, 0x42, 0x42, 0x00, 0x42, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };//爆炸2
uchar code f24[8][8]=
{0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
0x01, 0x42, 0x00, 0x42, 0x42, 0x00, 0x42, 0x80,
0x80, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x01,
0x01, 0x42, 0x00, 0x18, 0x18, 0x00, 0x42, 0x80,
0x80, 0x42, 0x00, 0x18, 0x18, 0x00, 0x42, 0x01,
0x01, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x80,
0x80, 0x42, 0x00, 0x42, 0x42, 0x00, 0x42, 0x01,
0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,};//爆炸3 uchar code f25[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };//正方体1 uchar code f26[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, };//正方体2 uchar code f27[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x09, 0x09, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x09, 0x09, 0x0F, 0x00, 0x00, 0x00, 0x00, };//正方体3 uchar code f28[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x11, 0x11, 0x11, 0x1F, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x1F, 0x11, 0x11, 0x11, 0x1F, 0x00, 0x00, 0x00,};//正方体4 uchar code f29[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x21, 0x21, 0x21, 0x21, 0x3F, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
0x3F, 0x21, 0x21, 0x21, 0x21, 0x3F, 0x00, 0x00, };//正方体5 uchar code f30[8][8]=
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7F, 0x00, };//正方体6 uchar code f31[8][8]=
{0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, };//正方体7 uchar code f32[8][8]=
{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,};//方块移动1 uchar code f33[8][8]=
{0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,};//方块移动2 uchar code f34[8][8]=
{0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,};//方块移动3 uchar code f35[8][8]=
{0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, };//方块移动4 uchar code f36[8][8]=
{0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,};//方块移动5 uchar code f37[8][8]=
{0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,};//方块移动6 uchar code f38[8][8]=
{0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, };//方块移动7 uchar code f39[8][8]=
{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, };//方块移动8 uchar code f40[8][8]=
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; //888六个面全亮/********************************
函数名: send_num
函数功能:将一个面的数据送入74hc573
函数入口: *p 需要送入数据的起始地址
函数出后:无
*********************************/
void send_num(uchar *p)
{
uchar i,j=0x01;
for(i=0;i<8;i++) // LED灯每层总共8行,循环次数总共控制8次{
P0=j; // 数据送至P0口控制使能端LE
P1=*(p+i); //将图形代码送至P1口,送入74HC573的输入端
j=_crol_(j,1); // P0口数据循环左移
}
}
/********************************
函数名: send_dis
函数功能:将8个面的数据给别送入573并动态显示出来
函数入口:无
函数出口:无
*********************************/
void send_dis1()
{
uchar i,j=0x01;
for(i=0;i<8;i++)
{
P2=j; //将控制每一个面阴极的数据送入P2口
send_num(f1[i]); //调用控制每一个面阳极数据的子程序
j=_crol_(j,1); //P2口控制层的开关数据循环左移。

相关文档
最新文档