0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

迷你搖搖棒制作方法

454398 ? 作者:工程師吳畏 ? 2018-09-21 08:17 ? 次閱讀

手頭上攢了一些手機電池不知道干嘛就尋思著做一些小玩意,于是就有了一個主意就是搖搖棒即簡單又好玩,本人喜歡小而巧的東西所以就把這個東西做的很小。

迷你搖搖棒制作方法

上圖是搖搖棒的原理利用人的視覺暫留結(jié)合單片機控制LED的亮滅就可以在空中顯示字符或者圖標(biāo)。

迷你搖搖棒制作方法

上圖是電路圖為了把東西做小我選擇了STC15F104單片機它有8個引腳去除VCC和GND還有6個I/O口可以顯示一些簡單的字母和數(shù)字單片機內(nèi)部自帶了EEPROM所以利用它可以存儲每一次顯示的狀態(tài)(每一次的開關(guān)電源就可以切換到下一個顯示的字符)

程序在最后面。

代碼在下面:

#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; //使命令有效

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635354
  • 搖搖棒
    +關(guān)注

    關(guān)注

    10

    文章

    61

    瀏覽量

    30895
收藏 人收藏

    評論

    相關(guān)推薦

    搖搖制作詳解---打造最詳細(xì)的搖搖問題匯集帖!

    `先前,在網(wǎng)上也就看到過搖搖的資料和視頻,協(xié)會也有人陸陸續(xù)續(xù)的做過。臨近開學(xué),面臨著協(xié)會( 無線電協(xié)會招生的任務(wù),感覺按常規(guī)思路走下去效果不會太好,所以就嘗試了新的方法。而這搖搖
    發(fā)表于 09-21 20:50

    搖搖制作過程——很詳細(xì)的制作設(shè)計報告哦~~

    搖搖制作過程
    發(fā)表于 12-17 22:17

    搖搖制作

    搖搖制作
    發(fā)表于 12-22 20:47

    教你如何成為舞臺下的明星(LED搖搖

    `搖搖制作方法`
    發(fā)表于 02-17 17:17

    搖搖求教?

    各位老大最近想做一個搖搖,看了很多帖子都有制作方法,但是發(fā)現(xiàn)沒有說怎么輸入程序的 是不是還要什么東西來輸入程序啊 ?
    發(fā)表于 05-01 15:33

    求高手 怎么樣制作3d的搖搖

    求論壇高手怎么制作帶有3d 效果的搖搖,來一個好人。。。
    發(fā)表于 06-21 00:15

    DIY搖搖

    ` 本帖最后由 汪桃源 于 2013-6-29 22:55 編輯 DIY搖搖制作資料[/td] [td]`
    發(fā)表于 06-28 11:54

    搖搖不亮

    制作搖搖不亮,該怎么辦呢,
    發(fā)表于 12-01 08:28

    LED搖搖制作詳情

    LED搖搖很好地利用了人眼的視覺暫留特性。下圖是基于51單片機控制、16只高亮度LED發(fā)光二極管構(gòu)成的搖搖,配合手的左右搖晃就可呈現(xiàn)一幅完整的畫面,可以顯示字符、圖片等。演
    發(fā)表于 05-10 18:15 ?0次下載
    LED<b class='flag-5'>搖搖</b><b class='flag-5'>棒</b><b class='flag-5'>制作</b>詳情

    32位燈的搖搖

    32位燈的搖搖。里面包含有搖搖的原理圖,搖搖制作
    發(fā)表于 11-18 16:48 ?50次下載

    單片機實戰(zhàn)項目之搖搖制作原理圖

    用于搖搖制作的原理圖,僅供參考,適用于個人資質(zhì)
    發(fā)表于 03-16 15:01 ?34次下載

    搖搖配套資料

    單片機小制作搖搖,夜晚晃動可顯示字體圖案等。搖搖配套資料
    發(fā)表于 09-18 14:09 ?21次下載

    搖搖項目

    制作搖搖
    發(fā)表于 04-25 10:18 ?50次下載

    LED搖搖制作C語言程序和電路原理圖免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是搖搖制作C語言程序和電路原理圖免費下載。
    發(fā)表于 05-22 17:02 ?36次下載
    LED<b class='flag-5'>搖搖</b><b class='flag-5'>棒</b>的<b class='flag-5'>制作</b>C語言程序和電路原理圖免費下載

    迷你穩(wěn)壓電源的制作方法

    電子發(fā)燒友網(wǎng)站提供《迷你穩(wěn)壓電源的制作方法.zip》資料免費下載
    發(fā)表于 08-02 14:26 ?5次下載
    <b class='flag-5'>迷你</b>穩(wěn)壓電源的<b class='flag-5'>制作方法</b>