光立方,动手搭——原理简述

时间:2022-02-24 19:47:06

在光立方的制作中,我们一般选择一些单片机作为控制中心,而在本次的制作过程中,我们使用了STC89c5A60S2来实现。

动方式利用人眼视觉暂留特性,利用逐层扫描的方式,来达到显示各种图案的目的。常见的coms锁存器(cmos发热低,优先选择)有74hc57374hc595,前者为并入,后者串入。因为不需要光立方的级联设计,所以采用573锁存器。

在主控的选择上,不选89C52等芯片,不是因为他们的运算速度不够,主要原因是它们的片上flash太小,难以满足需求,其次是因为自己有闲置的STC89C5A60S2,片上内存大,运算速度1T,即充分利用资源节省成本,又可以实现所需要的功能需求。

光立方,动手搭——原理简述

显示电路的连接如下:

光立方,动手搭——原理简述

在程序的设计中

1首先对主控单片机的初始化部分,主要是设置对应的中断,定时工作方式。

2 显示部分

 在对现实的设计过程中,我们把把立方体看作8位数码管,每个面即为一个数码管

 每个面的显示原理是和8X8点阵是完全一样的,保证这段程序正确的,可以直接调用

 查表的方式是自0起递增的,每次加1,每个画面查表64次。当然,实际的情况是要小于65536的,控制程序的代码也会占用rom空间,就会导致了画面次数减少,所以,要想在有限的空间内显示更多的画面,就得尽量把程序写的简短。c语言可以直接定义16位变量。

3中断部分,为了达到动画效果切换时间可准确调节性,画面的切换用中断方式。把时间通过一个变量来表示,这样每次只需修改一个变量,就可以设置动画的速度了。每次发送中断后,查表的变量就加64(i=i+64),然后返回显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。

4循环

 程序循环,循环的条件是i变量不满足动画显示的上限值。比如做八个画面,那么i的的值不满足8X64时,就继续显示,满足就清零从新开始。

 显示循环

 主题的显示程序,应该是一个死循环,一直在显示一个画面,只有中断产生的时候,改变了查表的变量,才切换一次动画,每个画面都显示后,注意修正变量,能使其显示同一个画面,不管是查表的变量还是Z轴,Y轴的控制变量,都要进行初始化,直到中断的产生才改变查表的变量数值。

.