3D光立方系统的设计与实现_第1页
3D光立方系统的设计与实现_第2页
3D光立方系统的设计与实现_第3页
3D光立方系统的设计与实现_第4页
3D光立方系统的设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-3D光立方系统的设计与实现【摘要】:设计以STC12C5A60S2为核心,制作一个8*8*8三维的LED显示体,通过程序来实现对发光二极管的亮灭控制,并用延时控制LED亮灭时间,最终使得整个立方体展现美轮美奂的造型和图案;光立方系统主要分三个模块:主控模块、驱动模块和显示模块。主控芯片选用STC12C5A60S2,列驱动采用芯片SN74HC573AN,层驱动采用芯片ULN2803APG。论文重点介绍了对硬件上对LED的驱动和控制、怎样实现由512个发光二极管组成的三维显示系统、程序上对硬件的控制和实际焊接制作等一些解决问题的相关专业知识及方法。【关键词】:STC12C5A60S2;3D光立方;SN74HC573AN;ULN2803APG-i-【Abstract】:ThisdesigntakeSTC12C5A60S2asthecore,makinga8*8*83DLEDdisplay,throughtheprocessoflightemittingdiodesandcontrol,timedelaycontrolLEDlightofftime,ultimatelymakesthewholecubeshowmagnificent;ornate;fascinatingshapeandpattern;opticalcubicsystemcanbedividedintothreemodules:themaincontrolmodule,drivermoduleanddisplaymodule.ThemaincontrolchipSTC12C5A60S2,thecolumndriverchipSN74HC573AN,driverusingULN2803APGchip.ThisthesisintroducesthehardwareontheLEDdriveandcontrol,howtorealizethethree-dimensionaldisplayconsistsof512light-emittingdiodescomposedsystem,programcontrolofthehardwareandtheactualweldingproduction,somesolutionstoproblemsrelatedtoprofessionalknowledgeandmethod.Keywords:STC12C5A60S2;3Dcube;SN74HC573AN;ULN2803-ii-目录第1章绪论.2第1.1节引言.2第1.2节选题背景与意义.2第1.3节研究现状.4第1.4节论文主要研究内容.4第2章设计软件简介.5第2.1节仿真软件Protues简介.5第2.2节编程软件Keil简介.6第3章主要元器件介绍.9第3.1节主控芯片STC12C5A60S2.9第3.2节锁存器SN74HC573AN.11第3.3节ULN2803APG.12第3.4节发光二极管.13第4章系统设计.15第4.1节主控电路.15第4.2节驱动模块.17第4.3节显示模块.18第4.4节程序设计.18第5章系统制作与调试.20第5.1节制作.20第5.2节调试.21第6章总结与展望.25致谢.27参考文献.28附录.29附录1:硬件实物图.29附录2:源程序.29第0页第1章绪论第1.1节引言当今现代信息化社会正在高速发展中,随着宽带网络的发展,数字化的多媒体内容将会在信息世界中占据主流,新型大屏幕显示设备将会取代传统电视机,并成为人们享受信息与多媒体内容的中心。为追求逼真、清晰、舒适的3D视频显示,于是我选择制作一个3D立体显示图案的LED光立方。2009年10月1日,天安门广场举行的国庆联欢晚会上,面世的光立方是由四千多棵光艺高科技“发光树”组成的,这是新中国成立60周年国庆晚会上最具创意的三大法宝之首,自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注。“光立方”在气势和整体感觉上,融合了北京奥运会开幕式“击缶而歌”和“活字印刷”的风格,而各种图案则与贯穿奥运会开幕式的“画卷”有异曲同工之妙。“光立方”可以根据爱国歌曲的不同内容,展示不同的造型和图案,具有丰富的视觉效果。眼下人们的生活水平正在不断地提高,对3D效果的欣赏已经成了人们的追求,美轮美奂的观赏让人陶醉不已,可以为人带来无比赏心悦目的美感。毫无疑问,3D技术在未来一定会被广泛地应用。窥一斑以见全豹,就一个3D打印技术,当它尚处在萌芽阶段,便已经在世界掀起了巨大波澜。在现在的时代,军工、模拟分析、水下作业、航空航天等一些高端领域经应用了3D技术。在不久的将来,3D电视一定会像液晶电视一样逐渐进入普通家庭。当然以目前的发展程度,无法将3D普及到人们的生活之中,然后我就萌发了对3D光立方进行设计制作的想法,凭借我现在的水平,也只能做在能力范围内的8*8*8三维的LED显示体第1.2节选题背景与意义在全球能源短缺、环保要求不断提高的背景下,已经结束的08年北京奥运会和10年上海世博会都不约而同地以绿色节能为主题,这给中国LED照明产业的发展带来了巨大的历史机遇。诸如美国,日本,韩国,欧盟,中国台湾的很多发达国家或地区都实施了大力发展LED产业计划。而我国科技部,在03年6月17日,也提出并开始实施了“国家半导体照明工程”计划,这项计划将会推动我国LED产业第1页图1-1LED与其他光源比较经过三十多年的发展,国内的LED产业虽然能够自主地生产各种芯片、器件和外延片,但是我国还缺少自主研发生产的LED芯片和外延片,而且所生产的产品大部分是中低档,产业化规模有待提高,多数功率LED和高性能LED产品则是靠从其他国家进口而来。随着经济全球化,进入国内的LED产业企业日益增加,导致了我国光源市场的竞争越来越激烈。图1-2LED的照明市场对此,国家大力推广,产业各层面的技术一日千里,加上发光二极管拥有环保节能等特点,能够满足国内社会经济发展需求,因而发展机遇也伴随着巨大的挑战。政府致力于把握住光源产业的种种发展机遇,积极引导国内企业,加强技术研发,经过全球资源的整合,开始形成具有国际竞争力和拥有自主知识产权的新兴产业。综上所述,在如此一个充满挑战和机遇的环境下,中国的LED产业必将如日中生。3D光立方拥有极高的观赏性,并且信息的传输效率更高,已经可以依据不同的喜好,来设计出不同的图案,进而展现各种绚丽缤纷的立体效果,人们在接受数据与信息同时,会感到更加地印象深刻,因此说它变幻无穷也不为过。3D技术和LED发展一日千里,在生活中,随处可以见到这些科技的运用,譬如立体第2页LED图像,三维LED显示屏以及LED立体摄影等。第1.3节研究现状LED,即发光二极管,是发展于60年代末的一种半导体显示器件;七十年代,随着半导体材料合成技术和单晶制造技术等一系列相关技术的研究与进展,使得LED在发光亮度、颜色、效率和寿命等各方面性能方面都具有极大提升,然后便快速进入了批量生产和实用化,并被投入到光源市场中。一直到80年代之后,发光二极管的技术相对走向成熟,已经开始形成了平面显示产品,也就是LED显示屏。到了今天,LED正逐渐普及到人类的实际生活之中;而3DLED技术仍处在迅速发展的过程中,虽达不到广泛应用的程度,但是从3D影院、高级会议场所、某些“先进”的舞台和各种娱乐场所里,可见一斑。现在,通过一定的控制方式,LED显示屏可以用于自由显示文字、图形、图像、动画、视频、录像等各种信息,随着计算机技术和半导体技术的飞速发展,把计算机控制技术和半导体技术结合起来,使LED显示系统成为集计算机控制技术、视频技术、光电子技术、微电子技术、通信技术、数字处理技术为一体的显示设备。它己成为既可以播放来自于计算机的动态视频信息,也可以播放来自存储设备的静态图像的综合的多功能大型显示设备。第1.4节论文主要研究内容该本论文涉及了LED显示控制技术及其应用技术等方面的内容,主要包含如下:首先,对LED显示控制的理论前提、系统构成、应用领域及其研究现状进行了归纳总结。然后,从实现角度,就如何制作它展开讨论和研究。其次,完成原理的设计后,利用Protues进行了仿真,实现了理论上的可能,另外对编程语言和仿真做了适当介绍。硬件方面,对于单片机控制LED点阵的显示,经过系统分析,确定各模块之间是如何连接,以及怎样组合电路更合理更简便;软件方面,编写硬件电路的相对应程序,利用仿真软件对程序进行测试修改;实物制作,焊接组装后,测试其功能能否正常运行,多次实验,根据结果对症下药,修正并调试至成功。最后,查阅一定资料了解相关工艺,基于理论制作实物,以C语言编程,用程序控制它,不断修正,直到臻至完善。第3页第2章设计软件简介第2.1节仿真软件Protues简介Protues是由英国Labcenter公司自主研发的嵌入式系统仿真软件,组合了高级原理图设计工具ISIS、PCB设计以及自动布线、混合模式SPICE仿真,从而形成了一个完整的电子设计系统。它运行于Windows操作系统上,可进行仿真和分析各种模拟和数字电路,同时它对PC机的硬件配置要求也不高。该软件主要有如下特点:(1)实现了单片机仿真与SPICE(SimulationProgramwithIntigratedCircuitEmphasis)电路仿真相结合,具有模拟电路仿真、数字电路仿真、单片机及其外围电路仿真、I2C调试器、SPI调试器、RS232动态仿真、键盘和LCD系统仿真的功能;(2)提供了大量的元器件,其中涉及电阻、电容、二极管、三极管、变压器、MOS管、继电器、各种激励源、各种门电路、各种放大器、各种微控制器和各种终端等等;同时,它还提供了许多虚拟测试仪器,比如电压表、电流表、逻辑分析仪、示波器、信号发生器、定时计数器等;(3)支持主流单片机系统的仿真,如AVR系列、68000系列、8051系列、PIC系列等;(4)提供软硬件调试功能,同时支持第三方的软件编译和调试环境,如KeilCVision3等软件;(5)具有强大的原理图编辑及原理图后处理功能;(6)ProtuesVSM组合了混合模式的SPICE电路仿真、动态器件和微控制器模型,实现了完整的基于微控制器设计的协同仿真,真正使其在物理原型出来之前对这类设计的开发和测试成为可能2;2.1.1.功能特点(1)原理布图(2)SPICE电路的仿真(3)PCB的自动和人工布线(4)互动电路仿真:使用者可实时有效利用诸如键盘、RS232终端、LED/LCD等其他外设模型交互仿真。(5)仿真处理器与它的外围电路:能仿真51系列、PIC、AVR等其他主流单片机。此外,它可以基于原理图的虚拟原型上,直接编程,配合显示和输出,可以看到运行之后的输入输出效果。它配合虚拟示波器、逻辑分析仪等设备,Proteus创造了很好的电子设计开发第4页环境。2.1.2.功能模块(1)功能强大并且易容易使用的ISIS原理布图工具(2)Prospice混合模型的Spice仿真(3)ARESPCB设计2.1.3.提供的资源(1)可以提供的仿真元器件资源:交流和直流、仿真数字和模拟等几千种元器件,具有三十几个元件库;(2)可以提供的仿真仪表资源:虚拟终端、逻辑分析仪、示波器、SPI调试器、I2C调试器、模式发生器、信号发生器、交直流电流表、交直流电压表。在理论上,同一种仪器是能在一个电路中被随意调用;(3)提供了一个图形显示的功能,能够将线路上的变化信号,通过图形的形式实时显示出来,它的作用和示波器有点类似,但其功能多于示波器。而且虚拟仪器仪表的参数指标都比较理想,像极低的输出阻抗和极高的输入阻抗。测量仪器对于结果影响就更小了;(4)提供的调试手段:它提供足够测试信号,用来进行测试电路,其中信号以数字信号和模拟信号为主2。2.1.4.软件仿真(1)可以实现主流单片机系统的仿真。其中包括PIC12、PIC16、PIC18、51、Z80、AVR、68000、HC11等系列。(2)具有软件调试的功能。(3)包含大量外围接口器件和LCD,LED,ROM,RAM,键盘,AD/DA,仿真,马达,部分IIC器件,部分SPI器件。当对学生进行培训时,就有多种方案能用来选择了,很适合用它训练学生。(4)有足够虚拟仪器,仿真过程中,使用虚拟仪器,能测量到外围电路特性,这样就更能提高学生对调试硬件的能力。(5)原理图的绘制。总之,Protues是一款集单片机和Spice分析于一体的仿真软件,功能极其强大。其电路设计则是在ProtuesISIS的集成环境里完成的。第2.2节编程软件Keil简介由美国KeilSoftware公司出品,与汇编相比,C语言在结构性、可读性、可维护性上、第5页功能性上,优势明显。该软件提供丰富的库函数与功能强大的集成开发调试工具,全Windows界面。此外,其生成的目标代码效率非常高,多数语句生成的汇编代码紧凑易理解,在开发大型软件时更能体现其优势。051开发工具8051微控制器的软件开发是在KeilC51标准C编译器提供的C语言环境中完成的,具有汇编代码快速高效等优点。因此它整个被加到uVision2集成开发环境里了,而uVision2集成开发环境则由汇编器,编译器,调试器,项目管理器,实时操作系统组成,同时C51V7这个版本也是眼下最灵活高效的8051开发平台。它除了支持全部的8051衍生产品,还能够支持全部的兼容仿真器,也包括其它诸如第三方的开发工具。所以对8051开发用户来说,版本C51V7将是最好的选择。2.2.2.uVision2集成开发环境由编程说明、源文件以及开发工具选项三部分构成了工程文件,“组”则是由产生目标程序的源文件组成。组,目标或单个文件能被开发工具选项对应。uVision2集成开发环境其中包含了器件数据库,它能自动地设置编译器、汇编器、连接定位器和调试器选项,使得用户利用特定微控制器的要求得到了满足。这个数据库中包含了:加速器或扩展数据指针的特性,片上存储器及其外围设备的信息。片外存储器能通过它生成必要的连接选项,确定其起始地址与规模大小。2.2.3.编辑器和调试器一、源代码编辑器uVision2编辑器中所包含的特性,用户们对此都十分熟悉。我们可以在这个编辑器内进行程序的调试。此外,源代码编辑器还提供了一种很人性化的调试环境,令使用者检查与修改程序速度大大提高了。一、断点在编辑时,用户设置程序断点是uVision2允许的。当V2调试器被启用时,断点也就被激活了。可以将断点设置成条件表达式,一旦触发了断点,就会开始执行调试功能或者调试器命令。可以从属性框中迅速浏览源程序行的位置与断点的设置情况。而且通过代码覆盖率信息,我们就能区分出程序中未执行与已执行的部分。二、调试函数语言:用户可在uVision2中编写或者调试程序。(1)用户函数:合并重复的动作,扩展指令的范围(2)内部函数:像rand,memset,printf和具有其它功能的函数(3)信号函数:模拟并产生CPU的脉冲信号与模拟信号第6页三、存储器与变量:在编辑器上,我们可以选中某个变量,就能看到它的取值信息了。为双层窗口的显示,能够实现下面的调整:(1)在堆栈调用页面上调用记录“树”(2)四个不同格式的存储区(3)用户当前函数局部变量(4)两个不同窗口页面上的自定义变量2.2.4.C51编译器在符合ANSI标准同时,KeilC51编译器为8051系列实现特别的设计。用户经过语言上的扩展后,就可以使用应用中所有的资源。一、存储器和特殊功能寄存器的存取可操作8051系列所有的资源。两个关键字sfr与sbit可提供SFR的存取。用户可以将变量转到任意地址的空间。通过关键字at,可以将变量存到固定的存储器中。变量的存储类型是由存储模式所决定的。连接定位器所能够支持的代码区上限为三十二个,从而在原有64KROM的8015芯片基础上,用户就可以程序扩展了。此外,我们在V2的编译器与诸多高性能仿真器上,也能调试应用程序。二、中断功能允许用户利用C语言编写中断服务程序,由于出代码、快速进和寄存器区的转换功能,令中断功能的效率变得更高。用户使用关键字以定义再入功能。,中断,非中断或者多任务的代码都一定要具备可再入功能。三、灵活的指针通用指针是通过三个字节存储目标地址和存储器类型,它能在8051单片机的任何一个存储区内进行存取任何变量。在特殊指针声明同时,它就已经指定好了存储器的类型,进而指向了某特定的存储区域。因为地址的存储只需1一两个字节,所以可以快速存取指针。运行Keil软件要求奔腾或者以上的CPU,16MB或者20M以上空闲空间的硬盘,Win98、Win2000、NT、WinXP等操作系统。若只是使用汇编语言进行编程,它便易的集成环境和强大的软件仿真调试工具也能让用户受益匪浅10。第7页第3章主要元器件介绍本设计是基于单片机STC12C5A60S2的控制下,利用8个SN74HC573AN的锁存功能控制每个面的64个LED,通过ULN2803控制光立方的8个面。控制每层64个LED能使其自由变换,在通过每层依次点亮即可,由于人眼的视觉暂留,这样就看到一个完整的个体了。它形成的图案文字就可以自由变换了,从其运动特点的角度来看,就有多种显示模式:旋转、闪烁、缩放平移等等9。第3.1节主控芯片STC12C5A60S2STC12C5A60S2芯片是新一代单片机,具有高速、低功耗、超强抗干扰的特点,它的指令代码也完全兼容传统51单片机,速度却较传统51单片机快812倍。其内部集成了2路PWM、8路高速10位A/D转换(250K/S)、MAX810专用复位电路。1.增强型CPU,单时钟/机器周期,1T,其指令代码完全能够兼容传统8051CPU;2.工作电压:STC12C5A60S2系列的工作电压:5.5V3.3V(5V单片机)STC12LE5A60S2系列的工作电压:3.6V2.2V(3V单片机);3.工作频率范围:035MHz,相当于寻常8051的0420MHz;4.用户程序空间:8K/16K/20K/32K/40K/48K/52K/60K/62K字节;5.片上集成1280字节的RAM;6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(寻常8051传统I/O口),可设置为四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力艘能达到20mA,上限为55Ma;7.ISP(在系统可编程)/IAP(在应用可编程),不需要专用的编程器,也不一定要专用仿真器,通过串口(P3.0/P3.1)可以直接快速下载程序;8.具有EEPROM功能(AD/STC12C5A62S2/PWM没有内部EEPROM);9.看门狗;10.内部集成的MAX810专用复位电路;11.外部掉电检测电路:P4.6口里包含了一个低压门槛比较器,5V单片机是1.32V,误差不超过5%,而3.3V单片机是1.30V,误差控制在3%之内;12.时钟源:内部R/C振荡器(温漂为不超过+/-5%到+/-10%),外部高精度晶体/时钟,当下载用户程序时,可选择是使用内部外部晶体/时钟亦或R/C振荡器,处于常温中,内部R/C振荡器频率:5.0V单片机:11MHz15.5MHz,3.3V单片机:8MHz12MHz;13.两个时钟输出口,可由T0的溢出在P3.4/T0输出时钟或者可由T1的溢出在P3.5/T1第8页输出时钟;14.共四个16位定时器,两个与传统51CPU兼容的定时器/计数器,16位定时器T0和T1,却拥有独立波特率发生器,作为串行通讯的波特率发生器再加上2路PCA模块,就能够实现2个16位定时器了;15.PWM(2路)/PCA(2路,可编程计数器阵列),能用其作2路D/A来使用,也能够使其实现2个定时器,还能使用它实现2个外部中断;16.7路外部中断I/O口,传统下降沿低电平或者中断触发中断,更添加支持上升沿中断的PCA模块,并且也能通过外部中断唤醒PowerDown模式,RxD/P3.0,CCP0/P1.3,T0/P3.4,T1/P3.5,INT0/P3.2,INT1/P3.3;17.因为STC12系列是高速的8051单片机,通用全双工异步串行口(UART),能够利用定时器或PCA软件实现多串口;18.10位精度ADC,A/D转换,共八路,转换速度能达到250K/S;19.工作温度范围:-40+85(工业级)/075(商业级);20.STC12系列具有双串口,只有是S2标志后缀的单片机才有双串口,TxD2/P1.3(通过寄存器设置到P4.3),RxD2/P1.2(通过寄存器设置到P4.2);图3-1STC12C5A60S2管脚图引脚功能简单介绍如下:VCC:供电电压;GND:接地;P0口:8位漏级开路双向I/O口,每个管脚可以吸收8TTL门的电流。当P1口的管脚写“1”时,就定义它为高阻输入。P0可以用在外部的程序数据存储器,可被定义为数据/地址的第8位;P1口:内部提供上拉电阻的八位双向I/O口,P1口缓冲器可以接收输出4TTL门的电流。当P1口管脚写入“1”时,电位就被内部上拉为高电平,能被用为输入,当P1口被外第9页部下拉为低电平,则输出电流;P2口:内部上拉电阻的八位双向I/O口,P2口缓冲器可以接收输出4个TTL门的电流,当被写“1”时,其管脚电位被内部上拉电阻拉高,并且被作为输入。而当作为输入时,其管脚电位被外部拉低,会输出电流。当它被用在六位地址外部数据存储器或者外部程序存储器进行存取时,P2口输出地址的高八位。此外,当读写外部八位地址数据存储器时,P2口将会输出其特殊功能寄存器里的数据;P3口:八个带内部上拉电阻的双向I/O口,可接收输出4个TTL门的电流。写入“1”后,它们被内部上拉为高电平,并用作输入。当它作为输入时,由于外部下拉为低电平,P3口则作为输出电流(ILL);RST:复位输入。振荡器复位器件时,需要维持RST脚两个机器周期的高电平时间;ALE/PROG:访问外部存储器的时候,利用地址锁存允许的输出电平来锁存地址的低位字节。正常情况下,ALE端会以不变的频率周期,输出正脉冲信号,该频率是振荡器频率的六分之一。所以它可以用来作为外部输出的脉冲或者用在定时目的上。当它作为外部数据存储器的时候,会跳过一个ALE脉冲。假如想要禁止ALE的输出,可以在SFR8EH地址置0。在这个时候,只有在执行MOVC或者MOVX指令的时候,ALE才会起作用;PSEN:外部程序存储器的选通信号。当外部程序存储器取址时,每一机器周期,PSEN两次有效。而当访问内部部数据存储器之时,则不会出现这两次有效的PSEN信号;EA/VPP:在EA保持低电平的时候,将访问外部ROM;注意加密方式为1的时候,EA会内部锁定为RESET;反之,EA端保持高电平时候,访问内部ROM;XTAL1:反向振荡放大器的输入和内部时钟工作电路输入;XTAL2:来自反向振荡器的输出5;第3.2节锁存器SN74HC573ANSN74HC573AN是八路透明D型锁存器,它具有三态输出,被设计用于驱动高电容性或相对低阻抗的负载。尤其适合用来实现缓冲寄存器、I/O口、双向总线驱动器、以及工作寄存器。当锁存使能(LE)端为高时,输出端Q将跟随数据输入端(D)。当LE为低时,输出端进入锁存状态以保持预设好的数据。其缓冲输出使能端(OE)可用来设置八个输出口工作在普通逻辑状态(高或低逻辑电平)或者高阻态。当处于高阻态时,输出端既不能读取也不能驱动总线。高阻态和增强驱动使得它具备总线驱动能力而不需要接口元件或上拉元件。SN74HC573AN特性:(1)宽工作电压范围:2.06.0V第10页(2)高强度电流三态输出直接驱动总线,最多支持高达15个LSTTL负载(3)低功耗,最大ICC80A(4)典型tpd=21ns(5)5V下驱动电流为6mA(6)低输入电流,最大1A(7)总线结构引脚布局图3-2SN74HC573AN封装为了确保在开机或断电时处于高阻抗状态,OE应当通过上拉电阻连接到VCC,电阻的最小值确定的驱动器的电流吸收能力4。OE不影响内部运作。在高阻抗状态下,原数据被保留或者新数据输入。第3.3节ULN2803APGULN2803APG属于八路高电压,大电流NPN达林顿连接晶体管阵系列,每个达林顿集电极电流额定值为500毫安。它特别适用于低逻辑电平数字电路(诸如TTL,CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其它类似负载中,包括继电器驱动器,灯驱动器,显示驱动程序(LED和气体放电),总线控制,缓冲器和逻辑3。它具有集电极开路输出和续流箱位二极管,用于抑制跃变。ULN2803的设计与标准TTL系列兼容,而ULN2804最适于6至15伏高电平CMOS或PMOS。ULN2803APG特性:(1)高耐压,大电流(2)输出击穿电压:50(V)(3)输出电流:500(mA)(4)输入电阻:2.7k()(5)推荐输入电压:5(V)(6)温度范围:-40+85第11页图3-2ULN2803APG引脚功能:1-8引脚:输入端11-18引脚:输出端9引脚:地端10引脚:电源第3.4节发光二极管所谓LED,就是发光二极管(lightemittingdiode),顾名思义,它是能够把电能转化为光能的一种电子器件,具有二极管的特性,封装于环氧树脂之中,通过针脚作为正负电极并起到支撑作用。电极、PN结芯片以及光学系统构成了发光二极管的主要结构。5在LED得两端加上正向电压,电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线。调节电流,便可以调节光的强度。可以通过改变电流可以变色,这样可以通过调整材料的能带结构和带隙,便可以多色发光。图3-4LED构造LED的优势:(1)工作寿命长:LED作为一种导体固体发光器件,较之其他发光器具有更长的工作寿命,其亮度半衰期通常可达到十万小时。(2)耗电低:LED是一种低压工作器件,耗电小。相反,随着今后工艺和材料的发展,将具有更高的发光效率。第12页(3)响应时间快:LED一般可在几十纳秒内响应,其他光源望尘莫及。(4)体积小,重量轻、耐抗击:这是半导体固体器件的固有特点。彩LED可制作各类清晰精致的显示器件。(5)易于调光、调色、可控性大:可通过电流变化控制亮度,也可通过不同波长LED的配置实现色彩的变化与调节。因此用LED组成的光源或显示屏,易于通过电子控制来达到各种应用的需要,兼容性也好。(6)用LED制作的光源不存在诸如水银、铅等环境污染物,不会污染环境。因此人们将LED光源称为“绿色”光源是受之无愧的7。普通发光二极管的检测:(1)万用表检测,使用有10k挡的指针式万用表能够大致地判断出发光二极管是好是坏。一般情况下,LED正向电阻阻值在几十至200k之内,反向电阻的值则无穷大。假如正向电阻值为是0或者无穷大,而反向电阻值非常小或者是0,说明它容易被损坏。但是这个方法,做不到直观地观察LED的实际发光情况,这是由于10k挡无法给LED提供足够的正向电流。假如有两个指针万用表,那么就能够较好地检测出LED的发光情况了。首先用一根导线把一块表的“+”接线柱和另一块表的“-”接线柱接起来。剩下的“-”笔接LED的正极,剩下的“+”笔接LED的负极。两个表都处在10k挡上。一般的情形,可以看到发光二极管正常发光。如果亮度较暗,甚至没有亮度,就把两个表都打到1m挡,如果仍热亮度低,或者没有亮度,那么就表明了这个LED的性能不良或者已经损坏了。(2)外接电源测量,准备3V稳压源或者两节串联的干电池和万用表就能够较为准确地测量LED的性能了。按照下一定方法连接起来就可以了,若测得的值在1.43V内,同时亮度正常,就表面性能合格。但是结果是VF=0或者VF3V,并且没有亮度,那么这个LED损坏了。第13页第4章系统设计整个设计主要分为三个部分,分别是主控模块、驱动模块、显示模块。单片机主控模块电源电路时钟电路LED点阵显示模块层驱动列驱动图4-1系统框图第4.1节主控电路主控电路是就是单片机的最小系统,包括时钟电路和复位电路。STC12C5A60S2芯片内部有一个高增益反相放大器,引脚XTAL1与XTAL2分别是这个放大器的输入端与输出端,假如引脚XTAL1与XTAL2两端接接上晶体振荡器或者陶瓷振荡器就可以构成一个稳定的自激振荡电路,而这个振荡电路的输出可以直接送到内部时序电路。产生单片机STC12C5A60S2的时钟有两种方式,也就是内部时钟方式与外部时钟方式。7STC12C5A60S2的RST是复位引脚,一旦系统上电之后,时钟电路就启动工作,保证RST引脚不会出现超过两机器周期的高电平,就能够让单片机进行复位操作。正常情况下,该单片机在上电时需要进行一次复位操作,这样它内部的某些部件就可以恢复到初始状态了,因此复位是一项非常重要的操作。由于一般器件自己没有自动上电复位的能力,所以有必要依靠外部的复位电路了,它会发送复位信号以便执行复位操作。单片机最小系统如图4-2所示。第14页图4-2单片机最小系统4.1.1.时钟电路时钟电路负责产生单片机工作时所必须的时钟控制信号,单片机内部电路是在时钟信号控制下,严格执行指令。当执行指令的时候,首先,CPU从程序存储器中取出需要的指令操作码,接着开始进行译码,基于时序电路产生的一系列控制信号,完成指令规定的操作。单片机以时钟信号为基准,运行各功能部件,机械地工作,所以时钟频率会直接影响单片的处理速度,而且时钟电路的质量也会直接影响到单片机系统的稳定性。有两种方式常用的时钟设计电路,其一为内部时钟方式,其二是外部时钟方式,此次所采用的是后者,如图4-3所示。图4-3内部时钟电路4.1.2.复位电路复位电路具有上电复位与手动复位的功能。以51单片机为例,复位脉冲的高电平宽度必须大于2个机器周期,如果系统选择使用6MHz的晶振,那么一个机器周期就是2us,所以复位脉冲宽度最小应为4us。然而在实际应用系统中,需要考虑电源的参数漂移,稳定时间,晶振稳定时间和复位的可靠性等因素,因此必须具备足够的余量。第15页当单片机在可靠的复位后,才会从0000H地址,开始有序地指令。除此之外,复位电路很容易受到外部噪声干扰,所以,复位电路应该具有必须保证系统可靠的进行复位和必须具有一定的抗干扰的能力这两个主要功能。在这次设计中,选用的是按键复位,如图4-4所示。图4-4复位电路第4.2节驱动模块主控芯片通过控制ULN2803APG和SN74HC573AN来驱动控制光立方不同层面不同列不同灯的亮灭。其中R1R16为限流电阻。4.2.1.层驱动设计ULN2803APG的18脚接主控芯片的P1口(18脚),数据由主控芯片P2口输入经过ULN2803APG从1118脚输出,实现通过ULN2803APG来驱动每一层面。图4-5ULN2803驱动4.2.2.列驱动设计每个SN74HC573AN的29脚(数据输入)都连接在一起,接到主控芯片的P0口(3239脚),数据从主控芯片P0口输送到SN74HC573AN573,它的1脚是3态输出使能输入(低电平)一般都与地相接,它的11脚(锁存使能输入)都连接在一起连接到主控芯片的P2口(2128脚)作为锁存控制。第16页当它的11脚为高电平和29脚为高电平时,其1219脚(3态锁存输出)为高电平,驱动一竖面的灯亮,当11脚为高低平、29脚为低电平时,SN74HC573AN573的1219脚则就为低电平,从而灯灭,当11脚为低电平时,29脚不管高低电平,1219脚的输出不变。图4-6SN74HC573驱动第4.3节显示模块基于分析,加上由于成本和控制的难易程度,决定选取单色蓝光LED作为本次设计显示色彩,亮度高,显示效果很好。LED立体点阵具有3D效果的,LED立体点阵系统可以显示文字,数字,图形等生动逼真,立体感强。用单片机驱动LED灯有很多方法,从它显示的方式来看,有静态显示和动态显示之分,依照译码方式,可以分为硬件译码和软件译码。该设计采用动态扫描方式,驱动LED立体点阵显示,采用串入并出的方法实现数据传输和采用并行锁存的方法实现数据显示。图4-7LED点阵第4.4节程序设计程序设计的思路大体是这样的:第17页(1)初始化部分,主程序启动后,就会对系统环境初始化,其中包含设置串口、定时器、端口与中断以及显示效果。(2)显示部分,将立方体看成8位数码管,每一个面也就是一个数码管;每一个面的显示原理其实和8*8点阵是相同的,要确保这段程序的正确性,能够直接调用;查表方式是从0开始递增,每一次加1,每个画面共查表64次,查表的上限是65536/64,其实,实际情况是比65536小的,因为控制程序的代码同样占用rom的空间,这样就可能导致画面次数减少,因此,如果要在有限的空间内显示更多的画面,有必要尽量将程序编得简短,此外,选择较大容量的单片机也是一个途径,因为它的查表的上限自然就增加了。(3)中断部分,画面的切换应该使用中断方式,这样就能够准确地调节动画效果的切换时间了。可以将时间以一个变量来表示,如此每次只需要修改一个变量了,从而就能够设置动画的速度。当发送一次中断,查表的变量就加64,接着回到显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。(4)循环部分,程序循环,循环的条件是i变量不满足动画显示的上限值。比如你做了八个画面,那么i的的值不满足8*64时,就继续显示,满足就清零从新开始;显示循环,这个比较重要,主题的显示程序,应该是一个死循环,一直在显示一个画面,只有中断产生的时候,改变了查表的变量,才切换一次动画,每个画面都显示后,注意修正变量,能使其显示同一个画面,不管是查表的变量还是Z轴,Y轴的控制变量,都要进行初始化,直到中断的产生才改变查表的变量数值第18页第5章系统制作与调试第5.1节制作5.1.1.焊接LED光立方首先,我找到一块硬纸板,在上面钻了64个小长方形孔,就是LED的灯帽形状,每两个孔之间距离为2.94cm,控制好距离方便焊接,然后以电烙铁为工具,焊锡丝为料,将每行LED的正极(也就是长脚)一个一个串联起来,接着是每列,方法同上。一层焊完,第二次继之,直至八层大功告成。图5-1发光二极管图5-2一层LED5.1.2.电路连接焊接LED光立方时,遗憾的发现:我的焊接水平有待提高,于是在电路上,我在征求指导老师后,他建议我使用面包板。然后,我按照电路图,开始了辛苦耕耘,连接完成之后,但最终实现不了其功用了,如下图所见5-3。后来购买一个半成品电路板,如图5-31。第19页图5-3电路连接图5-31电路连接第5.2节调试5.2.1.灯的检测主要是检查全部的灯能否正常亮:(1)万用表检测,在焊接好每层LED后,我就使用万用表欧姆档检测每个发光二极管,观察灯的发光情况,有灯不亮和亮度极低,仔细查看,发现了一些问题,有虚焊漏焊,更有短路,重新焊接,并检测,最后512个灯都是能正常工作了;(2)软件检测,将程序烧写进单片机STC12C5A60S2之后,这时的程序是让所有灯同时亮的,发现其中一列并没有点亮,首先检查灯的线路是否虚焊,断路,果真有一列的是断路了,将它焊接好后,故障顺利排除,重复上述步骤,灯全亮。5.2.2.电路测试使用面包板,在连接元器件时较为容易,而且方便更换线路与元件,还可以多次使用它。但是,经过多次使用,面包板离得弹簧片会弹性变差,变松,就可能导致接触不良。测试仪器有:万用表、示波器、稳压电源等。(1)不加电源的检查对照电路图,仔细检查线路的连线有无错误,比如多接、少接、错接等;再使用万用表,打到电阻档检查各处是否导通,就可以知道元器件引脚之间是否短路,电源端对地有没有否短路,二极管、三极管、电路中电源的正负极与电解电容的极性有没有问题,连接处是否存第20页在接触不良。如果电路通过上面所述的检查,没有错误,就可以进入静态检测。STC12C5A60S2是本设计的核心控制器,因此,要完成程序的运行与显示的控制就必须确保该芯片能够正常工作才可以。其检验方法就是用万用表测量单片机时钟引脚(18和19引脚)的对地电压,就拿正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。可以采用模拟复位的方法来判断是否为复位电路故障而不能正常工作的单片机,单片机正常工作时第9引脚的对地电压为零,可以用导线短时间和5V连接一下,模拟一下上电复位,如果单片机能正常工作了,则说明这个复位电路有问题。(2)静态检测先给电路上电,再利用万用表的电压档来观察显示的电源电压,看是否出现异常现象,比如手摸元器件发烫、电路出现冒烟、产生了异常气味等。一旦有异常情况发生,快速断掉电源,检查出问题,并解决问题;倘若没有什么异常情况,则分别测量各关键点的直流电压,还有放大电路的输入输出端以及直流电压等有无异常,静态工作点、数字电路各输入端与输出端的高低电平值以及逻辑关系。若有不对,就需要调整电路元器件的参数或者更换元器件等等,保证电路最后能处在所需要的工作状态下,而放大电路的检测还得使用示波器来检测其有没有自激发生。(3)动态检测动态测试是基于静态测试之上实施的,具体的操作是测试给电路的输入端加上所需的信号源,观测各个关点的参数、波形以及性能指标能不能达到设计要求。如果有问题出现了,就得想方设法寻找故障的原因,待症结去除后,则继续检测整个电路,一直到完全合格了。5.2.3.软件调试本设计功的程序也较为繁琐,因此在编写程序与测试时,发现了相对较多的问题。最后通过各模块子程序的多次修改,终于排除了软件上的问题。比如烧入程序之后,LED显示屏灯出现闪动,并且亮度不均匀,有明有暗。对此,我首先是对修改延时,还是将这个问题解决了。再则,因为本次设计采用动态扫描方式以显示的数字,动态扫描极快,靠人眼是没办法看出的,但是在测用显示程序时,倘若在返回的时候不屏蔽掉最后的附值,就可能出现很亮或者残影的现象,于是我就在显示的后面加上了屏蔽灭灯指令。5.2.4.Protues仿真首先,用Protues设计好电路原理图,再用Keil编译程序,生成hex文件,在将它加入原理图的STC12C5A60S2芯片中,仿真,出现动态过程,截图如下所示。第21页图5-4烧录程序图5-5仿真结果5.2.5.测试结论经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了动手设计能力以及对电路的分析能力。而且也提高了软件的编程水平,得以巩固所学的知识。在测试过程中产生的问题,经过修正调试,最后都实现了设计要求的各项功能,我也明白了许多,要细心对待任何事情,一个细微的错误,就可能导致满盘皆输,比如拥有了良好的编程习惯,会令程序更加简洁,也便于寻找到错误,效率提高了。最后,就是将512个灯组成的立方体,加在电路上了,所得实物便是3D光立方了,当程序载入单片机中,第22页通电,可以看到动态的图案显示效果了,在黑夜中,尤其明显,实物如下5-6。图5-6实物在设计过程中一些元器件的电路连接方法让我很费劲,原因是由于在这些元器件不是太常用而且在学习理论知识时没做详细的理解,在网站上找不到具体的用法,从而在实际运用中遇到很大麻烦。正是这种原因使我意识到:要想更完美的进行一次设计,与专业知识基础扎实的同学交流沟通是很有必要的。在老师和同学的帮助下,经过我的努力终于完成本次毕业设计。第23页第6章总结与展望毕业设计是学生即将完成学业的最后一个重要环节,它既是对学校所学知识的全面总结与综合应用,又为今后走向社会的实际操作应用铸就了一个良好的开端。在此对这次的毕业设计作一个系统的总结,叙述自己内心的想法与心得。此次毕业设计,我所选择的课题:基于单片机的8*8*8三维光立方的设计,设计的预期要求:利用单片机控制由LED组成的光立方,并用延时控制LED亮灭时间,最终使得整个立方体展现美轮美奂绚丽多彩造型和图案。光阴似箭,日月如梭,从初期设计到最后成果的实现,收获良多,理论上,我受益匪浅;实践中,锻炼了自己,培养了一些技能和动手能力,将理论与实际应用相结合的水平有了很大提高。首先,我初步介绍了整个系统的工作原理与实现方法,给出能体现设计思路的总体系统工作框图。然后,我简单介绍了此次设计中用到的设计软件和一些模块的芯片。从而,理论上给出了总体系统的设计想法和方案。接着,我到图书馆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论