描述

摘要:为解决二维LED显示单调与立体感差的问题,提出了以STC12c5a60s2为核心芯片,辅以ULN2803芯片和74HC573芯片对大功率的512个LED灯驱动来实现3D显示的设计方案。通过对3D显示屏原理分析,结合硬件电路设计与软件编程,完成了8×8×8的显示屏光立方制作,并给出了最终的交替变换动态效果。

1、总体方案设计

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

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

2、硬件设计

2.1MCU主控模块

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

2.2驱动模块设计

2.2.1模块ULN2803设计

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

2.2.274HC573模块设计

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

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]。此效果的显示都是通过软件来实现的,这里显示一个简单的动态沙漏程序,代码如下:

voidshalou()

{inti,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所示

4、仿真效果

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

5、结论

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

打开APP精彩内容

点击阅读全文

stc12c5a60s2制作4*4*4,光立方c语言程序怎么写,基于STC12c5a60s2单片机的3D显示屏设计...相关推荐

  1. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  2. 简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序

    <(最新整理)基于51单片机的电子钟C语言程序>由会员分享,可在线阅读,更多相关<(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)>请在人人文库网上搜索. 1.完整) ...

  3. 单片机c语言篮球比分_基于51单片机的篮球记分牌设计

    1 摘 要 单片机,亦称单片微电脑或单片微型计算机.它是把中央处理器( CPU ).随机存 取存储器( RAM ).只读存储器( ROM ).输入 / 输出端口( I/0 )等主要计算机功能部件 都集 ...

  4. 红绿灯c语言程序及仿真图,AT89C51单片机十字路口交通灯设计(仿真、keil源代码以及实物图)...

    /***************************************************** *   王瑾毕设-交通灯 * * * ************************** ...

  5. 单片机c语言程序开发洗衣机,基于51单片机的洗衣机程序

    题目:设置过程,有一个水位选择按键,选择6个水位之一,相应的有六个水位检测点,仿真时用六个开关表示.有一个程序选择按键,选择8个程序之一.一个启动/停止键,按照所选程序自动洗衣.(2)洗衣过程,模拟完 ...

  6. 台灯c语言,基于msp430单片机的智能台灯设计(C语言).doc

    基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 名: 学 号: 组 员: 指导老师: 实习时间: 目 录1概述3 1.1 题目 ...

  7. c51单片机时钟c语言程序设计,基于51单片机的电子时钟设计..doc

    -- I -- - - I -- 设计题目: 基于 51 单片机的电子时钟设计 摘要 单片机,是集 CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器.自 20 世纪 70 年代问 ...

  8. c语言每次堆的变化是1k,DSPXC语言+程序烧写讲述.ppt

    DSPXC语言程序烧写讲述 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...

  9. 基于51单片机的简易减法器设计制作

    基于C51单片机的简易减法器设计制作 51单片机可实现很多功能,今天笔者介绍一种使用C51编写程序,通过4*4矩阵键盘和8位共阴数码管实现的简易减法器.矩阵键盘以及数码管的原理图如下: (1)4*4矩 ...

  10. r语言软件GDINA_finTech MSc代做、代写Python程序语言、代写MSc program、代做Python设计帮做C/C++编程|代写R语言...

    finTech MSc代做.代写Python程序语言.代写MSc program.代做Python设计帮做C/C++编程|代写R语言Strathclyde Business School, finTe ...

最新文章

  1. tomcat如何增大并发_系统的性能瓶颈,排查该从哪些方面入手,如何定位?
  2. lua如何打印行号_LUA教程错误信息和回跟踪(Tracebacks)-34
  3. Promise的链式调用三种写法,Promise.all与式调用
  4. VC 2008 Express 编译OpenCV2.0/2.1
  5. 如何验证登录oracle,Oracle登录验证方式详解
  6. PREV-52 小数第n位 (大数)
  7. 【论文解读】如何在只有词典的情况下提升NER落地效果
  8. 魅蓝note2android8,魅族魅蓝Note3和魅蓝Note2哪个好
  9. 俄罗斯方块代码 java_俄罗斯方块java代码-java编写俄罗斯方块代码详解分享
  10. 对称加密算法之Java SM4算法应用 附可用工具类
  11. SNMP协议-SNMP TRAP
  12. IP SAN与IB SAN
  13. 学习是对自己最好的投资
  14. 知识图谱从0到-1的笔记——6.知识推理
  15. 软硬链接、引号符号、逻辑符号、系统通配符
  16. ESC/POS常用打印指令面向对象封装,PHP处理二维码定位,微信小程序蓝牙打印
  17. Java微服务开发指南-集群管理、失败转移和负载均衡的实践(下)
  18. pigeon-remoting模块功能分析
  19. 各大浏览器兼容性报告 IE、FF、Safari、OP不同浏览器兼容报告
  20. vue实战项目-喵喵电影 学习笔记(1)

热门文章

  1. PS中新建文件的一些常用预设信息
  2. 2022Java最新学习路线(初学者必看)
  3. 视频抠像软件Imagineer Systems Mokey
  4. visio图形包解压
  5. 百度AI攻略:货币识别
  6. windows 界面设计规则与规范
  7. vue项目前端页面模板,基于vue的前端模板
  8. 华为桌面云解决方案概述_解决方案概述和数据安全建议
  9. java 空文件夹删除_java创建文件文件夹,删除空文件夹,删除文件夹以及所有文件...
  10. 黑苹果无线网卡的另一种解决方案