电子信息专业毕业设计3D光立方.docx
《电子信息专业毕业设计3D光立方.docx》由会员分享,可在线阅读,更多相关《电子信息专业毕业设计3D光立方.docx(69页珍藏版)》请在冰豆网上搜索。
![电子信息专业毕业设计3D光立方.docx](https://file1.bdocx.com/fileroot1/2023-1/23/20e4466d-805f-4af4-a6e7-6f0c85185439/20e4466d-805f-4af4-a6e7-6f0c851854391.gif)
电子信息专业毕业设计3D光立方
摘要
光立方是一个长、宽、高由8×8×8个LED灯组成的真实3D立方体显示器。
其最大的特点,就是带给观赏者立体的超酷的3D视觉体验。
因此各大网站也充斥着各种各样的光立方版本。
但是这各种版本的光立方的制作方法都很复杂,而且成本也很高,而本设计与之相比则制作简单精美,成本低廉。
为保证光立方精美的外形,本设计还提供了一种光立方的制作模板,以确保将动手能力导致的美观差异降到最低。
为降低其成本,本设计采用了STC12C5A60S2单片机,这种单片机自带有A/D转换模块;使用的锁存器是常用的SN74HC573。
这样可以保证在降低制作成本的情况下,毫不影响作品的美观;再加上显示效果极佳的高亮雾面的蓝色方形LED,硬件电路无需添加额外的驱动和上拉电阻,即可实现其强大的功能:
除了能显示3D图形,还可以支持多级亮度和速度调整,允许用户自拓展音频显示功能,就像音乐显示器一样。
用户还可以在不改动硬件电路的情况下设计出自己喜欢的的自定义图形。
这些充分体现了制作成本低、显示效果好、功能完善的特点。
最后,经过软硬件调试,解决了一些硬件电路短路,程序报错的问题,完美地实现了多种图形动态显示,流畅的图形变换和音频显示的多种功能。
关键词:
光立方制作模板音频显示A/D转换
ABSTRACT
Light-cubeisalong,wide,highiscomposedof8x8x8ledstrue3dvolumetricdisplay.Itsbiggestcharacteristic,istobringtheviewerstereocool3dvisualexperience.Soeachbigwebsiteisfilledwithallkindsofcubiclightversion.
Butallversionsofthislightcubicmethodisverycomplex,andthecostisalsohigh,andcomparedwiththisdesignisbeautifullysimpleandlowcost.
Inordertoensuretheexquisitecubicshape,thisdesignalsoprovidesalightcubeproductiontemplate,toensurethattheabilitytoappearancedifferencetoaminimum.
Toreduceitscost,thisdesignUSESSTC12C5A60S2MCU,theMCUbuilt-inA/Dconversionmodule;UsethelatchisSN74HC573incommonuse.Sothatinthecaseoflowerproductioncosts,noteffectthebeautyoftheworks;PlusshowedexcellentresultshighlightedsquareLEDfogbelowinblue,don'tneedtoaddadditionalhardwarecircuitdrivepullupresistance,anditspowerfulfunctionscanberealized:
inadditiontodisplay3dgraphics,cansupportmultiplelevelsofbrightnessandspeedadjustment,allowstheusertoexpandtheaudiodisplayfunction,likemusicdisplay.Userscanalsointhecaseofdonotchangethehardwarecircuitdesigntheirowncustomgraphics.Thesefullyreflecttheproductionoflowcost,goodeffectofdisplay,thecharacteristicsofthefunctionisperfect.
Finally,afterthehardwareandsoftwaredebugging,solvesomeoftheshortcircuithardwarecircuit,programerror,perfectthedynamicvarietyofgraphicdisplay,smoothgraphicstransformandaudiodisplayavarietyoffunctions.
Keywords:
light-cubemakingstencilaudio-displayA/Dconversion
1、引言
1.1研究意义
LED射灯是指发出的光线是方向性的(directional)的LED灯泡, 主要类型有MR16,GU10, PAR series.
LED球泡灯是指发出的光线为发散性的LED灯泡, 主要类型为:
E27 base.
按照功率来分, LED灯泡可分为:
小功率(主要为5mm LED生产的)和大功率(主要1W, 3W,甚至5WLED生产的)。
同时, 市场上也存在超大功率(比如, 50W的LED射),但是这种未经过市场检验, 也未见得有很大市场。
其中, 小功率的LED射灯, 球灯为最早设计和生产的LED灯泡, 已经大规模采用, 但是质量良莠不齐。
这灯泡主要是在国外的零售网站上进行销售,比如 , , 。
而大功率的LED射灯, 球泡灯为最近2-3年才大规模使用和推广的, 总体来说要比小功率的LED灯泡稳定许多; 随着大功率LED的价格下降, 大功率LED灯泡将会为市场主流。
总体来说, 目前LED灯的市场上, 不论是生产商, 采购商还是终端客户, 都不专业, 大多数还只是凭经验或者外观等主观臆断来判断产品质量的好坏。
在产品外观雷同的情况下, 让人可以接受的价格和良好的销售策略起主导作用。
另一方面,从电子爱好者网站,《无线电》杂志等一些媒体可以看出,国内越来越的的人正在加入电子爱好者的行列。
伴随着这样的趋势,作为常用的电子器件之一的LED,其使用量将会越来越大,普及速度也会越来越快。
而作为一个忠实的电子爱好者,美观时尚应当是我们的不懈追求,引领更多的初学者走上电子爱好者之路更是值得我们努力的。
而3D光立方所能带来的震撼力和吸引力是其他电子设计所不能动摇的。
其实光立方这个名字早已出现过,也有人尝试制作过,每个制作过的人都会被其超酷的3D显示效果所震撼,我就是其中之一。
然而在网上搜索了大量相关资料后,我发现,网上各种版本的光立方的制作方法都很复杂,而且成本也很高,所以我想找出一种相对成本较低,制作方法简单,便于广大电子爱好者学习制作的方法。
这种方法如果实现,不仅会为LED市场带去不少的盈利,同样也能引领更多的人加入电子爱好者的队伍中,可谓一举两得。
1.2研究现状
其实,对于许多电子爱好者来说,光立方并不陌生。
它的功能也在许多人的开发下越来越强大。
每一个见过光立方效果的,都会被其超酷的3D显示效果所震撼,我就是其中之一。
但是,在搜索了大量相关资料后,我却发现,各种版本的光立方的制作方法都很复杂,不仅需要很强的动手能力来组装512个排列整齐的LED和金属支架,还需要有足够的耐心设计一大堆单片机和驱动芯片,最后还要为硬件成品设计显示程序,好让光立方动起来。
虽然市场上流通着的光立方中,有一种整机只有一个芯片的光立方,但是价格不菲。
到目前为止,尚未出现过一套既制作简单、价格低廉又功能强大的光立方完整设计方案。
1.3该论文的内容安排
开篇引言主要介绍研究的意义和目前光立方的研究现状。
提出了光立方的基本功能和总体设计方案,使得读者对整体设计有一个总体的了解。
之后第三章开始仔细介绍设计的各个部分。
第三章先从硬件设计入手,可以给读者对设计有一个具体的了解。
硬件设计主要包括包括控制电路,驱动电路和显示部分。
第四章是本设计的软件设计部分,在熟悉硬件部分之后,软件设计的具体阐述便于读者深入理解该设计的核心思想,从而开发出自己的程序。
第五章主要对设计的材料选取和硬件焊接做了详细的说明,便于广大电子爱好者自己动手制作。
最后,该论文对整体设计的软硬件测试过程做出详细的总结,以便读者在遇到相似的问题时,能够更快的找到合适的解决方案。
2、光立方的设计方案
2.1本设计基本功能和特点
1、8*8*8LED阵列3D光立方体显示器,设计方案精简,电路简洁,采用的材料是高亮蓝色雾面LED灯,可以达到光立方最佳视觉效果。
2、连贯图形显示效果,浑然一体,一气呵成。
能给用户带来立体的可视的震撼视觉效果。
3、程序内置坏点检测部分,以及多种图形显示模块。
4、创新设计的LED阵列制作模板,让LED阵列制作简单快速。
套件制作因此变得简单。
初学者也可以制作出规范、美观的成品。
2.2拓展功能
1、具有音频显示模式,可随音频同步显示,给用户和制作者超炫酷体验。
2、全开放式用户自定义操控,用户可根据自己的喜好自行编写对应的程序。
3、光立方内置三个模式:
图形显示模式、音频显示模式、夜灯模式。
2.3总体设计方案
该光立方设计方案,其核心分为三个部分:
控制系统,驱动电路和显示部分。
总体设计图如下页图(图2.1):
图2.1
本设计是用STC125A60S2单片机做控制芯片的,由单片机上的P2口来控制8个锁存器的锁存端,以此决定数据的输入和锁存。
其中这8个锁存器每个锁存器都各控制一层LED面(含64个LED)。
P0口8个额引脚则对应锁存器上的8路输入。
这样64个阳极控制就设计完成了,P3口的8各引脚则负责8层LED的负极控制。
这样512个LED每一个都有单独的位置编码,灯的亮灭可以由自由控制。
P4口的4,5,6引脚则用来接三个按键,分别控制:
图形显示、音频输出、夜灯模式,这三个模式的选择。
P1.0和P1.1管脚分别接音频插头的左右声道,当选择音频显示模式时,因为单片机自带A/D转换所以只需要在程序里做FFT变换即可。
总的来说,本设计是以单片机为核心的集3D显示,音频显示和用户自定义功能为一体的强大光立方设计方案。
3、硬件设计
3.1单片机控制电路设计
3.1.1单片机选型
制作光立方使用的单片机开发板采用了宏晶科技新推出的1T增强型51单片机中功能较为强大的一款——STC12C5A60S2。
此芯片集成了各种高性能工业标准接口,并且与传统51在资源布局上有完全的兼容性,大部分传统51的程序可以直接拿过来使用无需做修改。
与传统51不同的是,STC12C5A60S2是1T内核,速度是传统51单片机的12倍,遇到对延时有要求的地方,延时时间会变成传统51的1/12。
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。
以下是单片机管脚图及功能介绍。
单片机管脚图,如下图(图3.1):
:
其
图3.1
单片机简介:
1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051
2.工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.5V(5V单片机)
STC12LE5A60S2系列工作电压:
3.6V-2.2V(3V单片机)
3.工作频率范围:
0~35MHz,相当于普通8051的0~420MHz
4.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/64K字节
5.片上集成1280字节RAM
6.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)
可设置成四种模式:
准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)
9.看门狗
10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)
11.外部掉电检测电路:
在P4.6口有一个低压门槛比较器
5V单片机为1.33V,误差为±5%,3.3V单片机为1.31V,误差为±3%
12.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为±5%到±10%以内)用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟
常温下内部R/C振荡器频率为:
5.0V单片机为:
11MHz~17MHz
3.3V单片机为:
8MHz~12MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13.共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器
14.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟
外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块�,PowerDown模式可由外部中断唤醒�,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)
其中选用STC12C5A16S2最主要的原因是,它自带A/D转换功能,无需外设A/D转换模块,可以精简电路,降低成本。
而且储存空间足够大,能够存储足够多的图形程序。
3.1.2单片机控制电路
图3.2
3.2驱动电路设计
为节约成本,该设计没有选择硬件电路集成设计,把驱动电路与控制电路合为一体。
而是选择用常用的芯片做为光立方的驱动。
驱动部分分为两部分,如下图:
图3.3LED正极驱动电路
图3.4LED负极驱动电路
3.2.1负极驱动芯片
ULN2803达林顿管IC,一般都是用来驱动功率稍微大一点的被动器件的,而驱动的被动器件里,有很大一部分是感性的,如继电器、马达、电磁阀等,这些感性器件在关断瞬间会产生很高的自感电动势(自感电压),低的10多伏,高的几十伏,甚至几百伏,这么高的电压很容易把ULN2803达林顿管打坏,甚至打坏电路中的其它元器件,所以需要在感性器件上并联一个二极管,用来续流(就是把那个自感高压放掉),保护IC和其它器件不受破坏,此续流二极管正极接2803输出端(即电感器件的一端),负极接驱动电源(在2803上是10脚,也就是电感器件的另一端)。
2803在内部设计了二极管以后,用户在使用的时候不需要外接二极管,在同时驱动多路器件的时候可以节省PCB空间,节约成本、方便走线。
ULN28038个NPN达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载。
该ULN2803是专为符合标准TTL,而制造ULN2804适合6至15V的高级别CMOS或PMOS上。
该电路为反向输出型,即输入低电平电压,输出端才能导通工作。
管脚图如下页图(图3.5):
图3.5
引脚图说明:
1-8引脚:
输入端
11-18引脚:
输出端
9引脚:
地端
10(COM)引脚:
电源+COM脚的作用是当你使用ULN2803(2003)来驱动继电器时,可以将COM脚接到继电器的VCC端,利用ULN2803(2003)内部的反向二极管作保护继电器,消除继电器闭合时产生的感应电压。
COM端主要有两种用途:
(可悬空)
1试验用----接地:
假如它的输出端都接发光二极管,那么,只要将COM端接地,则所有的发光二极管都将亮起,否则,可能是二极管坏或其它什么地方坏了。
这对检修是很有利的。
2保护用----接电源正:
假如这个器件是接继电器或针式打印头,因为电感的作用,会在开关过程中产生低于地电位和高于电源电位的反电动势,这样,很容易击穿器件。
为了防止这种现象的发生,可将COM端接到电源正,来削减冲击电压低到二极管压降加电源电压的幅度----可以使得内部的三极管受到最小的正电压冲击。
至于达林顿关断时产生的负电压我们不必管,因为器件内部就有二极管并接到地的.专门用来削减冲击电压至电源地减去一个二极管正向压降----可以使得内部的三极管受到最小的反偏电压冲击。
UNL2803内部电路图如下图(图3.6):
图3.6
3.2.2正极驱动芯片
图3.7
八进制3态非反转透明锁存器74HC573高性能硅门COM器件SL74HC573跟LS/AL573的管脚一样。
器件的SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的,加上拉电阻,他们能和LS/ALSTTL输出兼容。
上面的这个是74HC573的封装图,让芯片的那个半圆形缺口朝上,从左上角开始逆时针数,分别为1到20号引脚。
其中1号和10号引脚接5V直流电源(以下简称DC)的负极,就是图中的GND(表示接地端,接负极就行);11号引脚接到STC单片机的P2口,一共8个573芯片,对应接到P2的0-7口(这个在买的单片机最小系统上有标识);20号引脚接到5VDC的正极;2号引脚到9号引脚接到单片机的P0^1-P0^7;12号引脚到19号引脚接到一排8个LED的束。
3.3显示电路设计
3.3.1各层电路设计
图3.8
显示电路部分是有8层8×8的LED面组成的,每一层都是由一个锁存器锁存端控制,每一层的其他地方连接基本相同,上图(图3.8)给出的是一层的显示电路设计图。
其中LED上的标识代表的是所要连接的锁存器,和对应的引脚连接。
LED负极的标识代表的是所要连接的ULN2803对应引脚。
3.3.2LED地址对照表
该设计的LED地址表示方法示例:
“P0.0P2.0”表示“第1列第1行”,“P0.1P2.1”表示“第2列第2行”,依此类推。
具体如下页表(表3.1,表3.2):
表3.1:
列1面
列2面
列3面
列4面
列5面
列6面
列7面
列8面
前
行1
P0.0P2.0
P0.1P2.0
P0.2P2.0
P0.3P2.0
P0.4P2.0
P0.5P2.0
P0.6P2.0
P0.7P2.0
行2
P0.0P2.1
P0.1P2.1
P0.2P2.1
P0.3P2.1
P0.4P2.1
P0.5P2.1
P0.6P2.1
P0.7P2.1
行3
P0.0P2.2
P0.1P2.2
P0.2P2.2
P0.3P2.2
P0.4P2.2
P0.5P2.2
P0.6P2.2
P0.7P2.2
行4
P0.0P2.3
P0.1P2.3
P0.2P2.3
P0.3P2.3
P0.4P2.3
P0.5P2.3
P0.6P2.3
P0.7P2.3
行5
P0.0P2.4
P0.1P2.4
P0.2P2.4
P0.3P2.4
P0.4P2.4
P0.5P2.4
P0.6P2.4
P0.7P2.4
行6
P0.0P2.5
P0.1P2.5
P0.2P2.5
P0.3P2.5
P0.4P2.5
P0.5P2.5
P0.6P2.5
P0.7P2.5
行7
P0.0P2.6
P0.1P2.6
P0.2P2.6
P0.3P2.6
P0.4P2.6
P0.5P2.6
P0.6P2.6
P0.7P2.6
后
行8
P0.0P2.7
P0.1P2.7
P0.2P2.7
P0.3P2.7
P0.4P2.7
P0.5P2.7
P0.6P2.7
P0.7P2.7
表3.2层地址:
层
纵向8层高位在下
低电平有效
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
视角说明,如下图图3.9:
图3.9
按照上图视角,垂直纸面向里依次是行1,行2,行3,行4,行5,行6,行7,行8。
3.4实物效果图
硬件焊接的最终实物效果图如下,控制部分(图3.10),显示部分(图3.11):
图3.10
图3.11
4、软件设计
4.1自定义头文件
Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选。
但是Keil里没有STC12C5A60S2的芯片头文件,需要在编写程序时自己添加头文件,实例如下:
<60S2.h>
//头文件名字可自行命名
sfrACC=0xE0;//Accumulator0000,0000
sfrB=0xF0;//BRegister0000,0000
sfrPSW=0xD0;//ProgramStatusWordCYACF0RS1RS0OVF1P0000,0000
//-----------------------------------
sbitCY=PSW^7;
sbitAC=PSW^6;
sbitF0=PSW^5;
sbitRS1=PSW^4;
sbitRS0=PSW^3;
sbitOV=PSW^2;
sbitP=PSW^0;
//-----------------------------------
sfrSP=0x81;//StackPointer0000,0111
sfr