硬件:
* LED专用驱动芯片
* 自动电源切换设计
* 72个镀金圆孔插座
* 整体亮度无级可调
* 布线优美的炫黑PCB板面
软件
* 实时动态取模软件,让显示开发更简单~
* 兼容多种上位机控制:51单片机、PC、Arduino、Netduino等
* 通用高速串口通信协议
* 开放动画设计接口
* 精简易读的驱动函数
* C语言,C#上位机动画教学例程(不断扩展中)
* 纯正FFT音频显示(需上位机程序配合)
* 2011.10.17更新 Arduino驱动3D8视频
输入信号形式以及控制方法:
为了节约资源,减少焊接和制作难度。本方案采用了最简单的芯片组和,尽可能少的线路输入,尽可能简单的输出焊接方式。
关于led灯的焊接方式和方法请参考附录。目录只是一种简易焊接方式,也许你要更好的焊接方案,也欢迎探讨,但灯的连接方式必须严格按照要求制作,否者可能因为与pcb不匹配等原因,无法正常工作。
在接入信号中,2、3管脚是符合标准的spi通讯协议。每传入72位数据后,4脚上升沿信号,此时信号被移入储存器。并驱动led灯发光。
72位数据中,最前边传入的8位数据是层控制信息,“1”代表亮,“0”代表灭;这里,前8位数据中,第一位控制的是第一层或第八层?这与你焊接“层控制焊盘”与灯的“层控制引脚”顺序有关。这个大可不必在意,焊接好后,在程序中定义即可。
那么其余的64位数据,就是按顺序排列的64引脚控制位,“1”代表高电平输出“0”代表低电平输出。
真值表:
Data | Shcp | Stcp | 输出 |
H | 上升沿 | X | 移位寄存器存入h |
L | 上升沿 | X | 移位寄存器存入l |
X | X | 上升沿 | 移位寄存器数据移入输出锁存器中 |
控制方案:
本驱动板驱动方式利用人眼视觉暂留特性,利用逐层扫描的方式,来达到显示各种图案的目的。
先利用data和shcp线路输入第一层72位数据,其中包含层控制信息(前八位,这里只让其中的第一层亮)和纵向引脚控制信息(后64位信息),“1”代表亮“0”代表灭;输入完毕后,stcp输入上升沿,此时点亮第一层,输出第一层要显示的信息;
……
最后利用data和shcp线路输入第八层72位数据,其中包含层控制信息(前八位,这里只让其中的第八层亮)和纵向引脚控制信息(后64位信息),“1”代表亮“0”代表灭;输入完毕后,stcp输入上升沿,此时点亮第八层,输出第八层要显示的信息;
由于人眼视觉暂留,我们感觉上是“八个层一起亮了”。
依此循环,即可显示图案或者流程的动画。
实例程序:
平台:stc90c516(通用于stc89c52等)
目的:按照扫描的方式点亮所有灯。
chari;
staticuchar layer=0;
//先发送层信息,
SBUF= 0x80>>layer;
while(!TI)//如果发送完毕,硬件会置位TI
{
_nop_();
}
TI= 0;
//开始发送数据
for(i=7;i>=0;i--)
{
SBUF= 0xFF;
while(!TI)//如果发送完毕,硬件会置位TI
{
_nop_();
}
TI= 0;
}
STCP=1;
_nop_();
STCP=0;
if(layer<7)
layer++;
else
layer=0;
程序与原理图到QQ群下载:82732871
视频效果链接: http://www.tudou.com/programs/view/_Z-Kp3leJjw/