10x10x10.光立方(2)

2018-12-20 22:19

武汉轻工大学

3 硬件设计

3.1 STM32最小系统

驱动模块

本作品采用两个ULN2803接入STM32开发板的PE口控制每一层LED的亮灭,用了20个74hc573锁存器来控制每一列led灯的亮灭,其中每两个锁存器的使能输入端相连,每个锁存器接5列led,2个锁存器就可控制一面led。如图1,图中,ledx代表第x层的灯。Ledx.y表示第x行y列的led。

6

武汉轻工大学

图1

图2

显示模块

“光立方”是由10层这样布局的LED组成,每层位置排列全部一致,如图3 。每层LED的所有正极全部接到一起,然后连接74hc573的行扫描驱动电路,通过74hc573译码确定使能哪一层。各层同一位置LED的负极连接都一起,

7

武汉轻工大学

将之前10个面上的阴极对应位置依次焊接,最后留出的10个阴极与ULN2803 的输出端进行连接,LED的100个阳极则与74hc573的数据输出端依次连接。

图3

4 软件设计

软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。建议用数学语言来抽象事务和问题,因为数学是最好的抽象语言,并且它的本质就是抽象。

在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。

在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。

为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。

模块程序设计法将复杂的问题分解成可以管理的片断会更容易。将问题或事物分解并模块化这使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。

模块程序设计法的主要优点是:

单个模块比起一个完整的程序易编写及调试;

模块可以共存,一个模块可以被多个任务在不同条件下调用;

模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。

8

武汉轻工大学

模块程序简单性为观察者带来方便。

4.1总体软件框图

开始 配置GPIO 与RCC 打开层选 使能锁存器锁 存端 向锁存器写 入数据 失能锁存

器锁存端 9

武汉轻工大学

4.2 主程序

根据题目要求用C语言编写程序以达到各项功能,具体程序在附录。

5 系统调试与测试

5.1 硬件测试

(1)主要测试仪器、仪表:万用表,3V电池组,稳压源;

(2)系统测试:a.将待测led接上360欧限流电阻,用稳压源给一定电压,用万用表测试待 测led正常发光的电流以及led两端电压;

将3V电池组与1K欧电阻、待测led在面包板上串联,测试1200只led 是否能正常发光;

1000只led焊接完成后用万用表测其是否有虚焊、短路,并用稳压源输出 3V电压,测试是否有坏掉的led;

主控制板焊接完成后,用万用表测其是否有虚焊、短路以及其他线路连接 问题。

焊接全部完成后,用万用表测试 b.测试参数记录:

led焊接前: 正常发光电流 正常发光时led压降 2mA以上 0.7V左右 Led数量 正常发光数量 1200只 1200只 全部焊接完成后: 总电流 ULN2803输出电流/led正常发光时电流 15mA~17mA 150mA左右 c.系统功能测试:

预期系统能实现的功能是光立方能按程序正常显示动态图案;测试开始时,光立方并不能显示理想中的图案,经反复排查发现是主控制板的线路存在虚焊和短路,排除这些问题后基本能正常显示,但有个别led不亮,有的甚至一整列不亮,经排查为焊接不牢,出现断路,重新焊好后1000只led便能按程序正常发光和熄灭了,光立方可以正常显示动态图案。

(3)测试结果分析:系统指标和功能基本能实现,但也存在一些缺陷,比如一

10


10x10x10.光立方(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:思维导图在英语阅读教学中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: