基于单片机的光立方设计毕业设计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 miCroComPuterABstraCtThis PaPer introduCes the ProCess of Building Light CuBe, with 51 SeriesMCU STC12C5A60S2 as the main Control ChiP, ConneCted By 512 LED By CO Yinform, By 74HC595 for the exPansion of the MCU I/O Port, using ULN2803 as thedrive CirCuit, the formation of a sPeCifiCation for 8*8* 8 (length, width,height) the 14Cm*14Cm*20Cm CuBe, also introduCes the CharaCteristiCs andmethods of use of the ChiP and software and hardware in the ProCess ofdeBugging ProBlems and solutions, desCriBed in detail the design PrinCiPle and arChiteCture method Light CuBe, the CuBe existed at Present signifiCanCehave also Been introduCed in detail.Keywords: Light CuBe; 74HC595; STC12C5A60S2; ULN2803; LED目录姓 名: 梁泉明学 号: 班 级: 10信科一班专 业: 信息科学与技术 所在系: 电子信息工程系指导教师: 郝芸第一章绪论“光立方”是一种基于娱乐和学习为一体的科学制作,光立方的娱乐体现在其开放性的DIY程序改造和立体的动画表现形式,可以随心所欲的变化程序来实现想要的动画效果。
光立方的学习价值体现在对单片机的控制操作和对512个LED灯的点阵控制及对个模块功能的协调配合上,随着近年来电子行业的飞速发展,越来越多的电子爱好者对于光立方产生了很浓厚的兴趣,光立方创造出的浪漫气氛和绚丽画面,使它在很多场合作为一种生日礼物或者是示爱的工具,大多数的专业人士把光立方研究做为一种职业,光立方技术也逐渐的变得成熟,不仅具有了学习价值还具备了商业价值,因为其的立体渲染效果也使的它是个很好的广告宣传工具,诸多好处也使得光立方越来越受人追捧,大家都在光立方原有的基础上创新改进,其创造出的经济价值和娱乐价值已远远超过单纯的LED点阵显示,这也再一次深深的吸引了电子爱好者对其研究和创新。
这次毕业课题的设计抛弃了传统LED的二维显示,改为了点阵的三维立体显示,显示的更加绚丽多彩,强烈冲击了人们的视觉,传统的光立方用的是简单的单片机,因为其性能制约使得其立体效果和动画效果不是很流畅,本次运用了性能最优秀的单片机STC12C5A60S2替代89C51,从而使系统的功能变得更加强大驱动能力更强,在动画的显示上更加的流畅和逼真,此外,传统的光立方的布局和排线太过复杂,DIY程序特别单一,硬件和软件的稳定性都非常的差,运行时存在的问题太多,焊接费时费力存在静电危害,在这个设计中我们很好的处理了这些问题,避免了很多问题的出现,画面非常自然流畅,此次的制作和设计对智能化产品实现经济和商业的价值具有积极地作用。
本文主要模块如下:STC单片机控制模块:以STC12C5A60S2单片机为控制的核心,再加上辅助电路;时钟信号产生模块:用24MHZ的石英晶体作为整个系统的晶振发生器,给电路提供时钟信号;立体的显示模块:通过对单片机输入不同的代码使其通过控制LED的亮暗达到显示的作用;本文的结构安排如下:第二章:主要叙述了系统的工作原理和结构特点,对不同方案的选择和优化,对各个模块的详细介绍。
第三章:详细说明了各个硬件电路的排布和设计,并且说明了各个部分的作用和芯片引脚功能的分布和使用规则,此外还阐述了整个系统的设计思路和搭建的过程及过程中注意的问题。
第四章:介绍了软件调试的过程及遇到的问题,软件系统的整个架构和逻辑关系。
第五章:讲述了整个光立方在后期调试中的软硬件问题和解决这些问题的方法。
第六章:主要叙述了在光立方制作和设计过程中遇到什么困难和如何解决,并在此次设计中的心得体会和得到什么收获。
第二章总体设计系统的工作原理本系统设计主要以STC12C5A60S2单片机为核心,并以512个蓝色LED灯做为显示模块组成的光立方,主要有主控模块、驱动模块、显示模块构成,系统模块框图如图2-1:图2-1 系统结构框图2.2.1 单片机主控制模块方案一:采用传统的89C51单片机作为主控制芯片,应为89C51单片机内部只有8K的存储空间,立体的光立方实现的功能比较复杂,一个单片机要控制512个灯所以程序代码存储空间可能大于8K有可能会溢出,所以不可采用此方案。
方案二:采用与89C51有相同功能的STC12C5A60S2单片机,此单片机具有60K的存储空间,足够应付光立方复杂的图像显示程序代码存储,此单片机还有运行速度快,加密安全,抗干扰能力强,内部还有集成复位电路等特点,比较适合此设计的要求,所以可采用此方案。
2.2.2 驱动模块方案一:采用八个8050NPN三极管虽然可以起到反向的作用可是数量过多,从布线和三级管排布的美观上感觉有点混乱,而且出错率比较高,不够稳定,所以不采用此方案。
方案二:采用与八个三极管功能一样的集成芯片ULN2803,此芯片1-8端口输入,18-11端口输出,驱动能力为500MA\50V,大大满足了512个LED灯的电流,用一个芯片替代八个三极管,不仅体积变小了,功能还更强大了,所以采用此方案。
2.2.3 显示模块方案一:由于我们常用的LED灯不容易聚光,光发散比较厉害点亮时相互之间将会有影响,容易影响视角效果。
因为传统的LED灯的发光散比较厉害,而且灯彼此之间的距离比较近,互相之间干扰大,影响视觉效果,显示的图像不清晰,所以不可采用此方案。
方案二:采用白发蓝的LED雾灯,可以很好的收聚光线,使要显示的灯的光亮不会影响周围灯的亮度,暗灭很明显,工作电压电流为2MA-10MA如图2-2所示:图2-2 雾面乳型LED灯第三章系统硬件电路设计与实现硬件电路设计系统以STC12C5A60S2单片机为控制核心,其特点是能与8051指令和管脚兼容,而且片内还有很大的存储空间,满足程序代码存储,此单片机还有低功耗和串口烧写的功能,时钟发生源有很多种,比如阻容低速时钟源、带缓冲放大的晶体时钟源、普通晶体时钟源等,但由于考虑到电路的稳定性最终决定采用普通晶体时钟源为时钟发生器,其晶体用12MHZ的晶体,显示模块则用512个LED白发蓝的雾灯来实现。
单片机最小系统是指能够让单片机工作并发挥其作用的必要组成部分,就STC12C5A60S2单片机来说,其一般包括:单片机、时钟电路、复位电路、输入/ 输出设备等(见图3-1)。
单片机的最小系统如下图所示:图3-1单片机最小系统框图3.2.1时钟电路设计时钟电路时,我们首先必须先了解单片机时钟端口的使用和特点:XTAL1(AT89C51中19 脚):单片机内部振荡电路的输入端口。
XTAL2(AT89C51中18 脚):单片机内部振荡电路的输出端口。
XTAL1 与XTAL2其实就是一个反向的放大器,它可以与石英晶振连接作为一个时钟振荡电路。
内部方式的的时钟电路就是如图3-3所示,只要在XTAL1、XTAL2上接一个石英晶体并在两端接两个电容,这样就可以产生一个内部激荡电路,这里需要注意的是此实验用的晶振是12MHZ的,和晶振相连的电容一般选用33PF的陶瓷电容。
外部方式的时钟电路就是如图3-4所示,RXD直接接地,TXD再接外部振荡器。
外部振荡信号要求采用频率低于12MHZ的方波。
图3-3内部方式时钟电路图3-4外部方式时钟电路要检测晶振是不是正常工作可以通过示波器来检查,方法是在XTAL2 输出端接示波器并观察波形是不是正弦波,要是是正弦波则正常工作,反之则不正常工作。
也可以通过电压表来测量,侧量XTAL2 输出端与地的电压,要是2V则正常工作。
P0 口外接上拉电阻由于STC12C5A60S2单片机P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。
作为一般的I/O口时,当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够使后端导通。
图3-6 P0端口的1位结构在这里我们用的是ULN2803达林顿管来做系统的驱动,ULN2803采用AP=DIP18,AFW=SOL18封装方式。
8个NPN达林顿晶体管,1-8引脚:输入端;11-18引脚:输出端;9引脚:地端;10引脚:电源+,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/ NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载,广泛的使用范围:计算机,工业和消费应用。
所有设备功能由集电极输出和钳位二极管瞬态抑制。
该ULN2803是专为符合标准TTL,而制造ULN2804适合6至15V的高级别CMOS或PMOS上。
该电路为反向输出型,即输入低电平电压,输出端才能导通工作。
图二 ULN2803内部电路图(1/8单元)LED灯排序方式设计如图为光立方的主视图,分别是光立方的八个竖面,阳极的八个端口由单片机口扩展出来的八个74HC595控制,而阴极则每层相连,由,口控制。
图3-8 3D8光立方效果图3.4.2 LED灯接法方式设计由于光立方是由8*8*8的512个灯组成的必须每盏灯都是单独控制的,可单片机的I/O口没有那么多,那么我们就要通过扩展I/O口来实现控制,用什么来扩展呢这里我们用到的是结构简单的74hC593,用它我们就可以一个口扩展成八个口,这样单片机的八个口就可以扩展出8*8一共64个I/O口这样就可以控制LED灯的一个正极那么对于负极我们怎么控制呢,这里我们可以通过共连阴极的方法控制,就是把每层LED的阴极都连图3-9 LED结构设计图3.5.1将LED从点到线的搭建准备材料首先要找一块万用板如图3-11,这样就可以保持灯与灯之间的距离保持相等,在这里我们用的是白发蓝的LED灯如图3-12所示,长正短负,我们采用的是共阴的连接方法,所以要把灯的形状折成如图3-13的样子,必须要折成90度,把灯插在原来选好的孔内,两个灯之间的距离是23mm,然后把八个这样的灯焊接好如图3-14所示,注意:弯折阴极脚时弯曲处尽量靠近灯体不要留太长,这样焊接阳极时不容易造成短路。