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;        
}

程序真的是很简单啊,分享下:
LED.zip
23.0k
ZIP
20次下载

实物尽量的小,用了片洞洞板碎片
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:40:08
1楼
貌似有更小的单片机,不过只有8个脚。。。其实lz可以试试贴片的啊,led也贴片,就能装更多led啦,效果更好啦。。。
折叠评论
加载评论中,请稍候...
折叠评论
金坷居士(作者)
2楼
回 1楼(jxs) 的帖子
贴片洞洞板压力大,如果能PCB的话我可以做更精致的.......
+1  科创币    jxs   2012-07-02   热转印啊。。。
折叠评论
加载评论中,请稍候...
折叠评论
3楼
据说avr单片机有只有六个引脚的,还不需要晶振电路。
折叠评论
加载评论中,请稍候...
折叠评论
4楼
等等,为啥不加上方向感应器?比如水银开关啥的,这样搞不怕重影?
折叠评论
加载评论中,请稍候...
折叠评论
金坷居士(作者)
5楼
回 4楼(jxs) 的帖子
目有啊
条件太艰苦
折叠评论
加载评论中,请稍候...
折叠评论
6楼
回 5楼(金坷居士) 的帖子
额,细铜线有吧。。。网线里面那种,焊两根上去代替。。。或者安个开关,往一边摇时按下,另一边别按,同样的效果 。。。
折叠评论
加载评论中,请稍候...
折叠评论
7楼
程序如何灌到单片机里?
+1  科创币    delete   2012-07-20   编程器 = =。
折叠评论
加载评论中,请稍候...
折叠评论
金坷居士(作者)
8楼
回 7楼(坚持and突破) 的帖子
用串口+STC专用下载程序即可
折叠评论
加载评论中,请稍候...
折叠评论
9楼
还是比较麻烦[s:274]算了我也不哄女孩子。我还是用几片CD4017做个流水灯哄我女儿玩吧![s:274]
+1  科创币    jxs   2012-07-03   = = 这个更麻烦吧。。。
折叠评论
加载评论中,请稍候...
折叠评论
2012-07-03 01:12:51
10楼
楼主还想送妹子?呵呵呵呵呵呵呵哈哈哈

看看前人的教训吧。
http://www.amobbs.com/forum.php?mod=viewthread&tid=4719495
-1  科创币    金坷居士   2012-07-03   手痒痒 抱歉~~~
+1  科创币    猎鹰   2012-07-03   送基友
+1  科创币    布布卡   2012-07-27   。。。
折叠评论
加载评论中,请稍候...
折叠评论
金坷居士(作者)
11楼
回 10楼(-绘梦-) 的帖子
我倒是没这么惨,我把这个东西送给她让她自己研究如何使用...........
折叠评论
加载评论中,请稍候...
折叠评论
2012-07-27 10:45:41
2012-7-27 10:45:41
12楼
原来对时钟要求不高啊。。我还以为要求很高了。。准备用51做个24灯的。。。
折叠评论
加载评论中,请稍候...
折叠评论
2012-08-02 11:20:41
2012-8-2 11:20:41
13楼
32灯的多好呀,40脚的单片机正好IO口用完,汉字能显示两排。
折叠评论
加载评论中,请稍候...
折叠评论
14楼
有没有考虑加入震动电机?
折叠评论
加载评论中,请稍候...
折叠评论
15楼
回 14楼(美味的氰化钾) 的帖子
想歪了?!
+1  科创币    张静茹   2013-09-17   你这个治疗方法不佳,我只要选择禁止接受此.
折叠评论
加载评论中,请稍候...
折叠评论
16楼
回 9楼(坚持and突破) 的帖子
啊,话说我在接触单片机之前居然用一大堆74芯片和几个数码管做出了一个电子钟......用了整整六块面包板,线乱的一塌糊涂
+1  科创币    布布卡   2013-08-24   分频 译码。 一开始我也想这样做个钟 后来知道有个东西叫51单片机。 我这有份全硬件的数码管频率计电路
折叠评论
加载评论中,请稍候...
折叠评论
2013-08-24 20:18:57
2013-8-24 20:18:57
17楼
不用水银开关吗[s:275]
折叠评论
加载评论中,请稍候...
折叠评论
18楼
还是杜洋的思路好,单片机引脚间距中间焊接贴片led,单片机本身就是骨架。
折叠评论
加载评论中,请稍候...
折叠评论
2013-09-17 19:05:15
2013-9-17 19:05:15
19楼
[s:8][s:101][s:102][s:105]
折叠评论
加载评论中,请稍候...
折叠评论
2013-09-26 10:52:41
2013-9-26 10:52:41
20楼
这个不错  
折叠评论
加载评论中,请稍候...
折叠评论
2013-09-30 13:39:24
2013-9-30 13:39:24
21楼
送给妹子之后。 就没有之后了。。

想送的要好好考虑[s:9]
折叠评论
加载评论中,请稍候...
折叠评论
2013-10-02 15:15:52
2013-10-2 15:15:52
金坷居士(作者)
22楼
布布卡 发表于 2013-9-30 13:39
送给妹子之后。 就没有之后了。。

想送的要好好考虑


好好考虑+65536

已经分了[s:4]
折叠评论
加载评论中,请稍候...
折叠评论
2013-10-23 10:57:56
2013-10-23 10:57:56
23楼
借用能量守恒定律:把泡妞动力转化为DIY学习上的典型案例。
折叠评论
加载评论中,请稍候...
折叠评论
2013-11-12 02:55:20
2013-11-12 2:55:20
24楼
楼主好想法啊,等我学会了我也做一个。[s:3]
折叠评论
加载评论中,请稍候...
折叠评论
2015-03-28 10:29:28
2015-3-28 10:29:28
25楼
以前用51做过,比这个大好多。没有用过这个STC11F04E,用这个要实现画面切换应该怎么做啊 ???求解答         还有就是用PCB 的话  电路好像很简单啊 直接把LED和引脚连接就行了吗?
折叠评论
加载评论中,请稍候...
折叠评论

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

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

怪哉!灵异的三极管电流流向! 这素一个在仿真的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