DIY一个超小型单片机摇摇棒
单片机摇摇棒是吸引女性的极佳物品(我把这个当礼物送给某同学)下面就讲述下原理和我是如何制作的

摇摇棒的原理很简单,就是利用人眼的视觉暂留效应,在任意时刻图形只有一部分显示,但是晃动起来后就可以看到完整图形
比如我要显示心型(大家懂得),就把心型呈现在11*8的屏幕上,按纵向分解,可以得到11列,我们要做的就是用8个led显示一列再延时然后推进到下一列
每一列由8个led组成,我们用0和1(1代表亮0代表灭)每个led的工作状态,这样就可以用1个8位的二进制数表示一列,为了方便储存,我们把二进制换算成十六进制(用Windows自带的计算器即可实现)
heart.png
为了保证效果,实际使用时我们在最左边和最右边各加一个空白列,这样就有13列,最两边的都是0x00,即轮到最边上时什么都不现实,防止图形重叠
程序思路也不难,我这个很简单,只显示一个图形,因此用一个定时器在一定时间给led改变状态即可.
程序思路有了,开始选择硬件.
由于是礼物,所以要精致,要求单片机必须要小,啥AT89S52就直接否了,AT89c2051也嫌太大
我选用了STC11F04E,说来凑巧,半年前我在淘宝上买东西错买了它,本来是要买STC12C5410AD的,这次竟然派上用场了
STC11F04E.png
这可是我目前见过的最小的单片机,样子和3525一个德行,还带内部rc,这样连晶振都能省了(摇摇棒对单片机的时钟精度没有要求)
对于这个单片机,连复位的电容都能省略,这样除了单片机外,电路只有1个100欧电阻和8个LED了,8个led分别对应:
sbit p7=P1^7;
sbit p6=P1^6;
sbit p5=P1^5;
sbit p4=P1^2;
sbit p3=P1^1;
sbit p2=P1^0;
sbit p1=P3^7;
sbit p0=P3^4;
所有LED的阴极连在一起,经100欧电阻接地(电路图太简单就不画了)
大家可能看出来了,这东西有个比较迥的缺点是没有一个完整的8位IO口,连P1都不是完整的,因此像P1=0x08这种语句不能直接用
因此我加了一个函数用来设定一列的状态:
void setport(BYTE dat){
    dat <<= 1;
    p7=CY;
    dat <<= 1;
    p6=CY;
    dat <<= 1;
    p5=CY;
    dat <<= 1;
    p4=CY;
    dat <<= 1;
    p3=CY;
    dat <<= 1;
    p2=CY;
    dat <<= 1;
    p1=CY;
    dat <<= 1;
    p0=CY;
}
使用1个定时器对图形进行显示(更换列的操作,c>7的7可调,用于调到最佳显示效果):
void timer0() interrupt 1{
    TH0=0xFC;
    TL0=0x18;
    c++;
    if (c>7){
        c=0;
        setport(*(cur_char+x));
        x++;
        if (x>num_bit)
            x=0;
    }
}
初始化定时器:
//初始化定时器   1ms周期
TMOD=0x01;
AUXR=0X80;
TH0=0xFC;
TL0=0x18;
EA=1;    
ET0=1;
TR0=1
初始化端口(所有LED共地,高电平有效,因此需要强上拉模式,STC的专用模式):
P1M0=0xFF;         //P1全部强上拉
P1M1=0x00;
P3M0=0x90;         //P3.7和P3.4强上拉,P3.3普通留做按钮
P3M1=0x00;
主程序循环就很简单了,可以在这里加入延时和判断来显示多个变换的图形,我这里只显示心型就满足了:
while(1){
    cur_char=love;        
}

程序真的是很简单啊,分享下:
attachment icon LED.zip 23.00KB ZIP 28次下载
实物尽量的小,用了片洞洞板碎片
IMG_0583.JPG
超小体积:
IMG_0584.JPG
变态的芯片安装方式(主要是因为1-6脚用不上),这样空着还能下程序
IMG_0588.JPG
效果:
   IMG_0582.JPG
+35  科创币    delete   2012-07-02   外观啊&#39;&#39;&#39;&#39;
+20  科创币    向钱看向厚赚   2012-07-02   加个外观就更完美了
+5  科创币    258500309   2012-07-02   用更小封装的单片机+贴片led+纽扣电磁就能更小哦
+20  科创币    听我说瞎话   2012-07-02   不错!送给女女她肯定喜欢
+25  科创币    科学人   2012-07-02   
+10  科创币    坚持and突破   2012-07-02   小周的作品总是原理讲的很清除! 这外观......改进的空间还很大......
+150  科创币    天易   2012-07-27   外观
来自:电子信息 / 电子技术
2012-7-2 21:41:34
金坷居士(作者)
2楼
贴片洞洞板压力大,如果能PCB的话我可以做更精致的.......
+1  科创币    jxs   2012-07-02   热转印啊。。。
折叠评论
加载评论中,请稍候...
折叠评论
2012-7-2 22:08:45
金坷居士(作者)
5楼
回 4楼(jxs) 的帖子
目有啊
条件太艰苦
折叠评论
加载评论中,请稍候...
折叠评论
金坷居士(作者)
8楼
回 7楼(坚持and突破) 的帖子
用串口+STC专用下载程序即可
折叠评论
加载评论中,请稍候...
折叠评论
2012-07-03 09:25:46
金坷居士(作者)
11楼
回 10楼(-绘梦-) 的帖子
我倒是没这么惨,我把这个东西送给她让她自己研究如何使用...........
折叠评论
加载评论中,请稍候...
折叠评论
2013-10-02 15:15:52
2013-10-2 15:15:52
金坷居士(作者)
22楼
布布卡 发表于 2013-9-30 13:39
送给妹子之后。 就没有之后了。。

想送的要好好考虑


好好考虑+65536

已经分了[s:4]
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

金坷居士
学者 机友 笔友
文章
171
回复
1711
学术分
11
2011/09/23注册,6 小时前活动

怪哉!灵异的三极管电流流向! 这素一个在仿真的RCC电路,示波器上绿色的是集电极电流红色的是发射极电流。窝萌都知道发射姬电流素集电极电流和基极电流之和,所以讲道理发射极电流一定比集电极略大。可仿真结果刷了三观,Q1集电极电流一部分流经基极,然后流经Q2的C->E。

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png