毕业课程设计--光立方 2
光立方毕业设计说明
学校代码:10129系别:计算机技术与信息管理系年份:2015毕业设计说明书题目:单片机8*8*8光立方小组成员:孟斌、静厚霖、宋金宝班级:11计教甲班指导教师:郭彬年月摘要随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。
而现代工具务求简捷化、便携化,因此,光立方显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。
单片机8*8*8光立方,在60周年国庆大典上,在天安门前,被称为三大国宝之一的节目就是由我们小组所选的设计光立方组合而成;并且光立方是由LED灯组成,近看几年的发展,LED灯的用途越加的广泛起来,小组看到LED灯的发展前景,经过小组讨论,依据上述两点,最终决定选择光立方作为毕业设计。
光立方是基于人的视觉暂留原理的,通过分时刷新8*8*8构成的512个LED灯来显示输出文字或图案等信息的立体显示装置。
输出信号频率的控制通过单片机连接74hc573芯片来实现,由于人的视觉暂留原理,会由8个LED灯为列到8*8个LED灯为面再到8*8*8个LED灯为立方的过程产生一个立体的视觉效果,在立体视觉效果内的LED灯通过不同频率的刷新,会在立方区域内产生三维立体的图像,从而达到在该立体视觉上传达信息的作用。
本文以单片机、74hc573芯片、LED灯的实际应用为背景,介绍了以单片机、74hc573芯片、LED灯为核心系统的光立方立体显示设计的基本结构和基本原理。
【关键词】单片机、74hc573芯片、LED灯目录引言 (2)一.系统设计方案 (1)1.设计目的 (2)2.设计要求 (2)3.设计思路 (2)二.系统硬件设计 (4)1.基本原理图 (4)2、各部分功能 (4)(1)外部驱动电路模块 (4)(2)LED显示模块 (5)3、系统硬件 (5)(1)单片机控制 (5)(2)显示功能 (5)三.系统软件设计 (7)1.软件设计思路 (7)2.主程序流程图 (7)四.系统的硬件调试及软件调试 (8)1.常见的硬件故障 (8)(1)逻辑错误 (8)(2)器件失效 (8)(3)可靠性差 (8)(4)电源故障 (8)2.硬件调试方法 (8)(1)脱机调试 (8)(2)联机调试 (9)3.软件调试方法 (9)4.具体调试过程 (10)五、有关光立方的制作过程和心得体会 (11)六、作品使用说明 (13)七、制作过程 (14)1.LED灯面的焊接方式 (14)2.逐层LED灯负极的焊接 (16)3.电路版制作 (18)4.电路板上飞线的制作 (19)5.显示部分与电路板之间的焊接 (20)6.每层LED灯负极信号飞线的焊接 (21)八、总结 (22)九、致谢 (23)十、参考文献 (24)引言单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机。
888光立方课程设计
888光立方课程设计一、教学目标本课程的教学目标是让学生掌握光立方的基本原理和制作方法,培养学生的创新意识和动手能力。
具体分为三个部分:1.知识目标:学生能够理解光立方的物理原理,包括光的传播、反射、折射等;掌握光立方的制作流程和技巧。
2.技能目标:学生能够运用光立方原理,独立完成一个光立方的设计和制作;培养学生的团队协作能力和问题解决能力。
3.情感态度价值观目标:学生能够认识到光立方在科技领域的应用价值,激发对科技创新的热爱和好奇心;培养学生的创新精神和实践能力。
二、教学内容本课程的教学内容主要包括光立方的原理、制作方法和应用。
具体安排如下:1.第一章:光立方概述,介绍光立方的定义、发展历程和应用领域;2.第二章:光立方的物理原理,讲解光的基本性质、光的传播、反射、折射等现象;3.第三章:光立方的制作材料和工具,介绍光立方制作所需的材料、工具及其使用方法;4.第四章:光立方的制作流程,讲解光立方的设计、搭建、调试和优化等环节;5.第五章:光立方的创新应用,介绍光立方在各个领域的应用案例,探讨光立方的未来发展。
三、教学方法为了提高教学效果,本课程采用多种教学方法相结合的方式,包括:1.讲授法:教师讲解光立方的基本原理、制作方法和应用,引导学生掌握相关知识;2.实践操作法:学生动手制作光立方,培养学生的实践能力和创新意识;3.案例分析法:分析光立方的实际应用案例,帮助学生了解光立方的应用价值;4.小组讨论法:学生分组讨论光立方的制作过程中的问题,培养团队协作能力。
四、教学资源为了支持教学内容的实施,本课程准备以下教学资源:1.教材:《光立方制作教程》,为学生提供系统的学习材料;2.参考书:《光学原理与应用》、《创新制作教程》等,为学生提供拓展阅读资料;3.多媒体资料:制作光立方的视频教程、动画演示等,帮助学生更好地理解光立方的制作过程;4.实验设备:为学生提供光立方制作所需的实验材料和设备,如LED灯、电路板、显微镜等。
444光立方课程设计
444光立方课程设计一、教学目标本课程的教学目标是使学生掌握光立方的基本概念、原理和应用,提高学生的科学素养和解决问题的能力。
具体目标如下:1.知识目标:学生能够理解光立方的定义、特点和基本原理,掌握光立方的构造方法和操作技巧,了解光立方的应用领域。
2.技能目标:学生能够运用光立方进行简单的计算和建模,能够利用光立方解决实际问题,提高学生的科学思维和创新能力。
3.情感态度价值观目标:学生能够认识到光立方在科学技术和社会发展中的重要性,增强对科学的兴趣和好奇心,培养学生的科学精神和责任感。
二、教学内容本课程的教学内容主要包括光立方的基本概念、原理和应用。
具体内容包括:1.光立方的定义和特点:介绍光立方的概念,解释光立方的特性和优势,引导学生了解光立方的应用前景。
2.光立方的构造方法:讲解光立方的构造原理和方法,引导学生掌握光立方的制作技巧,培养学生的动手能力。
3.光立方的操作技巧:介绍光立方的操作方法和技巧,通过实际操作练习,使学生熟练掌握光立方的使用。
4.光立方的应用领域:讲解光立方的应用案例,使学生了解光立方的应用范围和价值,激发学生的学习兴趣。
三、教学方法为了实现教学目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体方法如下:1.讲授法:通过教师的讲解,使学生掌握光立方的基本概念和原理,引导学生理解光立方的构造方法和操作技巧。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作,培养学生的科学思维和创新能力。
3.案例分析法:通过分析光立方的应用案例,使学生了解光立方的实际应用,引导学生运用光立方解决实际问题。
4.实验法:安排学生进行实验操作,使学生亲身体验光立方的构造和操作过程,提高学生的动手能力和实践能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将选择和准备适当的教学资源。
具体包括:1.教材:选择适合学生水平的教材,为学生提供系统的学习材料,帮助学生掌握光立方的基本概念和原理。
光立方毕业设计
基于STC12C5A60S2的光立方设计【摘要】本次设计使用512个LED灯制作8*8*8的LED立方体,命名为光立方。
采用STC12C5A60S2芯片作为主控,8个74HC573锁存器和一个ULN2803芯片扩展I/O口,作为外围控制。
通过编程控制I/O口,点亮指定的LED灯,使得显示不同的画面。
8*8*8光立方因点亮LED灯将会形成各种图形,如爱心、数字、雨滴、正方体等十几种画面。
整个立体呈现不同的造型和图案,动画衔接完美,使其变得美轮美奂、绚丽多彩,立体感十足。
此外,我们还可以外接音频输入,通过AD采样,快速傅里叶变换FFT,可以让光立方显示音频频谱。
经过系统测试,最终达到设计要求。
【关键词】光立方 STC12C5A60S2 74HC573 ULN2803Based on STC12C5A60S2 of the Light Cube Design【Abstract】:The 8*8*8 LED cube is made of 512 LED lights,named Light Cubewhich used STC12C5A60S2 as main control chip,it has 8 74HC573 latches extended I/O ports,and a ULN2803 chip as out control. Through programming control I/O port, the LED light. 8 * 8 * 8 cubic light for light leds will form a variety of graphics, such as love heart,numbers,rain,cube and so on. animation, cohesion is perfect, stereo sense is dye-in-the-wood. In addition, we also can external audio input, through the AD sampling, fast Fourier transform FFT, can let light cube display audio spectrum. After the system test, finally to meet the design requirements.【Keywords】:The Light Cube STC12C5A60S2 74HC573 ULN2803目录【摘要】 (1)【Abstract】 (1)目录 (2)第一章引言 (1)1.1光立方的研究意义 (1)1.2发展历程和现状 (1)1.3 光立方的功能和特点 (1)1.4 光立体的优越性以及主要应用 (2)第二章控制模块设计 (3)2.1 系统总框图 (3)2.2 总体方案的选择 (3)2.2.1主控芯片 (3)2.2 总体方案的选择 (3)2.2.1主控芯片 (3)2.2.2 电源选择 (4)2.2.3 元件选择 (4)第三章光立方显示部分概述 (7)3.1 光立方的制作 (7)3.1.1 光立方的原理 (7)3.1.2 LED灯的选用 (7)3.1.3 LED灯的焊接 (9)3.2显示部分检测 (10)第四章硬件设计 (13)4.1最小系统 (13)4.2 按键模块 (13)4.3功放模块 (14)4.3.1 功放原理图 (14)4.4呼吸指示灯 (15)4.5 竖排控制电路 (15)4.6 光立方层控制电路 (16)4.7 硬件电路焊接 (17)4.8 元件清单 .......................................................................................................... 错误!未定义书签。
444光立方课程设计
444光立方课程设计一、教学目标本课程旨在让学生掌握光立方的基本概念、原理和应用,培养学生的空间想象能力和创新能力。
具体目标如下:1.知识目标:学生能够理解光立方的定义、特点和基本原理,了解光立方的应用领域,如光学、物理、数学等。
2.技能目标:学生能够通过观察、实验和计算,分析和解决光立方相关的问题,提高学生的实践操作能力和科学思维能力。
3.情感态度价值观目标:学生能够培养对光立方的兴趣和好奇心,提高学生对科学探究的热情和积极性,培养学生的团队合作意识和创新精神。
二、教学内容本课程的教学内容主要包括光立方的定义和特点、光立方的原理和计算方法、光立方的应用领域等。
具体安排如下:1.第一章:光立方的定义和特点,介绍光立方的概念和特点,理解光立方的基本性质。
2.第二章:光立方的原理和计算方法,学习光立方的原理和计算方法,掌握光立方的操作技巧。
3.第三章:光立方的应用领域,了解光立方的应用领域,如光学、物理、数学等,探索光立方的实际应用案例。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体方法如下:1.讲授法:通过教师的讲解,介绍光立方的基本概念、原理和应用,帮助学生建立知识框架。
2.讨论法:学生进行小组讨论,分享对光立方的理解和思考,促进学生之间的交流和思维碰撞。
3.案例分析法:分析光立方的实际应用案例,让学生了解光立方的应用领域和实际价值。
4.实验法:进行光立方实验操作,让学生亲身体验光立方的原理和应用,提高学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的教材,如《光立方导论》、《光立方实验指导》等,作为学生学习的主要参考资料。
2.参考书:提供相关的参考书籍,如《光学原理》、《数学模型》等,供学生进一步深入学习和研究。
3.多媒体资料:制作精美的多媒体课件和教学视频,通过图文并茂的形式,生动展示光立方的原理和应用。
光立方毕业论文含程序+原理图+实物
目录第一章绪论............................................................................................................................................... - 1 -1.1 课题的背景................................................................................................................................ - 1 -1.2 研究目的和意义................................................ - 1 -1.3 论文研究内容与结构安排........................................................................................................ - 1 -第二章总体设计....................................................................................................................................... - 2 -2.1 工作原理.................................................................................................................................... - 2 -2.2 各模块方案选择与论证............................................................................................................ - 2 -2.2.1 单片机主控制模块......................................................................................................... - 2 -2.2.2 驱动模块......................................................................................................................... - 2 -2.2.3 显示模块......................................................................................................................... - 2 -第三章系统硬件电路设计与实现........................................................................................................... - 3 -3.1 硬件电路设计............................................................................................................................ - 3 -3.2 单片机最小系统........................................................................................................................ - 3 -3.2.1 时钟电路......................................................................................................................... - 4 -3.2.2 P0 口外接上拉电阻....................................................................................................... - 4 -3.3 驱动模块的设计........................................................................................................................ - 5 -3.4 光立方整体设计思路................................................................................................................ - 6 -3.4.1 LED灯排序方式设计.................................................................................................... - 6 -3.4.2 LED灯接法方式设计.................................................................................................... - 7 -3.5 光立方搭建方法........................................................................................................................ - 7 -3.5.1将LED从点到线的搭建.................................................................................................. - 7 -3.5.2将LED从线到面的搭建.................................................................................................. - 7 -3.5.3将LED从面到体的搭建.................................................................................................. - 8 -第四章系统软件设计............................................................................................................................... - 9 -4.1 主程序设计................................................................................................................................ - 9 -第五章系统调试及结果分析................................................................................................................. - 10 -5.1 系统调试.................................................................................................................................. - 10 -5.1.1. 硬件测试...................................................................................................................... - 11 -5.1.2. 软件测试...................................................................................................................... - 11 -5.2 结果分析.................................................................................................................................. - 11 -第六章结论............................................................................................................................................. - 12 -参考文献................................................................................................................................................... - 13 -英文摘要................................................................................................................................................... - 14 -致谢语 ...................................................................................................................................................... - 15 -附录 .......................................................................................................................................................... - 16 -1、实物图......................................................................................................................................... - 16 -2、系统原理图................................................................................................................................. - 17 -程序清单................................................................................................................................................... - 18 -基于单片机的光立方设计刘荣三明学院 09级电子信息工程专业福建三明 365004摘要本文介绍了一款基于STC12C5A60S2 单片机光立方的设计并阐述了整体设计思路,介绍了系统软硬件设计的主要方法。
光立方课程设计说明书
《单片机技术》课程设计说明书光立方工学院《单片机技术》课程设计课题任务书学院:电气与信息工程学院专业:电气工程及其自动化摘要当今社会,随着电子行业的不断发展,单片机的应用从根本上改变了传统的控制系统设计思想和设计方法,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。
成为现代生产和生活中不可缺少的一部分。
设计采用4*4*4的光立方模式,硬件主要分为七个模块:主控模块、驱动模块、显示模块、键盘模块、电源模块、复位模块、下载模块。
采用的主控芯片为AT89S52 芯片,驱动电路是采用了常用74HC573数字芯片,设计采用C语言编程,通过单片机I/O口控制LED的亮灭,采用延时控制LED亮灭时间,最终使得整个立体展现不同的造型和图案,使其变得美轮美奂、绚丽多彩。
关键词:光立方;AT89S52;74LS573锁存器目录1 绪论 (1)1.1 光立方的背景 (1)1.2 研究的意义 (1)2 设计要求和方案介绍 (2)2.1 设计要求 (2)2.2 方案介绍 (2)2.2.1 系统整体框图 (2)2.2.2 光立方发光原理 (3)3 系统硬件电路设计 (4)3.1 主要元器件的介绍 (4)3.1.1 AT89S52芯片介绍 (4)3.1.2 74HC573芯片介绍 (5)3.1.3 四位一体数码管介绍 (5)3.2 硬件电路模块介绍 (7)3.2.1 最小系统模块介绍 (7)3.2.2 驱动模块介绍 (9)3.2.3 键盘模块介绍 (10)3.2.4 显示模块介绍 (10)4 软件系统说明 (12)4.1 软件系统模块 (12)4.2 软件系统模块的程序流程框图 (12)5 光立方系统测试 (15)5.1 操作说明 (15)5.2 测试结果 (15)5.3 结果分析 (17)5.4 设计结论 (17)5.5 设计体会 (17)结束语 (18)参考文献 (19)致 (20)附录 (21)附录A 原理图 (21)附录B 实物图 (23)附录C 元件清单 (24)附录D 程序清单 (25)1 绪论1.1 光立方的背景光立方是由四千多棵光艺高科技“发光树”组成的,在2009年10月1日天安门广场举行的国庆联欢晚会上面世,这是新中国成立六十周年国庆晚会最具创意的三大法宝之首,自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注,并得到了全球的高度肯定。
电子信息专业毕业设计(3D光立方) 精品
摘要光立方是一个长、宽、高由8×8×8 个LED 灯组成的真实3D 立方体显示器。
其最大的特点,就是带给观赏者立体的超酷的3D视觉体验。
因此各大网站也充斥着各种各样的光立方版本。
但是这各种版本的光立方的制作方法都很复杂,而且成本也很高,而本设计与之相比则制作简单精美,成本低廉。
为保证光立方精美的外形,本设计还提供了一种光立方的制作模板,以确保将动手能力导致的美观差异降到最低。
为降低其成本,本设计采用了STC12C5A60S2单片机,这种单片机自带有A/D转换模块;使用的锁存器是常用的SN74HC573。
这样可以保证在降低制作成本的情况下,毫不影响作品的美观;再加上显示效果极佳的高亮雾面的蓝色方形LED,硬件电路无需添加额外的驱动和上拉电阻,即可实现其强大的功能:除了能显示3D 图形,还可以支持多级亮度和速度调整,允许用户自拓展音频显示功能,就像音乐显示器一样。
用户还可以在不改动硬件电路的情况下设计出自己喜欢的的自定义图形。
这些充分体现了制作成本低、显示效果好、功能完善的特点。
最后,经过软硬件调试,解决了一些硬件电路短路,程序报错的问题,完美地实现了多种图形动态显示,流畅的图形变换和音频显示的多种功能。
关键词:光立方制作模板音频显示 A/D转换ABSTRACTLight-cube is a long, wide, high is composed of 8 x 8 x 8 leds true 3 d volumetric display. Its biggest characteristic, is to bring the viewer stereo cool 3 d visual experience. So each big web site is filled with all kinds of cubic light version.But all versions of this light cubic method is very complex, and the cost is also high, and compared with this design is beautifully simple and low cost.In order to ensure the exquisite cubic shape, this design also provides a light cube production template, to ensure that the ability to appearance difference to a minimum.To reduce its cost, this design USES STC12C5A60S2 MCU, the MCU built-in A/D conversion module; Use the latch is SN74HC573 in common use. So that in the case of lower production costs, not effect the beauty of the works; Plus showed excellent results highlighted square LED fog below in blue, don't need to add additional hardware circuit drive pull up resistance, and its powerful functions can be realized: in addition to display 3 d graphics, can support multiple levels of brightness and speed adjustment, allows the user to expand the audio display function, like music display. Users can also in the case of do not change the hardware circuit design their own custom graphics. These fully reflect the production of low cost, good effect of display, the characteristics of the function is perfect.Finally, after the hardware and software debugging, solve some of the short circuit hardware circuit, program error, perfect the dynamic variety of graphic display, smooth graphics transform and audio display a variety of functions.Key words: light-cube making stencil audio-display A/D conversion目录1、引言 (1)1.1研究意义 (1)1.2研究现状 (2)1.3该论文的内容安排 (2)2、光立方的设计方案 (3)2.1本设计基本功能和特点 (3)2.2拓展功能 (3)2.3总体设计方案 (3)3、硬件设计 (5)3.1 单片机控制电路设计 (5)3.1.1单片机选型 (5)3.1.2单片机控制电路 (6)3.2 驱动电路设计 (7)3.2.1 负极驱动芯片 (8)3.2.2 正极驱动芯片 (10)3.3显示电路设计 (11)3.3.1各层电路设计 (11)3.3.2 LED地址对照表 (12)3.4实物效果图 (13)4、软件设计 (15)4.1 自定义头文件 (15)4.2电脑端的ISP控制软件 (18)4.3程序流程图 (19)4.4 LED显示核心思想 (20)4.5显示部分测试结果 (22)5、硬件焊接与调试 (23)5.1 本设计所需材料 (23)5.1.1LED灯 (23)5.1.2 74HC573芯片 (23)5.1.3自制双声道音频插头 (23)5.1.4 其他材料 (24)5.2光立方LED灯焊接方法及步骤 (25)5.3调试中的问题和解决方法 (27)5.4调试结果 (28)6、总结 (30)致谢 (31)参考文献 (32)附录 (33)1、引言1.1研究意义LED射灯是指发出的光线是方向性的(directional)的LED灯泡, 主要类型有MR16,GU10, PAR series.LED球泡灯是指发出的光线为发散性的LED灯泡, 主要类型为:E27 base.按照功率来分, LED灯泡可分为: 小功率(主要为5mm LED生产的)和大功率(主要1 W, 3 W ,甚至5 W LED生产的)。
毕业课程设计--光立方
摘要本设计制作出一个三维立体显示图案的LED光立方。
本产品不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。
同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。
本设计是采用AT89S52单片机为核心控制器,八D边沿触发器(三态)74LS573扩展I/O口,完成硬件电路设计。
通过软件编程控制数据下载到单片机完成设计图案的显示。
软件采用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
关键词: 52单片机;74HC573锁存器;8*8*8LED显示;ABSTRACTThis design produced a three-dimensional pattern of the LED light cube. This product can not only like a light-emitting diode dot matrix display plane static or dynamic screen can also display three-dimensional static or dynamic images,and to break the traditional program.While increasing the display patterns and three-dimensional effect can be widely used to display and decorative display for future progress and development to guide the direction,light cube display more visual effects than the light-emitting diode dot matrix,and the picture is more rich colorful. With a combination of graphics and characters more perfect display characteristics.The design is AT89S52 MCU core controller,eight D edge flip-flop 74LS574 (tri-state) expansion I/O port completion of the hardware circuit design. Programmed by software to control the data is downloaded to the MCU to complete the designs of the show. This design software is a top-down modular design,the system moving in the direction of distributed,small development,enhance the stability of the system's scalability and running.KEY WORDS: 52single-chip;74HC573latch;8*8*8 3DLED;目录1、设计要求与方案 (1)1.1设计目的 (1)1.2设计要求 (1)1.3设计思路 (1)1.4设计的总体要求及方案选择 (2)2、工作原理 (3)2.1模块的简介 (3)2.2 3DLED光立方工作原理 (4)3、方案选择 (5)3.1电源的选择 (5)3.2 3D显示核心控制器 (5)3.3 I/O口扩展芯片的选择 (6)3.4 LED发光显示二级管 (6)4、硬件整体设计概述及功能分析 (8)4.1 系统概述 (8)4.2 系列单片机简介 (9)4.3 时钟电路设计 (9)4.4 复位电路设计 (10)4.5 74HC573芯片连接电路图与介绍 (11)5、主程序设计思路 (13)5.1程序流程框图 (13)5.2显示程序的设计 (13)5.2.1 LED显示屏的数据传送 (13)5.2.2 显示程序的设计 (14)6、硬件电路设计 (15)6.1 单片机与74HC573连接线路图 (15)6.2 LED焊接方法 (15)6.2.1焊前准备工作 (15)6.2.2焊接 (16)6.3 整体实物图 (17)7、程序设计分析与选择 (18)7.1单片机C语言主要特点 (19)7.2单片机C语言与标准语言的区别 (19)7.3数据类型的选用 (20)7.4算法设计问题 (20)7.5数据存储器的分配 (21)7.6单片机C语言与汇编语言的混合编程 (21)7.7程序分析选择 (23)8、程序设计 (24)9、设计结果分析 (28)总结 (30)致谢 (31)参考文献 (32)1、设计要求与方案1.1 设计目的在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。
光立方电路图 (2)
光立方电路图1. 简介光立方电路图是一种用于创建光效的电路图。
它通过使用不同的光电元件和电子元件,可以实现各种不同的光效。
本文档将详细介绍光立方电路图的组成部分以及如何使用它来实现各种光效。
2. 组成部分2.1 光电元件光立方电路图中使用的光电元件包括LED灯、光敏电阻和光电二极管。
LED灯是最常用的光电元件,它能够发出不同颜色的光。
光敏电阻能够根据光强度的变化来改变电阻值,从而实现自动控制。
光电二极管则能够将光转换为电信号。
2.2 电子元件光立方电路图中使用的电子元件包括电阻、电容、晶体管和集成电路。
这些电子元件用于调节电流和控制电路的工作方式。
电阻用于限制电流的流动,电容用于储存电荷,晶体管用于放大电流信号,集成电路用于实现特定功能。
2.3 连接方式光立方电路图中的光电元件和电子元件通过导线来连接。
导线用于传输电流和信号,它们需要正确地连接到电路图中的不同元件。
连接方式包括串联和并联,有时还需要使用电路布线板进行连接。
3. 光效实现3.1 基本光效通过使用LED灯和电阻,可以实现基本的光效。
可以使用不同颜色的LED灯来实现不同的光效,例如红色、绿色和蓝色。
通过调整电阻的阻值,可以控制LED灯的亮度。
可以使用串联或并联连接LED灯,以实现不同的光效。
3.2 光敏控制通过使用光敏电阻和晶体管,可以实现光敏控制的光效。
光敏电阻可以感知周围光强度的变化,当光强度超过一定阈值时,晶体管将导通,从而控制LED灯的点亮。
这种光效可以用于夜灯、光感灯等应用场景。
3.3 光音效通过使用光电二极管和集成电路,可以实现光音效的光效。
光电二极管可以将声音转换为光信号,并通过集成电路进行处理。
可以将不同频率的声音转换为不同颜色的光,从而实现光与音的联动效果。
4. 示例电路图以下是一个简单的光立方电路图示例:+-------------+| |[LED1]--->[R1]--->[LED2]--->[LED3]| |+-------------+这个电路图中,使用了三个LED灯和一个电阻进行串联连接。
光立方设计报告
光立方设计报告一、要求1、利用单片机控制8*8*8的LED灯显示3D图形。
2、进行实物焊接,调试。
二、设计思路首先,8*8*8光立方是由8个相同的面组成,每一个面有64个蓝色LED灯,不同的图案又这些点连接而成。
如果我们想要驱动任意一个LED灯,我们让列接地,行接正极就可以实现,因此整个立方体列共阴极,行共阳极。
实际上这个就是控制512个LED 的不同灯点亮。
三、电路设计主要分为主控模块、驱动模块、显示模块1、主控模块主控模块我们选用STC12C5A60S2图1 主控电路其中C1、C2为去耦电容防止高频干扰2、驱动模块图2 行驱动电路可以用一个3—8译码器选择8个不同的共阳极层,但是译码器的驱动能力差,中间可以用双P沟道MOS管APM4953来增强驱动能力。
这样就可以控制点亮不同的层。
图3 列驱动电路我们可以用5026来选择不同的列,一片5026就可以控制16列,一共有64列,因此只需要用到4片。
在每一片5026电源端上加一个电容,主要防止高频干扰。
3、显示模块每一个LED的负端都连接在一起,构成一列;每一层的LED 的阳极连在一起。
一层一列刚好可以确定一个LED灯。
这样就可以通过主控电路和驱动电路来点亮所要点亮的LED,组成我们想要的图案。
四、元器件选择(1)由于光立方的程序量比较大,而且要求相对比较高,因此我们决定用51系列的增强型芯片STC12C5A60S2,选择的理由:1.无法解密,采用第六代加密技术;2.超强抗干扰;3.内部集成高可靠复位电路,外部复位可用可不用;4.速度快;(2)4953的作用:行驱动管,功率管。
每一显示行需要的电流是比较大的,要使用行驱动管,每片4953可以驱动2个显示行,其内部是两个CMOS管,1、3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6才会输出,否则输出为高阻状态。
(3)SN74HC245DW,8路双向总线收发器,具有三态输出;74HC245八路总线收发器被设计用于数据总线之间的异步双向通信。
光立方实验报告
光立方实验报告光立方实验报告引言:在物理学中,光的传播和反射一直是研究的重点。
为了更好地理解光的行为和特性,我们进行了光立方实验。
本实验旨在通过观察光在不同介质中的传播和反射现象,探究光的折射和反射规律。
实验过程:1. 实验器材准备我们使用了一个光立方装置,其中包括一个透明的立方体,一束激光器和一块白色的观察屏幕。
实验器材的准备是确保实验的顺利进行的第一步。
2. 光的传播观察将激光器对准光立方的一面,使光线垂直射入立方体。
我们可以清晰地看到光线在立方体内传播的路径。
通过观察,我们发现光线在传播过程中发生了折射现象,即光线改变了传播方向。
3. 光的反射观察将激光器对准光立方的另一面,使光线以一定的角度射入立方体。
我们可以观察到光线在立方体内发生了多次反射,最终射出立方体。
通过调整入射角度,我们还可以观察到全反射现象,即光线完全被立方体内壁反射,不再射出。
实验结果与讨论:1. 光的折射规律根据我们观察到的光线传播路径,我们可以得出结论:光在从一种介质进入另一种介质时,会发生折射。
根据斯涅尔定律,折射光线的入射角和折射角之间满足一个特定的关系。
这个关系可以用折射率来表示,折射率是介质的一个重要物理特性。
2. 光的反射规律通过观察光线在立方体内的反射现象,我们可以发现光的反射规律。
根据反射定律,光线的入射角等于反射角,而且入射光线、反射光线和法线三者在同一平面上。
这个规律在光立方实验中得到了验证。
3. 全反射现象我们还观察到了全反射现象。
当光线从一个折射率较大的介质射入折射率较小的介质时,入射角超过一个临界角,光线将完全被反射,不再穿过界面。
这个现象在光纤通信等领域有重要应用。
结论:通过光立方实验,我们深入理解了光的传播和反射规律。
光的折射和反射是光学研究的基础,对于理解光的行为和应用具有重要意义。
本实验的结果与讨论为我们提供了实验数据和理论依据,为进一步研究和应用光学提供了基础。
总结:光立方实验是一种简单而有效的实验方法,通过观察光线在立方体中的传播和反射现象,我们可以深入理解光的折射和反射规律。
光立方_毕业论文(含程序原理图实物图)
目录摘要 .......................................................................................................................................................... X XX 关键词 ...................................................................................................................................................... X XX 1绪论 . 02总体设计 (1)工作原理 (1)各模块方案选择与论证 (1)单片机主控制模块 (1)驱动模块 (1)显示模块 (1)图2-2 雾面乳型LED灯 (2)3 系统硬件电路设计与实现 (2)硬件电路设计 (2)单片机最小系统 (2)驱动模块的设计 (4)主程序设计 (8)系统调试 (9)硬件测试 (9)软件测试 (10)结果分析 (10)6结论 (11)Keywords (13)致谢语 (14) (16) (16)程序清单 (17)#include <> (17)#define uchar unsigned char (17)#define uint unsigned int (17)sbit p30 = P1^0; (17)sbit p31 = P1^1; (17)sbit p32 = P1^2; (17)sbit p33 = P1^3; (17)sbit p34 = P1^4; (17)sbit p35 = P1^5; (17)sbit p36 = P1^6; (17)sbit p37 = P1^7; (17)uchar display[8][8]; (17)/*rank:A,1,2,3,4,I,心,U*/ (17)uchar code table_cha[8][8]={0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,0x18,0x1c,0x18,0x18,0x18, 0x18,0x18,0x3c,0x3c,0x66,0x66,0x30,0x18,0xc,0x6,0xf6,0x3c,0x66,0x60,0x38,0x60,0x60 ,0x66,0x3c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0x18,0x18,0x18,0 x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7 e,0x3c}; (17)/*the "ideasoft"*/ (17)uchar code table_id[40]={0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x89,0x89,0x00,0xf 8,0x27,0x27,0xf8,0x00,0x8f,0x89,0x89,0xf9,0x00,0xff,0x81,0x81,0xff,0x00,0xff,0x09, 0x09,0x09,0x01,0x0,0x01,0x01,0xff,0x01,0x01,0x00}; (17)/*railway*/ (17)uchar code dat[128]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xf c,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x8 5,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29, 0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,0x 6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x25 ,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0 x31,0x2d,0x29,0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8 ,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4}; (17)/*railway 2*/ (17)uchar code dat2[28]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xf c,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4}; (17)/*railway 3*/ (17)uchar code dat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x65,0x 64,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10}; (17)/*3p char*/ (17)uchar codex3f,0x1f,0x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18}; (17)/*initializtion (17)That is to initialize the program (17)It is write to set the timer in c52 mcu (17)So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/ (17)void sinter() (17){ (17)IE=0x82; (17)TCON=0x01; (17)TH0=0xc0; (17)TL0=0; (17)TR0=1; (17)} (17)void delay5us(void) 误差 STC 1T (18){ (18)unsigned char a,b; (18)for(b=7;b>0;b--) (18)for(a=2;a>0;a--); (18)} (18)void delay(uint i) (18){ (18)while (i--){ (18)delay5us();}12t的mcu 注释这个延时即可 (18)} (18)/*To judge the num bit*/ (18)uchar judgebit(uchar num,uchar b) (18){ (18)char n; (18)num=num&(1<<b); (18)if (num) (18)n=1; (18)else (18)n=0; (18)return n; (18)} (18)/*To figure out the round number*/ (18)uchar abs(uchar a) (18){ (18)uchar b; (18)b=a/10; (18)a=a-b*10; (18)if (a>=5) (18)b++; (18)/*To figure out the absolute value*/ (18)uchar abss(char a) (18){ (18)if (a<0) (18)a=-a; (18)return a; (18)} (18)/*The function can comparat the character (18)And remove the big one to the back.*/ (18)void max(uchar *a,uchar *b) (18){ (18)uchar t; (18)if ((*a)>(*b)) (18){ (18)t=(*a); (18)(*a)=(*b); (19)(*b)=t; (19)} (19)} (19)/*The function is to figure out the max number and return it.*/ (19)uchar maxt(uchar a,uchar b,uchar c) (19){ (19)if (a<b) (19)a=b; (19)if (a<c) (19)a=c; (19)return a; (19)} (19)void clear(char le) (19){ (19)uchar i,j; (19)for (j=0;j<8;j++) (19){ (19)for (i=0;i<8;i++) (19)display[j][i]=le; (19)} (19)} (19)void trailler(uint speed) (19){ (19)char i,j; (19)for (i=6;i>=-3;i--) (19){ (19)if (i>=0) (19)display[j][i]=display[j][i+1]; (19)} (19)if (i<4) (19){ (19)for (j=0;j<8;j++) (19)display[j][i+4]=0; (19)} (19)delay(speed); (19)} (19)} (19)void point(uchar x,uchar y,uchar z,uchar le) (19){ (19)uchar ch1,ch0; (19)ch1=1<<x; (19)ch0=~ch1; (20)if (le) (20)display[z][y]=display[z][y]|ch1; (20)else (20)display[z][y]=display[z][y]&ch0; (20)} (20)void type(uchar cha,uchar y) (20){ (20)uchar xx; (20)for (xx=0;xx<8;xx++) (20){ (20)display[xx][y]=table_cha[cha][xx]; (20)} (20)} (20)/*The first variable is the distance from the midpoint. (20)The second is the layer (20)the third is the flash speed of the time between each two point. (20)The forth is the enable io,it controls weather draw or claen.*/ (20)void cirp(char cpp,uchar dir,uchar le) (20){ (20)uchar a,b,c,cp; (20)if ((cpp<128)&(cpp>=0)) (20){ (20)if (dir) (20)cp=127-cpp; (20)else (20)cp=cpp; (20)a=(dat[cp]>>5)&0x07; (20)b=(dat[cp]>>2)&0x07; (20)c=7-c; (20)point (a,b,c,le); (20)} (20)} (20)void line(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le) (20){ (20)char t,a,b,c,a1,b1,c1,i; (20)a1=x2-x1; (20)b1=y2-y1; (20)c1=z2-z1; (20)t=maxt(abss(a1),abss(b1),abss(c1)); (20)a=x1*10; (20)b=y1*10; (21)c=z1*10; (21)a1=a1*10/t; (21)b1=b1*10/t; (21)c1=c1*10/t; (21)for (i=0;i<t;i++) (21){ (21)point(abs(a),abs(b),abs(c),le); (21)a+=a1; (21)b+=b1; (21)c+=c1; (21)} (21)point(x2,y2,z2,le); (21)} (21)void box(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) (21){ (21)uchar i,j,t=0; (21)max(&x1,&x2); (21)max(&y1,&y2); (21)max(&z1,&z2); (21)for (i=x1;i<=x2;i++) (21)t|=1<<i; (21)if (!le) (21)t=~t; (21)if (fill) (21){ (21)if (le) (21){ (21)for (i=z1;i<=z2;i++) (21){ (21)} (21)} (21)else (21){ (21)for (i=z1;i<=z2;i++) (21){ (21)for (j=y1;j<=y2;j++) (21)display[j][i]&=t; (21)} (21)} (21)} (21)else (21){ (22)if (le) (22){ (22)display[y1][z1]|=t; (22)display[y2][z1]|=t; (22)display[y1][z2]|=t; (22)display[y2][z2]|=t; (22)} (22)else (22){ (22)display[y1][z1]&=t; (22)display[y2][z1]&=t; (22)display[y1][z2]&=t; (22)display[y2][z2]&=t; (22)} (22)t=(0x01<<x1)|(0x01<<x2); (22)if (!le) (22)t=~t; (22)if (le) (22){ (22)for (j=z1;j<=z2;j+=(z2-z1)) (22){ (22)for (i=y1;i<=y2;i++) (22)display[i][j]|=t; (22)} (22)for (j=y1;j<=y2;j+=(y2-y1)) (22){ (22)for (i=z1;i<=z2;i++) (22)display[j][i]|=t; (22)} (22)} (22)for (j=z1;j<=z2;j+=(z2-z1)) (22){ (22)for (i=y1;i<=y2;i++) (22){ (22)display[i][j]&=t; (22)} (22)} (22)for (j=y1;j<=y2;j+=(y2-y1)) (22){ (22)for (i=z1;i<=z2;i++) (22){ (23)display[j][i]&=t; (23)} (23)} (23)} (23)} (23)} (23)void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) (23){ (23)uchar i; (23)max(&z1,&z2); (23)if (fill) (23){ (23)for (i=z1;i<=z2;i++) (23){ (23)line (x1,y1,i,x2,y2,i,le); (23)} (23)} (23)else (23){ (23)line (x1,y1,z1,x2,y2,z1,le); (23)line (x1,y1,z2,x2,y2,z2,le); (23)line (x2,y2,z1,x2,y2,z2,le); (23)line (x1,y1,z1,x1,y1,z2,le); (23)} (23)} (23)void poke(uchar n,uchar x,uchar y) (23){ (23)uchar i; (23)for (i=0;i<8;i++) (23){ (23)point(x,y,i,judgebit(n,i)); (23)void boxtola(char i,uchar n) (23){ (23)if ((i>=0)&(i<8)) (23){ (23)poke(n,0,7-i); (23)} (23)if ((i>=8)&(i<16)) (23){ (23)poke(n,i-8,0); (23)} (24)if ((i>=16)&(i<24)) (24){ (24)poke(n,7,i-16); (24)} (24)} (24)void rolldisplay(uint speed) (24){ (24)uchar j; (24)char i,a; (24)for (i=23;i>-40;i--) (24){ (24)for (j=0;j<40;j++) (24){ (24)a=i+j; (24)if ((a>=0)&(a<24)) (24)boxtola(a,table_id[j]); (24)} (24)delay(speed); (24)} (24)} (24)void roll_apeak_yz(uchar n,uint speed) (24){ (24)uchar i; (24)switch(n) (24){ (24)case 1: (24)for (i=0;i<7;i++) (24){ (24)display[i][7]=0; (24)display[7][6-i]=255; (24)delay(speed); (24)}; (24)break; (24){ (24)display[7][7-i]=0; (24)display[6-i][0]=255; (24)delay(speed); (24)}; (24)break; (24)case 3: (24)for (i=0;i<7;i++) (25){ (25)display[7-i][0]=0; (25)display[0][i+1]=255; (25)delay(speed); (25)}; (25)break; (25)case 0: (25)for (i=0;i<7;i++) (25){ (25)display[0][i]=0; (25)display[i+1][7]=255; (25)delay(speed); (25)}; (25)} (25)} (25)void roll_apeak_xy(uchar n,uint speed) (25){ (25)uchar i; (25)switch(n) (25){ (25)case 1: (25)for (i=0;i<7;i++) (25){ (25)line(0,i,0,0,i,7,0); (25)line(i+1,7,0,i+1,7,7,1); (25)delay(speed); (25)}; (25)break; (25)case 2: (25)for (i=0;i<7;i++) (25){ (25)line(i,7,0,i,7,7,0); (25)line(7,6-i,0,7,6-i,7,1); (25)delay(speed); (25)}; (25)for (i=0;i<7;i++) (25){ (25)line(7,7-i,0,7,7-i,7,0); (25)line(6-i,0,0,6-i,0,7,1); (25)delay(speed); (25)}; (26)break; (26)case 0: (26)for (i=0;i<7;i++) (26){ (26)line(7-i,0,0,7-i,0,7,0); (26)line(0,i+1,0,0,i+1,7,1); (26)delay(speed); (26)}; (26)} (26)} (26)void roll_3_xy(uchar n,uint speed) (26){ (26)uchar i; (26)switch(n) (26){ (26)case 1: (26)for (i=0;i<8;i++) (26){ (26)box_apeak_xy (0,i,0,7,7-i,7,1,1); (26)delay(speed); (26)if (i<7) (26)box_apeak_xy (3,3,0,0,i,7,1,0); (26)}; (26)break; (26)case 2: (26)for (i=0;i<8;i++) (26){ (26)box_apeak_xy (7-i,0,0,i,7,7,1,1); (26)delay(speed); (26)if (i<7) (26)box_apeak_xy (3,4,0,i,7,7,1,0); (26)}; (26)break; (26)case 3: (26)for (i=0;i<8;i++) (26){ (26)box_apeak_xy (0,i,0,7,7-i,7,1,1); (26)box_apeak_xy (4,4,0,7,7-i,7,1,0); (26)}; (26)break; (26)case 0: (26)for (i=0;i<8;i++) (27){ (27)box_apeak_xy (7-i,0,0,i,7,7,1,1); (27)delay(speed); (27)if (i<7) (27)box_apeak_xy (4,3,0,7-i,0,7,1,0); (27)}; (27)} (27)} (27)void trans(uchar z,uint speed) (27){ (27)uchar i,j; (27)for (j=0;j<8;j++) (27){ (27)for (i=0;i<8;i++) (27){ (27)display[z][i]>>=1; (27)} (27)delay(speed); (27)} (27)} (27)void tranoutchar(uchar c,uint speed) (27){ (27)uchar i,j,k,a,i2=0; (27)for (i=0;i<8;i++) (27){ (27)if (i<7) (27)box_apeak_xy (i+1,0,0,i+1,7,7,1,1); (27)box_apeak_xy (i2,0,0,i2,7,7,1,0); (27)a=0; (27)i2=i+1; (27)for (j=0;j<=i;j++) (27){ (27)a=a|(1<<j); (27)} (27)for (k=0;k<8;k++) (27){ (27)display[k][3]|=table_cha[c][k]&a; (27)display[k][4]|=table_cha[c][k]&a; (27)} (27)} (27)void transss() (28){ (28)uchar i,j; (28)for (i=0;i<8;i++) (28){ (28)for (j=0;j<8;j++) (28)display[i][j]<<=1; (28)} (28)} (28)/*From now on,the function below is to display the flash.*/ (28)void flash_1() (28){ (28)clear(0); (28)type(1,0); (28)delay(60000); (28)type(2,0); (28)delay(60000); (28)type(3,0); (28)delay(60000); (28)type(4,0); (28)delay(60000); (28)delay(60000); (28)clear(0); (28)rolldisplay(30000); (28)type(0,7); (28)delay(60000); (28)trailler(6000); (28)delay(60000); (28)} (28)void flash_2() (28){ (28)uchar i; (28)for (i=129;i>0;i--) (28){ (28)cirp(i-2,0,1); (28)delay(8000); (28)cirp(i-1,0,0); (28)} (28)delay(8000); (28)for (i=0;i<136;i++) (28){ (28)cirp(i-8,1,0); (29)} (29)delay(8000); (29)for (i=129;i>0;i--) (29){ (29)cirp(i-2,0,1); (29)delay(8000); (29)} (29)delay(8000); (29)for (i=0;i<128;i++) (29){ (29)cirp(i-8,1,0); (29)delay(8000); (29)} (29)delay(60000); (29)} (29)void flash_3() (29){ (29)char i; (29)for (i=0;i<8;i++) (29){ (29)box_apeak_xy(0,i,0,7,i,7,1,1); (29)delay(20000); (29)if (i<7) (29)box_apeak_xy(0,i,0,7,i,7,1,0); (29)} (29)for (i=7;i>=0;i--) (29){ (29)box_apeak_xy(0,i,0,7,i,7,1,1); (29)delay(20000); (29)if (i>0) (29)box_apeak_xy(0,i,0,7,i,7,1,0); (29)} (29)for (i=0;i<8;i++) (29){ (29)box_apeak_xy(0,i,0,7,i,7,1,1); (29)delay(20000); (29)if (i<7) (29)box_apeak_xy(0,i,0,7,i,7,1,0); (29)} (29)} (29)void flash_4() (29){ (30)an[j-7]=j; (30)for (i=0;i<=16;i++) (30){ (30)for (j=0;j<8;j++) (30){ (30)if ((an[j]<8)&(an[j]>=0)) (30)line(0,an[j],j,7,an[j],j,1); (30)} (30)for (j=0;j<8;j++) (30){ (30)if (((an[j]+1)<8)&(an[j]>=0)) (30)line(0,an[j]+1,j,7,an[j]+1,j,0); (30)} (30)for (j=0;j<8;j++) (30){ (30)if (an[j]>0) (30)an[j]--; (30)} (30)delay(15000); (30)} (30)for (j=0;j<8;j++) (30)an[j]=1-j; (30)for (i=0;i<=16;i++) (30){ (30)for (j=0;j<8;j++) (30){ (30)if ((an[j]<8)&(an[j]>=0)) (30)line(0,an[j],j,7,an[j],j,1); (30)} (30)for (j=0;j<8;j++) (30){ (30)if (((an[j]-1)<7)&(an[j]>0)) (30)line(0,an[j]-1,j,7,an[j]-1,j,0); (30)} (30)for (j=0;j<8;j++) (30){ (30)if (an[j]<7) (30)an[j]++; (30)} (30)delay(15000); (30)} (30)} (31)void flash_5() (31)char i=8,j,an[4]; (31)1 (31)for (j=7;j<11;j++) (31)an[j-7]=j; (31)while(i--) (31){ (31)for (j=0;j<4;j++) (31){ (31)if (an[j]<8) (31)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (31)if (an[j]<7) (31)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); (31)} (31)for (j=0;j<4;j++) (31){ (31)if (an[j]>3) (31)an[j]--; (31)} (31)delay(a); (31)} (31)2 (31)i=3; (31)for (j=0;j<4;j++) (31)an[j]=5-j; (31)while(i--) (31){ (31)for (j=1;j<4;j++) (31){ (31)if (an[j]<4) (31)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (31)if (an[j]<3) (31)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); (31)} (31)for (j=0;j<4;j++) (31){ (31)if (an[j]>0) (31)an[j]--; (31)} (31)delay(a); (31)} (32)3 (32)i=3; (32)for (j=1;j<4;j++) (32){ (32)for (j=1;j<4;j++) (32){ (32)if (an[j]>=0) (32)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (32)if (an[j]>0) (32)box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); (32)} (32)for (j=1;j<4;j++) (32){ (32)if (an[j]<3) (32)an[j]++; (32)} (32)delay(a); (32)} (32)4 (32)i=3; (32)for (j=0;j<4;j++) (32)an[j]=j+1; (32)while(i--) (32){ (32)for (j=1;j<4;j++) (32){ (32)if (an[j]>3) (32)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (32)if (an[j]>3) (32)box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); (32)} (32)for (j=0;j<4;j++) (32)an[j]++; (32)delay(a); (32)} (32)5 (32)i=3; (32)for (j=3;j<6;j++) (32)an[j-2]=j; (32)while(i--) (32){ (33)for (j=1;j<4;j++) (33){ (33)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (33)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); (33)} (33)if (an[j]>3) (33)an[j]--; (33)} (33)delay(a); (33)} (33)6 (33)i=3; (33)for (j=0;j<4;j++) (33)an[j]=5-j; (33)while(i--) (33){ (33)for (j=1;j<4;j++) (33){ (33)if (an[j]<4) (33)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (33)if (an[j]<3) (33)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); (33)} (33)for (j=0;j<4;j++) (33){ (33)if (an[j]>0) (33)an[j]--; (33)} (33)delay(a); (33)} (33)7 (33)i=3; (33)for (j=0;j<4;j++) (33)an[j]=3-j; (33)an[0]=2; (33)while(i--) (33){ (33)for (j=0;j<3;j++) (33){ (33)if (an[j]>=0) (33)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (34)if (an[j]>=0) (34)box_apeak_xy(j,an[j]+1,j,7-j,an[j]+1,7-j,0,0); (34)} (34)for (j=0;j<4;j++) (34){ (34)if (j<5-i) (34)an[j]--; (34)} (34)8 (34)i=10; (34)for (j=0;j<4;j++) (34)an[j]=j-2; (34)while(i--) (34){ (34)for (j=0;j<4;j++) (34){ (34)if (an[j]>=0) (34)box_apeak_xy(j,an[j],j,7-j,an[j],7-j,0,1); (34)if (an[j]>=0) (34)box_apeak_xy(j,an[j]-1,j,7-j,an[j]-1,7-j,0,0); (34)} (34)for (j=0;j<4;j++) (34){ (34)if (an[j]<7) (34)an[j]++; (34)} (34)delay(a); (34)} (34)} (34)void flash_6() (34){ (34)uchar i,j,k,z; (34)roll_apeak_yz(1,10000); (34)roll_apeak_yz(2,10000); (34)roll_apeak_yz(3,10000); (34)roll_apeak_yz(0,10000); (34)roll_apeak_yz(1,10000); (34)roll_apeak_yz(2,10000); (34)roll_apeak_yz(3,10000); (34)for (i=0;i<3;i++) (34){ (34)for (j=0;j<8;j++) (35){ (35)for (k=0;k<8;k++) (35){ (35)if ((table_3p[i][j]>>k)&1) (35){ (35)for (z=1;z<8;z++) (35){ (35)point (j,7-k,z,1); (35)delay(5000); (35)} (35)} (35)} (35)} (35)trans(7,15000); (35)} (35)} (35)void flash_7() (35){ (35)uchar i; (35)uint a=3000; (35)roll_apeak_yz(0,10000); (35)roll_apeak_yz(1,10000); (35)roll_apeak_yz(2,10000); (35)roll_apeak_yz(3,10000); (35)roll_apeak_yz(0,10000); (35)roll_apeak_yz(1,10000); (35)roll_apeak_yz(2,10000); (35)roll_apeak_yz(3,10000); (35)roll_apeak_yz(0,10000); (35)roll_apeak_yz(1,10000); (35)roll_apeak_yz(2,10000); (35)roll_apeak_xy(0,10000); (35)roll_apeak_xy(1,10000); (35)roll_apeak_xy(2,10000); (35)roll_apeak_xy(3,10000); (35)roll_apeak_xy(0,10000); (35)roll_apeak_xy(1,10000); (35)roll_apeak_xy(2,10000); (35)roll_apeak_xy(3,10000); (35)for (i=0;i<8;i++) (36){ (36)box_apeak_xy (0,i,0,7-i,i,7,1,1); (36)delay(a); (36)} (36)delay(30000); (36)roll_3_xy(0,a); (36)delay(30000); (36)roll_3_xy(1,a); (36)delay(30000); (36)roll_3_xy(2,a); (36)delay(30000); (36)roll_3_xy(0,a); (36)delay(30000); (36)roll_3_xy(1,a); (36)delay(30000); (36)roll_3_xy(2,a); (36)delay(30000); (36)roll_3_xy(3,a); (36)for (i=7;i>0;i--) (36){ (36)box_apeak_xy(i,0,0,i,7,7,1,0); (36)delay(a); (36)} (36)} (36)void flash_8() (36){ (36)uchar i; (36)for (i=5;i<8;i++) (36){ (36)tranoutchar(i,10000); (36)delay(60000); (36)delay(60000); (36)} (36)} (36)void flash_9() (36){ (36)char i; (36)uchar j,an[8],x,y,t,x1,y1; (36)for (i=0;i<8;i++) (36){ (36)box_apeak_xy (i,0,0,i,7,7,1,1); (36)if (i) (37)box_apeak_xy (i-1,0,0,i-1,7,7,1,0); (37)delay(10000); (37)} (37)roll_apeak_xy(3,10000); (37)roll_apeak_xy(0,10000); (37)roll_apeak_xy(1,10000); (37)for (i=0;i<7;i++) (37){ (37)line(6-i,6-i,0,6-i,6-i,7,1); (37)line(i,7,0,i,7,7,0); (37)delay(10000); (37)} (37)for (i=0;i<85;i++) (37){ (37)clear(0); (37)for (j=0;j<8;j++) (37){ (37)t=an[j]%28; (37)x=dat2[t]>>5; (37)y=(dat2[t]>>2)&0x07; (37)t=(an[j]-14)%28; (37)x1=dat2[t]>>5; (37)y1=(dat2[t]>>2)&0x07; (37)line(x,y,j,x1,y1,j,1); (37)} (37)for (j=0;j<8;j++) (37){ (37)if ((i>j)&(j>i-71)) (37)an[j]++; (37)} (37)delay(5000); (37)} (37)for (i=0;i<85;i++) (37){ (37)clear(0); (37)for (j=0;j<8;j++) (37){ (37)t=an[j]%28; (37)x=dat2[t]>>5; (37)y=(dat2[t]>>2)&0x07; (37)t=(an[j]-14)%28; (38)x1=dat2[t]>>5; (38)y1=(dat2[t]>>2)&0x07; (38)line(x,y,j,x1,y1,j,1); (38)} (38)for (j=0;j<8;j++) (38){ (38)if ((i>j)&(j>i-71)) (38)an[j]--; (38)} (38)delay(5000); (38)} (38)for (i=0;i<29;i++) (38){ (38)clear(0); (38)y=(dat2[t]>>2)&0x07; (38)t=(an[0]-14)%28; (38)x1=dat2[t]>>5; (38)y1=(dat2[t]>>2)&0x07; (38)box_apeak_xy(x,y,0,x1,y1,7,0,1); (38)box_apeak_xy(x,y,1,x1,y1,6,0,1); (38)an[0]++; (38)delay(5000); (38)} (38)for (i=0;i<16;i++) (38){ (38)clear(0); (38)t=an[0]%28; (38)x=dat2[t]>>5; (38)y=(dat2[t]>>2)&0x07; (38)t=(an[0]-14)%28; (38)x1=dat2[t]>>5; (38)y1=(dat2[t]>>2)&0x07; (38)box_apeak_xy(x,y,0,x1,y1,7,1,1); (38)an[0]--; (38)delay(5000); (38)} (38)for (i=0;i<8;i++) (38){ (38)line(i,i,0,0,0,i,0); (38)delay(5000); (39)} (39)for (i=1;i<7;i++) (39){ (39)line(i,i,7,7,7,i,0); (39)delay(5000); (39)} (39)for (i=1;i<8;i++) (39){ (39)clear(0); (39)box(7,7,7,7-i,7-i,7-i,0,1); (39)delay(10000); (39)} (39)for (i=1;i<7;i++) (39){ (39)clear(0); (39)box(0,0,0,7-i,7-i,7-i,0,1); (39)delay(10000); (39){ (39)clear(0); (39)box(0,0,0,i,i,i,0,1); (39)delay(10000); (39)} (39)for (i=1;i<7;i++) (39){ (39)clear(0); (39)box(7,0,0,i,7-i,7-i,0,1); (39)delay(10000); (39)} (39)for (i=1;i<8;i++) (39){ (39)box(7,0,0,7-i,i,i,1,1); (39)delay(10000); (39)} (39)for (i=1;i<7;i++) (39){ (39)clear(0); (39)box(0,7,7,7-i,i,i,1,1); (39)delay(10000); (39)} (39)} (39)void flash_10() (40){ (40)uchar i,j,an[4],x,y,t; (40)for (i=1;i<7;i++) (40){ (40)clear(0); (40)box(0,6,6,1,7,7,1,1); (40)box(i,6,6-i,i+1,7,7-i,1,1); (40)box(i,6,6,i+1,7,7,1,1); (40)box(0,6,6-i,1,7,7-i,1,1); (40)box(0,6-i,6,1,7-i,7,1,1); (40)box(i,6-i,6-i,i+1,7-i,7-i,1,1); (40)box(i,6-i,6,i+1,7-i,7,1,1); (40)box(0,6-i,6-i,1,7-i,7-i,1,1); (40)delay(30000); (40)} (40)for (i=0;i<4;i++) (40){ (40)an[i]=6*i; (40)} (40)clear(0); (40)for(j=0;j<4;j++) (40){ (40)t=an[j]%24; (40)x=dat3[t]>>4; (40)y=dat3[t]&0x0f; (40)box(x,y,0,x+1,y+1,1,1,1); (40)box(x,y,6,x+1,y+1,7,1,1); (40)} (40)for (j=0;j<4;j++) (40)an[j]++; (40)delay(10000); (40)} (40)for (i=0;i<35;i++) (40){ (40)clear(0); (40)for(j=0;j<4;j++) (40){ (40)t=an[j]%24; (40)x=dat3[t]>>4; (40)y=dat3[t]&0x0f; (40)box(x,y,0,x+1,y+1,1,1,1); (41)box(x,y,6,x+1,y+1,7,1,1); (41)} (41)for (j=0;j<4;j++) (41)an[j]--; (41)delay(10000); (41)} (41)for (i=0;i<35;i++) (41){ (41)clear(0); (41)for(j=0;j<4;j++) (41){ (41)t=an[j]%24; (41)x=dat3[t]>>4; (41)y=dat3[t]&0x0f; (41)box(x,0,y,x+1,1,y+1,1,1); (41)box(x,6,y,x+1,7,y+1,1,1); (41)} (41)for (j=0;j<4;j++) (41)an[j]++; (41)delay(10000); (41)} (41)clear(0); (41)for(j=0;j<4;j++) (41){ (41)t=an[j]%24; (41)x=dat3[t]>>4; (41)y=dat3[t]&0x0f; (41)box(x,0,y,x+1,1,y+1,1,1); (41)box(x,6,y,x+1,7,y+1,1,1); (41)} (41)for (j=0;j<4;j++) (41)an[j]--; (41)delay(10000); (41)} (41)for (i=6;i>0;i--) (41){ (41)clear(0); (41)box(0,6,6,1,7,7,1,1); (41)box(i,6,6-i,i+1,7,7-i,1,1); (41)box(i,6,6,i+1,7,7,1,1); (42)box(0,6,6-i,1,7,7-i,1,1); (42)box(0,6-i,6,1,7-i,7,1,1); (42)box(i,6-i,6-i,i+1,7-i,7-i,1,1); (42)box(i,6-i,6,i+1,7-i,7,1,1); (42)box(0,6-i,6-i,1,7-i,7-i,1,1); (42)delay(30000); (42)} (42)} (42)void flash_11() (42){ (42)uchar i,j,t,x,y; (42)uchar code daa[13]={0,1,2,0x23,5,6,7,6,5,0x23,2,1,0}; (42)for (j=0;j<5;j++) (42){ (42)for (i=0;i<13;i++) (42){ (42)if (daa[i]>>4) (42){ (42)t=daa[i]&0x0f; (42)line (0,0,t+1,0,7,t+1,1); (42)} (42)else (42)t=daa[i]; (42)line (0,0,t,0,7,t,1); (42)} (42)} (42)for (j=1;j<8;j++) (42){ (42)if (j>3) (42)t=4; (42)else (42)t=j; (42)for (i=0;i<24;i+=j) (42){ (42)x=dat3[i]>>4; (42)y=dat3[i]&0x0f; (42)box_apeak_xy(0,x,y,0,x+1,y+1,1,1); (42)transss(); (42)delay(10000); (42)} (42)} (42)for (j=1;j<8;j++) (43){ (43)if (j>3) (43)t=4; (43)else (43)t=j; (43)for (i=0;i<24;i+=j) (43){ (43)x=dat3[i]>>4; (43)y=dat3[i]&0x0f; (43)point (0,x,y,1); (43)transss(); (43)delay(10000); (43)} (43)} (43)} (43)void _P3(uchar x) (43){ (43)p30 = x&0x01; (43)p31 = (x&0x02)>>1; (43)p32 = (x&0x04)>>2; (43)p33 = (x&0x08)>>3; (43)p34 = (x&0x10)>>4; (43)p35 = (x&0x20)>>5; (43)p36 = (x&0x40)>>6; (43)p37 = (x&0x80)>>7; (43){ (43)sinter(); (43)while(1){ (43)clear(0); (43)/*play list*/ (43)flash_1(); (43)clear(0); (43)flash_2(); (43)flash_3(); (43)flash_4(); (43)flash_4(); (43)flash_5(); (43)flash_5(); (43)flash_6(); (43)flash_7(); (43)flash_8(); (43)flash_9(); (43)flash_10(); (43)clear (0); (43)flash_11(); (43)flash_9(); (43)flash_5(); (43)flash_7(); (44)flash_5(); (44)flash_6(); (44)flash_8(); (44)flash_9(); (44)flash_10(); (44)} (44)} (44)P0; 573 in (44)P1; uln2803 (44)P2; 573 LE (44)void print() interrupt 1 (44){ (44)uchar i; (44)static uchar layer=0; (44)P1=0; (44)for (i=0;i<8;i++) (44){ (44)P2=1<<i; (44)delay(3); (44)P0=display[layer][i]; (44)P1=1<<layer; (44)if (layer<7) (44)layer++; (44)else (44)layer=0; (44)TH0=0xc0; (44)TL0=0; (44)} (44)P0; 573 in p2 (44)P1; uln2803 p0 (44)P2; 573 LE p1 (44)void print() interrupt 1 (44){ (44)uchar i; (44)static uchar layer=0; (44)_P3(0); (44)for (i=0;i<8;i++) (44){ (44)P2=1<<i; (44)delay(3); (44)P0=display[layer][i]; (44)delay(3); (44)} (45)_P3(1<<layer); (45)if (layer<7) (45)layer++; (45)else (45)layer=0; (45)TH0=0xc0; (45)TL0=0; (45)} (45)void print() interrupt 1 (45){ (45)uchar i; (45)static uchar layer=0; (45)P0=0; (45)P1=0x00; (45)for (i=0;i<8;i++) (45){ (45)P1=0x00; (45)P2=display[layer][i]; (45)delay(3); (45)P1=1<<i;_crol_(0xfe,i) ; (45)。
光立方毕业设计论文
光立方毕业设计论文光立方毕业设计论文引言:在当代科技快速发展的时代背景下,光立方作为一种新兴的显示技术,吸引了越来越多的关注。
本篇论文将就光立方的原理、应用和未来发展进行探讨,并提出一种基于光立方的创新设计方案。
一、光立方的原理光立方是一种基于全息成像技术的三维显示技术,其原理是利用光的干涉和衍射现象实现对光场的再现。
通过将光场信息记录在光敏材料上,并利用激光光束对光敏材料进行读取,可以将记录的光场再现为真实的三维图像。
光立方的原理使得我们可以以全息的方式呈现物体的三维形态,使观察者能够从不同角度感受到物体的真实立体感。
二、光立方的应用1. 教育领域光立方可以为学生提供更加直观、生动的三维教学内容。
通过在课堂上使用光立方,学生可以更好地理解抽象的概念,提高学习效果。
例如,在生物学课程中,通过使用光立方展示细胞结构和分子模型,学生可以更加深入地了解细胞的组成和功能。
2. 医学领域光立方在医学领域的应用也非常广泛。
例如,在医学图像诊断中,光立方可以提供更加清晰、逼真的三维影像,帮助医生更准确地判断病变的位置和程度。
此外,光立方还可以应用于手术模拟和培训,提高医生的操作技术和安全性。
3. 艺术与文化领域光立方在艺术与文化领域的应用也十分有潜力。
通过利用光立方技术,可以创作出更加真实、立体的艺术作品。
例如,在博物馆展览中,利用光立方展示文物和艺术品,可以使观众更好地欣赏和理解作品的细节和魅力。
三、光立方的未来发展光立方作为一种新兴的显示技术,还有很大的发展空间。
未来,光立方有望在以下几个方面实现进一步的突破和创新:1. 分辨率提升目前,光立方的分辨率还有待提高。
随着技术的不断进步,我们可以预见,未来的光立方将能够呈现更加清晰、细腻的图像,使观众能够更加真实地感受到物体的立体效果。
2. 投影范围扩大目前,光立方的投影范围相对较小,限制了其在实际应用中的使用。
未来,我们可以通过改进光立方的投影系统,使其能够实现更大范围的投影,提供更广阔的观看体验。
光立方制作教程范文
光立方制作教程范文光立方是一种比较复杂的装置,可以通过灯光和反射制造出立体的光影效果。
在这个教程中,我将为你详细讲解如何制作一个光立方,并提供一些材料和建议。
材料清单:1.透明的亚克力(至少6个相同大小的面板)2.密封胶3.刻刀4.钳子5.磨砂纸6.LED灯带(选择适合你的立方体尺寸的长度)7.电线8.电池盒和开关9.螺丝钉和螺丝刀10.热熔胶枪(可选)步骤1:准备工作首先,你需要确定光立方的尺寸。
一个标准的尺寸是30×30×30厘米,但你可以根据个人喜好调整尺寸。
然后,购买足够数量的亚克力板,确保它们大小相同。
步骤2:制作立方体框架使用刻刀将亚克力板切割成6个相等大小的面板。
将这些面板用成正方形或长方形的形式排列,然后使用密封胶将它们黏合在一起。
在黏合之前,确保所有边缘都是光滑的,如果有需要,使用磨砂纸进行打磨。
黏合好后,用夹子固定它们,让它们干燥。
如果需要,你也可以使用热熔胶枪来黏合亚克力板。
步骤3:安装灯光在立方体的内部沿边缘黏贴一圈LED灯带。
你可以使用热熔胶枪将灯带固定在立方体内部。
确保灯带均匀分布,并注意不要让任何电线暴露在外。
步骤4:连接电线使用电池盒和开关连接LED灯带。
将电池盒固定在立方体的底部,并通过亚克力板上的小孔将电线引出。
在电线的末端安装开关,并将开关连接到电池盒上。
这样,你就可以随时控制光立方的开关。
步骤5:封闭光立方使用刻刀在立方体的一个面板上切割一个小孔,以便将电线引出。
然后使用密封胶将该面板黏上,确保所有边缘都是严密封闭的。
这样,你的光立方就完成了。
步骤6:测试和调整将电池装入盒子中并打开开关,测试LED灯带是否正常工作。
如果有任何问题,你可以检查电线连接以及开关是否正常工作。
步骤7:定制光立方一旦光立方制作完成,你可以根据个人喜好进行定制。
例如,你可以在立方体的底部安装小脚架,这样可以使立方体稳定地放置在桌面上。
你还可以在立方体的面板上刻字、画图案或进行其他装饰。
光立方
电子课程设计——光立方学院:电子信息工程学院专业、班级:姓名:学号:指导教师:李小松2013年12月目录一、设计任务与要求 (3)二、总体框图 (4)三、选择器件 (5)四、功能模块 (8)五、总体设计电路图 (12)光立方一、设计任务与要求本设计要求制作出一个8x8x8的三维发光二极管显示方阵,能够通过编程来控制每个发光二极管的亮灭,利用人眼的视觉暂留效果,从而显示出不同的静态或动态画面。
硬件部分由主控电路,驱动电路,显示电路.其中各电路部分的具体要求如下:1.1主控电路:尽量使用内存量大的控制芯片作为主控模块,因为光立方的程序量较大,普通的8051单片机的内存是不够用的。
另外尽量使用处理速度快的主控芯片,为了产生所谓的动画效果,光立方每层LED灯的亮灭要求刷新速度很快,因此单片机的处理速度越快越好。
2.2驱动电路要求使用驱动能力高的并且集成度高的芯片作为驱动模块,8*8*8光立方要求的LED灯多达512个,如果这些灯全部点亮的话,会需要很大的电流,所以所选择的的驱动芯片一定要有足够的驱动能力,另外集成度高的芯片往往能为硬件的搭接提供方便。
2.3显示电路显示部分对LED灯的要求是LED自身的管脚长度尽量要长,这样在灯与灯之间焊接的时候就可以完全靠它们自身的管脚来搭接,而不需要再外接其他的支架,使光立方整体电路的焊接变得简单容易,并且整洁美观。
其次对LED灯的发光亮度要求是不能太亮,否则灯与灯之间会相互影响,从而影响整体的动画效果。
本设计的难度主要在512个LED灯的搭建上,焊接的时候必须要有耐心,如果在整个光立方都已搭接完成的时候才发现某个地方出现虚焊、漏焊等现象,那么后果是不堪设想的,所以最好是焊了一小部分电路后对其进行测试,一边搭建电路,一边测试电路,这样会在发现问题的情况下及时进行修改,切不可一次性将光立方搭建成型,而后再测试,那时要再修改可要大费周章了。
其次是软件的编写,在写程序的时候一定将原理搞清楚,这样写起来会得心应手,尽量在有能力的情况下多编写一些静态或者动态画面,增强自己的3D编程能力。
3D光立方毕业设计
经过这次的设计,让我们更明确了团队合作的要领和精神,更明白了焊接技术的重要性,也让我们对单片机编程的进一步了解,为了这次设计我们找了查找了很多资料,包括一些对该设快捷又免费,让我们很方便地搜索到了我们所需要的设计资料和丰富的知识。此次毕业设计,是我大学学习中遇到过的时段最长、涉及内容最广、 工作量最大的一次设计。用老师的一句话概括就是这次毕业设计相当如是把以前的小课程设计综合在一起的过程,只要把握住每个小课设的精华、环环紧扣、增强逻辑,那么这次的任务也就不难了。同时感谢老师对我们的指导和为我们理清思路从而使我们更快我完成设计。
(3)在调试过程中,有一竖面的灯完全不亮,第一个想法是灯没有供电,检测供电电路法发现没有问题,于是我找到573这一部分,因为这一部分跳线较多且线路密集,逐一测量发现线头间短路了,从新焊接后测试,故障顺利排除。
(4)在调试过程中有几个灯一直不亮,用万用表欧姆档测量发现灯已经烧坏,拆下坏掉,但是有2个灯是存在虚焊问题,从新焊接后正常工作。
图7 573驱动连接正面
2、主控电路
主控电路是最简单的电路,主要是最小系统,其中还有一个控制层的驱动芯片焊接在主控板上,如图所示:
图8 最小系统
3、显示模块
首先我们用一块比较大万能板,在上面做了8*8个点的标志,间距为2mm然后把灯按统一形状掰好管脚。然后固定在在万能板上进行焊接,焊接完如下图:
图9 灯的焊接
3
D
光
立
方
的
设
计
题目:3D光立方
级别:2011级
专业:电子科学与技术
姓名:李鹏华
一、摘要............................................1
二、关键字..........................................1
LED光立方课程设计
目录1 课程设计要求及总体方案介绍............................................ 错误!未定义书签。
1.1 设计课题任务要求..................................................... 错误!未定义书签。
1.2 3D LED光立方的优越性及主要应用........................ 错误!未定义书签。
1.3 设计课题主要原理..................................................... 错误!未定义书签。
1.4 3D LED设计总体方案................................................ 错误!未定义书签。
2 硬件系统设计........................................................................ 错误!未定义书签。
2.1 硬件各部分电路原理介绍......................................... 错误!未定义书签。
2.2 LED灯的选择.............................................................. 错误!未定义书签。
2.3 LED灯制作过程.......................................................... 错误!未定义书签。
3 软件系统设计........................................................................ 错误!未定义书签。
3.1 3DLED主函数及主流程图.......................................... 错误!未定义书签。
基于51单片机的光立方的设计2300字
基于51单片机的光立方的设计2300字摘要:本设计以51单片机为核心控制器,74LS245为I/O扩展口,制作了一个三维立体显示图案的LED光立方,文中给出了设计方案及原理图。
毕业关键词:LED光立方;74LS245;51单片机注:陕西省大学生科技创新项目(2014XK081)本设计制作出的三维立体显示图案的LED光立方,不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案,同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。
1.背景与意义随着人们生活水平的不断提高,3D效果的欣赏已经成了人们的追求,美轮美奂的观赏让人醉心不已,给人带来无比宽松舒适的美感。
3D技术的将来必有广泛应用。
仅3D打印技术这一还处在萌芽阶段的技术就已经在世界掀起了巨大波澜。
就现有来看3D技术已经应用于军工、航空航天、水下作业、模拟分析等高端领域。
随着科技发展3D技术的成本也会越来越低,相信3D电视将来也会像液晶电视一样走入普通家庭。
3D技术在未来还可以应用于教学,医学,地下采矿,空中导航等领域。
但就目前的发展,3D还不能够普及到人们的生活中,这也就萌发了人们对于3D的设计。
因此,对发光二极管进行控制,使其显示出不同的花样,带给未来3D技术的科技体验。
2.设计的总体要求和方案选择本次设计制作一个三维的发光二极管立方显示体,能够通过编写程序来实现对每一个发光二级管的亮灭控制,从而可以显示多种多样的图案。
为了吸引观众增强显示效果,可以有多种显示模式。
3.工作原理有8个8*8点阵,再用8个引脚来当充当各个8*8点阵的“开关”。
只要将64个灯阳极连在一起,在连到这个引脚上。
采用了hc573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,573的64个输出引脚控制前面所述每一个面的64个灯;而每层灯的阴极全连接在一起接入uln2803,由uln2803控制的每一个层灯。
光立方 (2)
电子课程设计——光立方学院:电子信息工程学院专业、班级:姓名:学号:指导教师:李小松2013年12月一:设计任务和要求 (2)二:总体框图和所用到的器件 (9)三:器件选择 (11)四:功能模块 (13)五:总体pcb图: (15)六:实物图及心得体会 (16)一:设计任务和要求光立方顾名思义是一个立方体,我采用的是8*8*8的模式,主要分为三个都是纯手工焊接。
采用的主控芯片STC15F2K60S2芯片,驱动电路是采用我们常用的74HC573数字芯片。
利用512个LED组成的8x8x8的立方体结构,每层共64个LED采用共阴的接法,一共8层,利用锁存器74HC573与驱动器ULN2803的硬件组合而成。
用控制器控制焊接好的8*8*8光立方是之显示不同的图案,具体步骤如下:1.将8*8*8个发光二极管焊接好。
焊接方法如下:1.先将二极管弯曲成如图1-1-1所示形状阳极,先弯曲90度,在弯曲90度。
这样做是为了和上面的二极管连接时做到无缝隙。
阴极,直接弯曲90度。
这样做为了和横排的二极管相连接。
进行八次上诉焊接后接下来就是将8束的LED焊接起来。
在从点到线时是将所有LED的阴极连在一起,而这次则是将所有LED阳极弯折并依次连接,焊接好的二极管示意图如图1-1-1所示。
注意:由于焊接过程中将产生静电容易将LED烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具检测。
图1-1-1 二极管的弯曲示意图2.将八个一组的二极管阴极连到一起,依次焊接。
焊接时最好放在模板上。
这样可以保证灯之间的距离。
否则在进行搭焊时,容易不匹配进行八次上诉焊接后接下来就是将8束的LED焊接起来。
在从点到线时是将所有LED的阴极连在一起,而这次则是将所有LED 阳极弯折并依次连接,连接好的二极管如图1-1-2所示,注意:由于焊接过程中将产生静电容易将LED烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具检测。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1、设计要求与方案 (1)1.1设计目的 (1)1.2设计要求 (1)1.3设计思路 (1)1.4设计的总体要求及方案选择 (2)2、工作原理 (3)2.1模块的简介 (3)2.2 3DLED光立方工作原理 (4)3、方案选择 (5)3.1电源的选择 (5)3.2 3D显示核心控制器 (5)3.3 I/O口扩展芯片的选择 (6)3.4 LED发光显示二级管 (6)4、硬件整体设计概述及功能分析 (8)4.1 系统概述 (8)4.2 系列单片机简介 (9)4.3 时钟电路设计 (9)4.4 复位电路设计 (10)4.5 74HC573芯片连接电路图与介绍 (11)5、主程序设计思路 (13)5.1程序流程框图 (13)5.2显示程序的设计 (13)5.2.1 LED显示屏的数据传送 (13)5.2.2 显示程序的设计 (14)6、硬件电路设计 (15)6.1 单片机与74HC573连接线路图 (15)6.2 LED焊接方法 (15)6.2.1焊前准备工作 (15)6.2.2焊接 (16)6.3 整体实物图 (17)7、程序设计分析与选择 (18)7.1单片机C语言主要特点 (19)7.2单片机C语言与标准语言的区别 (19)7.3数据类型的选用 (20)7.4算法设计问题 (20)7.5数据存储器的分配 (21)7.6单片机C语言与汇编语言的混合编程 (21)7.7程序分析选择 (23)8、程序设计 (24)9、设计结果分析 (28)总结 (30)致谢 (31)参考文献 (3)1、设计要求与方案1.3 设计思路本设计根据二极管点阵的原理由单片机I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间,来设置每幅画面的延迟时间使连续的一系列画面呈现动态。
每一个层面的二极管阳极接在一起受一路I/O 口控制,实际电路中该路I/O口输出的控制信号通过5V继电器的吸合和断开来控制的,再输入发光二极管的阳极使其驱动。
每一个二极管的阴极分别受单片机扩展后的I/O控制。
每个灯都是由片选端口和控制端口共同决定亮或灭。
因此,我们可以随意的来点亮立方体中任意一处的灯,来构建多种多样的图案。
1.4 设计的总体要求及方案选择本次设计制作一个8*8*8的三维的发光二极管立方显示体,能够通过编写程序来实现对每一个发光二级管的亮灭控制,从而可以显示多种多样的图案。
为了吸引观众增强显示效果,可以有多种显示模式。
最简单的显示模式是静态显示。
与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够变化的。
按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。
产生不同显示显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。
这样程序书写就不会过于繁琐和重复,而且对核心控制器的内存空间要求不高。
借鉴单片机控制LED点阵显示的原理,通过系统分析,确定该系统该具有哪些功能,有哪些模块,各个模块之间是怎样连接,以及怎样组合电路是最合理最简单的,即硬件方案设计。
编写硬件电路的相对应软件程序部分,利用仿真软件对程序进行测试修改。
电路系统焊接完毕后,测试整个的系统模块的功能,看各个功能是否能正常运行,并依据实验结果找出程序中的错误,改正这些错误至测试成功完成毕业设计要求2、工作原理2.1模块的简介有8个8*8点阵,再用8个引脚来当充当各个8*8点阵的“开关”。
只要将64个灯阳极连在一起,在连到这个引脚上。
采用了HC573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,573的64个输出引脚控制前面所述每一个面的64个灯;而每层灯的阴极全连接在一起接入单片机,由单片机控制的每一个层灯。
通过单片机主控芯片AT89S52来控制所有灯的亮灭,从而控制P0、P1、P2实现控制X、Y、Z空间立体控制来显示我们所需要显示的现象。
如图2.1和2.2所示。
整个设计主要分为三个模块分别是主控模块、驱动模块、显示模块.图2.1 层面图2.2 64个灯孔2.2 3DLED 光立方工作原理 本设计介绍一个3D LED 光立方显示屏的制作,在单片机的P0口输出显示代码,然后把扫描片选择锁存器送入74HC573,通过片选哪一列对应的芯片就可以把显示的内容送到显示屏显示。
考虑到P0口必需设置上拉电阻,我们采用4.7 k Ω排电阻作为上拉电阻。
设计原理:利用单片控制LED 点阵显示的原理和控制技术,来制作控制光立方显示。
通过编写程序控制不同LED 的显示,显示所要显示的内容。
根据人眼的视觉暂留效应,设置每幅画面的延迟时间使连续的一系列画面呈现动态。
最终达到所要显示的内容。
每个灯都是由层控制端和列控制端共同决定亮或灭。
图2.2 LED 光立方整体显示框图 在三维光立方中采用动态扫描显示,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。
最典型的例子就是电影放映机。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED 显示技术中被广泛使用。
现简单描述一下用动态扫描显示的方单片机层驱动器LED 光立方列驱动器式,显示字符“B”的过程。
图2.3 用动态扫描显示字符“B”的过程3、方案选择3.1电源的选择方案一:采用普通干电池作为LED系统的电源,由于点阵系统耗电量较大,点阵系统一般悬挂在高处上,一直不停的工作。
使用干电池需经常换电池,不符合节约型社会的要求。
方案二:采用一块LM7805三端集成稳压器。
把市电经变压器降压输入电路,而后整流送到LM7805三端稳压器稳压输出作为工作电压。
不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。
方案三:采用5V电源的移动充电宝。
基于以上分析,决定选取5V电源的移动充电宝供电电源。
3.2 3D显示核心控制器控制部分是整个系统的核心部分,其功能可以实现与上位机通信接收上位机发送的数据和控制指令经处理过后控制显示屏显示内容。
其常用的电子设计方法有单片机、DSP、及EDA技术。
方案一:单片机单片机是集成了CPU,ROM,RAM和I/ O口的微型计算机。
它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。
单片机品种齐全,型号多样 CPU 从8,16,32到64位,多采用RISC 技术,片上I/O非常丰富,有的单片机集成有A/ D,“看门狗”,PWM,显示驱动,函数发生器,键盘控制等。
它们的价格也高低不等,这样极大地满足了开发者的选择自由。
除此之外单片机还具有低电压和低功耗的特点。
随着超大规模集成电路的发展,单片机在便携式产品中大有用武之地。
方案二:DSP 芯片DSP 又叫数字信号处理器。
顾名思义,DSP主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。
现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域。
DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。
DSP 依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
芯片内置544字的高速SRAM。
外部可寻址64K字程序/数据及I/O,令周期在25ns~50ns之间,实时性处理比16位单片机快2倍以上,可取代一般的单片机。
方案三:EDAEDA(即Electronic Design Automation) 即电子设计自动化,它是以计算机为工具,在EDA 软件平台上,对用硬件描述语言HDL 完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。
而且MCU和DSP 都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,FPGA/CPLP器件在功能开发上是软件实现的,但物理机制却和纯硬件电路一样,十分可靠。
基于以上分析,三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用。
现在市场上常用的单片机主要有MCS-52、AVR、ARM、PIC等。
其中应用最广泛的单片机首推Intel的52系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势常作为单片机学习的教材。
所以决定选取52系列单片机作为控制部分的核心器件。
3.3 I/O口扩展芯片的选择方案一:选取串口输入并口输出芯片74LS164,虽然I/O口使用较少,由于本次设计共需要72路I/O口,列驱动电路就需要8块74LS164。
显示数据是先后顺序给送去的,显示会有延迟,而LED动态显示的刷新的时间控制大约10ms,实时性差,效果不好。
方案二:74HC573 跟74LS573的管脚一样。
器件的输入是和标准CMOS 输出兼容的;加上拉电阻,他们能和HC/ALSTTL 输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
8块74HC573共用64个I/O口,数据可以并行写入芯片,延迟时间少,满足设计要求。
综合以上比较,决定选取74HC573作为列线驱动I\O口扩展芯片。
4、硬件整体设计概述及功能分析4.1 系统概述3D LED光立方总体框图如图3.1所示。
电路大体上可以分成核心控制电路、显示驱动电路、串信通信电路三部分。
核心控制电路部分包括一个52系统CUP和一些外围电路。
在整个电路当中此电路部分可以相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给显示屏部分发送命令。
单片机根据编写好的内容和指令通过I/O口扩展后驱动8*8*8 LED光立方显示屏。
本次设计将以此方案为指导思想展开具体的硬件电路设计。
显示电路采用动态扫描方式进行显示时,每列有一个列驱动器,各列的同名行共用一个行驱动器。
由单片机给出的行选通信号,从第一列开始,按顺序依次对各列进行扫描选通,根据锁存器的特性可以把数据锁存输出。
这样就可以把八列的数据输出显示,完成列线数据的传送。
另一方而,根据各列层面要显示的数据,通过三极管驱动继电器来控制相应层面的电平,列与层面的数据结合共同来显示图案。
图4.1 系统结构设计总图4.2 系列单片机简介单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。