基于单片机的光立方设计
目 录
摘要1
Abstract2
前言3
第1章 绪论4
第1.1节 开发背景4
第1.2节 本文所作的工作4
第2章 系统总体方案设计5
第2.1节 光立方控制原理5
第2.2节 系统总体硬件方案选择6
2.2.1核心控制器6
2.2.2 电源电路7
2.2.3 层面控制驱动电路7
2.2.4 LED灯选型7
2.2.5编译器选择8
第3章 系统硬件电路设计与实现9
第3.1节硬件电路设计9
3.1.1 单片机介绍9
第3.2节 总控制电路设计10
3.2.1 复位电路11
3.2.2 晶振电路12
3.2.3 供电系统及电源接口设计13
3.2.4 层控制电路设计13
3.2.5 行列选择电路设计14
3.2.6 程序下载电路设计14
第3.3节 LED 光立方焊接方法15
第4章 系统软件设计18
第4.1节 软件编译流程18
第4.2节 软件设计流程22
第4.3节 显示程序设计23
4.3.1 光立方动态显示原理23
4.3.2 显示程序的设计23
第5章 系统调试与分析25
第5.1节 硬件调试25
第5.2节 软件调试25
结论26
参考文献27
致 谢28
附录 光立方实物图29
摘要
LED光立方是由512个LED灯组成的立方体,其有8行8列8层LED灯构成。光立方使用的主控芯片宏晶科技公司生产的STC89C52单片机,使用ULN2803达林顿管芯片作为LED灯的层驱动电路,使用74HC573锁存器芯片作为LED灯的列驱动电路。整篇文章介绍了LED光立方的原理,方案选择、电路设计和软硬件调试等内容,完整的介绍了整个系统的制作过程。整个系统运行起来,能呈现出一个3D立体的动画效果,从而显示出更加丰富多彩的画面,打破了以前传统的平面显示方案,为将来LED灯技术发展提供了方向。
关键词:STC89C52,光立方,LED,ULN2803,74HC573
Abstract
LED Light Cube is a cube composed of 512 LED lights, which has 8 rows of 8 columns and 8 layers of LED lamp. The main chip used by the optical cube Acer Technology STC89C52 microcontroller, the use of ULN2803 Darlington tube chip as a layer of LED lamp drive
circuit, the use of 74HC573 latch chip as a column LED driver circuit. The whole article describes the principle of LED light cube, program selection, circuit design and hardware and software debugging and other content, a complete introduction to the whole
system of the production process. The whole system to run up and can show a 3D three-dimensional animation, which shows a more colorful picture, breaking the previous flat-panel display program for the future development of LED light technology provides a
direction.
Keywords: STC89C52, light cube, LED, ULN2803, 74HC573
前言
LED点阵早已融入到我们生活中,走在大街上到处都可以看见显示各种文字、图案的LED显示屏,人们早已看惯了那种平面显示的广告了。如何对LED屏进行创新,重新吸引人们的眼球呢?联想到现在的3D电影,3D电影给人们带来了视觉上的享受,如身临其境的感觉。从图书馆和网上查找LED灯的资料,了解到LED灯的技术特点:一是使用寿命长,单个LED灯寿命长达10万小时,二是节能,LED灯功耗非常低,三是基本没有电磁辐射。 LED灯还具有比数码管具有实用、便宜、高亮度等特点,并且做出了LED显示屏非常耐用。 LED灯具还具有低工作电压、低功耗、高亮度、长寿命、性能稳定、小型化和抗冲击等优点。目前,光立方已经用于娱乐室、会议室、家庭、大型音乐会、地标等城市布局和装饰的地方,也可以用于更广阔的领域,具有广阔的应用前景。
第1章 绪论
第1.1节 开发背景
在09年10月1日,建国60周年的国庆晚会上,导演像人们展示了美轮美奂的光立方,该光立方由4028颗发光树组成。其漂亮的造型,优美的表演,给人们留下了深刻的映像。而传统的LED显示屏只能显示写平面文字和图案,全国有好多家生产传统显示屏的厂家,但是生产的显示屏都是大同小异,没有创新。设计将打破传统的屏幕显示方法,LED光立方显示色彩鲜艳,立体感强,可广泛应用于大型晚会、演唱会、广告公司、酒店和车站等公共场所,相比于传统显示屏,肯定会深受广大人民群众的欢迎。
第1.2节 本文所作的工作
本次设计一个由512个LED灯组成的8*8*8光立方,整个设计的电路由六部分组成:电源电路、单片机最小系统电路、程序下载电路、行驱动电路、列驱动电路和显示电路等。主控芯片选用宏晶科技公司生产的STC89C52单片机,电源芯片采用LM2596-5 DC-DC降压芯片,列驱动电路采用8个74HC573锁存器芯片,行驱动电路采用ULN2803达林顿管芯片,显示电路为512个LED灯组成的8*8*8立方体。设计还包括电路焊接、程序编写及软硬件的调试灯工作。
设计的主要内容:
1、选择每个模块的设计方案。
2、设计每个模块的工作电路。
3、焊接电路。
4、编写程序,实现光立方需要显示的视觉效果。
第2章 系统总体方案设计
第2.1节 光立方控制原理
LED光立方由512个LED灯组成,其每层有8行8列总共64个LED灯,总共有8层。每层的64个LED灯阴极接一起然后与8个74HC573锁存器芯片的输出端相连,然后每层阳极接到一起,与UNL2803达林顿管芯片的输出端相连。
其显示原理如下,先通过单片机控制ULN2803芯片的某个引脚输出高电平,控制光立方的第一层,然后用控制74HC573锁存器芯片来控制哪几列的灯亮,然后给个5mS的延时,在把ULN2803芯片的另外引脚输出高电平,然后在来控制74HC573锁存器芯片。如此快速的切换芯片的高低电平输出,就达到了动态显示的效果。其中有个人眼视觉暂留原理,人眼的分辨率是每秒24帧,当我LED灯切换速度足够快,在人眼看了,那就是一立体的画面了。
图一、光立方立体效果图
图二、光立方面效果图
本节主要讲系统的设计方案论证,从多方面角度对系统所使用的芯片进行分析比较,最后经仔细研究确定使用的器件、编程软件和电路图绘制软件的选择。
第2.2节 系统总体硬件方案选择
2.2.1核心控制器
控制器是整个系统的核心部分,其功能控制I/ O输出高低电平,从而控制LED灯的亮灭,实现各种不同的动画效果。其常用的电子设计控制芯片有单片机和FPGA。
方案一:单片机
单片机是一种集成电路芯片,内部集成了ROM、RAM、定时器等很多功能,在日常生活中,我们常用的电子产品、家用电器里面都离不开单片机的控制。目前单片机种类众多,型号有8位单片机,16位单片机,32位单片机和64位单片机。有些单片机上集成了A/D,D/A,LCD驱动,USB驱动、SD卡驱动、函数发生器,PWM波等等功能,而且他们价格高低不同,开发者可以根据项目的需求选择合适价格和功能的单片机。
方案二:FPGA
FPGA是一种可以编程的硬件芯片,使用Verilog语音能对它进行编程,能够实现很多硬件的功能。FPGA可以实现硬件并行工作,在实时测量和控制以及高速应用领域具有光明的未来。但是FPGA开发难度大,成本高,LED光立方系统中用FPGA来开发很不划算。
综上所述,两种方案都可以通过编程实现对光立方的控制,但是单片机的技术门槛低,只需要懂C语言就能进行开发,而且单片机开发成本低,一般芯片只需要几块钱就能买到,相比FPGA动辄几百几千的芯片,其成本可以忽略不计了。现在市场上常用的单片机主要有8位单片机MCS-51、STM8 和STC,16位单片机 MSP430,32位单片机STM32等。目前使用最广泛的单片机是ATMEL公司的51系列单片机,其产品硬件结构合理,指令系统规范,很多教材都是以51系列单片机作为模板来讲解的。综上所述,该系统使用STC89C52单片机来控制。
2.2.2 电源电路
方案一:LED光立方系统使用LM7805线性稳压电路给系统供电,先通过适配器把市电降压输入到电路,然后在把降压后的电源输入到LM7805线性稳压电路为整个系统供电。LM7805芯片的优点是电路简单,工作稳定,但是降压的效率比较低,只有50%左右,发热量大,考虑到系统功耗会比较大,长时间工作会浪费电能,因此不采用此芯片
方案二:LED光立方系统使用LM2596-5 DC-DC降压电路给系统供电,先通过适配器把市电降压输入到电路,然后在把降压后的电源输入到LM2596-5降压为整个系统供电。LM2596-5的降压效率为85%,效率高,满足系统的功耗要求。
综上所述,选择LM2596-5降压芯片加适配器的方式为光立方系统供电。
2.2.3 层面控制驱动电路
方案一:采用八个NPN三极管(型号:S8050),使用三极管来放大电流,虽然这种方法可以达到驱动LED灯层的目的,但是此方法是才有的分立元器件,增加了板子的面积带来成本的增加,而且布线麻烦,焊接时也容易出错,稳定性差,因此不采用此方案。
方案二:使用芯片ULN2803,该芯片内部有八个NPN型达林顿管,能驱动大电流设备,可以满足512个LED灯的功耗。而且用一个芯片替代八个NPN三极管,不仅体积变小了,节约了成本,简化了电量,还提高了系统的稳定性。
综上所述,选择ULN2803芯片来作为层驱动电路。
2.2.4 LED灯选型
方案一:使用草帽型LED灯,但是这种灯光源发散很严重,点亮时会影响周围的LED灯,会降低视觉效果,影响光立方整体显示的性能。
方案二:使用方形高亮LED灯,这种灯工作电流为2mA至10mA。方形LED灯聚光效果好,即使所有灯全部工作,也不会影响整体显示效果。
综上所述,采用方形的LED灯来显示。
图2-2 左边为方形LED灯,右边为草帽型LED灯
2.2.5编译器选择
方案一:使用伟福WAVA600编译器,该编译器是专门用来编译汇编程序的软件,同时该软件有个配套使用的仿真器,该仿真器可以当做单片机来使用,还可以通过伟福软件来选择需要仿真的单片机型号。伟福软件可以对汇编程序进行单步调试,方便查找程序问题。但是该软件只能使用汇编来编写,汇编程序本身就比较复杂难懂,需要熟悉每条指令的含义,对于编写光立方程序,难度太大了。而且配套的仿真器价格比较贵,一套好的仿真器价格需要1000多,成本太高。
方案二:使用Keil编译器,Keil是由ARM公司开发的一款单片机编程的软件,该软件支持51系列、stm32系列等多种型号单片机,支持多种该软件支持C语音开发和汇编语音开发,或者C语音和汇编语音混合开发。该软件能支持单片机软件仿真和软硬件在线实调试,但是对于51系列单片机只支持软件仿真,51系列单片机不支持在线调试。
综上所述,选择Keil编译器来编写程序,Keil使用方便,功能强大,且C语音可读性和可移植型都比汇编语音强。
2.2.6电路设计软件选择
方案一:使用Multisim软件来设计电路图,该软件是用来进行模拟和数字电路仿真的,可以用来绘制原理图,但是这款软件的功能是偏仿真使用的,对绘制电路图的功能不是很强大。
方案二:使用Altium Designer软件来设计电路图,该软件不仅可以制作原理图,设计PCB电路板,而且可以对原理图电路进行仿真调试,在实际工作中,很多公司都用这款软件来设计电路,深受广大电子工程师的喜爱。
综上所述,使用Altium Designer软件来设计本系统电路图。
第3章 系统硬件电路设计与实现
第3.1节硬件电路设计
系整个系统由STC89C52单片机、电源模块、复位电路、时钟电路、行驱动电路、列驱动电路和512个LED灯组成,其原理图如图3-1所示。
图3-1 系统原理图
3.1.1 单片机介绍
STC89C52单片机是宏晶科技公司研发的一款高性能8位单片机。STC89C52单片机使用的是51的内核,它的指令集和I/O口与MSC-51单片机是完全兼容的。
STC89C52系列单片机主要特性如下:
(1)工作电压:5 V
(2)用户应用程序空间(Flash)为8K。
(3)随机存储控件(RAM)为512字节。
(4) 有32个通用I/O端口,单片机复位后,所有的I/O口的状态,是一个准双向口/弱上拉状态。P0口为开漏输出,用作地址扩展总线时,不需要加上拉电阻,用作普通I/O 口使用时,需要加上拉电阻。
(5)单片机总共3个16位定时器/计数器,分别是定时器T0、T1、T2。
单片机STC89C52引脚图如图3-2所示:
图3-2 STC89C52引脚图
单片机P0口是一个漏极开路的8位双向I/O口。在作为输出端口时,每个引脚需要外接一个上拉电阻才能输出高电平,否则只能输出高组态,会影响电路正常工作。
P1、P2、P3口是一个带内部上拉电阻的8位双向I/O口。
P3口除作为一般I/O口外,还有其他一些复用功能,如表3-1所示。P3口除了具有MSC-51单片机功能外,其P3.0、P3.1口在STC系列单片机里面还具有下载程序的功能。
表3-1 P3口引脚复用功能
第3.2节 总控制电路设计
图3-3为单片机最小系统原理图。总控制电路主要由电源电路、复位电路和晶振电路组成。单片机STC89C52加电时,需要进行复位操作,复位后STC89C52的工作环境配置成初始状态,并从程序的开始进行运行。RST引脚接复位电路,本系统采用12MHz的外部晶振电路。
图3-3 单片机最小系统原理图
3.2.1 复位电路
STC89C52单片机是高电平复位,至少需要给单片机的复位脚提供24个晶振震荡周期的时间,单片机才能复位。
单片机常用的复位电路有两种,一种是手动复位,另一种是上电复位。
上电复位电路是单片机的复位脚接一个1uF电容到电源上,同时接一个10K电阻到地。当系统上电以后,电源给电容充电,电路导通,单片机的复位脚是高电平,单片机复位。然后等电容充满电后,电容就相当于短路了,单片机的复位脚接地是低电平,单片机就能工作了。
手动复位是在上电复位电路的基础上再电源和复位脚之间接一个按键(也就是在电容上并一个按键)。在单片机正常工作时,如果系统需要复位,就把此按键按下。这时电容短路,单片机复位脚是高电平,系统复位。等系统复位后,在把按键松开,电源和复位脚之间又断开了,复位脚为低电平,单片机正常工作。
本电路采用的是手动复位电路,其复位电路如图3-4所示。
图3-4 复位电路原理图
3.2.2 晶振电路
每个单片机运行都需要一个基准的时钟源,单片机所有的指令执行时间都是以这时钟源来决定的,时钟频率越高,单片机执行的速度就越快。但是单片机也有个上限时钟频率,STC89C52的最快时钟频率是40MHz。
单片机的时钟源我们常称为晶振,晶振可以分为无源晶振电路和有源晶振电路。有源晶振只需要给晶振提供电源,晶振就能自己起振产生时钟频率,然后输入到单片机的XTAL0脚,单片机就能工作了。无源晶振它本身不能自己起振,需要外接电路才能起振工作。一般是在晶振两端接两个20pF的小电容,然后把晶振两端分别接到单片机的18脚和19脚(即XTAL0和XTAL1两个引脚),在单片机上电后,晶振与单片机内部的震荡电路连接到一起,晶振电路就能够起振,单片机就能正常工作。
本电路采用的是无源晶振,使用一个12MHz的晶振加两个20pF的电容,接到单片机的XTAL0和XTAL1两个引脚上,晶振电路如图3-5所示。
图3-5 复位电路原理图
3.2.3 供电系统及电源接口设计
本系统供电方式使用12V的电源适配器,先把市电降到12V,然后通过DC-DC降压芯片,把12V电源降压成5V电源。5V电源一方面用来给单片机最小系统供电,另外一方面给ULN2803达林顿管、74HC573锁存器芯片供电和LED灯供电,电源电路如图3-6所示。
图3-6 系统供电原理图
LM2596-5芯片1号脚如电源输入端,2号脚为输出端,3号脚和6好脚接地,4号脚接电源输出反馈,L1电感为储能电感,D2二极管为续流二极管,整个电路上电以后,电路中的电容是整流滤波用的,就能把12V电压将到5V去。
3.2.4 层控制电路设计
UNL2803达林顿管芯片用来控制光立方的层亮灭,单片机的P3.0~P3.7分别接到ULN2803的1~8号脚,ULN的11~18号脚接一个限流电阻后接到光立方的没一层共阳引脚上。如果单片机的P3口输出低电平时,ULN2803芯片内部的达林顿管截止,OUT脚输出低电平。如果单片机的P3口输出高电平是,ULN2803芯片内部的达林顿管导通,输出高电平,然后驱动LED灯亮。UNL2803层驱动如图3-7所示。
图3-7 ULN层驱动原理图
3.2.5 行列选择电路设计
电路采用8个74HC573锁存器芯片来控制LED每层哪些行列的灯亮灭。单片机的P1.0~P1.7口分别与8个74HC573锁存器芯片的每个使能端口相连,用来控制选择对应的74HC573工作,然后单片机的P0.0~P0.7口与每个74HC573锁存器芯片D0~D7脚相连,74HC573的O0~O7与LED每层的行列相连。74HC573原理如图3-8所示。电路设计时,在每个74HC573芯片的电源和地之间,都加了一个陶瓷电容,用了滤除电源里面的高频干扰,增加芯片的稳定性。
图3-8 行列控制原理图
3.2.6 程序下载电路设计
STC系列的单片机都是采用单片机的P3.0和P3.1两个接口来下载程序到单片机的,因此把STC89C52单片机的两个引脚引出来,然后在与串口模块相连,注意串口模块与下载接口相连时,接线顺序是模块电源与接口电源相连,模块地与接口地相连,模块的RX与接口的TX相连,模块的TX与接口的RX相连。其程序下载电路如图3-9所示。
图3-9 程序下载电路原理图
第4章 LED 光立方焊接
第4.1节 LED 弯曲方法
LED光立方在焊接时,为了整体的美观性,使用LED灯的引脚来进行搭接,也就是直接把LED灯引脚首尾焊接到一起,而不用额外的器件来做支架。
为了方便焊接和整体的美观性,将所有LED灯的阴极用钳子弯曲90度,如图3-10所示。
图4-1 LED灯弯曲效果图
第4.2节 LED 线焊接方法
找块泡沫板,在上面画出面积大小为15*15cm的区域,在这区域里面孔均匀的打8*8总共64个点,在根据LED的大小来打孔。然后把用钳子弄好的LED灯放八个一排,插入到打好的孔内,在把8个LED灯的阳极焊接到一起,如此重复焊接,总共需要焊64条LED灯。8个LED灯焊接效果如图3-11所示。
图4-2 LED一排效果图
第4.3节 LED 面焊接方法
把焊接好的LED灯灯条摆在桌子上,来进行LED阴极的焊接,控制好LED直接的距离。如此重复焊接,总共需要焊8个LED层面,一层LED的焊接图如图3-12所示。
图4-3 LED一层效果图
第4.4节 LED 立方体焊接方法
先在洞洞板上完成单片机、电源、ULN2803和74HC573芯片的焊接,然后在焊接LED灯的固定脚,固定脚直接的间距要跟前面泡沫板设计的间距一样,否则LED灯是插不上去的。
然后将所有焊好的LED灯层面垂直的插入到洞洞板上,把每一层的阳极阴极焊到一起,在通过8跟导线把每层的阳极接到板子的ULN2803输出阴极上,由面到体的效果图如图3-13。
图4-4 LED立方体效果图
第5章 系统软件设计
第4.1节 软件编译流程
1、本次设计使用的编程软件是ARM公司开发的Keil uVision4。先从网上下载Keil软件,在对其进行破解,如果不对软件进行破解,软件会对代码的大小进行限制,当代码超出限制范围,程序就会报错,因此需要先对其破解后在使用。
图4-1 keil软件破解
2、软件破解后,先点击软件上方的Project,然后在点击new 按钮,就会弹出图4-2所示界面,把工程放到一个文件夹里面,并设置一个名字。
图4-2 新建工程界面
3、工程建好以后,软件会弹出图4-3所示界面,用来选择单片机型号,本设计采用的是STC89C52单片机,它的资源跟AT89C52单片机型号是差不多的,在这里选择AT89C52单片机即可。
图4-3 选择单片机型号界面
4、在单片机型号选好以后,我们就可以来写程序了,先要新建一个后缀为“.c”的文件,我们所有的程序都是在这个文件里面编写的。点击软件左上角的新建文件按钮,然后点击保存按钮,把该文件保存到刚才建立的工程里面,文件名写为“main.c”。
图4-4 新建main.c文件
5、文件建好以后,点软件左边图4-5所示地方,把刚才新建的“main.c”文件添加到工程中去。
图4-5 添加main.c文件到工程
6、一切准备就绪后,就可以写程序了,在程序写好以后,点击软件上的编译按钮,软件就会对程序自动进行编译,同时会把编译的结果显示在软件的下方。当编译出错,就根据编译的错误提示来进行程序修改,知道程序完全编译通过为止。
图4-6 新建main.c文件
7、程序在编译完成后,点击软件Target Option按钮。再点击Output按钮,把Create HEX File给勾选上,这个地方是让软件把程序编译后的结果生成为.Hex文件,这个文件就是我们需要的程序文件,通过烧写工具把这个文件烧入单片机里面,单片机就能运行了。
图4-7 新建main.c文件
8、在编译好程序后,把串口模块一端接到单片机的程序下载口,另一端接到电脑上,然后打开STC-ISP软件,按下图4-8进行配置,然后就可以把程序下载到单片机里面了。
图4-8 程序烧写软件
第4.2节 软件设计流程
单片机程序运行的流程如下,首先是对系统进行初始化,主要是对T0定时器的初始化,T0定时器主要是用来给系统定时使用的。然后是对光立方初始化,主要是对控制ULN2803芯片和74HC573锁存器芯片的I/O口进行初始化,然后对跟显示相关的数组进行赋值。灯初始化完成以后,单片机就会进入死循环,不断的切换显示的图片和动画效果。主程序的流程图如图4-9所示。
图4-9 主程序流程图
第4.3节 显示程序设计
4.3.1 光立方动态显示原理
单片机每次只能给一层上面的一个74HC573锁存器写数据,而整个系统由8个锁存器和8层,要想让人眼看到一个立体画面,就需要单片机给74HC573写完数据后,延时段时间,马上给下一个74HC573写入数据,如此重复,而且速度要快,才能看到一个立体的画面。
4.3.2 显示程序的设计
图4-10 LED动态显示流程图
显示动画,首先要把要显示的74HC573锁存器的片选选中,然后把数据输出到P0,74HC573锁存器就是把数据显示出来,然后单片机选中下一个74HC573锁存器的片选,在把新的数据输出到P0口,如此操作,直到把所有要显示的数据都输出到P0口,就显示完成了。
第5章 系统调试与分析
第5.1节 硬件调试
5.1.1 LED灯测试
LED灯在焊接过程中很容易别烙铁的静电焊坏,为了防止烙铁的静电干扰,在焊接过程中,需要把烙铁头接地。同时为了确保每个LED灯都是好的,把每8个LED灯焊成一条,然后用万用表测试灯是不是好的,如果有LED灯不亮,就用烙铁焊下来,重新换个新灯。
5.1.2 在整个系统焊接完成以后,不要急于上电,以免短路烧坏芯片。要先检查板子看有没有短路、短路、虚焊的地方。在检查确认没有问题后,在上电试下。
第5.2节 软件调试
在硬件全部焊接完成以后,就按照第4章写的方法来把代码烧写到STC89C52中。先编写程序,把所有ULN2803输出高电平,然后把所有的74HC573锁存器输出低电平,让所有的LED灯都亮,来测试检测电路和所有的灯是不是正常的。
1、测试中发现灯都没有亮,检查程序,发现程序里面定义的引脚和电路中使用的引脚不一样,在修改引脚定义后,所有灯能正常亮了。
2、在程序编写好后,测试动画效果,发现有两层灯是同时亮的,检查后发现原来是ULN2803芯片有两个脚短路了,在把他们重新焊接以后,测试就正常了。
结论
经过一个多月的设计,终于是把整个光立方系统完成了,整个制作过程中遇到困难多的数不胜数,其中的汗水与快乐只有自己能体会。当看着自己亲手做的第一个作品,心里还是挺自豪的。
此次设计,把我在课堂上所学到的单片机知识、C语言知识、模电知识和数据知识都用到了。使我对自己所学的知识有了深刻的理解,巩固了大学四年所学的知识,为我将来毕业后工作,打下了坚实的基础。
在选了光立方这个题目后,我是有些茫然的,不知道怎样开始设计。在老师的指导下,我先从网上搜集资料,看别人是怎样制作光立方的。先找资料理解光立方的工作原理,在原理理解了后,在自己动手来设计原理图。但是之前没有使用过Altium Designer 09这软件,就在网上找视频资料,对着视频来学习怎样画原理图,怎样设计电路。软件学好了以后,就找资料来设计原理图,对有些模块电路不理解的地方,我是找同学帮忙分析电路。
原理图设计出来后,就是购买材料,然后焊接电路了。512个LED灯焊起来可不是件容易的事,经常会把LED灯给焊坏,然后需要把它拆了在重新焊,焊灯就花了好长的时间才完成。灯焊好了,就是焊芯片了,那么多的导线,经常是焊着这里断了那里,就这么一点一点的给焊完了。
硬件搭好以后,就需要写程序来进行调试了。Keil编程软件之前也没有使用过,还是先从学习软件开始。怎样建工程,怎样编译程序,怎样解决程序里面的错误。还好网上有些好心人分享了他们制作光立方的程序,我把他们的程序下载下来,然后根据自己的引脚来进行修改,调试了几天,程序就跑通了,光立方可以显示图案了。
通过这次的毕业设计,我理解到,光学习理论,不实践是不行的,只有把理论运用到实践中,才能发挥出所学知识的价值。
参考文献
[1] 姜志海,黄玉清,刘连鑫. 单片机原理及应用(第2版)[M]. 电子工业出版社, 2009
[2] 魏泽鼎. 单片机应用技术与实例[M]. 电子工业出版社, 2005
[3] 张洪润,张亚凡. 单片机原理及应用[M]. 清华大学出版社,2005
[4] 李玉峰. MCS-51系列单片机原理与接口技术[M]. 人民邮电出版社, 2004
[5] 马忠梅. 单片机的C语言应用程序设计[M]. 北京航空航天大学出版社, 2007
[6] 阎石. 数字电子技术基础(第四版) [M]. 高等教育出版社,1998
[7] 谭浩强. C语言程序设计(第四版)[M]. 清华大学出版社,2010
[8] 谷树忠.刘文洲.姜航. Altium Designer教程[M].电子工业出版社出版,2012
[9] 周立功. 单片机实验与实践教程[M]. 北京航空航天大学出版社,2006
[10] 黄智伟. 全国大学生电子设计竞赛电路设计[M]. 北京航空航天大学出版社,2011
致 谢
本次毕业设计的完成是在导师的细心指导以及同学们的帮助下进行的。从最开始的选题、写任务书、写开题报告、搜集资料,到最后的论文成形,都是老师一步一步的指导我,花费了周老师大量的时间,在这里我要向周老师表示由衷的感谢。
在完成论文的过程中我还要感谢同学们的对我的支持,是你们在我平时设计中帮助我查找资料,一起探讨问题,解决问题,对我写的内容提出建议,帮助我解决硬件和程序中遇到的问题,让我能够如此短的时间内完成系统的设计和焊接和调试。在整个毕业设计制作过程中,我得到了很大的锻炼和成长,会自己去思考问题、解决问题,这对我以后的工作会有很大帮助,我将受益终身。
附录 光立方实物图
图一、光立方整体实物图
图二、光立方工作实物图
基于单片机的光立方设计
相关推荐
4*4*4光立方的制作
楼主周末不回家,老师直接把单片机实验室交给我了,一时兴起,就做了一个4*4*4光立方玩玩儿,我是直接做的,所以现在没有什么资料的,光立方主板
2016-10-23 22:54:13
444光立方不用573,也不用595,也不用2803
的,近几天我加的光立方群里面很多人要444,888的原理图,以及程序,我突然想到,444的光立方,xyz一共12个控制端,那么单片机的IO口不用说,是肯定多余12的,那么可不可以直接用单片机而不借组其他
2012-11-27 22:14:40
51单片机4*4*4光立方倒计时程序怎么写啊?
`小弟于今年五月在无意中看到光立方的视频,就迷上了它。并且非常想学好单片机!于是就着手准备开始动手制作光立方。购买了51学习板。和1000个LED。和制作光立方的一些材料。在这做的过程中。越到了很多
2013-05-28 19:54:26
光立方+心形灯+资料
仿真)最终效果图: 两个小玩意儿都是用51单片机做的,非常适合初学单片机的同学DIY,提高编程能力,同时也能提高自己PCB设计能力和焊接能力。后面附上两个小东西的资料,欢迎大家下载。`
2015-10-31 01:12:32
光立方+频谱+上位机软件(原创)
` 本帖最后由 萧九 于 2014-5-22 22:06 编辑
[hide] [/hide]耗时一个多月,集成了MP3播放,频谱,光立方上位机软件,光笔采集手写!系统流程图可以看下。有点乱
2014-04-25 23:28:10
光立方动画和上位机问题
请教大神谁懂光立方动画的那些底层函数,看不懂,也不会写。还有就是上位机是适用于每一种光立方么?还是只要电路有一点不同就要有不同版本的上位机。在此给大神们贴上自己的原理图额。如果有适合该电路的上位机,致电哦{:19:}{:19:}{:19:}QQ 728843414
2013-08-20 00:19:14
光立方求助
光立方求助啊 请问各位做完光立方的大神们,你们焊接光立方的时候没有出现过点一个灯同时亮N多个的情况吗,小弟做了两个都是这样 根本出不来效果啊 敢问这是什么原因啊
2013-04-23 19:17:27
光立方求教
我这几天刚做了一个光立方,写了一个全亮的程序,为什么刚接电源时是全亮的,可是一有按键的声音图案就变了,是声音,还有一按开关,也是显示出不同的图像。用的是89c52rc单片机,芯片是573的。
2016-01-12 09:15:12
光立方的原理
本帖最后由 wolfwyf 于 2013-8-17 14:17 编辑
光立方的图像时保存在单片机上面上电后自动开始按照编好的顺序播放 还是插上音频 通过音乐的变化自动选取合适的画面进行播放 还有它的原理 求指教~
2013-07-28 23:48:34
单片机光立方问题求助!!急!!!
我在网上买了块板子做8*8光立方,现在的问题有点诡异,首先程序焊接应该都没问题,设计是共阴极接口连接2803,单片机是用的STC60S2,正常情况下上电之后等都能亮,但是不按程序走,只是亮着不动
2015-05-18 13:22:15
单片机中while(1)的一些问题
放到一块单片机中,但是显示温度和测量温度本身就要放在while(1)中的,而像光立方那样循环,也需要一个独立的while(1)这样两者就矛盾了,一旦触发到光立方的while(1),那它就只会亮灯,温度就不会更新了,大家能不能帮我想想办法,能不能用一块单片机来实现。
2016-10-23 23:24:31
单片机可以直接驱动光耦吗?
单片机-->光耦-->ULN2003-->继电器,最多同时驱动4个光耦,单片机低电平驱动光耦,电流够,那么单片机直接驱动光耦从可靠性上来说有问题吗?要不要缓冲下再接光耦?
2019-10-15 09:10:33
DIY炫酷光立方8*8*8,精美PCB
本帖最后由 大猫礼 于 2014-3-18 19:27 编辑
工作闲来无事,就DIY一些小东西来玩玩。以前做过一次光立方是用AVR单片机,貌似现在这个不太受欢迎还是怎么滴,现在改用STC
2014-03-11 23:21:16
STC89C52单片机和573 2803A做光立方
我用STC89C52单片机和5732803A做光立方,遇到两个问题:1、单片机的P0口接8个573,为什么P0口输出高电平时,测量它的引脚电压仅为0.5V左右,加了1K的上拉电阻之后电压为2V左右
2013-05-29 14:10:18
stc12c5a60s2单片机光立方频谱显示引脚问题 解决有报酬
stc12c5a60s2仅p1支持adc转换,但是焊出来的把p1用做了其他用途,模拟输入接到了p3上,频谱没法显示了,有什么补救措施吗,怎样改可以实现频谱显示
2018-06-01 19:31:27
【CANNON试用体验】+光立方蓝牙控制心得
实验。不多说,先上图!我这个是用蓝牙来控制光立方的开关,用开关来对光立方变化不同的图形。所以呢,设计比较简单,大家笑纳 !这个光立方,是我以前做好的,所以说蓝牙芯片我就直接夹在单片机的io口上,通过
2016-04-13 13:22:33
做了个光立方不知道怎么把程序下到单片机中去
做了个光立方不知道怎么把程序下到单片机中去。 从网上找个光立方程序, 让后用keil建个工程 把程序复制到里面编译的时候没错误。 但是链接的时候就不行。 没法生成HEX 文件。 请问咋整、
2014-04-07 15:23:32
全彩RGB光立方,把你带进彩色立方时代
`以前不知道光立方是什么东西,知道大一新生入学时看到师兄师姐拿着光立方来我们教室宣传才知道什么叫光立方。那时候的确感觉很新奇很神奇的东西,小小的一个东西就可以做这么多功能,而且单片机只认0和1,深深
2014-08-10 19:51:15
关于光立方的上位机和取模
请教一下关于光立方的上位机和取模的实际控制方式和用法是什么样的,可以分别讲述一下么,对光立方的硬件有什么要求比如通讯,谢谢各位指导,小弟新人
2014-01-08 00:15:21
关于光立方问题
现在光立方是束为二极管正极连接共64引脚由74HC573控制,面为二极管负极连接共8只脚由ULN2803控制,单片机为STC60s2的,现在烧入程序后进行全部的发光二极管进行点亮,请问单靠电脑的USB接口的供电能正常让发光二极管点亮么?求解答,谢谢{:4_124:}
2013-04-07 21:53:40
基于51单片机的光立方制作步骤教程及程序
[table=98%,transparent][tr=transparent][td] 这是做好后的效果还是很炫的 制作要的点: 1.单片机必须用STC12C5A60S2因为低速51根本带不动
2018-07-05 09:57:57
基于51单片机的光立方自作
[table][tr][td] 这是做好后的效果还是很炫的 制作要的点: 1.单片机必须用STC12C5A60S2因为低速51根本带不动 它的运算速度要求非常高. 2.也就是晶振要用24M
2018-06-29 09:08:49
基于51单片机的光立方设计
本作品采用STC12C5A60S2单片机,8个74hc573锁存器控制每一列,2个74hc573锁存器控制颜色,所有锁存器输入端均接P0,8个锁存器的使能端接P2,控制颜色的接P1^0,p1^1,uln2803输入端接P0.换颜色的按键接P3^2
2014-05-16 01:58:41
基于单片机的光立方体资料分享!(原理图&PCB&源程序)
`功能描述: 8*8*8光立方主控板,采用STC12C5A60S2单片机为主控芯片,驱动电路采用8个SN74HC573为驱动锁存器和ULN2803芯片来实现。同时采用5V USB 与 9V电池双供电
2020-08-28 15:00:02
基于单片机的光立方设计 精选资料分享
基于单片机的光立方设计目录摘要 1Abstract 2前言 3第1章绪论 4第1.1节 开发背景 4第1.2节 本文所作的工作 4第2章系统总体方案设计 5第2.1节 光立方控制原理 5第2.2节 系统总体硬件方案选择 62.2.1核心控制器 62.2.2...
2021-08-09 07:24:28
基于STC89C52单片机8x8x8的LED光立方设计资料分享
1.简介本设计是以STC89C52单片机的8x8x8的LED光立方。本设计将LED光立方分成8层,分别由单片机的P1,8个IO口来控制每一层,由于采用的是共阴极所以当层电位为高电平有效,由P0口
2021-11-18 07:27:45
多彩888光立方
64字节光立方数据。这是这样不断循环。让我一会儿破解了。我现在已经升级到STM32单片机控制了。用DMA功能,正好送到光立方的显示数据数组中。最近还在完善各方面功能。过段时间发视频。前一段时间比较无聊,为了打发时间,又做了个光立方,这回用了黄绿红三种颜色。`
2015-12-26 15:21:51
如何把光立方和小车的电机联系起来?
最近单片机入门做了一个444的光立方和智能小车,想把二者联系起来。唯一的方法的通过小车电机的电平来获得小车的运动状态,从而让光立方显示小车的运动方向,但电平的获得不太会,希望大家能有解答!
2022-11-20 23:57:29
想做4*4*4光立方,求指导
想做个4*4*4光立方,每层共阳,按照别人的方法把立方体给焊出来了,有74HC154和74HC245和单片机,求教剩下怎么焊,另外求个程序。 新手初学,求高手前辈 指导。 联系邮箱,569889472@qq.com
2013-05-23 17:32:52
我做的光立方
本帖最后由 zzzjjjhhh123 于 2013-5-6 20:53 编辑
参加了学校的校赛,在网上找,看到光立方,很不错,,就上手做了,,虽然只是自学了两个多星期的单片机,,啥都不
2013-05-06 20:32:06
改版光立方
通过漫长的一个月电路设计,终于开发出来了一块光立方的驱动底板,和元旦20多个小时的连续奋斗,今天终于调试完成了新版光立方,采用了专门的led驱动芯片,祝大家新年快乐。上图秀秀;上位机,红外,脱机运行;最炫的动画;
2015-01-03 21:19:01
有没有stc89c52做的4*4*4*光立方程序?
层共阴,竖列共阳。试试作好了光立方,刚接触单片机。不会程序。望高手指点或给个简单程序能够点亮。来提高兴趣。谢谢。
2013-03-30 09:28:47
梦幻光立方
方案介绍:梦幻光立方是由(8X8X8)个雾状led灯组成的led立方体,通过单片机控制可以显示具有3D效果的图案,给人以视觉上的冲击力,也可以实现音乐的动态频谱显示。通过按键或遥控器实现显示图形
2013-10-26 13:14:45
求助光立方问题
我做了一个光立方,单片机用的STC12C5A60S2,总体来说还不错,但是程序写进去后,有些程序好像丢了一样,但是重新写进去还是那样,还有不该亮的有时也会亮(这个我觉得是焊接灯的时候没有去静电,各位大神觉得有可能吗?)求解救啊,要拿来代表我们系比赛的。。
2013-10-15 17:24:22
求助,光立方不亮,P0口用金属碰一下,对应的一列亮
求助,我刚做好的一个光立方,是共阴极的,正极用573驱动,负极用一片2803控制,但是光立方没有反应,用一根金属丝接触一下2803的输入端(接入单片机IO口那一端),光立方对应的一列就会亮了,这是为什么啊?恳请大神们求救啊
2015-05-23 17:43:52
用atmega16做的光立方,没啥创新,纯玩
单片机下载程序用。3.BT是蓝牙接口,接上蓝牙模块可以用。其实没啥实际用处,我就是想用手机或者电脑的蓝牙控制光立方的动画图案。仅此而已。4.POWER是自锁开关。按下开关后,单片机即接通电源,开始工作
2014-09-02 09:48:37
红外控制光立方
远程控制,从而可实时控制。 2.作品的系统构成该产品利用SLH89F5162单片机的功能由红外遥控模块、LED电路组合显示模块、驱动电路模块等电路模块。运用了红外遥控技术,有着抗干扰能力强,信息传输
2013-11-06 12:43:03
自己制作的光立方,
的是STC12C5A32S2单片机,其实跟51差不多多少!锁存用的是74hc573 还有uln2803驱动。原理图里面少了锁存的输出端跟灯的连接。8个573连接的是光立方的64个阳极端,2803的输出端
2013-11-29 17:27:02
请问我这样的光立方能实现频谱效果动画吗?
#pid520142{background-image:url("static/image/postbg/2.jpg");}我比赛做了一个888的光立方,用的是stc12单片机
2019-08-02 01:20:26
NY8A050D单片机,AD单片机,九齐代理
这篇文章将介绍台湾九齐单片机NY8A050D 6 I/O 8-bit EPROM-Based MCU,包括其特点、应用领域、与其他单片机的比较等内容。一、九齐单片机NY8A050D 6 I/O
2023-11-27 21:54:52
基于51单片机的立方体
2013-05-22 10:35:509
基于51单片机光立方设计_陈聪
2014-04-18 21:47:5759
51单片机光立方完整资料
2015-07-31 16:08:5080
怎样不用单片机做一个led光立方
我也是DIY新手,开始就被大师的led 光立方着迷了,各位新手一定像我一样,被单片机搞到头痛,。这次,我们不用单片机,不用编程,自制一个4*4*4光立方。
2018-09-13 14:14:006512
基于单片机的LED灯光立方设计
光立方顾名思义就是会发光的立方体,光立方的基本原理是利用人眼的暂留效应,利用单片机控制LED灯快速的闪烁,显示出一个完整的图案。光立方原理相对简单只是制作过程较为耗时。
2022-06-12 08:52:482862
评论
查看更多