基于单片机的光立方设计

基于单片机的光立方设计
基于单片机的光立方设计

XXXX大学本科课程设计

题目:基于单片机的光立方设计姓名:

学号:

院(系):

专业、年级:

指导教师:

二○XX年X月

一、设计任务

在当今信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。新型的大屏幕要求显示画面色彩鲜艳,立体感强,静如油画,动如电影,这些设计广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。本设计旨在利用人眼视觉暂留的特点,通过AT89C52单片机控制一个由64盏LED灯组成的四层光立方模拟3D显示效果,实现三维显示。

该光立方具有以下功能:

1)能单独点亮每一个LED灯;

2)能点亮任意一条线上的LED灯;

3)能同时点亮任意一个面上的LED灯;

4)能同时点亮所有的LED灯;

5)能让LED灯自由亮灭,产生不同的显示效果。

二、设计方案

1、单片机资源分配情况

将LED光立方分成4层,分别由单片机的P2.0,P2.1,P2.2,P2.3,四个IO 口来控制每一层,由于采用的是共阳极所以当层电位为高电平有效,由P0口和P1的总共16个IO口来控制每层的16盏灯,低电平有效,P0口加上拉排阻。这样就可以通过控制IO口的输出电平来控制每盏灯的亮灭。

2、系统框图

本系统主要由时钟电路、复位电路、LED光立方电路组成;时钟电路和复位电路作为单片机输入,LED光立方电路作为单片机输出,显示出控制结果如图2- 1所示。

时钟电路:单片机的各个功能部件的运行都是以时钟控制信号为基准,一拍一拍的工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的可靠性和稳定性。常用的时钟电路设计为内部时钟方式,单片机内部有一个由反向放大器构成的振荡电路,芯片上的XTAL1和XTAL2分别为振荡电路的输入和输出端。只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,由振荡器产生自激振荡,便构成一个完整的振荡信号发生器。

复位电路:通过某种方式,使单片机内部各类寄存器的值变为初始状态的操作称为复位,复位主要通过外部电路实现。常见的复位电路包括上电复位、手动

按键复位和看门狗复位三种方式,本次设计综合采用上电复位方式和按键复位方式。

图2- 2系统框图

3、程序流程

本项目的程序设计主要包括延时程序、显示程序两个子程序。

显示程序:主要是在得到当前控制灯的位置后,通过控制与它相连的阴阳两端的引脚电平,从而实现对灯的亮灭进行控制。

延时程序:由于显示程序不能控制灯持续点亮,达不到显示效果,我们需要增加延时程序来延长显示时间从而达到显示效果。

如图2-2所示单片机复位以后,程序开始运行,获取到要显示的LED所在的层和列然后调用显示子程序点亮LED灯,通过延时程序进行短暂延时后继续获取下一个要显示的LED灯的所在的层和列。

图2- 3程序流程图

三、工作原理

利用单片控制LED点阵显示的原理和控制技术,来控制光立方显示。即通过编写程序控制不同LED的亮灭,来显示不同的内容。由于人眼的具有视觉暂留的特性,设置每幅画面的延迟时间可以使连续的一系列画面呈现动态。最终达到所要显示的内容。每个灯都是由层控制端(共阳极)和列控制端决定亮或灭。

如图3-1 a所示,将光立方分成四层,每一层有一个单片机引脚作为层控制端与之相连,设计成共阳极。如图3-1 b所示每层光立方有16盏灯,而这16盏灯又分别与单片机的P0、P1两个IO口组共16个IO口相连,这样就能很好地控制每一盏灯的亮灭。

a b

图3-1 光立方结构示意图:a 四层光立方分布结构,b 光立方每层的LED分布

在三维光立方中采用动态扫描显示,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。图3-2描述了将光立方某个侧面对角线点亮的过程

第一帧第四帧

第三帧

第二帧

图3-2光立方某个侧面对角线点亮的过程

本次设计完成了对光立方的系统框架和基本电路的设计,最终通过编写代码使光立方产生了不错的显示效果,基本完成了设计任务中的不同要求,但是仍然存在单独点亮一盏灯亮度不够等等问题。经过与老师和同学针对这些问题的探讨我们得出了与这些问题相关的一些分析:

1)实际做成的光立方单独一盏灯点亮时,亮度很高,而点亮一个面时亮度明显不够

分析:这主要是因为这次设计对于LED 灯采取的是共阳极的方式,所以用单片机一个引脚的电压带动一个面进行显示肯定是远远不够的,经过思考,我觉得将设计改为共阴极的可能会显示效果更好。

2)光立方有一盏灯总是与设计程序不符合(该亮的时候是灭的,而该灭的时候又是亮的)

分析:这可能是由于在焊接过程中,将这个LED 灯的阴极和阳极刚好接反了,于是显示结果刚好相反。

3)点亮侧面的灯时,出现的是该面的灯按层轮换

分析:这可能是由于延时程序设计的不合理,导致画面显示不流畅,修改延时程序,再进行调试后正常显示。

四、 结果分析

五、实物照片

如图5-1所示是光立方设计底座,其中蓝色方框中为单片机的最小系统,包括单片机和晶振电路以及复位电路,红色方框中为LED列控制端,灯座的引脚分别与单片机的P0、P1的16个IO口相连。图5-2展示的是最终的显示效果。

图5- 1光立方底座

六、附:

1、元件清单

表1元件清单

2、电路图

图7.2- 1光立方整体电路

图7.2- 2单片机

图7.2- 3时钟电路

图7.2- 4复位电路3、软件清单

#include

#define uchar unsigned char

#define uint unsigned int

uchar num,DELAY=100;

sbit H1=P3^4;

sbit H2=P3^5;

sbit H3=P3^6;

sbit H4=P3^7;

sbit L1=P2^0;

sbit L2=P2^1;

sbit L3=P2^2;

sbit L4=P2^3;

sbit L5=P2^4;

sbit L6=P2^5;

sbit L7=P2^6;

sbit L8=P2^7;

sbit L9=P1^0;

sbit L10=P1^1;

sbit L11=P1^2;

sbit L12=P1^3;

sbit L13=P1^4;

sbit L14=P1^5;

sbit L15=P1^6;

sbit L16=P1^7;

uchar code tab[]=

{

0xfF,0xfF,0xfF,0xfF,0xfF,0xfF,0xfF,0xfF,/*"未命名文件",0*/

/* (4 X 4 ) */

};

uchar code tab1[]=

{

0x0f,0x00,0x0f,0x00,0x0f,0x00,0x0f,0x00,

0xf0,0x00,0xf0,0x00,0xf0,0x00,0xf0,0x00,

0x00,0x0f,0x00,0x0f,0x00,0x0f,0x00,0x0f,

0x00,0xf0,0x00,0xf0,0x00,0xf0,0x00,0xf0,

};

/**************************************************************** *****************************

延时函数

/**************************************************************** *****************************/

void delay (uint a)

{ // 用于点扫描的延时

unsigned int i;

while( --a != 0)

{

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

}

}

/**************************************************************** *****************************

面1

/**************************************************************** *****************************/

void mian1(uchar d,uchar e)

{

uchar i;H2=0;H3=0;H4=0;

i = d & 0x01;

if(i == 0x01){H1 = 1;L1 = 0;delay(DELAY);H1 = 0;L1 =1;};

i = d & 0x02;

if(i == 0x02){H1 = 1;L2 = 0;delay(DELAY);H1 = 0;L2 =1;};

i = d & 0x04;

if(i == 0x04){H1 = 1;L3 = 0;delay(DELAY);H1 = 0;L3 =1;};

i = d & 0x08;

if(i == 0x08){H1 = 1;L4 = 0;delay(DELAY);H1 = 0;L4 =1;};

i = d & 0x10;

if(i == 0x10){H1 = 1;L5 = 0;delay(DELAY);H1 = 0;L5 =1;};

i = d & 0x20;

if(i == 0x20){H1 = 1;L6 = 0;delay(DELAY);H1 = 0;L6 =1;};

i = d & 0x40;

if(i == 0x40){H1 = 1;L7 = 0;delay(DELAY);H1 = 0;L7 =1;};

i = d & 0x80;

if(i == 0x80){H1 = 1;L8 = 0;delay(DELAY);H1 = 0;L8 =1;};

i = e & 0x01;

if(i == 0x01){H1 = 1;L9 = 0;delay(DELAY);H1 = 0;L9 =1;};

i = e & 0x02;

if(i == 0x02){H1 = 1;L10 = 0;delay(DELAY);H1 = 0;L10 =1;};

i = e & 0x04;

if(i == 0x04){H1 = 1;L11 = 0;delay(DELAY);H1 = 0;L11 =1;};

i = e & 0x08;

if(i == 0x08){H1 = 1;L12 = 0;delay(DELAY);H1 = 0;L12 =1;};

i = e & 0x10;

if(i == 0x10){H1 = 1;L13 = 0;delay(DELAY);H1 = 0;L13 =1;};

i = e & 0x20;

if(i == 0x20){H1 = 1;L14 = 0;delay(DELAY);H1 = 0;L14 =1;};

i = e & 0x40;

if(i == 0x40){H1 = 1;L15 = 0;delay(DELAY);H1 = 0;L15 =1;};

i = e & 0x80;

if(i == 0x80){H1 = 1;L16 = 0;delay(DELAY);H1 = 0;L16 =1;};

}

/**************************************************************** *****************************

面2

/**************************************************************** *****************************/

void mian2(uchar d,uchar e)

{

uchar i;H1=0;H3=0;H4=0;

i = d & 0x01;

i = d & 0x02;

if(i == 0x02){H2 = 1;L2 = 0;delay(DELAY);H2 = 0;L2 = 1;};

i = d & 0x04;

if(i == 0x04){H2 = 1;L3 = 0;delay(DELAY);H2 = 0;L3 = 1;};

i = d & 0x08;

if(i == 0x08){H2 = 1;L4 = 0;delay(DELAY);H2 = 0;L4 = 1;};

i = d & 0x10;

if(i == 0x10){H2 = 1;L5 = 0;delay(DELAY);H2 = 0;L5 = 1;};

i = d & 0x20;

if(i == 0x20){H2 = 1;L6 = 0;delay(DELAY);H2 = 0;L6 = 1;};

i = d & 0x40;

if(i == 0x40){H2 = 1;L7 = 0;delay(DELAY);H2 = 0;L7 = 1;};

i = d & 0x80;

if(i == 0x80){H2 = 1;L8 = 0;delay(DELAY);H2 = 0;L8 = 1;};

i = e & 0x01;

if(i == 0x01){H2 = 1;L9 = 0;delay(DELAY);H2 = 0;L9 = 1;};

i = e & 0x02;

if(i == 0x02){H2 = 1;L10 = 0;delay(DELAY);H2 = 0;L10 = 1;};

i = e & 0x04;

if(i == 0x04){H2 = 1;L11 = 0;delay(DELAY);H2 = 0;L11 = 1;};

i = e & 0x08;

if(i == 0x08){H2 = 1;L12 = 0;delay(DELAY);H2 = 0;L12 = 1;};

i = e & 0x10;

if(i == 0x10){H2 = 1;L13 = 0;delay(DELAY);H2 = 0;L13 = 1;};

i = e & 0x20;

if(i == 0x20){H2 = 1;L14 = 0;delay(DELAY);H2 = 0;L14 = 1;};

i = e & 0x40;

if(i == 0x40){H2 = 1;L15 = 0;delay(DELAY);H2 = 0;L15 = 1;};

i = e & 0x80;

}

/**************************************************************** *****************************

面3

/**************************************************************** *****************************/

void mian3(uchar d,uchar e)

{

uchar i;H2=0;H1=0;H4=0;

i = d & 0x01;

if(i == 0x01){H3 = 1;L1 = 0;delay(DELAY);H3 = 0;L1 = 1;};

i = d & 0x02;

if(i == 0x02){H3 = 1;L2 = 0;delay(DELAY);H3 = 0;L2 = 1;};

i = d & 0x04;

if(i == 0x04){H3 = 1;L3 = 0;delay(DELAY);H3 = 0;L3 = 1;};

i = d & 0x08;

if(i == 0x08){H3 = 1;L4 = 0;delay(DELAY);H3 = 0;L4 = 1;};

i = d & 0x10;

if(i == 0x10){H3 = 1;L5 = 0;delay(DELAY);H3 = 0;L5 = 1;};

i = d & 0x20;

if(i == 0x20){H3 = 1;L6 = 0;delay(DELAY);H3 = 0;L6 = 1;};

i = d & 0x40;

if(i == 0x40){H3 = 1;L7 = 0;delay(DELAY);H3 = 0;L7 = 1;};

i = d & 0x80;

if(i == 0x80){H3 = 1;L8 = 0;delay(DELAY);H3 = 0;L8 = 1;};

i = e & 0x01;

if(i == 0x01){H3 = 1;L9 = 0;delay(DELAY);H3 = 0;L9 = 1;};

i = e & 0x02;

if(i == 0x02){H3 = 1;L10 = 0;delay(DELAY);H3 = 0;L10 = 1;};

i = e & 0x04;

if(i == 0x04){H3 = 1;L11 = 0;delay(DELAY);H3 = 0;L11 = 1;};

i = e & 0x08;

if(i == 0x08){H3 = 1;L12 = 0;delay(DELAY);H3 = 0;L12 = 1;};

i = e & 0x10;

if(i == 0x10){H3 = 1;L13 = 0;delay(DELAY);H3 = 0;L13 = 1;};

i = e & 0x20;

if(i == 0x20){H3 = 1;L14 = 0;delay(DELAY);H3 = 0;L14 = 1;};

i = e & 0x40;

if(i == 0x40){H3 = 1;L15 = 0;delay(DELAY);H3 = 0;L15 = 1;};

i = e & 0x80;

if(i == 0x80){H3 = 1;L16 = 0;delay(DELAY);H3 = 0;L16 = 1;};

}

/**************************************************************** *****************************

面4

/**************************************************************** *****************************/

void mian4(uchar d,uchar e)

{

uchar i;H2=0;H3=0;H1=0;

i = d & 0x01;

if(i == 0x01){H4 = 1;L1 = 0;delay(DELAY);H4 = 0;L1 = 1;};

i = d & 0x02;

if(i == 0x02){H4 = 1;L2 = 0;delay(DELAY);H4 = 0;L2 = 1;};

i = d & 0x04;

if(i == 0x04){H4 = 1;L3 = 0;delay(DELAY);H4 = 0;L3 = 1;};

i = d & 0x08;

if(i == 0x08){H4 = 1;L4 = 0;delay(DELAY);H4 = 0;L4 = 1;};

i = d & 0x10;

if(i == 0x10){H4 = 1;L5 = 0;delay(DELAY);H4 = 0;L5 = 1;};

i = d & 0x20;

if(i == 0x20){H4 = 1;L6 = 0;delay(DELAY);H4 = 0;L6 = 1;};

i = d & 0x40;

if(i == 0x40){H4 = 1;L7 = 0;delay(DELAY);H4 = 0;L7 = 1;};

i = d & 0x80;

if(i == 0x80){H4 = 1;L8 = 0;delay(DELAY);H4 = 0;L8 = 1;};

i = e & 0x01;

if(i == 0x01){H4 = 1;L9 = 0;delay(DELAY);H4 = 0;L9 = 1;};

i = e & 0x02;

if(i == 0x02){H4 = 1;L10 = 0;delay(DELAY);H4 = 0;L10 = 1;};

i = e & 0x04;

if(i == 0x04){H4 = 1;L11 = 0;delay(DELAY);H4 = 0;L11 = 1;};

i = e & 0x08;

if(i == 0x08){H4 = 1;L12 = 0;delay(DELAY);H4 = 0;L12 = 1;};

i = e & 0x10;

if(i == 0x10){H4 = 1;L13 = 0;delay(DELAY);H4 = 0;L13 = 1;};

i = e & 0x20;

if(i == 0x20){H4 = 1;L14 = 0;delay(DELAY);H4 = 0;L14 = 1;};

i = e & 0x40;

if(i == 0x40){H4 = 1;L15 = 0;delay(DELAY);H4 = 0;L15 = 1;};

i = e & 0x80;

if(i == 0x80){H4 = 1;L16 = 0;delay(DELAY);H4 = 0;L16 = 1;}; }

void cube4(uchar j,uchar k,uchar f)

{

switch(j)

{

case 0:mian1(k,f);break;

case 1:mian2(k,f);break;

case 2:mian3(k,f);break;

case 3:mian4(k,f);break;

}

}

void all()

{

uint p,m;

//从上往下

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

{

for(p=0;p<50;p++)

{

cube4(num,tab[2*num],tab[2*num+1]);

}

}

/*

for(num=0;num<16;num++)//面选择

{

for(m=0;m<30;m++) //一个面的停留时间

{

for(p=0;p<10;p++) //扫描一行的次数

{

cube4(num%4,tab1[2*num],tab1[2*num+1]);//对4求余,取0-3面

}

}

}*/

//从后向前

for(p=0;p<50;p++)

{

cube4(1,0x0f,0x00);

cube4(2,0x0f,0x00);

cube4(3,0x0f,0x00);

}

for(p=0;p<50;p++)

{

cube4(0,0xf0,0x00);

cube4(1,0xf0,0x00);

cube4(2,0xf0,0x00);

cube4(3,0xf0,0x00);

}

for(p=0;p<50;p++)

{

cube4(0,0x00,0x0f);

cube4(1,0x00,0x0f);

cube4(2,0x00,0x0f);

cube4(3,0x00,0x0f);

}

for(p=0;p<50;p++)

{

cube4(0,0x00,0xf0);

cube4(1,0x00,0xf0);

cube4(2,0x00,0xf0);

cube4(3,0x00,0xf0);

}

//从左往右

for(p=0;p<50;p++)

{

cube4(0,0x11,0x11);

cube4(2,0x11,0x11);

cube4(3,0x11,0x11);

}

for(p=0;p<50;p++)

{

cube4(0,0x22,0x22);

cube4(1,0x22,0x22);

cube4(2,0x22,0x22);

cube4(3,0x22,0x22);

}

for(p=0;p<50;p++)

{

cube4(0,0x44,0x44);

cube4(1,0x44,0x44);

cube4(2,0x44,0x44);

cube4(3,0x44,0x44);

}

for(p=0;p<50;p++)

{

cube4(0,0x88,0x88);

cube4(1,0x88,0x88);

cube4(2,0x88,0x88);

cube4(3,0x88,0x88);

}

//竖向移动

for(num=0;num<4;num++) {

for(p=0;p<50;p++)

{

cube4(num,0x11,0x11);

}

}

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

{

for(p=0;p<50;p++)

{

cube4(3-num,0x22,0x22);

}

}

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

{

for(p=0;p<50;p++)

{

cube4(num,0x44,0x44);

}

}

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

{

for(p=0;p<50;p++)

{

cube4(3-num,0x88,0x88);

}

}

//从上往下从下往上

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

{

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

{

for(p=0;p<20;p++)

光立方设计原理

黎明途电子 一.光立方原理 你的思维有多宽,光立方的动画就有多多。我猜想大家做光立方都是为了能 随性所欲的控制每一个灯珠,来实现自己想的一些精美动画。那么,让我们从光立 方的原理开始入手。一讲到原理,估计很多同学就头痛了。这里借鉴在网上找的 一些资料来帮助大家理解光立方的原理。先从点阵的点亮原理说吧,如图所示 这是一张led 的点阵图,如果我们想要点亮任意位置的led,我们只要在该位置 led所使用的列线接地,行线接上+V即可。 学过单片机的朋友,都知道数码管是怎么点亮的,其中有位选和段选之分, 通过扫描来实现所有数码管能正常工作以实现我们想要的数字。 点阵也一样,尽管是8*8的点阵,如果我们让整体能随意显示图案,那也需 要用动态扫描的方式来实现,否则无法实现对其精准的控制。所谓动态扫描,就是说我们一次只能让一行排或者一竖排的灯亮。每次只能这么点亮,8次为一个周期,从 左至右依次点一次,那么循环起来,我们看到的就是完整的图像了。

在这里,一共有8层。 想必大家对光立方的连接已经有了一定的了解,纵向一束的负极性引脚是要连在一起, 而横向一层的正极性角连在一起。从扫描的角度去说,那一次也只能够点亮一层。 这里光立方的一层有64个灯,我们想成之前那个8*8的平面点阵。光立方的每一层虽然有64个灯,但是我们会有64跟线分别连接到这些灯上,从而实现一次性的对64个灯进行控制。我们将一个立体画面从下往上分为8层,每次扫面一层这样一副画面就完成了。通常单片机引脚较少,我们采用74hc595芯片进行拓展(74hc595原理请参考595用户手册)。下面来一张电路图,此图是用595进行拓展的。 (这张图是模块原理图的截图,接线不是很清晰,可以参考原理图) 在图中,数据通过串行的方式,分别传送到每一个 74hc595中,再内部控制器储存这些数据,从而实现一层64个灯同时的点亮。 描述一个固定画面的显示,需要硬件执行8次扫描的过程。 1.将第一层64个点的数据传入8个74hc595中,控制uln2803层控制芯片打开第 一层开关,使第一层点亮,这个时候,其他层是灭的。 2.等待时间t。 3.熄灭第一层,开始向74hc595中传输第二层的数据,锁存,开启第二层总控制 开关,点亮第二层。 4.等待时间t。 .......

基于单片机的光立方设计毕业设计

基于单片机的光立方设 计毕业设计 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

毕 业设计 基于51单片机的光立方设计 基于51单片机的光立方设计 摘要 本文详细的介绍了光立方的搭建过程,以51系列的单片机STC12C5A60S2为主要的控制芯片,由512个LED 通过共阴的形式连接起来,由74HC595为扩展单片机的I/O 口,用ULN2803为驱动电路,形成一个规格为8*8*8(长,宽,高)14cm*14cm*20cm 立方 体,还介绍了这款芯片的特点和使用方法及在调试过程中遇到的软件和硬件方面的问题 及解决方法,详细的阐述了光立方的设计原理和架构方法,对光立方目前存在的意义也进行了详细的介绍。 关键词:光立方;74HC595;单片机;ULN2803;LED Light CuBe Based on 51 single ChiP miCroComPuter ABstraCt This PaPer introduCes the ProCess of Building Light CuBe, with 51 Series MCU STC12C5A60S2 as the main Control ChiP, ConneCted By 512 LED By CO Yin form, By 74HC595 for the exPansion of the MCU I/O Port, using ULN2803 as the drive CirCuit, the formation of a sPeCifiCation for 8*8* 8 (length, width, height) the 14Cm*14Cm*20Cm CuBe, also introduCes the CharaCteristiCs and methods of use of the ChiP and software and hardware in the ProCess of deBugging ProBlems and solutions, desCriBed in detail the design PrinCiPle and arChiteCture method Light CuBe, the CuBe existed at Present signifiCanCe have also Been introduCed in detail. Keywords: Light CuBe; 74HC595; STC12C5A60S2; ULN2803; LED 目录 姓 名: 梁泉明 学 号: 班 级: 10信科一班 专 业: 信息科学与技术 所在系: 电子信息工程系 指导教师: 郝芸

光立方设计

毕业设计题目: 学院: 专业: 届别: 学号: 姓名: 指导教师: 填写日期:2012-12-28

【摘要】本设计立体点阵系统,具有3D的显示效果,系统STC60S2单片机作为控制核心对灯的亮暗进行控制。采用74HC138和74HC595分别对每个灯进行控制,使8*8*8立体点阵显示出不同的花样,给人立体效果的展示。系统初始设定显示一种模式,当遥控的切换键按下时,可以切换不同花样。本系统还可以用遥控来对灯的亮度进行控制。 【关键词】立体点阵 STC60S2单片机 74HC138 74HC595 遥控器

第1章引言 随着人们生活水平的不断提高, 3D效果的欣赏已经成了人们的追求,美轮美奂的观赏让人醉心不已,给人带来无比宽松舒适的美感。3D技术的将来必有广泛应用。仅3D打印技术这一还处在萌芽阶段的技术就已经在世界掀起了巨大波澜。就现有来看3D技术已经应用于军工、航空航天、水下作业、模拟分析等高端领域。随着科技发展3D技术的成本也会越来越低,相信3D电视将来也会像液晶电视一样走入普通家庭。3D技术在未来还可以应用于教学,医学,地下采矿,空中导航等领域。 但就目前的发展,3D还不能够普及到人们的生活中,这也就萌发了人们对于3D的设计。因此,本课题以发光二极管的搭建的8*8*8立体点阵,是一个长、宽、高由8×8×8个LED 灯组成的真实3D立方体显示器。采用单片机STC60S2为核心编程技术,对发光二极管进行控制,使其显示出不同的花样,带给人未来3D技术的科技体验。 第2章设计任务及要求 2.1 设计任务 设计一个8×8×8的LED立体点阵,可以用红外遥控器进行花样的切换,能够进行亮度的调节。 2.2设计要求 (1)用红外遥控器进行控制。 (2)有多种的花样可以相互切换。 (3)可以对亮度进行调节。 第3章硬件系统总体设计 3.1 系统结构框图设计 经过分析,本系统主要是由电源模块、单片机主控模块、74HC595列驱动模块、74HC138行驱动模块、LED点阵显示模块,给出了系统电路原理框图如图所示。

光立方制作教程

五一长假漫漫,时间很充分,正好有时间去干那些因为时间不足而搁置已久的一些想法,首先想到的是做一个光立方,器件年前就买了,因为时间问题被长久搁置了。 之前论坛已经有人晒过,不过有的只是作品展示,在此我将详细的向大家解析一下光立方的制作流程,望大家喜欢。先上资料: 首先是前期准备工作,器件的选取,我的器件清单如下:

LED选取:如果有条件的话可以使用7色彩灯,视觉效果将会更好。或者是长方形发光二极管,方便焊接。 制作前先按照下图对小灯进行弯折处理(如果看不懂的话,请努力发挥自己的空间想象能力,之后就会豁然开朗的),这是一个漫长而痛苦的过程,建议每天睡前折一些,我断断续续干了近十天吧!(五一前虽然大块时间没有,但是每晚折小灯的时间绝对是有的)实际焊接时,请注意变通,每一层都会有一行需要多弯一下的,以实现共阴处理。

主要器件如下:

先在万用板上规划一下光立方小灯之间的间隔,建议2CM为宜,用铅笔或者彩笔在板子上确定64个点,以方便下一步操作。 找一块木板,最小是20*20CM,我找的时候费了点劲,采用爆破拆出来的,然后把万用板放在木板上,四角用大头钉固定(以确保扎点时位置不变),用圆规进行采点,记住是64个点,是7*7的方格。不要因为计算错误,以适用万用板而导致光立方间隔过密。 采用手钻打孔,不直接用大钻,是防止打孔过程中,孔洞打偏。

大钻扩孔,钻头选择要适宜,防止LED小灯插上后不稳,或者插上焊完取不出来,我采用的是2.8/2.9的钻头。游标卡车是为了测钻头大小的。

焊接时,建议一列一列的焊接,(层共阴,列共阳)这样操作起来比较容易,防止全部插上在焊接时,过多的小灯产生阻碍,由于我是左撇子,所以我是从右向左焊接。这是焊接好的第一层。焊完之后,现将小灯阳极管教理顺,与共阴平面呈垂直关系,以方便之后焊接。将LED点阵层起下的时候,为美观起见,请注意不要破坏小灯的相对位置及高低层次,(为了增强光立方坚固度,建议,每层上跨接一些硬些的细铜丝)。 要牢记:焊完一层后切记要记得检测是否有小灯在焊接过程中损坏。检测方法如下:层接地,即阴极接地,用一个串有1K限流电阻的导线接5V,然后依次接小灯阳极。

8x8x8的光立方设计

《单片机技术》课程设计说明书 8*8*8的光立方 学院:电气与信息工程学院 学生姓名: 指导教师:职称讲师 专业:电气工程及其自动化 班级: 学号: 完成时间:2015年07月

摘要 光立方不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。 本设计包括硬件系统的设计和软件系统的设计。其中硬件系统包括核心控制器AT89S52单片机;驱动电路模块:ULN2803作为层驱动,74LS573作为行驱动和列驱动;时钟信号电路模块:采用普通晶体时钟源,其中晶体用12MHZ的石英晶振;显示模块:由512个发光二极管组成;供电模块:使用5V移动电源作为供电电源;键盘模块:由四脚按键组成。软件系统包括系统监控程序模块,光立方显示程序模块,键盘程序模块。通过软件编程控制数据下载到单片机完成设计图案的显示。软件采用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。 关键词: AT89S52单片机;74HC573锁存器;8×8×8LED显示;ULN2803

目录 1 设计要求与方案 (1) 1.1 设计目的 (1) 1.2 设计要求 (1) 1.3 设计方案 (1) 2 光立方的工作原理 (2) 2.1 模块简介 (2) 2.2 工作原理 (3) 3 方案选择 (4) 3.1 电源的选择 (4) 3.23D显示核心控制器 (4) 3.3I/O口扩展芯片的选择 (5) 3.4LED发光二级管 (5) 4 硬件整体设计概述及功能分析 (7) 4.1 系统概述 (7) 4.2 单片机简介 (8) 4.3 时钟电路设计 (8) 4.4 复位电路设计 (9) 4.574HC573芯片介绍 (9) 4.6 ULN2803芯片介绍 (10) 5 硬件电路设计 (11) 5.1 硬件电路元件分布图 (11) 5.2 LED灯焊接方法 (11) 5.2.1 焊接前准备工作 (11) 5.2.2 焊接 (11) 5.3 整体实物图 (12) 6 主程序设计 (14) 6.1 程序流程框图 (14) 6.2 显示程序的设计 (15) 7 设计结果分析 (16)

光立方制作+程序讲解

光立方教程 今天,给大家带来光立方的制作教程,基于本人制作的经验,给各位想要做的朋友分享制作过程。 对于第一次制作的朋友,我们要先制作好一个日程表,如下图: 我们要弄好一个计划,就好像单片机运行程序一样。

当然,废话少说。接下来,我们需要一份购买材料的清单 如上图所示,我们需要购买的万能板需要购买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。 当然上图是我的接线实物图,是不是很乱 ,当然,只要我们可以把思路可以理

光立方设计报告

光立方设计报告

一、要求 1、利用单片机控制8*8*8的LED灯显示3D图形。 2、进行实物焊接,调试。 二、设计思路 首先,8*8*8光立方是由8个相同的面组成,每一个面有64个蓝色LED灯,不同的图案又这些点连接而成。如果我们想要驱动任意一个LED灯,我们让列接地,行接正极就可以实现,因此整个立方体列共阴极,行共阳极。实际上这个就是控制512个LED 的不同灯点亮。 三、电路设计 主要分为主控模块、驱动模块、显示模块 1、主控模块 主控模块我们选用STC12C5A60S2

图1 主控电路 其中C1、C2为去耦电容防止高频干扰2、驱动模块

图2 行驱动电路 可以用一个3—8译码器选择8个不同的共阳极层,但是译码器的驱动能力差,中间可以用双P沟道MOS管APM4953来增强驱动能力。这样就可以控制点亮不同的层。 图3 列驱动电路 我们可以用5026来选择不同的列,一片5026就可以控制16列,

一共有64列,因此只需要用到4片。在每一片5026电源端上加一个电容,主要防止高频干扰。 3、显示模块 每一个LED的负端都连接在一起,构成一列;每一层的LED 的阳极连在一起。一层一列刚好可以确定一个LED灯。这样就 可以通过主控电路和驱动电路来点亮所要点亮的LED,组成我 们想要的图案。 四、元器件选择 (1)由于光立方的程序量比较大,而且要求相对比较高,因此我们决定用51系列的增强型芯片STC12C5A60S2,选择的理由: 1.无法解密,采用第六代加密技术; 2.超强抗干扰; 3.内部集成高可靠复位电路,外部复位可用可不用; 4.速度快; (2)4953的作用:行驱动管,功率管。 每一显示行需要的电流是比较大的,要使用行驱动管,每片4953可以驱动2个显示行,其内部是两个CMOS管,1、 3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控 制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6 才会输出,否则输出为高阻状态。 (3)SN74HC245DW,8路双向总线收发器,具有三态输出;74HC245八路总线收发器被设计用于数据总线之间的异步双向通信。

光立方设计报告

光立方设计报告 》 一、要求 1、利用单片机控制8*8*8的LED灯显示3D图形。

2、进行实物焊接,调试。 二、] 三、设计思路 首先,8*8*8光立方是由8个相同的面组成,每一个面有64个蓝色LED灯,不同的图案又这些点连接而成。如果我们想要驱动任意一个LED灯,我们让列接地,行接正极就可以实现,因此整个立方体列共阴极,行共阳极。实际上这个就是控制512个LED 的不同灯点亮。 四、电路设计 主要分为主控模块、驱动模块、显示模块 1、主控模块 主控模块我们选用STC12C5A60S2

图1 主控电路 | 其中C1、C2为去耦电容防止高频干扰2、驱动模块

图2 行驱动电路 可以用一个3—8译码器选择8个不同的共阳极层,但是译码器的驱动能力差,中间可以用双P沟道MOS管APM4953来增强驱动能力。这样就可以控制点亮不同的层。 图3 列驱动电路 我们可以用5026来选择不同的列,一片5026就可以控制16列,

一共有64列,因此只需要用到4片。在每一片5026电源端上加一个电容,主要防止高频干扰。 3、~ 4、显示模块 每一个LED的负端都连接在一起,构成一列;每一层的LED 的阳极连在一起。一层一列刚好可以确定一个LED灯。这样就 可以通过主控电路和驱动电路来点亮所要点亮的LED,组成我 们想要的图案。 五、元器件选择 (1)由于光立方的程序量比较大,而且要求相对比较高,因此我们决定用51系列的增强型芯片STC12C5A60S2,选择的理由: 1.无法解密,采用第六代加密技术; 2.超强抗干扰; 3.内部集成高可靠复位电路,外部复位可用可不用; 4.速度快; , (2)4953的作用:行驱动管,功率管。 每一显示行需要的电流是比较大的,要使用行驱动管,每片4953可以驱动2个显示行,其内部是两个CMOS管,1、 3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控 制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6 才会输出,否则输出为高阻状态。 (3)SN74HC245DW,8路双向总线收发器,具有三态输出;74HC245

51单片机电子设计制作444彩色光立方

课程设计开题报告 课程名称:单片机应用实训教程 设计题目: 51单片机电子设计制作4*4*4彩色光立方学院: 专业班级: 学号: 姓名: 指导教师: 设计时间:

目录 1. 设计要求 (3) 2. 设计方案 (4) 3. 电路图 (5) 3.1 单片机程序 (6)

设计要求 1.设计论文中心突出,内容充实,论据充分,论证有力,数据可靠,结构紧凑,层次分明,图表清晰,格式规范,字迹工整,结论正确。 2.设计制作一个4*4*4的三维发光二极管显示方阵,能够通过编写程序来实现对每一个发光二极管控制,从而来显示多种多样的图案。控制显示输出至少二十种显示效果。 3.通过大量编写程序调试实验现象结果分析研究数据形成规律,对规律总结得出结论并初步确定算法。

设计方案 本设计根据二极管点阵的原理由单片机I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间,来设置每幅画面的延迟时间是连续的一系列画面呈现动态。每一个层面的二极管阳极接在一起受一路I/O口的控制,实际电路中该路I/O 口输出的控制信号通过5V继电器的吸合和断开来控制的,再输入发光二极管的阳极使其驱动。每一个二极管的阴极分别受单片机扩展后的I/O控制。每个灯都是由片选端口和控制端口共同决定亮或灭。因此,我们可以随意的来点亮光立方中任意一处的灯,来构建多种多样的图案。

/* *程序功能:cube4光立方彩色版本,实现各种动画效果,配套取模软件 *作者:牛盾 * */ #include #include #define uint unsigned int #define uchar unsigned char #define MAX_Delay 8 #define MIN_Delay 1 sbit S_1 = P1 ^ 1; sbit S_2 = P1 ^ 2; unsigned int pwm; unsigned char TimeDelay = 10; unsigned char Mode = 1; unsigned char code tabP2[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //扫描uchar s=0; void DELAY_MS (uchar i){ // unsigned int i; // while( --a != 0){ // for(i = 0; i < 600; i++); // } uchar x,j; for(j=0;j0;x--) for(y=z;y>0;y--); } void timer1_init() { TMOD |= 0x10; TH1 = 0; TL1 = 0; ET1 = 1; TR1 = 1; EA = 1;

8x8x8-光立方设计报告

目录 摘要............................................................................. .. (1) Abstract....................................................................... (1) 第一章绪论............................................................................. (2) 光立方的意义: (5) 目的 (5) % 章节安排............................................................................. .. (5) 第二章基础软件技术介绍............................................................................. (6) proteus软件简介 (6) Protel Dxp技术简介 (6) Protel Dxp软件介绍 (6) Protel Dxp基本技术 (6) keil_μVision4软件 (7) 章节小结 (7) 】 第三章设计方案............................................................................. . (8) 总体设计方案 (8) 元件的选择 (9) 本章小结 (10) 第四章基础硬件设计............................................................................. (11) 74HC573芯片 (11) STC12C5A60S2 (11) ULN2803 ........................................................................... .. (13) !

基于单片机的光立方设计

XXXX大学本科课程设计 题目:基于单片机的光立方设计姓名: 学号: 院(系): 专业、年级: 指导教师: 二○XX年X月

一、设计任务 在当今信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。新型的大屏幕要求显示画面色彩鲜艳,立体感强,静如油画,动如电影,这些设计广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。本设计旨在利用人眼视觉暂留的特点,通过AT89C52单片机控制一个由64盏LED灯组成的四层光立方模拟3D显示效果,实现三维显示。 该光立方具有以下功能: 1)能单独点亮每一个LED灯; 2)能点亮任意一条线上的LED灯; 3)能同时点亮任意一个面上的LED灯; 4)能同时点亮所有的LED灯; 5)能让LED灯自由亮灭,产生不同的显示效果。 二、设计方案 1、单片机资源分配情况 将LED光立方分成4层,分别由单片机的P2.0,P2.1,P2.2,P2.3,四个IO 口来控制每一层,由于采用的是共阳极所以当层电位为高电平有效,由P0口和P1的总共16个IO口来控制每层的16盏灯,低电平有效,P0口加上拉排阻。这样就可以通过控制IO口的输出电平来控制每盏灯的亮灭。 2、系统框图 本系统主要由时钟电路、复位电路、LED光立方电路组成;时钟电路和复位电路作为单片机输入,LED光立方电路作为单片机输出,显示出控制结果如图2- 1所示。 时钟电路:单片机的各个功能部件的运行都是以时钟控制信号为基准,一拍一拍的工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的可靠性和稳定性。常用的时钟电路设计为内部时钟方式,单片机内部有一个由反向放大器构成的振荡电路,芯片上的XTAL1和XTAL2分别为振荡电路的输入和输出端。只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,由振荡器产生自激振荡,便构成一个完整的振荡信号发生器。 复位电路:通过某种方式,使单片机内部各类寄存器的值变为初始状态的操作称为复位,复位主要通过外部电路实现。常见的复位电路包括上电复位、手动

光立方项目设计说明书

工程技术综合实践 项目设计报告 (电类) 8x8x8光立方点阵 西安理工大学工程训练中心 2014年 10月 27 日

指导教师(签字):

1 概述 二十一世纪的显示技术将是平板显示的时代。基础材料的产业化,使LED 显 示产品成本下降,应用加快发展。LED 产品性能的提高,使LED 灯的显示屏的亮度、色彩、白平衡均达到比较理想的效果。但是考虑到此次光立方显示的效果问题,我们还是决定选用5mm 的蓝色雾灯。本次设计制作一个8*8*8的三维的发光二极管立方显示体,能够通过编写程序来实现对每一个发光二级管的亮灭控制,从而可以显示多种多样的图案。为了吸引观众增强显示效果,可以有多种显示模式。按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。 2 总体设计 2.1 系统功能及技术指标 本作品是由512只LED 组成的长宽高均为8个LED 的正方体点阵,主要实现文字,图形的显示,显示效果立体感强,能够成为一件科技感十足的艺术品。系统控制采用51单片机,通过输出高低电平控制LED 的状态,74hc595扩展单片机IO 口,使单片机具有64路输出。通过74HC245D 控制层,最终实现对512只LED 中的任意一个的控制。 2.2 系统构成 2.3 主要设备及元器件选型 (1)STC12C5A60S2系列单片机是单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D 转换(250K/S),针对电机控制,强干扰场合, 能够满足快

光立方个人总结

光立方个人总结 《光立方个人总结》看完如果觉得有帮助请请下载。篇一:光立方个人总结 篇一:光立方设计总结报告 光立方设计报告 目录 一.摘要 二.目的与要求 三.电路的设计与元件的选择 四.模块电路的组装与焊接 五.电路的调试和调试出现的问题 六、项目的完成情况 七、结论 一.摘要 在前一段时间,看了一些关于光立方的资料和它的视频,看到了一些光立方的演示视频,被它那些立体感吸引了。 光立方顾名思义就是一个立方体,我们采用的是8*8*8的模式,大概的距离是14cm*14cm*20cm(长.宽.高),主要分为三个模块:主控模块驱动模块显示模块;我们所做的光立方驱动电路,主控电路等都是纯手工焊接。采用的主控芯片60k

stc12c5a60s2芯片,驱动电路是采用我们常用的74hc573数字芯片。 关键字:光立方 74hc573 stc12c5a60s2 uln2803 二.目的与要求 (1)目的:回顾我们学习的单片机知识和提高我们的焊接和其他的动手实操能力(包括了数字电路和模拟电路的知识)。 (2)要求:要有自主创新,其中我们的开关是采用触摸型开关,只要由一个i/o口和vcc组成。 三.电路的设计与元件的选择 1.电路设计主要分为三个模块分别是主控模块驱动模块显示模块 (1) 主控模块 图1主控电路 其中p1位一个触摸型的开关,c3为去耦电容防止高频干扰范文写作 (2) 驱动电路 图2驱动电路 在驱动电路上,每个锁存芯片的电源端都加了一个瓷片电容,主要的作用是防止高频干扰 (3)显示电路所有的灯的负端都是接在一起的,下面的每一组都是控制光立方的一个面,控制的是光立方的竖起来的面,而横着的面由图3的u10控制图3 显示电路

毕业设计(论文)-基于单片机的光立方的设计

郑州科技学院 本科毕业设计(论文) 题目基于单片机的光立方的设计 学生姓名王德敏 专业班级08 电子科学与技术1班 学号200831011 院(系)电气工程学院 指导教师(职称)朱小会(讲师) 完成时间 2012 年05月18日

郑州科技学院毕业设计(论文)任务书 题目基于单片机的光立方的设计 专业电子科学与技术学号 200831011 姓名王德敏 主要内容、基本要求、主要参考资料等: 一、主要内容 1.设计方案的选择和方案说明; 2.光立方的硬件构成; 3.光立方的单片机编程; 4.设计并绘制电路原理图; 5.制作实物并调试电路; 6.撰写论文; 7.撰写文献综述和论文。 二、基本要求 1.论文内容充实,有理有据,条理清晰。 2.设计制作一8*8*8的三维的发光二极管显示方阵,能够实现对每一个发光二级管实现控制。控制显示输出至少二十种显示效果。 3.研究数据表形成规律,并初步确定算法。 三、主要参考资料 1.林占江.电子测量技术.北京:电子工业出版社,2011. 2.童诗白.模拟电子技术基础.北京:高等教育出版社,2006. 3.赵景波.Prote199SE应用与实例教程.北京:人民邮电出版社,2009. 4.尹勇.Multisim电路仿真入门与进阶.北京:科学出版社,2005. 5.彭虎.微机原理与接口技术.北京:电子工业出版社,2008. 6.张毅刚.单片机原理及应用.北京:高等教育出版社,2003. 完成期限: 2012年5 月17日 指导教师签名: 专业负责人签名: 年月日

郑州科技学院毕业设计(论文)开题报告 课题名称基于单片机的光立方的设计 课题来源教师命题课题类型EX 指导教师朱小会 学生姓名王德敏学号200831011 专业电子科学与技术开题报告内容:(调研资料的准备,设计的目的、要求、思路与预期成果; 任务完成的阶段内容及时间安排;完成设计(论文)所具备的条件因素等。)一、调研资料准备 LED点阵显示屏已经应用到了我们生活中的方方面面,科技发展的脚步一 直向前,3D电影给人们带来了更加震撼的视觉体验。于是想设计出一种3D显示屏。通过学习《单片机原理与应用》一书,知道LED显示分静态显示和动态显示,以及两种显示的控制方法。加上《模电》《数电》的学习,理解了LED 共阴和共阳接法不同的驱动方法。在网站上查找相关文献时,了解LED显示技术的特色之处:一是节能(直接功耗,间接耗能),二是基本无电离辐射,三提高空间利用率。LED点阵显示屏的特点还有比数码管具有实用、便宜、亮度高等优点,而且做出来的LED显示很耐用。LED显示屏还具有亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定等优点。LED点阵显示屏的发展前景极为广阔,目前正朝着更高亮度,更高耐气候性,更高的发光密度,形状的多样性,更高的发光均匀性、可靠性、多色化方向发展。另外在电子工程师之家看过网友发帖晒自己制做的3D光立方显示,有5X5X5的、8X8X8的、甚至还有一个16X16X16的。在爱折腾网站也曾看过有用蓝色LED和白色LDE 制作的光立方。于是我最终确定也制作一个蓝色LED显示8X8X8的光立方。 二、设计目的 在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心。为追求舒适、逼真、清晰的3D视频显示,为此制作出一个三维立体显示图案的LED光立方。该设计方案将打破了传统的平面显示视频的方法,该方案设计的LED显示屏显示画面色彩鲜艳,立体感强,

取模软件(上位机)与光立方通信程序

/*版权所有,翻版必究!! 题目:上位机与单片机通信 功能:锁存器、三极管控制口,上位机送数据给单片机,显示任意图案作者:肖锦鹏 日期:2013年9月11 */ #include #define uchar unsigned char #define uint unsigned int uchar x,y,face,a,b; uchar i=0; uchar shuzu[8][8]; // //uchar shuzu[8][8]={ //0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, //0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, //0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, // // }; //显示固定图案,数组可任意改动 // void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=10;y>0;y--); } void init() { TMOD=0x22; TH1=0XFf; //波特率设置,波特率为57600 TL1=0XFf; TH0=0x00; TL0=0x00; TR1=1; TR0=1; SCON=0X50;

基于单片机的光立方体设计

目录 第一章绪论 (3) 1.1国内外LED显示屏的发展概况 (3) 1.2我国光立方体研究现状及发展趋势 (3) 1.3设计的总体要求及方案选择 (4) 1.4光立方体设计的结构安排 (4) 第二章系统总体方案设计 (4) 2.1系统总体硬件方案选择 (5) 2.1.1 3D显示屏核心控制器 (5) 2.1.2 电源电路 (6) 2.1.3 I\O口扩展芯片 (6) 2.1.4 层面控制驱动电路 (6) 2.1.5 串口通讯芯片的选择 (6) 2.2系统总体软件方案选择 (7) 2.2.1 单片机编程语言 (7) 2.2.2 系统软件编译器WAVE介绍 (7) 第三章系统硬件方案设计 (8) 3.1硬件整体设计概述及功能分析 (8) 3.251系列单片机简介 (8) 3.2.1 时钟电路设计 (8) 3.2.2 复位电路设计 (9) 3.3光立方的制作及工作原理介绍 (10) 3.3.1 3D LED光立方搭接 (10) 3.3.2 3D LED光立方工作原理 (10) 第四章系统软件方案设计 (12) 4.1概述 (12) 4.2主程序设计 (12) 4.3显示程序的设计 (13) 4.3.1 LED显示屏的数据传送 (13) 4.3.2 显示程序的设计 (13) 4.4软件中防止程序出错ERR处理 (14) 4.5ISP软件程序下载 (15) 第五章光立方PCB版制作 (15) 5.1 PROTUES制作PCB版图 (15) 5.1.1 绘制电路原理图并仿真测试 (15) 5.1.2 规划电路板并设置相关参数 (15) 5.1.3 元件布局及调整 (16) 第六章系统测试及仿真 (17) 6.1硬件系统测试 (17)

光立方课程设计

江苏师范大学物电学院 课程设计报告 课程名称:光学课程设计 题目:LED光立方设计 专业班级:光电信息科学与工程 13物81 学生姓名:郭程程 学生学号: 130228004 日期: 2015年12月16号 指导教师:蔡廷栋 物电学院教务部印制

基于STC12C5A60S2单片机的LED光立方设计 摘要 本文详细的介绍了光立方的搭建过程,以51系列的单片机STC12C5A60S2为主要的控制芯片,由512个LED通过共阴的形式连接起来,由74HC573为扩展单片机的I/O口,用ULN2803为驱动电路,形成一个规格为8*8*8(长,宽,高)14cm*14cm*20cm立方体,还介绍了这款芯片的特点和使用方法及在调试过程中遇到的软件和硬件方面的问题及解决方法,详细的阐述了光立方的设计原理和架构方法,对光立方目前存在的意义也进行了详细的介绍。 关键词:光立方;74HC573;单片机;ULN2803;LED

The LED light cube design based on STC12C5A60S2 microcontroller Abstract This PaPer introduCes the ProCess of Building Light CuBe, with 51 Series MCU STC12C5A60S2 as the main Control ChiP, ConneCted By 512 LED By CO Yin form, By 74HC573 for the exPansion of the MCU I/O Port, using ULN2803 as the drive CirCuit, the formation of a sPeCifiCation for 8*8* 8 (length, width, height) the 14Cm*14Cm*20Cm CuBe, also introduCes the CharaCteristiCs and methods of use of the ChiP and software and hardware in the ProCess of deBugging ProBlems and solutions, desCriBed in detail the design PrinCiPle and arChiteCture method Light CuBe, the CuBe existed at Present signifiCanCe have also Been introduCed in detail. Keywords:Light CuBe; 74HC573; STC12C5A60S2; ULN2803; LED

8x8x8 光立方设计报告

目录 摘要 (1) Abstract (1) 第一章绪论 (2) 1.1 光立方的意义: (2) 1.2 目的 (2) 1.3 章节安排 (5) 第二章基础软件技术介绍 (6) 2.1 proteus软件简介 (3) 2.2 Protel Dxp技术简介 (3) 2.2.1 Protel Dxp软件介绍 (3) 2.2.2 Protel Dxp基本技术 (3) 2.3 keil_μVision4软件 (4) 2.4 章节小结 (5) 第三章设计方案 (8) 3.1 总体设计方案 (5) 3.3元件的选择 (6) 3.4 本章小结 (7) 第四章基础硬件设计 (11) 4.1 74HC573芯片 (8) 4.2 STC12C5A60S2 (8) 4.3 ULN2803 (13) 4.4 本章小结 (13) 第五章软件设计 (14) 5.1 软件简介 (14) 5.2 程序流程图 (14) 5.3 主函数 (14) 5.4 本章小结 (14) 第六章系统调试与测试 (15) 第七章检测结果与分析 (16) 第八章总结与展望 (16) 第九章谢辞 (17) 参考文献 (17) 附录 (18)

摘要 随着电子行业的不断发展,单片机的应用从根本上改变了传统的控制系统设计思想和设计方法,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。成为现代生产和生活中不可缺少的一部分。 此次我们正是利用单片机的知识,制作光立方,同时利用C语言进行编程,制作出自己想要的动画效果,并通过LED灯显示出我们编程的效果。 本次作品采用的是8*8*8的模式,大概的距离是14cm*14cm*20cm(长.宽.高),主要分为三个模块:主控模块、驱动模块、显示模块;结合单片机和C 语言的学习,我们采用的主控芯片60K STC12C5A60S2芯片,驱动电路是采用我们常用的74HC573数字芯片。 通过这次光立方的制作,我学习了许多单片机知识,进一步加强了protues、protel dxp软件学习。此外,对C语言的掌握也进一步提高。由于此次采取小组合作完成作品,在团队学习和集体协作方面上体会更为深刻了。也让我得到进一步的锻炼。 关键字:光立方 74HC573 STC12C5A60S2 ULN2803 Abstract With the development of electronic industry, the application of SCM change control system design idea and method of the traditional fundamentally, have been widely used in various industrial automation, communications, automatic detection, information household appliances, power electronics fields of Aeronautics and astronautics. Become an indispensable part of modern production and living. The US is the use of SCM knowledge, build the cube, and the use of C language programming, making their own to animation, and through the LED lamp shows our programming effect. With this work is the 8*8*8 model, the distance is about 14cm*14cm*20cm (long. Wide. High), mainly divided into three modules: the main control module, a driving module, display module; based on MCU and C language learning, the main control chip 60K STC12C5A60S2 chip we used, drive circuit is used in our common the 74HC573 digital chip. Through the production of light cube, I learn a lot of knowledge of SCM, and further strengthen the Protues, PROTEL DXP software learning. In addition, also further improve the C language learning. Because of the team to take work to complete, in team learning and teamwork experience more profound. Let me get the further exercise. Keywords: optical cubic 74HC573 STC12C5A60S2 ULN2803

相关文档
最新文档