1、光立方论文说明书大学学位论文学校代码:10129系 别:计算机技术与信息管理系年 份:2015毕业设计说明书 题 目:单片机8*8*8光立方小组成员:孟斌、静厚霖、宋金宝班 级:11计教甲班指导教师:郭彬年 月摘 要随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。而现代工具务求简捷化、便携化,因此,光立方显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。单片机8*8*8光立方,在60周年国庆大典上,在天安门前,被称为三大国宝之一的节目就是由我们小组所选的设计光立方组合而成;
2、并且光立方是由LED灯组成,近看几年的发展,LED灯的用途越加的广泛起来,小组看到LED灯的发展前景,经过小组讨论,依据上述两点,最终决定选择光立方作为毕业设计。光立方是基于人的视觉暂留原理的,通过分时刷新8*8*8构成的512个LED灯来显示输出文字或图案等信息的立体显示装置。输出信号频率的控制通过单片机连接74hc573芯片来实现,由于人的视觉暂留原理,会由8个LED灯为列到8*8个LED灯为面再到8*8*8个LED灯为立方的过程产生一个立体的视觉效果,在立体视觉效果内的LED灯通过不同频率的刷新,会在立方区域内产生三维立体的图像,从而达到在该立体视觉上传达信息的作用。 本文以单片机、74
3、hc573芯片、LED灯的实际应用为背景,介绍了以单片机、74hc573芯片、LED灯为核心系统的光立方立体显示设计的基本结构和基本原理。【关键词】 单片机、74hc573芯片、LED灯目 录引 言 1一系统设计方案 21.设计目的 22.设计要求 23.设计思路 2二系统硬件设计 41.基本原理图 42、各部分功能 4(1)外部驱动电路模块 4(2)LED显示模块 53、系统硬件 5(1)单片机控制 5(2)显示功能 5三系统软件设计 71.软件设计思路 72.主程序流程图 7四系统的硬件调试及软件调试 81.常见的硬件故障 8(1)逻辑错误 8(2)器件失效 8(3)可靠性差 8(4)电源
4、故障 82.硬件调试方法 8(1)脱机调试 8(2)联机调试 93.软件调试方法 94.具体调试过程 10五、有关光立方的制作过程和心得体会 11六、作品使用说明 13七、制作过程 141.LED灯面的焊接方式 142.逐层LED灯负极的焊接 163.电路版制作 184.电路板上飞线的制作 195.显示部分与电路板之间的焊接 206.每层LED灯负极信号飞线的焊接 21八、总 结 22九、致 谢 23十、参考文献 24引 言单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片
5、微型计算机。它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:(1)最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.(2)最小功耗应用系统是指为了保证
6、正常运行,系统的功耗最小.(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。本文将使用单片机对光立方立体显示进行实例化,设计一个LED光立方来显示三维立体图像等信息。掌握利用8051型单片机对发光二极管点到线、线到面、面到立方的立体显示的方法。输出信号频率的控制通过单片机连接74hc573芯片来实现,用512个发光二极管进行不同频率的亮灭刷新,通过开关可显示输出的三维立体图案等信息。当开启开关时,由于人的视觉暂留原理,会由8个LED灯为列到8*8个LED灯为面再到8*8*8个LED灯为立方的过程产生一个立体的视觉效果,在立体视觉效果内的LED灯通过不同频率的刷新,会在立方区域
7、内产生三维立体的图像,从而达到在该立体视觉上传达信息的作用。8*8*8光立方,是一种利用视觉暂留效应制作的电子节目。可以用“静而壮观,动而美丽”来形容它,即当静止时,它只是LED灯组成的立方体,而一旦开启开关,按照一定的频率,它就会随着点、线、面、立体的变化而变化,最终显示一幅三维立体的图像。一系统设计方案 1.设计目的设计目的一:作品设计过程需要512个LED灯的搭架焊接,这是一个工作量比较大的动手过程,在这个过程中小组可以熟练单片机设计中不可或缺的过程焊接;设计目的二:因为在学习单片机课程中,没有过多的设备,也没有接触过外接的驱动电路,但是在光立方这个作品中,需要512个LED灯与单片机连
8、接,其中必定要连接驱动电路,并且在单片机的设计中这也是必不可少的过程,小组可以在制作过程充分学习到外接驱动电路,并理解其重要性驱动电路;设计目的三:在设计过程中,一定会遇到编程方面的问题,这就可以锻炼小组的算法思维,从而巩固所学知识,并学习新的算法,对我们学习单片机和以后对单片机的设计定下良好的基础算法。 2.设计要求将512个LED灯先以8*8的方式焊接起8个长宽相等的LED平面,再将焊接好的8个LED平面搭架起来,形成一个8*8*8的立方体,立方体的连接方式将采用其它方式,并非网络上盛传的原始的光立方设计方式,再将外接电路与单片机连接,最后通过点亮其中各个LED灯实现多种3D立体图案的效果
9、。 3.设计思路 本系统要求设计一个LED立体显示器,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成,如图所示:LED显示开关单片机连接74hc573芯片单片机将提取的字模进行存储,开启开关时单片机就将相应的字模代码通过I/O口输出,实现LED灯负逻辑点亮,利用视觉暂留原理最终使三维立体图像完整的显示在512个LED灯组成的立体区域中。1.LED灯的选择:因为单片机8*8*8光立方对LED灯的要求比较高,需要实现512个LED灯的整齐罗列,所以小组经过讨论,最终决定使用方形的LED雾灯。2.外部驱动电路的选择:小组没有依照网络上的原始方案,由单片机连接uln2803芯片
10、再连接74hc573芯片的方式,而是去除了uln2803芯片,直接由单片机连接74hc573芯片,实现8个74hc573对每一列8个LED灯阳极的供电;1个I/O口连接8块74hc573的使能端口,进行对74hc573不同时间的选通;1个I/O口连接一层LED灯的负极,一共有8层LED灯。3.工作原理的选择:工作原理就是由单片机先进行循环对74hc573进行选通,再由7hc573进行循环对每一列8个LED灯供电,再由单片机传输一组8位的负极信号,对选中供电的一列LED灯进行负逻辑点亮,这里一共有64列8个LED灯组成的列,最终组成LED的立方体,通过负极信号的不同,实现立方效果的体现。二系统硬
11、件设计 1.基本原理图基本原理与硬件电路设计:将512个LED灯先以8*8的方式焊接起8个长宽相等的LED平面,再将焊接好的8个LED平面搭架起来,形成一个8*8*8的立方体,立方体的连接方式将采用其它方式,并非网络上盛传的原始的光立方设计方式,再将外接电路与单片机连接,最后通过点亮其中各个LED灯实现多种3D立体图案的效果。2、各部分功能(1)外部驱动电路模块小组自己探讨的设计方式要用到8块74hc573,但是并没有用到uln2803,由单片机3个I/O口对整个设计进行控制,1个I/O口同时连接8块74hc573的输入端,进行并行传输数据,在通过单片机对74hc573的选通,实现8个74hc
12、573对每一列8个LED灯阳极的供电;1个I/O口连接8块74hc573的使能端口,进行对74hc573不同时间的选通;1个I/O口连接一层LED灯的负极,一共有8层LED灯。(2)LED显示模块LED显示模块是由单片机先进行循环对74hc573进行选通,再由7hc573进行循环对每一列8个LED灯供电,再由单片机传输一组8位的负极信号,对选中供电的一列LED灯进行负逻辑点亮,这里一共有64列8个LED灯组成的列,最终组成LED的立方体,通过负极信号的不同,实现立方效果的体现。3、系统硬件系统功能主要体现在3个部分:(1)单片机控制本装置采用了STC12C5A60S2单片机,它支持直接通过串口
13、线下载程序,对于本设计而言,显示立体图像需经常改变,STC12C5A60S2方便许多,因此选择STC12C5A60S2作为本设计所用的单片机。(2)显示功能信息传递主要由显示来完成,本设计显示功能由512个发光二极管来完成。512个发光二极管以8个为一组,分为64组,每组LED灯以共阳的方式连接,用P1口实现每组LED灯的负逻辑点亮。经过分析论证,我们决定了系统各模块的最终方案,流程图如下:74hc573芯片STC12C5A60S2单片机开关LED显示整套系统以STC12C5A60S2单片机为核心控制系统,使用512只LED灯作为显示区域,其中512只LED灯直接与单片机I/O口和7hc573
14、芯片相连。当开启开关时,单片机先对7hc573芯片进行选通,向7hc573芯片传送数据,选中某一组LED灯,再由单片机向该组LED灯传送数据,实现LED灯的负逻辑点亮,依据人体的视觉暂留原理,随着显示区域的显示,输出数据的每组LED灯的效果也不会立刻消失而是随着立体区域中逐渐点亮的LED灯形成立体图像。系统的元器件明细表:序号元器件名称数量1单片机STC12C5A60S2127hc573芯片83发光二极管512412M晶振15电阻16电容37USB接口18开关1三系统软件设计1.软件设计思路小组自己探讨的设计方式要用到8块74hc573,但是并没有用到uln2803,由单片机3个I/O口对整个
15、设计进行控制,1个I/O口同时连接8块74hc573的输入端,进行并行传输数据,在通过单片机对74hc573的选通,实现8个74hc573对每一列8个LED灯阳极的供电;1个I/O口连接8块74hc573的使能端口,进行对74hc573不同时间的选通;1个I/O口连接一层LED灯的负极,一共有8层LED灯。工作原理就是由单片机先进行循环对74hc573进行选通,再由7hc573进行循环对每一列8个LED灯供电,再由单片机传输一组8位的负极信号,对选中供电的一列LED灯进行负逻辑点亮,这里一共有64列8个LED灯组成的列,最终组成LED的立方体,通过负极信号的不同,实现立方效果的体现。2.主程序
16、流程图通过软件设计思路分析,得到该系统的PCB图如下:四系统的硬件调试及软件调试单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。其一般的调试过程如下:1.常见的硬件故障(1)逻辑错误硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线,短路等几种,其中短路时最常见的故障。电路板布线密度高的情况下,极易造成短路。(2)器件失效元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。
17、(3)可靠性差引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;内部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。(4)电源故障若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差。2.硬件调试方法(1)脱机调试脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是
18、否存在相互间的短路或其他信号线的短路。对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。(2)联机调试通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常,即可打开电源。通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操作、逻辑
19、检查,若有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。3.软件调试方法软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测
20、,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各程序模块通过后,可以把各功能块联系起来一起进行整体程序综合调试。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精
21、度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要做适当修正。对于实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。在全部调试修改完成后,将用户软件固化于EPROM中,插入用户样机后,用户系统即能离开发机独立工作,至此系统研制完成。4.具体调试过程在开始实验设计前,根据实验要求,分析实验所涉及
22、的相关知识点,查阅身边的资料,并根据自己以前所学的理论知识,有了大概设计框图后,在PROTEL中画出原理图,然后根据原理图分析模块焊出电路板,并对模块进行测试。 第一步,测试LED显示电路和C51单片机最小系统。首先测试LED,输入一个简单程序,发现有一个LED不亮,于是检查该LED的引脚,没有断,可能是静电导致LED灯损坏接好后LED亮了。于是输入初代光立方程序,但LED灯不闪,猜测是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮。说明不是插槽的问题,于是反复检查最小系统模块,通过用电压表最数码管的每个引脚进行高低电平测试,最终发现原来是接线问题,
23、即是一根线忘了连接。使得硬件与软件的设置不匹配,从而导致了LED显示不正常。改正后重新测试。光立方可呈现图像。第二步,测试驱动电路,该模块完好。第三步,软件测试。在软件方面,改部分主要调延时函数,调试过程简单但费时。于是,多次耐心尝试后软件调试才成功,能够完整并较为清晰地完整图像。最终,实现单片机8*8*8光立方立体图像的效果。五、有关光立方的制作过程和心得体会在学习单片机课程时,组成光立方小组的我们就散发出了对单片机的浓厚兴趣,尽管身边的同学,往届的前辈们都指点我们道“这个设计不好过,郭老师很严厉的。”,但是这些并没有阻止我们小组对单片机进行最终的选择:小组认为毕业前要做一件像样的事情,如果
24、这个毕业设计做不好,我们认为自己还是没有毕业资格的;更重要的是小组对老师的向往,感谢我们的结识,感谢老师的指点。 刚刚开始与其它班级一同进行单片机的实训课程时,小组可以说是一头雾水,因为在开始设计作品之前,老师提出了一点当时我们并不认为是很重要的,但开始设计时才知道这点是很致命的一个要求:那就是老师不允许小组对设计进行同网络相同的层共阴列共阳概念设计。经过资料查询,小组可以说是崩溃一般,想不出其它设计的方式,当时小组是钻了牛角尖的,把想法局限到了类似杜洋工作室设计的光立方概念那一方向。直到一次小实验,小组用一片74hc573点亮了8个LED灯,小组看到了希望,因为这个亮度并不是非常低,LED灯
25、没有像查询资料中所说的那么暗。在此引导下,小组用Protues软件设计了电路图,并进行了初步测试程序的烧入,模拟的实验效果还是不错的,最终小组就决定了这个设计方式。 小组自己探讨的设计方式要用到8块74hc573,但是并没有用到uln2803,由单片机3个I/O口对整个设计进行控制,1个I/O口同时连接8块74hc573的输入端,进行并行传输数据,在通过单片机对74hc573的选通,实现8个74hc573对每一列8个LED灯阳极的供电;1个I/O口连接8块74hc573的使能端口,进行对74hc573不同时间的选通;1个I/O口连接一层LED灯的负极,一共有8层LED灯。工作原理就是由单片机先
26、进行循环对74hc573进行选通,再由7hc573进行循环对每一列8个LED灯供电,再由单片机传输一组8位的负极信号,对选中供电的一列LED灯进行负逻辑点亮,这里一共有64列8个LED灯组成的列,通过负极信号的不同,实现立方效果的体现。 在确立了电路设计原理图之后,小组开始确定PCB板的模拟连接图,因为老师提供一款软件让小组来制作PCB的连接图,所以这个倒是没有用太多的时间,也没有出现过多的难题,通过软件小组完成了PCB板连接图的设计。 在完成PCB板连接图后,小组开始设计的外围原件的焊接过程。说实话,对于我们小组所选择的这款设计来说,焊接是我们最大的困难,原因在于小组第一次接触原件的焊接,并
27、且焊接的工作量比较大。刚刚开始焊接时,小组选择了先对LED灯的搭建进行焊接,因为这个过程的工作就是一个时间和量的工作,不会出现太多的问题。但刚刚开始时小组也是探讨了一番,因为小组选择的这款设计讲究的就是一个唯美的、整体的效果,所以要将LED灯的搭建焊接的非常整齐,这样才够看,经过小组的研究,最终选择了一种方式来搭建LED灯:因为小组选购的LED灯刚好能插到两个插针之间的空隙处,所以小组将购买的插针以两两为一组拆卸下来,并将拆卸下来的插针按8*8的方式插入30*18的PCB板上焊接起来,这样就能一次焊接一层8*8的LED灯,并保证其整齐度,但毕竟是512个LED灯的搭建,所以小组还是焊接了8到9
28、小时才将LED灯的搭建工作完成。 在完成了LED灯的搭建工作之后,小组开始进行PCB板焊接的过程,这里要进行PCB板上的锡接过线、飞线的制作,并要坚持作品整体美观的原则,所以焊接锡接过线和飞线时也要进行焊接前的预想,这并不是完成PCB板模拟连接图就所能实现的,小组一边焊接已经确定的部分,一边探讨下一步的焊接工作。因为是第一次焊接,所以焊接PCB板时小组还是犯了一些小错误。比如进行锡接过线时,小组没有考虑到原件摆放的位置,所以导致了更多的锡接过线工作;还有飞线部分的焊接应该是有顺序的,这样才能保证焊接轻松,并且焊接飞线美观,小组在飞线焊接时因为没有摆明顺序,所以在一些飞线焊接时浪费了比计划更多的
29、精力和时间。 完成了PCB板的焊接之后,小组将搭建好的LED灯按计划好的位置焊接好。接下来就要进行测试程序的烧入,对设计进行初步的测试,这是非常关键的,因为小组所选这款设计在完成所有工作之前是没法进行作品效果测试的,所以在将程序烧入单片机的一瞬间,小组是比较紧张的,一旦出现问题,作品不出效果,小组就要从最初进行的工作对整个作品进行测试,不过老天不负有心人,在程序烧入到单片机之后,作品成功的展现了测试程序的效果,小组这才放下心来,因为这样小组就可以进行下一步编写程序的工作了。 作品成功执行测试程序之后,小组开始了程序的编写,这是一个非常关键的部分,因为程序可以说是由单片机组成作品中的灵魂部分,不
30、管作品的外围设计多么丰富多彩,程序也直接影响了整个作品的展示效果。小组进行程序编写时,首先只是编写了一个光立方的效果程序,但因为程序中软件延时没有把握好,效果并不好。对于软件延时的调整,小组整整探讨了一上午才得以让作品展现出预想的效果,那么接下来的工作就是对效果进行取模,然后将取模好的数组加入到程序的整体框架中,让作品展现出更多的效果,虽然取模这个工作相对简单,但也是一个时间和量的工作,也花费了小组不少时间。六、作品使用说明 电源开关 电源插口(两侧)、烧写程序串口(中间)七、制作过程1.LED灯面的焊接方式如图所示: 光立方设计对LED灯的焊接方面要求很高,需要将512个LED灯整齐的焊接在
31、一起;上图是小组采用的方式,在电路板上插好排针,再将LED灯插入排针内,进行焊接,保证LED灯的整齐度。将LED灯的正负极引脚设计成如图所示,在拆入排针内进行焊接,长引脚为正极(方向向下),短引脚为负极(方向向前)。如图,将LED灯的引脚设计好之后拆入排针内进行焊接的效果图。2.逐层LED灯负极的焊接如图,焊接好的64个LED灯为一列的灯面的效果图。将焊接好的每一列灯面直立插入之前的排针内,实现每一列灯面间负极的焊接。显示部分512个LED灯焊接在一起的效果图,上面引出的64个LED灯正极引脚之后会焊接在设计好的电路版上,用于为8个为一列的LED灯供电。3.电路版制作根据前文提供的PCB版的设计图,开始在设计电路板,将PCB版的设计图实体化。4.电路板上飞线的制作图中每8根短飞线用于连接每块74hc573芯片的8位输入端,一共有7段相同的短飞线,使8块74hc573芯片都能接收有单片机传出的信号,通过选通信号来决定哪块74hc573芯片能够接收到信号。图中每8根中等长度的飞线用于74hc573芯
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1