888光立方程序
光立方设计文档
![光立方设计文档](https://img.taocdn.com/s3/m/34c0a533ccbff121dd368378.png)
8*8*8光立方摘要本设计制作出一个三维立体显示图案的LED光立方。
不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。
同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。
本设计是采用STC15W4K58S4单片机为核心控制器,74HC595扩展I/O口,完成硬件电路设计。
通过软件编程控制数据下载到单片机完成设计图案的显示。
软件采用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
关键词STC15W4K58S4单片机; ULN2803驱动管;74HC595。
目录8*8*8光立方 (1)1、设计要求与方案 (1)1.1 设计目的 (1)1.2 设计思路 (1)2、工作原理 (1)2.1模块的简介 (1)2.2 8*8*8光立方工作原理 (1)3、方案选择 (2)3.1电源的选择 (2)3.23D显示核心控制芯片 (3)3.3I/O口扩展芯片的选择 (3)3.4LED发光显示二级管 (3)4、硬件整体设计概述及功能分析 (3)4.1系统概述 (4)4.2系列单片机简介 (5)4.3时钟电路设计 (5)4.4 复位电路设计 (5)4.5 74HC5795芯片连接电路图与介绍 (6)5、主程序设计思路 (7)5.1显示程序的设计 (7)6、硬件电路设计 (8)6.1焊接准备 (8)6.2 焊接步骤 (8)6.3 焊接技巧 (8)7、收获总结 (9)1、设计要求与方案1.1 设计目的在当今的信息化社会中,为追求逼真、清晰的3D视频显示,平面的二位显示早已不在是主流,为此制作出一个三维立体显示图案的LED光立方。
该设计方案将打破了传统的平面显示视频的方法,该方案设计的LED显示屏显示画面色彩鲜艳,立体感强,可以广泛应用于各种工场合的多种用途。
888光立方仿真
![888光立方仿真](https://img.taocdn.com/s3/m/d54d2fd389eb172ded63b779.png)
如此组成一个灯板,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,
888光立方课程设计
![888光立方课程设计](https://img.taocdn.com/s3/m/1645b5a64128915f804d2b160b4e767f5acf80b5.png)
888光立方课程设计一、教学目标本课程的教学目标是让学生掌握光立方的基本原理和制作方法,培养学生的创新意识和动手能力。
具体分为三个部分:1.知识目标:学生能够理解光立方的物理原理,包括光的传播、反射、折射等;掌握光立方的制作流程和技巧。
2.技能目标:学生能够运用光立方原理,独立完成一个光立方的设计和制作;培养学生的团队协作能力和问题解决能力。
3.情感态度价值观目标:学生能够认识到光立方在科技领域的应用价值,激发对科技创新的热爱和好奇心;培养学生的创新精神和实践能力。
二、教学内容本课程的教学内容主要包括光立方的原理、制作方法和应用。
具体安排如下:1.第一章:光立方概述,介绍光立方的定义、发展历程和应用领域;2.第二章:光立方的物理原理,讲解光的基本性质、光的传播、反射、折射等现象;3.第三章:光立方的制作材料和工具,介绍光立方制作所需的材料、工具及其使用方法;4.第四章:光立方的制作流程,讲解光立方的设计、搭建、调试和优化等环节;5.第五章:光立方的创新应用,介绍光立方在各个领域的应用案例,探讨光立方的未来发展。
三、教学方法为了提高教学效果,本课程采用多种教学方法相结合的方式,包括:1.讲授法:教师讲解光立方的基本原理、制作方法和应用,引导学生掌握相关知识;2.实践操作法:学生动手制作光立方,培养学生的实践能力和创新意识;3.案例分析法:分析光立方的实际应用案例,帮助学生了解光立方的应用价值;4.小组讨论法:学生分组讨论光立方的制作过程中的问题,培养团队协作能力。
四、教学资源为了支持教学内容的实施,本课程准备以下教学资源:1.教材:《光立方制作教程》,为学生提供系统的学习材料;2.参考书:《光学原理与应用》、《创新制作教程》等,为学生提供拓展阅读资料;3.多媒体资料:制作光立方的视频教程、动画演示等,帮助学生更好地理解光立方的制作过程;4.实验设备:为学生提供光立方制作所需的实验材料和设备,如LED灯、电路板、显微镜等。
光立方制作+程序讲解
![光立方制作+程序讲解](https://img.taocdn.com/s3/m/d32bd05819e8b8f67d1cb964.png)
光立方教程今天,给大家带来光立方的制作教程,基于本人制作的经验,给各位想要做的朋友分享制作过程。
对于第一次制作的朋友,我们要先制作好一个日程表,如下图:我们要弄好一个计划,就好像单片机运行程序一样。
当然,废话少说。
接下来,我们需要一份购买材料的清单如上图所示,我们需要购买的万能板需要购买18*30的规格。
这样子才有足够的空间去安装我们的电子元件。
首先,我们需要用万能板作为骨架,每2cm*2cm就要焊接一个排针,上下左右间隔一样。
不过对于初学者来说,一次性焊接64颗排针有点困难,所以我们需要用胶布把每一颗排针固定好,然后上焊,当然这是一个快捷的方法,也适合所有的初学者当我们把排针固定好后,我们只需要把板子翻过来焊接就可以了。
接下来,我们要把每一颗led灯折弯后侧着放置在排针中。
从左到右,从上至下的安放,安放好后,我们只需要把他们的脚焊接即可。
折弯时记住使用镊子折弯。
效果图如下图所示显而易见,这是非常需要考焊功的活,各位制作时候要注意节点与节点之间的间距,并且注意焊点不要点太多的锡,会影响做出来的效果与美观。
接下来,我们把弄好的8排led插在万能板上,注意:我们要注意每排之间的间隔。
下一步,我们需要在把每排led的共阴极连接在一起,一共8层,每层都要连接好,当我们把每层连接好后,我们要在每层的末端或者初始端接一条输出线,作为共阴极连接UNL2803。
当然,我们连接UNL2803的前提是先把芯片接好。
小编我直接把芯片焊接在板子上,这种方法对于初学者来说不可取,需要弄芯片底座,不然芯片烧掉了就很难拆下来了。
接下来我们要按照电路图接线路了(是不是很开心,终于可以接线路了,好戏在后头),下面是74HC573集成电路的接法:首先我们先分析一下原理图:74HC573的1D~8D都连接在一起,然后再接到单片机的P0.0~P0.7端口;1Q~8Q分别连接每排的共阳里,就是焊接在电路板上的光立方引脚;至于LE要分别接到单片机的P2.0~P2.7。
8x8x8LED光立方原理加程序
![8x8x8LED光立方原理加程序](https://img.taocdn.com/s3/m/324d1143852458fb770b56a3.png)
8x8x8LED光立方周渴望南阳理工学院Q418084696功能;通过自定义代码实现LED炫丽动画效果。
通过按钮P3-7按钮实现动画与暂停。
底面是512个LED分成64组的共阳极由8个74hc573控制,每层64个LED 共阴极接在一起,共引出8跟负极与uln2803相连由其控制(这里注意uln280输出高电平LED负极通,低电平LED负极断)。
原理:先点亮最下层LED,假设8个74hc573全输出高电平,uln2803控制最下层输出高电平,那么最下层64个LED都点亮,延时10ms到5ms,关断最下层显示开通第二层假设也是8个74hc573全输出高电平,那么倒数第二层64个LED 全亮,再延时2ms到5ms那么以此类推每层的LED64个全都会亮,由于从第一层亮到最后一层亮时间小于50ms,由于人眼睛视觉暂留效果,就会觉得是全部层一起亮的,这样就“一起”点亮了512个LED。
其实每层的LED亮的数量不一样就组成了各种画面,通过调节定时器,就会有一种绚丽的动画效果。
本文使用的是STC12c5a60s2单片机,因为其程序存储空间大,stc89c52rc单片机完全可胜任(验证),只是程序太多要想办法了。
原理图:本试验中P0口控制8个74hc573的锁存端,P1控制每层与uln2803相连,P2口传输到74hc573数据。
本文使用动态扫苗,基于我之前做的16x16点阵文字移动显示程序,程序简单易懂,但是代码较多。
程序:#include <A T89X52.H>sbit LA0=P0^0; /*定义8个74hc573锁存脚*/ sbit LA1=P0^1;sbit LA2=P0^2;sbit LA3=P0^3;sbit LA4=P0^4;sbit LA5=P0^5;sbit LA6=P0^6;sbit LA7=P0^7;sbit KEY=P3^7; /*定义暂停开关*/void KEYKONG(); /*按钮程序*/unsigned char code ceng[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; /*8层控制代码每次亮一层*/unsigned char code di[1224][8]={{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, /*动画代码,纵向扫描*/{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 1*/{0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38},{0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44},{0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04},{0x00,0x00,0x00,0x00,0x3c,0x3c,0x3c,0x3c},{0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04},{0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44},{0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 2*/{0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38},{0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44},{0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 3*/{0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00},{0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00},{0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00},{0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00},{0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00},{0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00},{0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 4*/{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 4*/ {0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 4*/ {0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*3 4*/ {0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x7c,0x7c,0x7c,0x7c}, /*2 1*/ {0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08},{0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04},{0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04},{0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44},{0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38},{0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c}, /*2 2*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44},{0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38},{0x7c,0x7c,0x7c,0x7c,0x00,0x00,0x00,0x00}, /*2 3*/ {0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00},{0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00},{0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00},{0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00},{0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00},{0x7c,0x7c,0x00,0x00,0x00,0x00,0x00,0x00}, /*2 4*/ {0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x7c,0x7c,0x00,0x00,0x00,0x00,0x00,0x00}, /*2 4*/ {0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x7c,0x7c,0x00,0x00,0x00,0x00,0x00,0x00}, /*2 4*/ {0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x7c,0x7c,0x00,0x00,0x00,0x00,0x00,0x00}, /*2 4*/ {0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},{0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38}, /*1 1*/ {0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30},{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10},{0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38}, /*1 2*/ {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},{0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00}, /*1 3*/ {0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00},{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00}, /*1 4*/ {0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00}, /*1 4*/ {0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00}, /*1 4*/ {0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00}, /*1 4*/ {0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00},{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, /*再斜1*/ {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*再斜2*/ {0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00}, /*由左往右4*/ {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, /*再斜1*/{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*再斜2*/ {0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00}, /*由左往右4*/ {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, /*再斜1*/{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*再斜2*/ {0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00}, /*由左往右4*/ {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, /*再斜1*/{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},{0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},{0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, /*内斜1*/{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, /*竖一中面4*/ {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},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*内斜2*/ {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, /*内斜1*/{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, /*竖一中面4*/ {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},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*内斜2*/ {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ {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},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, /*内斜1*/{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, /*竖一中面4*/{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},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*内斜2*/{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ /*43*/ {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}, /*扩展1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, /*扩展2*/{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*扩展1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ /*43*/ {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}, /*扩展1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, /*扩展2*/{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*扩展1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*横中面5*/ /*43*/ {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}, /*扩展1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, /*扩展2*/{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下9*/{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}, /*下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},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下7*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下6*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40}, /*下5*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40}, /*下4*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, /*下3*/ {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{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},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04}, /*下2*/ {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{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}, /*下1*/ {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},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, /*下1*/ {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},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04}, /*下2*/ {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{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},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, /*下3*/ {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{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},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40}, /*下4*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40}, /*下5*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下6*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下7*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下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},{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, /*下9*/ {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}, /*下9*/ {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},。
光立方设计制作(全过程、带程序连接)
![光立方设计制作(全过程、带程序连接)](https://img.taocdn.com/s3/m/86a69bed9b89680203d8254c.png)
摘要之前在网上看了一些光立方的演示视频,被它那些立体感吸引了。
想到自己学单片机也这么久了,于是乎就想做一个玩玩,同时可以复习一学期以来自己的编程能力和动手的能力,一举两得是一件很不错的事情。
向朋友要了一些资料,就开工了。
光立方顾名思义就是一个立方体,采用的是8*8*8的模式,整个立方大概是16cm*16cm*18cm(长.宽.高)的样子,主要分为三个模块:主控模块、驱动模块、显示模块;我所做的光立方,主控电路采用的主控芯片是STC12C5A60S2芯片,驱动电路是采用我们常用的74HC573数字芯片,以及ULN2803达林顿管。
关键字:光立方 74HC573 STC12C5A60S2 ULN2803电路原理图:图1.电路原理图元件的选择:(1)由于光立方的程序量比较大,而且要求相对比较高,因此经过考虑之后我们决定用51系列的增强型芯片STC12C5A60S2,选择的理由:1.无法解密,采用第六代加密技术;2.超强抗干扰;3.内部集成高可靠复位电路,外部复位可用可不用;4.速度快,比8051快8-12倍;(2)由于灯的个数比较多,因此所需要的电流相对也比较大,所以选择ULN2803,ULN2803是八重达林顿,1 至8脚为8路输入,18 到11脚为8路输出。
驱动能力500MA \50V。
应用时9脚接地,要是驱动感性负载,10脚接负载电源V+。
输入的电平信号为0,或5V。
输入0是,输出达林顿管截止。
输入为5V电平时,输出达林顿饱和。
输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作;(3)由于在刚刚接触锁存器的时候,就接触了74HC573,对它的使用也比较成熟,因此在驱动部分使用了熟悉的74HC573,其优点有:1.高阻态;就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;2.数据锁存;当输入的数据消失时,在芯片的输出端,数据仍然保持;3.数据缓冲; 加强驱动能力;(4)LED灯的选择,出于外观和整体的形状美观,个人推荐雾面蓝光方型LED。
光立方教程(含HEX烧录文件)
![光立方教程(含HEX烧录文件)](https://img.taocdn.com/s3/m/7ad6533bf111f18583d05a7e.png)
先上效果图首先,准备材料和工具。
材料:1, 雾面蓝色(喜欢其他色的随意)LED (3MM 或者5MM 都行),最好是雾面LED ,不懂得购买的时候跟老板说清楚就ok~2,STC12C5A60S2单片机一片3,DIP-40的插座一个4,22.1184MHZ晶振一个5,单排圆孔插针座20个(建议多准备些)6,单排插针4个7,USB母座一个8,0.3--0.8镀锡铜线一米左右,没有的也行,根据自己的焊接习惯。
个人比较喜欢镀锡铜线。
工具1,剪线钳2,尖嘴钳3,电烙铁4,焊丝5,松香6,镊子7,其他(总之就是焊接用的那些了,根据个人情况。
)———————————分割线———————————首先,电路图很简单了电路图很简单,稍微有点单片机基础都可以做。
然后呢,开动你灵活的小左和小右吧~准备绘制焊接图纸。
首先,确定你要做多大尺寸的光立方,4*4*4也就是64个灯,个人感觉做成7厘米见方左右就差不多了。
根据个人喜好调节吧~大小具体怎样确定呢,二少在这里简单说明一下,每一边是4个灯,也就是三个灯距,灯距的三倍加两个灯宽就是边长了。
灯距的确定,不是随便确定的,必须是2.54毫米的整数倍,为什么呢,因为洞洞板的孔距就是2.54,最后的灯是插在洞洞板上的。
本教程所定的灯距是4倍的孔距,也就是10毫米挂点,小误差这里就可以忽略了。
OK~根据灯的情况,确定洞洞板的大小,最少得是20孔,因为单片机用的是DIP40的,所以至少要保证单片机可以安装,当然高手还可以立式安装单片机,二少在这里就不多介绍了。
确定以上参数后,好了,开始制作吧~我这边手头有的洞洞板是19*23孔的,所以嘛~单片机就有俩引脚是悬空的,不过不影响。
焊接电路,(绘制软件,layout)然后,确定单片机和LED灯体的安装位置。
并做简单标注。
用尖嘴钳把插针掰成一个一个的,直接焊接于绿色的焊盘位置,4*4+4个。
如下图效果单片机最好安装在座子上,直接焊接死亡率较高。
光立方制作+程序
![光立方制作+程序](https://img.taocdn.com/s3/m/685cb40859eef8c75fbfb351.png)
光立方教程今天,给大家带来光立方的制作教程,基于本人制作的经验,给各位想要做的朋友分享制作过程。
对于第一次制作的朋友,我们要先制作好一个日程表,如下图:我们要弄好一个计划,就好像单片机运行程序一样。
当然,废话少说。
接下来,我们需要一份购买材料的清单如上图所示,我们需要购买的万能板需要购买18*30的规格。
这样子才有足够的空间去安装我们的电子元件。
首先,我们需要用万能板作为骨架,每2cm*2cm就要焊接一个排针,上下左右间隔一样。
不过对于初学者来说,一次性焊接64颗排针有点困难,所以我们需要用胶布把每一颗排针固定好,然后上焊,当然这是一个快捷的方法,也适合所有的初学者当我们把排针固定好后,我们只需要把板子翻过来焊接就可以了。
接下来,我们要把每一颗led灯折弯后侧着放置在排针中。
从左到右,从上至下的安放,安放好后,我们只需要把他们的脚焊接即可。
折弯时记住使用镊子折弯。
效果图如下图所示显而易见,这是非常需要考焊功的活,各位制作时候要注意节点与节点之间的间距,并且注意焊点不要点太多的锡,会影响做出来的效果与美观。
接下来,我们把弄好的8排led插在万能板上,注意:我们要注意每排之间的间隔。
下一步,我们需要在把每排led的共阴极连接在一起,一共8层,每层都要连接好,当我们把每层连接好后,我们要在每层的末端或者初始端接一条输出线,作为共阴极连接UNL2803。
当然,我们连接UNL2803的前提是先把芯片接好。
小编我直接把芯片焊接在板子上,这种方法对于初学者来说不可取,需要弄芯片底座,不然芯片烧掉了就很难拆下来了。
接下来我们要按照电路图接线路了(是不是很开心,终于可以接线路了,好戏在后头),下面是74HC573集成电路的接法:首先我们先分析一下原理图:74HC573的1D~8D都连接在一起,然后再接到单片机的P0.0~P0.7端口;1Q~8Q分别连接每排的共阳里,就是焊接在电路板上的光立方引脚;至于LE要分别接到单片机的P2.0~P2.7。
888光立方练习代码
![888光立方练习代码](https://img.taocdn.com/s3/m/c6ead5cb5022aaea998f0f74.png)
{
while(hwz==0x45)
{led1=0;X=0X016;Z=0X016;Y=0X16;//P4控制Z轴;P0控制X轴;P2控制Y轴;
}
while(hwz==0x46)
{ led1=1;
X=0X00;Y=0X00;Z=0X00;
};
}
}
//三维串口通信
#include<STC15f2k60S2.h>
}
voiddelay1(intt)
{
chari;
while(t--)
for(i=0;i<20;i++);
}
/********oìía?óê±********/
voidDelay2100us()//@12.000MHz
{
unsignedchari, j;
i= 25;
j = 127;
do
{
while(--j);
EA=1;
ET0=1;
TR0=0;
EX0=1; //允许总中断中断,使能INT0外部中断
IT0=1; //触发方式为脉冲负边沿触发
IRIN=1; //I/O口初始化
}
/*************主函数******************/
voidmain()
{inti;
delay(800);
init();//初始化函数
{
unsignedchari, j;
_nop_();
_nop_();
i= 2;
j = 158;
do
{
while(--j);
} while (--i);
}
/*****************½âÂë¹ý³Ì***************/
光立方的制作过程
![光立方的制作过程](https://img.taocdn.com/s3/m/0b781ff4910ef12d2bf9e700.png)
组装部分一,灯珠焊接最开始的金字塔,我给大家的方案是泡沫板,现在我把焊接灯珠的方式改进了,焊接速度更快、质量更好,方法如图:就是这个,用一张18X30CM的万能板,上面焊接上间距2.54的排针,用法如下图:横向的孔数是7个,纵向孔数是8个,这样焊接出来的灯珠间距就都是8个了一目了然,这样就把灯珠固定好了,如果管脚的弯折方法和我图片一样的话(朝下的是正极),那么最优的方法是从右到左,从上到下排放。
焊接我就不多说了,这个是最讲究的,虽然有这个模板焊接起来很方便,但焊锡一定要上好,否则开焊后还是很难搞的。
温度要适当,免得烧毁灯珠,一般情况下,能把焊锡刚好溶化时的温度即可。
用这种方法焊接出的点阵,要比用泡沫做模板的点阵质量更好,很少有开焊点,取下的点阵横平竖直,效率上也有了极大的提高。
焊接好的平面如图:二,灯珠组装在组装之前,先准备2张18X30cm的万能板,喷上黑色的喷漆,比较常用的那种,价格不贵,如图:再拿出个8×8的点阵,比划一下,量好裁剪的尺寸,用斜口钳剪切还是很方便的。
然后就需要给底板和侧板焊接弯排针,间距都是8个孔,朝向请自己把握,下面是我做的图:我想看了图后,大家都应该明白了,除了弯排针,还要给每个面的管脚都焊接上2.54的冷压端子,很容易的,东西也很便宜。
这样做的好处就是非常容易拆装,第一次的时候我用的是直排针,结果就很难组装,弯排针不会影响美观。
在组装之前,先要焊接底板和侧板焊接上连接线,如图:每个面都是有64根线,我用的是以前零散、没了头子的杜邦线,长度刚刚好够的,读者可以自己做线或者买成品,买成品我觉得也不贵,成品线的好处是,一端是8P的插座,另一端是裸线,直接焊接就好。
这个过程还是相当漫长的,我焊接512个灯珠用了三个下午,底板的焊接和接线同样是三个下午,可以说,老老实实的焊接的话,还是需要一周的时间的,我希望喜欢DIY的朋友们要有耐心,过程肯定是枯燥乏味的,但成功的喜悦也是难以言喻的。
3d8光立方程序
![3d8光立方程序](https://img.taocdn.com/s3/m/ce120b13b7360b4c2e3f64f1.png)
/*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;
基于单片机的光立方设计含程序+原理图+实物图)
![基于单片机的光立方设计含程序+原理图+实物图)](https://img.taocdn.com/s3/m/936eb333cfc789eb172dc882.png)
光立方程序bata3
![光立方程序bata3](https://img.taocdn.com/s3/m/498b95194431b90d6c85c79f.png)
};
uint t=0;//花样数组检测数
uchar z=0;//选择标志位
uint p[]={0x140,0x780};//花样个数
uint b=10;//停留时间常数
uchar a=0;
uchar j=0;
0xFF, 0x81, 0xBD, 0xBD, 0xBD, 0xBD, 0x81, 0xFF,
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
uint t=0,y=0;//花样数组检测数,为校验位
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,
for(a=0;a<8;a++){
cls=0x01;//74ls573 C控制端赋值,1输入,0锁存
for(j=0;j<8;j++){
wdata();//调用数据写入函数
cls=cls<<1;//对下一个74ls573写入数据
ls=0x00;
t=t+1;
}
uln=uln<<1;//准备显示下一层花样
光立方_毕业论文(含程序原理图实物图)
![光立方_毕业论文(含程序原理图实物图)](https://img.taocdn.com/s3/m/dca94d110c22590103029d79.png)
目录摘要 .......................................................................................................................................................... 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)。
3D8光立方作品说明书
![3D8光立方作品说明书](https://img.taocdn.com/s3/m/16b539621711cc7931b716bb.png)
8*8*8光立方作品说明书摘要LED点阵显示屏已经应用到了我们生活中的方方面面,科技发展的脚步一直向前,由于3D电影给人们带来了更加震撼的视觉体验。
于是想设计出一种3D显示屏。
通过向指导员的学习了解,知道LED显示分静态显示和动态显示,以及两种显示的控制方法:LED共阴和共阳接法不同的驱动方法。
在网站上查找相关的文献时,我们了解LED显示技术的特色之处:一是节能(直接功耗,间接耗能)高空间利用率,二是基本无电离辐射。
LED点阵显示屏的特点还有比数码管具有实用、便宜、亮度高等优点,而且做出来的LED显示很耐用。
LED显示屏还具有亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定等优点。
LED点阵显示屏的发展前景极为广阔,目前正朝着更高亮度,更高耐气候性,更高的发光密度,形状的多样性,更高的发光均匀性、可靠性、多色化方向发展。
另外在电子工程师之家看到过不少网上朋友发帖子,晒自己制作的3D光立方显示,5*5*5的、有8*8*8的、甚至还有一个16*16*16的。
在爱折腾网站也曾看过有用蓝色LED和白色LDE制作的光立方。
在运动会的开幕式上,物理与电子信息学院展示了光立方,经过搜集资料看了视频了解后,我们被光立方的立体感吸引了,我们向物理与电子信息学院的同学学习制作一个光立方,一方面满足自己的兴趣爱好之心,另一面也锻炼我们的动手能力。
于是我最终确定也制作一个蓝色LED 显示8*8*8的光立方。
光立方顾名思义就是一个立方体,我们采用的是8*8*8的模式,大概的距离是17cm*17cm*17cm(长.宽.高),主要分为三个模块:主控模块驱动模块显示模块;我们所做的光立方驱动电路,主控电路等都是纯手工焊接。
采用的主控芯片12C5A60S2芯片,驱动电路是采用我们常用的74HC573数字芯片。
本设计采用C语言编程实现不同图案的转变,利用单片机控制512个LED灯的亮灭,采用延时控制LED亮灭时间使LED灯图案转变的速度不同,最终使得整个立体呈现不同的造型和图案,使其变得美轮美奂、绚丽多彩。
光立方的工作原理_基于74hc573的8-8-8光立方LED的控制方式
![光立方的工作原理_基于74hc573的8-8-8光立方LED的控制方式](https://img.taocdn.com/s3/m/b4794977453610661ed9f4b0.png)
光立方的工作原理_基于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呢?答案是肯定的,这种方法,就是扫描驱动电路。
光立方制作全过程
![光立方制作全过程](https://img.taocdn.com/s3/m/ddf53557312b3169a451a42e.png)
光立方制作全过程前言:在大家奋笔疾书做英语四级时,我却在这里写日志,所以不必赞叹,每个人都有自己的长处的!制作摇摇棒时我认为耐心是成功的关键!但做完光立方,才发现原来是小巫见大巫,所以想制作不想要清楚自己的工作量哟!1、工欲善其事必先利其器工具:优质电烙铁(对焊接速度有很大影响)、尖嘴钳(512个灯1024个脚都需要认真处理)、镊子、剥线钳;2、材料512个灯,但是你不能保证自己的焊接技术时应该多买点,买一包1000个一包也挺便宜的,以后还能留着用。
优质锡优质锡丝我用来两卷导线一卷大洞洞板一个(看想要制作成多大的,太大要两个)开始制先将512个灯的脚弯好,成下图的形状,负极是横着,正极折个弯竖着,因为我们要把一列的正极连着,一层的负极连着,所以只能这样弯引脚。
还需要64个排孔用来插最后和洞洞板相连的灯脚了还有排座(用来插面包板线的)形状估计你看不清,没办法只好来个三视图,画的不好见谅!这个弯灯脚我要说一说,我当时是每天晚上回寝室后就开始弯,每天弯到灯熄,然后拿台灯照着,继续弯,直到打瞌睡才停,所以又部分弯的不好,造成最终不是非常美观,大家吸取教训吧!一个花了三四天晚上,所以前期工作已经很折磨人耐心了,但想想做出来的效果,相信你又有坚持的信心了!然后就是把点排成线,线排成面,面排成体了!如果想制作快有美观,必须使用8*8的模板这样可以使点成功的摆成线,线摆成面线是8个灯的负极连的,还有每连完一条线,就用电池测一测也没有连错或灯烧坏的,等连成面就不好拆了,我就要一个灯的正负极连反了,还好检查及时,没有花多大功夫解决。
用正极把线连成面就成了8*8的面了把每一面的正极引脚都插在排孔中,如下图,每一面然后用每一面灯脚的负极引脚把面连起来,没有点亮效果已经很震撼了!主体弄好之后就是连线了!最好是先用面包板线连起来,看达到预期的效果没有,因为线是在是太多了,如果直接连有问题都不好找,看看下面用面包板做的吧!这还是没有和主体相连呢!其中用来一个好单片机STC12C5A60S2(用来整体控制)和八个74HC573(每一个控制八个灯的正极)还有1个ULN2803(用来控制每一层,最后有八层,每一层都引出来一条细线和2803相连),电路图如下洞洞板背面焊接这就是为什么需要两卷锡丝的原因连接好后程序代码太长,需要直接问我要吧!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void cirp(char cpp,uchar dir,uchar le)
{
uchar a,b,c,cp;
if ((cpp<128)&(cpp>=0))
{
if (dir)
cp=127-cpp;
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;
#include <REG52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar display[8][8];
/*rank:A,1,2,3,4,I,心,U*/
uchar code table_cha[8][8]={0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0x66,0x30,0x18,0xc,0x6,0xf6,0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c};
}
void delay(uint i)
{
while (i--){
delay5us();}//12t的mcu注释这个延时即可
}
/*To judge the num bit*/
uchar judgebit(uchar num,uchar b)
{
char n;
num=num&(1<<b);
if (num)
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--);
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--)
{
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++)
{
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)
/*railway*/
uchar code dat[128]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4};
/*the "ideasoft"*/
uchar code table_id[40]={0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x89,0x89,0x00,0xf8,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};
{
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.
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 *t;
/*railway 3*/
uchar codedat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10};
n=1;
else
n=0;
return n;
}
/*To figure out the round number*/
uchar abs(uchar a)
{
uchar b;
b=a/10;
a=a-b*10;
if (a>=5)
b++;
return b;
}
/*To figure out the absolute value*/
{
uchar 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++)
{
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)
else
cp=cpp;
a=(dat[cp]>>5)&0x07;
b=(dat[cp]>>2)&0x07;