stc12c5a60s2制作4*4*4,光立方c语言程序怎么写,基于STC12c5a60s2单片机的3D显示屏设计...
描述
摘要:为解决二维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显示屏设计...相关推荐
- 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆
基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘 要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...
- 简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序
<(最新整理)基于51单片机的电子钟C语言程序>由会员分享,可在线阅读,更多相关<(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)>请在人人文库网上搜索. 1.完整) ...
- 单片机c语言篮球比分_基于51单片机的篮球记分牌设计
1 摘 要 单片机,亦称单片微电脑或单片微型计算机.它是把中央处理器( CPU ).随机存 取存储器( RAM ).只读存储器( ROM ).输入 / 输出端口( I/0 )等主要计算机功能部件 都集 ...
- 红绿灯c语言程序及仿真图,AT89C51单片机十字路口交通灯设计(仿真、keil源代码以及实物图)...
/***************************************************** * 王瑾毕设-交通灯 * * * ************************** ...
- 单片机c语言程序开发洗衣机,基于51单片机的洗衣机程序
题目:设置过程,有一个水位选择按键,选择6个水位之一,相应的有六个水位检测点,仿真时用六个开关表示.有一个程序选择按键,选择8个程序之一.一个启动/停止键,按照所选程序自动洗衣.(2)洗衣过程,模拟完 ...
- 台灯c语言,基于msp430单片机的智能台灯设计(C语言).doc
基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 名: 学 号: 组 员: 指导老师: 实习时间: 目 录1概述3 1.1 题目 ...
- c51单片机时钟c语言程序设计,基于51单片机的电子时钟设计..doc
-- I -- - - I -- 设计题目: 基于 51 单片机的电子时钟设计 摘要 单片机,是集 CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器.自 20 世纪 70 年代问 ...
- c语言每次堆的变化是1k,DSPXC语言+程序烧写讲述.ppt
DSPXC语言程序烧写讲述 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- 基于51单片机的简易减法器设计制作
基于C51单片机的简易减法器设计制作 51单片机可实现很多功能,今天笔者介绍一种使用C51编写程序,通过4*4矩阵键盘和8位共阴数码管实现的简易减法器.矩阵键盘以及数码管的原理图如下: (1)4*4矩 ...
- r语言软件GDINA_finTech MSc代做、代写Python程序语言、代写MSc program、代做Python设计帮做C/C++编程|代写R语言...
finTech MSc代做.代写Python程序语言.代写MSc program.代做Python设计帮做C/C++编程|代写R语言Strathclyde Business School, finTe ...
最新文章
- tomcat如何增大并发_系统的性能瓶颈,排查该从哪些方面入手,如何定位?
- lua如何打印行号_LUA教程错误信息和回跟踪(Tracebacks)-34
- Promise的链式调用三种写法,Promise.all与式调用
- VC 2008 Express 编译OpenCV2.0/2.1
- 如何验证登录oracle,Oracle登录验证方式详解
- PREV-52 小数第n位 (大数)
- 【论文解读】如何在只有词典的情况下提升NER落地效果
- 魅蓝note2android8,魅族魅蓝Note3和魅蓝Note2哪个好
- 俄罗斯方块代码 java_俄罗斯方块java代码-java编写俄罗斯方块代码详解分享
- 对称加密算法之Java SM4算法应用 附可用工具类
- SNMP协议-SNMP TRAP
- IP SAN与IB SAN
- 学习是对自己最好的投资
- 知识图谱从0到-1的笔记——6.知识推理
- 软硬链接、引号符号、逻辑符号、系统通配符
- ESC/POS常用打印指令面向对象封装,PHP处理二维码定位,微信小程序蓝牙打印
- Java微服务开发指南-集群管理、失败转移和负载均衡的实践(下)
- pigeon-remoting模块功能分析
- 各大浏览器兼容性报告 IE、FF、Safari、OP不同浏览器兼容报告
- vue实战项目-喵喵电影 学习笔记(1)