DIY一个超小型单片机摇摇棒
金坷居士2012/07/02电子技术 IP:陕西
单片机摇摇棒是吸引女性的极佳物品(我把这个当礼物送给某同学)下面就讲述下原理和我是如何制作的

摇摇棒的原理很简单,就是利用人眼的视觉暂留效应,在任意时刻图形只有一部分显示,但是晃动起来后就可以看到完整图形
比如我要显示心型(大家懂得),就把心型呈现在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 22.02KB ZIP 47次下载
实物尽量的小,用了片洞洞板碎片
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  科创币    CodyChen    2012/07/02 用更小封装的单片机+贴片led+纽扣电磁就能更小哦
+20  科创币    听我说瞎话    2012/07/02 不错!送给女女她肯定喜欢
+25  科创币    科学人    2012/07/02
+10  科创币    坚持and突破    2012/07/02 小周的作品总是原理讲的很清除! 这外观......改进的空间还很大......
+150  科创币    天易    2012/07/27 外观
来自:电子信息 / 电子技术
26
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
金坷居士 作者
11年11个月前 IP:未同步
415103
回 1楼(jxs) 的帖子
贴片洞洞板压力大,如果能PCB的话我可以做更精致的.......
+1
科创币
jxs
2012-07-02
热转印啊。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
11年11个月前 IP:未同步
415114
回 4楼(jxs) 的帖子
目有啊
条件太艰苦
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
11年11个月前 IP:未同步
415162
回 7楼(坚持and突破) 的帖子
用串口+STC专用下载程序即可
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
11年11个月前 IP:未同步
415215
回 10楼(-绘梦-) 的帖子
我倒是没这么惨,我把这个东西送给她让她自己研究如何使用...........
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
10年8个月前 IP:未同步
647047
布布卡 发表于 2013-9-30 13:39
送给妹子之后。 就没有之后了。。

想送的要好好考虑


好好考虑+65536

已经分了[s:4]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
所属分类
上级专业
同级专业
金坷居士
学者 机友 笔友
文章
170
回复
1711
学术分
11
2011/09/23注册,2个月16天前活动

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

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}