综合实训报告灯立方Word格式文档下载.docx
- 文档编号:18053936
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:19
- 大小:291.91KB
综合实训报告灯立方Word格式文档下载.docx
《综合实训报告灯立方Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《综合实训报告灯立方Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注。
国庆联欢晚会三样法宝,光立方为最。
实训报告:
“光立方”在气势和整体感觉上,融合了北京奥运会开幕式“击缶而歌”和“活字印刷”的风格,而各种图案则与贯穿奥运会开幕式的“画卷”有异曲同工之妙。
“光立方”可以根据爱国歌曲的不同内容,展示不同的造型和图案,具有丰富的视觉效果。
本文主要介绍基于单片机统硬件组成的光立方,利用单片机控制LED的亮灭,并利用延时控制LED亮灭时间,最终使得整个立体展现不同的造型和图案,使其变得美轮美奂,绚丽多彩!
一、主要元器件介绍
1、T89S51简介
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚(引脚图如图2所示),4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
图一管脚图
2、74HC573
图二74HC573管脚图
74HC573是高性能硅门CMOS器件,SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的;
加上拉电阻,他们能和LS/ALSTTL输出兼容。
当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
×
\u36755X出能直接接到CMOS,NMOS和TTL接口上
\u25805X作电压范围:
2.0V~6.0V
×
\u20302X输入电流:
1.0uA
CMOS器件的高噪声抵抗特性
二、8*8*8光立方原理图
图三8*8*8光立方原理图
三、8*8*8光立方PCB图
图四PCB图
四、具体操作流程
设计原理图、打印PCB图、热转印、腐蚀与打孔、焊接、调试与检测,具体如下:
A、设计原理图利用绘图软件PROTEL99SE。
B、打印PCB图把整理好的PCB图用专用的打印纸打印出来。
C、热转印先把印制需要的铜板用细砂纸打磨平整,再把打印好的PCB图的打印纸包裹在铜板上面,接着把热转印机的温度调到大于100度,再把包裹好的铜板进行热转印。
完毕后,看看转印的图面是否清晰,如果有不清晰的地方用专用的油笔进行涂抹。
D、腐蚀、打孔把转印好的铜板浸泡在一定浓度的FeCl3溶液中并进行一定的加热,目的是加快反应的速度。
待反应完全之后,取出再用细砂布把铜线上的油墨洗去。
用0.5mm、0.8mm、1.2mm的钻头进行打孔。
对于自己设计的封装要注意孔径的大小,选取合适的钻头。
E、按照PCB图的元器件的位置放好元器件,调整合适的距离,用烙铁和焊锡以及松香,焊接牢固。
F、把焊接好事物接好电源,进行调试工作。
对于可能出现的情况进行及时地分析找出原因的所在,做到通过现象学习知识、学习处理问题的能力。
对于处理不了的问题及时的请教老师,帮助及时地解决。
五、LED灯焊接方法
1、焊接前准备工作
准备好烙铁、焊锡丝、钳子等工具,以及LED。
LED的正负极很好判别,长的引脚为+,短的为-。
LED最好选用直径3mm的LED,推荐选蓝色。
长脚的LED可以省很多工作量。
实际测量长脚是29mm,短脚为27mm,由于LED光立方板子灯的间距决定了,每个LED的间距是20mm。
这样长短引脚都符合这个尺寸。
由于所有LED框架焊接好后,一旦有LED损坏更换难度很大,所以焊接前要测试所有LED,用一般数字显示万用表打到二极管量程,用万用表红表笔接长引脚,黑的接短引脚。
LED正常发光并且亮度基本一致,这样的LED就是好的,否则是坏灯。
如果为了确保可靠也可以焊接好一层后测试LED是否能点亮。
2、焊接第一步
将8个LED焊接为一组,可以通过2种方法完成
第一种方法需要用钳子将LED的正极扭弯,这个弯,一定要小,正好露出LED外围打弯正合适,LED的正极折弯后留下的引脚长度必须大于LED的间距20mm,以确保有足够的重合位LED灯脚全部折好后,就可以焊接了,为了方便焊接可以在万能板上面钻几个2mm的孔,间距为8个洞洞置以便焊接。
焊接细节,将一个LED正极的引脚靠近到另一个LED正极的打弯处,然后上焊锡焊接,焊接要光亮可靠,有一定机械强度。
这样将全部LED焊接成8个一组的LED灯排待用。
焊接时避免用过多助焊剂,要不会粘到LED表面,影响外观。
焊机避免正负2极短路。
注意每一层的二极管都是共阴的。
第二种方法需要借助一个工艺设备,这个东西可以自己动手制作,用这个辅助焊接当然要容易些。
焊接方法也是一样的,将一个LED正极的引脚靠近到另一个LED正极的打弯处,然后上焊锡焊接,焊接要光亮可靠,有一定机械强度。
焊接小经验,由于LED灯脚有一定弹性,一个LED的引脚靠近到另一个LED正极的打弯处时,一松手就又弹远了,所以建议焊接时多掰一点,掰过了之后利用弹性将两个要焊接的引脚
靠进,这样焊接会容易许多。
以下是这个模具的快照:
以上是我的方法,在木板上按照规则扎64个孔。
最后通过架设支撑架的方式把各个层架起来,然后用电烙铁焊接起来就行了。
六、效果图
七、参考程序
#include"
3d8.h"
#include<
reg52.h>
voidreset()//复位
{
Y=0xff;
Z=0x00;
X=0x00;
}
voiddelay(uintz)//延时函数
uintx,y;
for(x=z;
x>
0;
x--)
for(y=10;
y>
y--);
voiddelay_ms(uintz)//毫秒延时函数
voidvalue_YZ_face(ucharx_date,uchartime)
reset();
X=x_date;
Z=~0xff;
delay(time);
voidvalue_XZ_face(uchary_date,uchartime)
Y=y_date;
X=0xff;
voidvalue_XY_face(ucharz_date,uchartime)
Z=~z_date;
voidset_dot(ucharx,uchary,ucharz,bitstatus,uchartime)
if(status)
{
Y=(1<
<
y);
Z=~(1<
z);
X=(1<
x);
}
else
Y=~(1<
Z=(1<
X=~(1<
voidset_line_X(uchary,ucharz,ucharx_date,bitstatus,uchartime)//平行于X轴的线
voidset_line_Y(ucharx,ucharz,uchary_date,bitstatus,uchartime)//平行于Y轴的线
voidset_line_Z(ucharx,uchary,ucharz_date,bitstatus,uchartime)//平行于Z轴的线
Z=z_date;
voidset_line(ucharx1,uchary1,ucharz1,ucharx2,uchary2,ucharz2,bitstatus,uchartime)//通过两点坐标生成直线
uchari,i1,i2,x_flag=0,y_flag=0,z_flag=0;
charx,y,z;
x=x1-x2;
y=y1-y2;
z=z1-z2;
if(x!
=0)
if(x<
0)
{i=x2-x1;
x_flag=2;
else
{i=x1-x2;
x_flag=1;
if(y!
if(y<
{i=y2-y1;
y_flag=2;
{i=y1-y2;
y_flag=1;
}
if(z!
if(z<
{i=z2-z1;
z_flag=2;
{i=z1-z2;
z_flag=1;
/*SBUF='
0'
+i;
while(!
TI);
TI=0;
SBUF='
'
;
+x_flag;
+y_flag;
+z_flag;
*/
//i=x2-x1;
for(i2=time;
i2>
i2--)
x=x1;
y=y1;
z=z1;
for(i1=i+1;
i1>
i1--)
{
set_dot(x,y,z,status,3);
/*
switch(x_flag)
{
case0:
;
break;
case1:
x-=1;
case2:
x+=1;
}
switch(y_flag)
y-=1;
y+=1;
switch(z_flag)
z-=1;
z+=1;
}*/
if(x_flag==1)
x-=1;
if(x_flag==2)
x+=1;
if(y_flag==1)
y-=1;
if(y_flag==2)
y+=1;
if(z_flag==1)
z-=1;
if(z_flag==2)
z+=1;
}
voidset_solid_cube(ucharx1,uchary1,ucharz1,ucharx2,uchary2,ucharz2,bitstatus,uchartime)//实心立方体
ucharX1,Y1,Z1,t;
if(x1>
x2)
{t=x1;
x1=x2;
x2=t;
if(y1>
y2)
{t=y1;
y1=y2;
y2=t;
if(z1>
z2)
{t=z1;
z1=z2;
z2=t;
X1=((0xff<
x1)&
(0xff>
>
(7-x2)));
Y1=((0xff<
y1)&
(7-y2)));
Z1=~((0xff<
z1)&
(7-z2)));
{Y=Y1;
X=X1;
Z=Z1;
{Y=~Y1;
X=~X1;
Z=~Z1;
delay(time*10);
voidset_frame_cube(ucharx1,uchary1,ucharz1,ucharx2,uchary2,ucharz2,bitstatus,uchartime)//框架立方体
ucharX1,Y1,Z1,t,i;
/*SBUF='
+x1;
+x2;
+y1;
+y2;
+z1;
+z2;
for(i=time;
i>
i--)
set_line_X(y1,z1,X1,status,5);
set_line_X(y1,z2,X1,status,5);
set_line_X(y2,z1,X1,status,5);
set_line_X(y2,z2,X1,status,5);
set_line_Y(x1,z1,Y1,status,5);
set_line_Y(x1,z2,Y1,status,5);
set_line_Y(x2,z1,Y1,status,5);
set_line_Y(x2,z2,Y1,status,5);
set_line_Z(x1,y1,Z1,status,5);
set_line_Z(x1,y2,Z1,status,5);
set_line_Z(x2,y1,Z1,status,5);
set_line_Z(x2,y2,Z1,status,5);
心得体会:
通过这次实训,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。
在实训刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。
通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。
了解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。
在这次实训的过程中,焊接LED灯花费了我不少时间,而且焊接起来特别麻烦,当时的心情真是纠结。
不过,最后我终于彻底的完成了这个作品,我特别高兴。
正所谓一分耕耘一分收获,无论再苦再累,坚持就是胜利!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 报告 立方
![提示](https://static.bdocx.com/images/bang_tan.gif)