基于STC单片机的888光立方系统设计毕业论文
2022-05-20 22:02:07
论文总字数:16571字
摘 要
随着生活水平的不断提高,各种显示设备层出不穷,而本课题将构建一个光立方控制系统。光立方控制系统可以显示多种动画,具有极高的观赏性,并且本光立方系统给出了三种控制命令,可以根据自己的需要,将本系统看做一个显示模块,输出自己想要的图像。
该光立方控制系统将用512个发光二极管搭建成一个长、宽、高为8*8*8的LED灯立方体显示器。在该系统中,采用STC60S2单片机作为控制模块,以单片机最小系统为核心,并以TM1818与MC74HC138芯片构成驱动电路,使每个LED灯均能单独得到控制。上位机发送动画信号,通过控制每个LED灯的亮灭,得到一帧图。由于人眼存在视觉暂留现象,不断的刷新每一帧图,便可以形成各种各样的动态图像,比如水滴下落、上升、旋转等多种动画效果,同时也可以在上位机中播放音频文件,光立方显示音频信号的频谱特性。最终的显示效果表明此设计实现了预期的功能,同时能稳定,流畅地工作,并具有很好的扩展性。
关键词:单片机 LED 光立方 图像显示 频谱显示
Design of 8*8*8 Light Cube system based on STC Microcontroller
Abstract
Various display devices are available, with the continuous development of living standards ,while this capstone project will build a light cube control system. Light Cube control system can display a variety of animations with highly ornamental effects. The light cube system will give three control commands, according to which everyone can display the output image using the system.
The light cube control system will be built with 512 light-emitting diodes into a length, width and height of 8 * 8 * 8 LED light cube display. In this system, STC60S2 SCM is used for composing the core circuit and MC74HC138 chip is used to constitute the driving circuit, by which each LED lamp can be controlled separately. PC send animation signal to control each LED lamp light off or on. Due to the presence of Visual staying phenomenon, constantly refreshing every frame images, it can form a variety of dynamic images, such as water droplets fall, rise, spin, and other animation effects, but can also play audio in the host computer file, light cube display audio signal spectral characteristics. The final display indicates that the design and implementation of the desired functionality, stable, smooth working, and has good scalability.
Key Words: Microcontroller; LED; Light cube; Image display ; Spectrum display
目录
摘要 I
Abstract II
目录 III
第一章 绪论 1
1.1 课题研究的背景 1
1.2 论文所做的工作 1
第二章 系统设计概述 3
2.1 系统的内容和要求 3
2.2 系统的方案选择 4
2.2.1 生成动画 4
2.2.2 驱动模块 4
2.2.3 控制模块 5
2.2.4 单片机编程语言 5
第三章 硬件系统设计 7
3.1 硬件系统框图 7
3.2 控制模块 7
3.2.1 时钟电路 7
3.2.2 复位电路 8
3.3 驱动模块 8
3.3.1 束驱动电路 9
3.3.2 亮度调节电路 10
3.3.3 层驱动电路 10
3.4 显示电路模块 12
3.5 整体电路 12
第四章 软件系统设计 14
4.1 主程序 14
4.2 通信协议 15
4.3 上位机程序 16
4.4 调试程序 17
第五章 系统调试 19
5.1 软件系统调试 19
5.2 硬件系统调试 20
5.3 整体调试 20
结束语 23
致谢 25
附录 26
第一章 绪论
1.1 课题研究的背景
随着人们生活水平的不断提高,更丰富的视觉效果已经成了人们的追求,而立体显示技术可以突破平面显示的局限,具有美轮美奂的观赏体验,逐渐成为当今社会信息显示技术研究的一个热点。同时随着科技发展,具有震撼的视觉效果的立体显示技术的成本也会越来越低,而光立方则是最近几年兴起的以LED为主发光单元的立体显示技术的代表。
LED(发光二极管)是一种可以将电能转化为光能的电子器件,并具有二极管的特性。目前不同类型的LED可以发出从红外到蓝光不同波长的光线,除此之外还有在蓝光LED上涂上荧光粉将蓝光转化成白光的白光LED。
由于制造LED的材料不同,可以产生具有不同能量的光子,则LED会发出不同的波长的光,也就发出不同的颜色。历史上第一个LED所使用的材料是砷(As)化镓(Ga),其正向PN结压降(即工作电压或点亮电压)为1.424V,发出位于红外光谱段的光波。另一种在实际中经常使用的LED材料为磷(P)化镓(Ga),其正向PN结压降为2.261V,发出的光线为绿光。
在祖国六十周年国庆大放异彩的光立方便是立体显示技术在现实生活的成功应用,此光立方是由四千多发光树组成,被媒体评为此次晚会最具创意的三大法宝之首。自此之后,一个全新的名词“光立方”,吸引了全国人民的关注。国庆联欢晚会三大法宝,光立方为最引人注目,“光立方”在气势和整体感觉上,结合了北京奥运会开幕式中大放异彩的“击缶而歌”和“活字印刷”的风格,而各种图案则与贯穿奥运会开幕式的“画卷”有异曲同工之妙。同时“光立方”可以根据播放曲目的不同而展示不同的造型和图案,具有丰富的视觉效果。
随着此次庆典上,光立方大放异彩,越来越多的人开始关注光立方的设计技术。并在网上出现了很多关于光立方DIY设计方案,此次毕业设计参考网上成熟的光立方设计方案,并在此基础上采用了上位机控制,更易于操作及动画图像的设计,实现了动画设计与驱动的分离,最终我们得到一个由8*8*8共512个 LED组成的立体显示器。
1.2 论文所做的工作
本设计通过上位机控制光立方显示不同的图像,同时由上位机播放音频信号,光立方可根据音频信号的频谱显示图像。同时论文在主要关注光立方硬件设计的基础上,解释此次毕业设计选择的方案优点,单片机只是负责驱动底层硬件和根据预定义的通讯控制协议,解码上位机输出的动画控制信号,因此运用上位机强大的运算能力,可以得到丰富的图像显示同时保证光立方显示效果地稳定,连贯及观赏性。
该光立方硬件设计方案,其核心模块有四个:控制模块、驱动模块、显示模块、电源模块。整体设计思路为上位机发送控制指令,控制模块接受控制指令,并根据接受到控制指令输出两路信号分别送至层(行)驱动电路和束(列)驱动电路。最后由它们输入到显示电路控制LED光立方体上每个LED灯的亮灭,构成一帧图,由于人眼存在视觉暂留现象,通过以适当的时间间隔不断地刷新每一帧图,呈现在眼前的便是一组连续的动态图像。
在本次毕业设计论文中,总共分为五章内容。第一章介绍了光立方的研究背景及当前的发展现状,并简要介绍系统要实现的功能。第二章介绍整个系统构成,以及构成系统各个模块所要实现的功能及各模块设计方案的选择过程。第三章首先给出了系统框图,然后详细介绍各个模块设计过程。第四章主要介绍系统的软件方面设计工作并给出了系统流程图。第五章介绍了系统设计过程遇到的一些问题以及解决办法。在论文的最后介绍个人在本次毕业设计中收获,同时对指导老师在毕业设计中给予地指导及对论文地格式和内容提出的修改意见表示衷心地感谢。
第二章 系统设计概述
基于STC单片机的8*8*8光立方系统设计主要任务在于控制每一个LED的亮灭,这是控制光立方形成一帧图并最终形成本次毕业设计预期目标即动态图像的关键和核心。
为实现以上目标,本次毕业设计按其功能可分为上位机、控制模块、驱动模块、显示模块、电源模块。本章接下来的内容将首先介绍各模块所完成的功能,再介绍各模块的方案选择过程。
2.1 系统的内容和要求
系统的设计思路为PC端的上位机通过串口通信发送动画控制命令至由控制模块,控制模块接受控制命令,并根据预先定义通信协议解码控制命令生成驱动信号至驱动模块控制光立方形成想要的图像。
一、上位机
在本次毕业设计中,定义了三种控制命令,而上位机通常为PC端的控制程序,具有强大的计算资源,因此上位机负责将预期的动画效果分解成预定义的四种控制命令,传输至单片机。
二、控制模块
位于PC端的上位机将控制命令传输至控制模块,控制模块负责按照预先定义的方式解码命令,同时输出最终的底层硬件的驱动信号。
三、驱动模块
由于单片机I/O口资源有限,为能使512个LED每一个都能得到单独地点亮或点灭,必须扩展I/O口,驱动模块便实现扩展I/0口的功能,同时由于I/O口驱动负载的能力有限,而本次设计需要控制512个LED,因此需要驱动模块才能有效控制LED。
四、电源模块
提供整个系统的工作电源。
- 显示模块
由512个LED按照层共阳,束共阴的方式构成8*8*8的光立方,最终显示我们预期的动画。
2.2 系统的方案选择
2.2.1 生成动画
为了得到一帧图,并在一帧图的基础上形成动画效果,必须首先生成每一帧图的控制信号,以控制光立方各个LED亮灭。
(1)由控制模块生成动画
在这种设计方案中,控制模块不断生成每帧图像的动画控制命令,同时负责生成驱动底层硬件的信号,这要求控制模块有较强的计算能力,方能保证整个系统稳定的工作。
(2)由上位机生成动画
在这种方案中,单片机负责驱动底层硬件,同时接受来自上位机的动控制信号,并根据约定的通信协议生成最终的底层驱动信号,因此这极大地降低了对于单片机计算能力地要求。
选择:方案(1)这种硬件驱动与动画设计结合的方式对编程也有较高的要求,同时由于单片机的工作量巨大,并不适合需要设计较复杂的动画。方案(2)极大降低了单片机的工作量,并可以实现动画设计与底层硬件驱动的分离,同时上位机可以为PC端,具有强大的运算能力,可以设计较复杂的图像。故采用方案(2)上位机生成动画控制信号。
2.2.2 驱动模块
8*8*8光立方设计方案为:层共阳,共8层需8位控制信号;束共阴,共64束阴极需64位控制信号。本部分内容,将讨论如何生成64位阴极的控制信号。由于I/O口资源有限,不可能直接由单片机输出控制信号。
为得到最终64位控制信号,受通信中的时分思想的启发,我们由单片机分时输出串行控制信号,然后将串行信号转并行信号最终得到64位控制信号。故本部分集中讨论串行信号转并行信号芯片的选择。
(1)74HC595芯片
74HC595芯片是由8位串行输入、串行/ 并行输出移位寄存器构成,同时具有8位三态输出锁存器。74HC595为实际使用中通用的串行信号转并行信号的IC芯片。
(2)TM1818芯片
TM1818具有16个电流源,可以在每个输出端口提供3-45mA恒定电流量以驱动LED,因为TM1818具有较小的片间误差,因此适合驱动LED显示电路。
选择:TM1818为专门为LED显示设计的驱动IC,设计之初便考虑到LED驱动存在的问题具有电流输出大小不因输出端负载电压变化而变化的特点,同时可通过调节外部输入电压,可设定电流输出值方便调节LED的亮度,故本次毕业设计采用方案(2)TM1818芯片。
2.2.3 控制模块
本次设计采用单片机最小系统构成主控模块,因此主控模块方案的选择主要任务在于选择性能,硬件资源均能满足设计要求的单片机。目前市面可获得单片机中最广泛的是51系列单片机,经过综合比较51系列单片机,有以下两种可供选择的单片机:
(1)89C51单片机
89C51单片机属于51系列单片机中的经典设计产品,但同时89C51单片机某些性能并不能满足特定场合的用户需求,因此市面存在许多51单片机的增强型。
(2)STC12C5A60S2单片机
STC12C5A60S2单片机属于增强版本的51单片机。与89C51相比,其各方面的性能均有所改进。
选择:综上所述本次设计采用方案(2)即STC12C5A60S2单片机作为主控芯片。
2.2.4 单片机编程语言
在单片机编程中,主要运用的编程语言为汇编语言和C语言。
(1)汇编语言
每一种单片机说明中都会给出支持地指令系统及其相应地汇编语言,但是不同的单片机,其汇编语言可能不同,所以可移植性,可读性都较差。
(2)C语言
C语言是一种结构化的编程语言。其主要优点是可读性,可移值性都较好,是目前使用最为广泛的计算机语言。同时C语言是一种编译型程序设计语言,具有高级语言的特点,能直接对地址进行操作,是一种接近底层的高级语言 。
选择:C语言的优点在于其功能丰富地函数库同时具有较高地编译效率、可移植性较好,最为关键的是C语言支持直接对地址进行各种操作,可直接实现对系统硬件的操作。因此本次毕业设计最终采用方案(2)即C语言作为单片机的编程语言编写单片机程序。
第三章 硬件系统设计
本章将先介绍本次毕业设计系统框图,其中硬件系统共包括控制模块、驱动模块、显示模块电源模块,再分别介绍各模块的设计思路与电路原理。
3.1 硬件系统框图
由本次毕业设计预期实现的功能,及前述各个模块所负责的功能内容,本次毕业设计地硬件系统框图如3.1所示,其中上位机属于软件设计部分,将在第四章介绍。
图3.1 硬件系统框图
如图3.1所示,由单片机最小系统构成的控制模块是此次设计的中心模块,负责接收上位机发送的动画生成信号,产生控制信号至驱动模块。驱动模块分为层驱动和束驱动,接受来自单片机的输出信号分别产生8位层控制信号与64位束控制信号,如此512个LED都可以得到单独的控制。
3.2 控制模块
控制模块由STC125A60S最小系统构成,而单片机最小系统是指能保证单片机工作的必要组成部分,就STC12C5A60S2单片机来说,其一般包括:单片机、时钟电路、复位电路等。
3.2.1 时钟电路
单片机作为一个复杂系统,必须为单片机各个组成部分提供一个时钟信号,以此保证整体系统在此时钟信号地控制下按照时序协调工作。
设计单片机的时钟电路时,必须首先理解单片机时钟端口的使用和特点:
STC125A60S2通过XTAL1 与XTAL2两个引脚外接石英晶体振荡器与两只电容(在实际地运用中电容数值一般可以为30PF)。XTAL1 与XTAL2两个引脚其实就是一个反向的放大器,它可以与石英晶振连接作为一个时钟振荡电路。见图3.2。
3.2.2 复位电路
在单片机最小系统中,复位电路是指在复位引脚接RC回路,由RC回路充放电得到复位电平从而实现复位。由于复位电平需持续两个机器周期以上时才能引导单片机正确复位,因此为引导单片机正确复位要求RC回路的时间常数T必须大于单片机的两个机器周期。在本次设计中,在单片机地RST复位引脚上接一个电容到VCC,同时接一个电阻到地端,构成一个RC充放电回路保证单片机在上电时RST引脚上的高电平满足复位要求从而引导单片机复位。见图3.2。
本次设计中控制模块输出SDI控制信号为束控制信号经束驱动模块即TM1818芯片将串行信号转并行信号最终得到64位的束控制信号,同时输出Y0,Y1,Y2层控制信号至层驱动模块即74HC138译码器生成8位层控制信号。如图3.2。
图3.2 控制模块
3.3 驱动模块
本次设计的光立方为由8*8*8共512个LED构成且设计目标为每个LED都必须能单独地得到控制,但于硬件系统的I/O资源有限,必须使用有限地I/O资源控制光立方因此需要采用驱动模块实现I/O口资源,同时单片机的I/O口输出电流有限,必须通过驱动电路才能有效控制LED。
在本次设计中,驱动模块主要负责将控制模块即单片机最小系统输出的SDI串行信号经TM18181芯片转为64位的并行信号作为最终的束控制信号,将控制模块输出的3位层控制信号经MC74HC138芯片译码为8为层控制信号,因此本设计的驱动电路分为层驱动电路与束驱动电路。
3.3.1 束驱动电路
束驱动电路需将控制模块输出的一位控制由四片TM1818芯片级联构成组成,将控制模块输出的串行控制信号转为64位的并行控制信号,在此光立方控制系统中用来控制每一层8*8 LED灯的64位阴极。
TM1818是专为LED显示电路设计的驱动芯片,它由CMOS移位寄存器与锁存器构成,可以将串行的输入数据转换成平行输出数据格式。TM1818可以在每个输出端口提供3~45mA恒定电流量以驱动LED,总计16个输出口;而且当周围环境发生变化时,输出电流变化很小。也可以在每个输出端口串接多个LED。为详细说明TM1818驱动LED点阵的优势,将该芯片的特点如下列出:
请支付后下载全文,论文总字数:16571字