《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于STC12c5a60s2单片机的3D显示屏设计
基于STC12c5a60s2单片机的3D显示屏设计
2015年微型机与应用第2期
侯 龙,刘海顺,刘庆玲,张 义
(中国矿业大学 理学院,江苏 徐州 221116)
摘要: 为解决二维LED显示单调与立体感差的问题,提出了以STC12c5a60s2为核心芯片,辅以ULN2803芯片和74HC573芯片对大功率的512个LED灯驱动来实现3D显示的设计方案。通过对3D显示屏原理分析,结合硬件电路设计与软件编程,完成了8×8×8的显示屏光立方制作,并给出了最终的交替变换动态效果。该设计不仅产生了一种良好的视觉效果,而且为其他三维效果广告设计提供了重要的参考价值。
Abstract:
Key words :

  摘  要: 为解决二维LED显示单调与立体感差的问题,提出了以STC12c5a60s2为核心芯片,辅以ULN2803芯片和74HC573芯片对大功率的512个LED灯驱动来实现3D显示的设计方案。通过对3D显示屏原理分析,结合硬件电路设计与软件编程,完成了8×8×8的显示屏光立方制作,并给出了最终的交替变换动态效果。该设计不仅产生了一种良好的视觉效果,而且为其他三维效果广告设计提供了重要的参考价值。

  关键词单片机;光立方;LED点阵;STC12c5a60s2

0 引言

  常见的LED显示以平面(二维)显示为主,这种显示技术相当成熟,宾馆、饭店、公司及娱乐场所都可看到各式各样的二维广告流水灯。然而这种平面效果的显示设计因单调性和立体感差已不能满足人们对LED效果的观赏性要求,因此在二维显示屏基础上,开发设计三维(3D)LED显示屏非常有必要。3D显示屏是以LED发光二极管为基本单元组成的显示器,因其画面鲜艳逼真、立体感强等特点逐渐进入人们的视野[1-2],被人们接受和认可。

  本文建立三维立体模型,利用X、Y、Z三轴,采用STC12c5a60s2核心芯片,辅以ULN2803芯片和74HC573芯片实现大功率的512个LED驱动,达到3D显示的目的。该设计具有以下特点:(1)外观设计简单美观;(2)实现图形的动静态效果显示,稳定性好,抗干扰性强;(3)程序灵活可变,可局域性更改,实现画面的自定义,使得图形在数字、字母、三维立体图形之间任意交替动态变换;(4)此设计可为其他三维效果设计开拓思路,提供实践依据。

1 总体方案设计

  3D显示屏由512个LED灯构建的三维LED点阵模块及相应的控制系统构成[3-4]。其外观规格为18 cm×18 cm×18 cm,各相邻两灯间距约为25.6 mm。系统通过二维8×8的LED驱动电路控制XY基面,依次沿Z轴方向实现8次扫描,恰好完成一次整体的8×8×8 LED从底面到最高面的扫描。整体模型用X、Y、Z三轴模拟,其X轴控制锁存器使能端,Y轴控制锁存器数据端,X、Y轴控制XY基面,Z轴控制层面,如图1所示。利用人眼的视觉暂留效应,分时段刷新每一层面数据就可达到立体显示的动静态效果。

001.jpg

  本设计采用STC12c5a60s2单片机为核心芯片,该芯片不仅具有运算速度快、功率损耗低、抗干扰能力强等优点,而且内部功能完全兼并8051;同时集成了MAX810专用的复位电路,简化了传统的电路设计;其内部还具有8路高速10位A/D转换和2路PWM,能适应电机控制以及干扰性较强的场合。ULN2803作为整体LED的8位共阴极驱动芯片以增强驱动电流的能力。采用8片规格完全相同的锁存器74HC573对LED阳极端口控制,可实现图形稳定显示、动态快速变换、亮度逐级可调等功能。系统的总体框图如图2所示。

002.jpg

2 硬件设计

  2.1 MCU主控模块

  本系统采用STC12c5a60s2单片机为核心芯片,内部自带高达60 KB的Flash ROM和1 280 B RAM数据储存器,4组8 bit的I/O口。其中P0端口与74HC573数据输入端口相连,发送阳极数据,对应Y轴;P1口与ULN2803数据输入端口相连,发送阴极数据,对应Z轴;P2口与74HC573使能端口相连,发送片选信号数据,对应X轴。XTAL1和XTAL2分别连接12 MHz晶振两端,串连30 pF电容C1、C2后接地,其晶振可满足运行速度的要求。由于STC12c5a60s2芯片自带复位电路,因此忽略了电路中复位电路环节,简化了电路设计。主控电路如图3所示。

003.jpg

  2.2 驱动模块设计

  2.2.1 模块ULN2803设计

  由于本设计中LED较多,单片机本身的驱动能力显得不足,考虑到ULN2803模块具有较强的灌电流能力,因此作为共阴极(Z轴)驱动,其中com端口接地,1C~8C分别对应主控器的P1.0~P1.7端口,输出端口1B~8B分别对应LED点阵的8个共阴极端口[5]。最初实验中采用ULN2803模块,电流还是未能满足设计要求,因此增加了图4所示的外部灌电流驱动电路,实验效果明显改善。

004.jpg

  2.2.2 74HC573模块设计

  本设计采用74HC573模块对阳极束(Y轴)进行并行输入并行输出控制。其具有以下优点:(1)具备高阻态功能,输出既不是高电平,也不是低电平,而是高阻抗状态,在这种状态下,可将多个芯片并联输出,同时控制;(2)具备数据锁存功能,当输入的数据消失时,在芯片的输出端数据仍然保持;(3)具备数据缓冲功能,可加强电路的驱动能力。

005.jpg

  74HC573模块驱动电路如图5所示。8片锁存器使能端OE口均接地,LE锁存端口P2.i分别与主控系统中P2对应的第i位端口相连,8位数据输入端口D0~D7分别与主控系统P0口并行连接,8位数据输出端口Q0~Q7分别与对应8列X轴即64位阳极束连接。

3 软件设计

  本实验3D显示屏LED点阵模块是在二维的基础上通过层叠加原理实现的[6],因此可将三维8×8×8模型看作是64×8的平面模型,即对应的XY面与Z面的相互作用模型。其中64看作阳极束,一片74HC573芯片输出端为8位,恰好设计8片74HC573芯片控制64位阳极束。8看作阴极束,用一片ULN2803芯片控制。因此64×8对应了全部的512位即512个LED灯。每一位采用状态0或1可对其进行亮或灭控制,实现三维LED灯的发光或熄灭。

  此设计采用X、Y、Z三轴三维模型模拟,其中任意LED灯的坐标为LED(X,Y,Z),坐标范围均为0~7。当要(3,4,5)点坐标灯亮,控制其Z=4处平面灯全亮即输入端口为高电平1,其余为低电平0;Y=3处平面灯全亮即输入端口为高电平1,其余为低电平0;X=2处平面输入端口对Y=3处平面数据进行锁存即由高电平1变为低电平0,这样便可实现LED(3,4,5)坐标灯保持高亮,其余灯熄灭。由此通过点可实现线、面、体以及两两结合组成的各种三维立体动静态图形显示。由于动画显示只有大于15帧时人眼才可看到流畅的动态效果,因此在动态图形中扫描周期必须小于(1/15)s,即每层停留的时间t最多为(1/15)×(1/8)[7]。此效果的显示都是通过软件来实现的,这里显示一个简单的动态沙漏程序,代码如下:

  void shalou()

  {   int i,j,d;

  chushihua();               //初始化函数

  for (j=0;j<8;j++)

  {

  For (d=0;d<5*(8-j);d++)

  {

  For (i=0;i<=j;i++)

  {

  CLEAR();        //清屏函数

  P0=SHALOU[i];   //Y轴扫描数据

  P2=SHALOU[i];   //X轴存入高电平数据

  P2=0x00;         //X轴低电平锁存数据

  P1=0x80>>i;      //Z轴发送层扫描函数

  Delayms(5);

  }

  }

  }

  For (j=7;j>=0;j--)

  {

  For (d=0;d<5*(8-j);d++)

  {

  For (i=0;i<=j;i++)

  {

  CLEAR();

  P0=SHALOU[i];   //Y轴扫描数据

  P2=SHALOU[i];   //X轴存入高电平数据

  P2=0x00;         //X轴低电平锁存数据

  P1=0x01<<i;      //Z轴发送层扫描函数

  Delayms(5);

  }

  }

  }

  }

  实现该代码的思路流程如图6所示。

006.jpg

4 仿真效果

  本设计通过硬件电路设计与软件编程实现了3D效果显示,如图7所示。其中,图7(a)为动态沙漏的某一瞬间截取图;图7(b)为动态桃心的某一瞬间截取图;图7(c)为动态平面前后扫面的某一瞬间截取图;图7(d)为整体静态显示图。从图7(a)、(b)可明显看出图形的立体层次感;从图7(c)、(d)可看出,与平面二维效果相比,三维立体方位感更强、更真实。

007.jpg

5 结论

  本文实现了从开始的硬件设计到最终的软件仿真,达到了以下目的:(1)该电路设计合理,不仅图形的稳定性好,而且观赏性强,为其他三维效果设计提供了一定的实践基础;(2)从仿真结果可看出三维效果比二维效果立体感更强、更真实,该设计方案是以后各立体效果图形设计采纳的主流趋势。然而,由于条件限制,通过A/D转换音频控制LED未能进一步设计,将在以后的工作中利用离散傅里叶光学变换展开研究。

参考文献

  [1] 康志强,汪佳,汤勇明.基于FPGA的3D光立方设计[J].电子器件,2012,35(6):683-686.

  [2] 王欣,马青玉.基于Arduino的LED光立方设计[J].南京师范大学学报,2013,13(4):24-28.

  [3] 杨永刚.3D光立方的设计与制作[J].电子世界,2014(6):129.

  [4] 刘小平,李志远.单片机版光立方的制作[J].无线电,2012(10):70-74.

  [5] 杨清德.LED驱动电路设计与工程施工案例精讲[M].北京:化学工业出版社,2010.

  [6] 杨富强,朱利强.基于单片机的LED点阵动态显示系统[J].工业控制计算机,2013,26(1):101-102.

  [7] 苏珊,肖英,李行杰.基于STC单片机的8×8×8 LED光立方系统设计[J].吉林大学学报,2013,34(6):33-36.


此内容为AET网站原创,未经授权禁止转载。