0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

迷你摇摇棒制作方法

454398 作者:工程师吴畏 2018-09-21 08:17 次阅读

手头上攒了一些手机电池不知道干嘛就寻思着做一些小玩意,于是就有了一个主意就是摇摇棒即简单又好玩,本人喜欢小而巧的东西所以就把这个东西做的很小。

迷你摇摇棒制作方法

上图是摇摇棒的原理利用人的视觉暂留结合单片机控制LED的亮灭就可以在空中显示字符或者图标。

迷你摇摇棒制作方法

上图是电路图为了把东西做小我选择了STC15F104单片机它有8个引脚去除VCC和GND还有6个I/O口可以显示一些简单的字母和数字单片机内部自带了EEPROM所以利用它可以存储每一次显示的状态(每一次的开关电源就可以切换到下一个显示的字符)

程序在最后面。

代码在下面:

#include

#define uchar unsigned char

#define EN_EPROM 0x83; //使能EEPROM

#define S_MODE 0x00; //待机模式

#define R_MODE 0x01; //读模式

#define W_MODE 0x02; //写模式

#define F_MODE 0x03; //擦除模式

sfr IAP_DATA = 0xC2;

sfr IAP_ADDRH = 0xC3;

sfr IAP_ADDRL = 0xC4;

sfr IAP_CMD = 0xC5;

sfr IAP_TRIG = 0xC6;

sfr IAP_CONTR = 0xC7;

void init();

uchar num=0,m=0;

uchar read_dat(uchar addr_h,uchar addr_l);

void erase_dat(uchar addr_h,uchar addr_l);

void write_dat(uchar addr_h,uchar addr_l,uchar w_dat);

unsigned char code tab[10][32]={

{

0xe7,0xc3,0xc1,0xe0,0xc1,0xc3,0xe7,0xff,

0xff,0xff,0xff,0xe7,0xc3,0xc1,0xe0,0xc1,

0xc3,0xe7,0xff,0xff,0xff,0xff,0xe7,0xc3,

0xc1,0xe0,0xc1,0xc3,0xe7,0xff,0xff,0xff

},

{

0xff,0xff,0xde,0xc0,0xde,0xff,0xff,0xff,

0xff,0xff,0xff,0xe7,0xc3,0xc1,0xe0,0xc1,

0xc3,0xe7,0xff,0xff,0xff,0xff,0xff,0xc1,

0xfe,0xfe,0xfe,0xfe,0xc1,0xff,0xff,0xff

},

{

0xde,0xed,0xf3,0xf3,0xed,0xde,0xff,0xff,

0xff,0xff,0xff,0xde,0xed,0xf3,0xf3,0xed,

0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xde,

0xed,0xf3,0xf3,0xed,0xde,0xff,0xff,0xff

},

{

0xfb,0xfd,0xd6,0xe8,0xd6,0xfd,0xfb,0xff,

0xff,0xff,0xff,0xfb,0xfd,0xd6,0xe8,0xd6,

0xfd,0xfb,0xff,0xff,0xff,0xff,0xfb,0xfd,

0xd6,0xe8,0xd6,0xfd,0xfb,0xff,0xff,0xff

},

{

0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,

0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,

0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,

0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5

},

{

0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,

0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,

0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,

0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff

},

{

0xf0,0xed,0xdd,0xed,0xf0,0xff,0xff,0xdf,

0xdf,0xc0,0xdf,0xdf,0xff,0xff,0xc1,0xfe,

0xfe,0xfe,0xc1,0xff,0xff,0xc1,0xfe,0xf1,

0xfe,0xc1,0xff,0xff,0xe1,0xde,0xde,0xe1

},

{

0xc0,0xfb,0xfb,0xfb,0xc0,0xff,0xff,0xff,

0xff,0xff,0xde,0xed,0xf3,0xf3,0xed,0xde,

0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xf7,

0xf8,0xf7,0xcf,0xff,0xff,0xff,0xff,0xff

},

{

0xc0,0xde,0xd2,0xda,0xda,0xc2,0xfe,0xc0,

0xdf,0xd0,0xd6,0xd6,0xd2,0xde,0xc0,0xff,

0xc0,0xde,0xd2,0xda,0xda,0xc2,0xfe,0xc0,

0xdf,0xd0,0xd6,0xd6,0xd2,0xde,0xc0,0xff

},

{

0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,

0xf7,0xef,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

0xfd,0xfb,0xf7,0xef,0xdf,0xef,0xf7,0xfb,

0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff

},

};

void delay(uchar xms)

{

char i,j;

for(i=0;i for(j=0;j《50;j++);

}

void main()

{

init();

num=read_dat(0x00,0x01);

++num;

if(num》=11)

{

num=1;

};

erase_dat(0x00,0x01);

write_dat(0x00,0x01,num);

while(1)

{

uchar i=0;

for(i=0;i《32;i++)

{

P3=tab[num-1][i];

delay(100);

}

}

}

void init()

{

IAP_CONTR = EN_EPROM; //把第7位置1允许EEPROM可以读写

IAP_CMD = S_MODE; //待机模式无ISP操作

IAP_ADDRH = 0x00;

IAP_ADDRL = 0x00;

}

uchar read_dat(uchar addr_h,uchar addr_l)

{

uchar E_dat = 0x00;

IAP_CMD = R_MODE; //模式选择为读EEPROM

IAP_ADDRH = addr_h;

IAP_ADDRL = addr_l;

IAP_TRIG = 0x5A; //使命令有效

IAP_TRIG = 0xA5; //使命令有效

E_dat = IAP_DATA;

return E_dat;

}

void write_dat(uchar addr_h,uchar addr_l,uchar w_dat)

{

IAP_CMD = W_MODE; //模式选择为写EEPROM

IAP_ADDRH = addr_h;

IAP_ADDRL = addr_l;

IAP_DATA = w_dat;

IAP_TRIG = 0x5A; //使命令有效

IAP_TRIG = 0xA5; //使命令有效

}

void erase_dat(uchar addr_h,uchar addr_l)

{

IAP_CMD = F_MODE; //模式选择为擦除EEPROM

IAP_ADDRH = addr_h;

IAP_ADDRL = addr_l;

IAP_TRIG = 0x5A; //使命令有效

IAP_TRIG = 0xA5; //使命令有效

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632738
  • 摇摇棒
    +关注

    关注

    10

    文章

    61

    浏览量

    30874
收藏 人收藏

    评论

    相关推荐

    摇摇制作详解---打造最详细的摇摇问题汇集帖!

    `先前,在网上也就看到过摇摇的资料和视频,协会也有人陆陆续续的做过。临近开学,面临着协会( 无线电协会招生的任务,感觉按常规思路走下去效果不会太好,所以就尝试了新的方法。而这摇摇
    发表于 09-21 20:50

    摇摇制作过程——很详细的制作设计报告哦~~

    摇摇制作过程
    发表于 12-17 22:17

    摇摇制作

    摇摇制作
    发表于 12-22 20:47

    教你如何成为舞台下的明星(LED摇摇

    `摇摇制作方法`
    发表于 02-17 17:17

    摇摇求教?

    各位老大最近想做一个摇摇,看了很多帖子都有制作方法,但是发现没有说怎么输入程序的 是不是还要什么东西来输入程序啊 ?
    发表于 05-01 15:33

    求高手 怎么样制作3d的摇摇

    求论坛高手怎么制作带有3d 效果的摇摇,来一个好人。。。
    发表于 06-21 00:15

    DIY摇摇

    ` 本帖最后由 汪桃源 于 2013-6-29 22:55 编辑 DIY摇摇制作资料[/td] [td]`
    发表于 06-28 11:54

    摇摇不亮

    制作摇摇不亮,该怎么办呢,
    发表于 12-01 08:28

    LED摇摇制作详情

    LED摇摇很好地利用了人眼的视觉暂留特性。下图是基于51单片机控制、16只高亮度LED发光二极管构成的摇摇,配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。演
    发表于 05-10 18:15 0次下载
    LED<b class='flag-5'>摇摇</b><b class='flag-5'>棒</b><b class='flag-5'>制作</b>详情

    32位灯的摇摇

    32位灯的摇摇。里面包含有摇摇的原理图,摇摇制作
    发表于 11-18 16:48 50次下载

    单片机实战项目之摇摇制作原理图

    用于摇摇制作的原理图,仅供参考,适用于个人资质
    发表于 03-16 15:01 34次下载

    摇摇配套资料

    单片机小制作摇摇,夜晚晃动可显示字体图案等。摇摇配套资料
    发表于 09-18 14:09 21次下载

    摇摇项目

    制作摇摇
    发表于 04-25 10:18 50次下载

    LED摇摇制作C语言程序和电路原理图免费下载

    本文档的主要内容详细介绍的是摇摇制作C语言程序和电路原理图免费下载。
    发表于 05-22 17:02 36次下载
    LED<b class='flag-5'>摇摇</b><b class='flag-5'>棒</b>的<b class='flag-5'>制作</b>C语言程序和电路原理图免费下载

    迷你稳压电源的制作方法

    电子发烧友网站提供《迷你稳压电源的制作方法.zip》资料免费下载
    发表于 08-02 14:26 5次下载
    <b class='flag-5'>迷你</b>稳压电源的<b class='flag-5'>制作方法</b>