摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,利用人眼的视觉暂留特性,通过STC89C52单片机对16只高亮度LED发光二极管进行控制, 配合手的左右摇晃就可呈现一幅完整的画面。
该摇摇棒具有如下功能:
1) 显示 “神奇魔幻”;
2) 显示 “摇摇棒!”;
可以通过开关实现转换,轮流显示并循环:
4) 显示 “心”心形图案;
5) 显示 “o(∩_∩)o”图案;
5) 显示 “LOVE”;
二、系统总体设计
1、总体方案比较与论证
所谓的“摇摇棒”,其实就是一个循环的LED显示,利用人的视觉滞留产生静态显示的现象。要实现这个目标,就要求延时部分做的比较小,所以采用石英晶体振荡器。而目前能够实现这种功能的器件有很多种,不同的类型的器件也能够很好的完成。
本作品本着方便、价格低廉的原则,采用单片机控制,由晃动开关的闭合对单片机产生外部中断,从而对中断进行采集。到达一定数量便进行图象的转换。整个系统由单片机控制模块,开关及电源模块和输出显示模块三个部分构成。
2、主要部件原理
(1)单片机控制模块
用单片机想要控制LED显示只需要定时输出就可以,但每个人摇动的速度不一样,如何准确的并稳定的变换图案呢?这就需要用到外部中断。将晃动开关的两个引脚一端接单片机引脚(P3.2),一端接GND,这样的话,当摇棒向一边运动时LED按照程序编辑好的规律显示,而向另一边运动时LED全灭,此时一个周期就会产生一个下跳沿的信号,信号传递给单片机的INT0产生中断,对中断的数量计数,当计到10时便转换显示的图案,当依次显示完后便回到初始状态进行循环。
由于人的视觉滞留时间长达0.1s,所以在每显示完一列LED后加入一段合适的延时,如5ms,每个字之间加入延时如15ms,这样,我们就能看到静态的稳定的字,并且每个字之间是有空隙的。为了让字能够在空间的中部显示,在启动中断显示后延时一段合适的时间,使棒在半圆轨迹的大约1/4处开始显示,这样看到的字方向上才比较正。
(2)晃动开关:
晃动开关也叫振动开关,其实都是震动开关的一种只是叫法不一样是通过弹簧接触导针的原理来控制电路的接通或者断开的。
简单来说,就如同打开或关掉电灯一样,开关触碰里头的金属板电灯就亮,离开就关,晃动开关也是利用类似的原理。利用弹簧的晃动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果。
3、系统设计
本系统包括单片机控制模块,开关及电源模块和输出显示模块三个部分。
单片机控制模块由Keil C进行编写,实现起来简单,主要有三部分,主程序、中断服务部分还有字符点阵。
开关及电源模块采用两节电池并配合晃动开关开关使用。输出显示模块采用16个LED灯,在版上一字排开。