自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
基于單片機(jī)的LED顯示搖棒制作
基于單片機(jī)的LED顯示搖棒制作
 更新時(shí)間:2009-11-10 9:45:16  點(diǎn)擊數(shù):0
【字體: 字體顏色

顯示效果圖片

 原理圖

 以下是詳細(xì)說(shuō)明:

圖形顯示的原理:
       利用人眼的視覺(jué)暫留效應(yīng),使手在擺動(dòng)到不同位置的時(shí)候,讓位于一條直線上的LED顯示二維圖像的不同的列,實(shí)現(xiàn)圖形掃描顯示。

物理機(jī)制:
       當(dāng)我們?cè)跀[動(dòng)手臂的時(shí)候,短時(shí)間內(nèi)擺動(dòng)位置和左右幅度不會(huì)有太大變化,利用我們手臂的這個(gè)運(yùn)動(dòng)規(guī)律,只要能得到棒從一側(cè)擺動(dòng)到另一側(cè)的時(shí)間,然后把這個(gè)時(shí)間分成N份,然后在每一份的時(shí)間里顯示不同的花樣就能實(shí)現(xiàn)圖形的顯示。當(dāng)我們?cè)跀[動(dòng)手臂的時(shí)候,并不能預(yù)先得知此次擺動(dòng)需要的時(shí)間,怎樣得到從一側(cè)擺動(dòng)到另一側(cè)的時(shí)間呢?
       再想想,短時(shí)間內(nèi)我們手臂的擺動(dòng)頻率也不會(huì)有特別大的變化,我們只要能得到前一次擺動(dòng)所用的時(shí)間,然后用這個(gè)時(shí)間近似得到下一次擺動(dòng)所需要的時(shí)間,然后分N份就可以了。得到一次擺動(dòng)所需的時(shí)間的任務(wù)由光遮斷器完成,在棒上裝一個(gè)可以擺動(dòng)的用來(lái)遮擋光遮斷器光線的細(xì)桿,粗細(xì)比光遮斷器的狹縫稍寬,我用的是整流橋焊后剪下的一段管腳。每左右擺動(dòng)一次這個(gè)桿就會(huì)通過(guò)一次光遮斷器,使單片機(jī)產(chǎn)生一次中斷,兩次中斷之間的時(shí)間就是想要得到的時(shí)間,實(shí)現(xiàn)這個(gè)功能用掉2051的一個(gè)定時(shí)器T0和外部中斷INT0。然后用2051的另一個(gè)定時(shí)器T1,其定時(shí)時(shí)間是T0的N分之一,每次中斷依次顯示一列,就是照片上的效果。
       再細(xì)想一下,手臂擺動(dòng)的頻率大于2Hz的時(shí)候才大概能由視覺(jué)暫留看出圖形,再快也不過(guò)十幾Hz,由T0為16位定時(shí)器的最長(zhǎng)計(jì)時(shí)時(shí)間得到2051的時(shí)鐘頻率1MHz最合適,還有遮擋用的細(xì)桿的粗細(xì)也可以大概估算,使其不會(huì)對(duì)計(jì)時(shí)精度產(chǎn)生太大影響。

所用元件:
AT89C2051 8元
高亮LED共8個(gè) 3.6元
電池盒 0.5元
單面萬(wàn)用板 8元 可以裁成3塊,做3個(gè)搖棒
陶瓷諧振器 1元
光遮斷器 2元
電阻電容導(dǎo)線 2元
外殼* 0.7元 可以裁成2塊

可選元件:
電源開(kāi)關(guān) 1元

總成本不超過(guò)20元

*外殼我用在家樂(lè)福買(mǎi)的半透明文件夾卷成的

此電路電路非常簡(jiǎn)單,代碼短,但是用到了2051的外部中斷編程和T0、T1定時(shí)器編程,非常適合初學(xué)者練習(xí)。我制作這個(gè)玩具花費(fèi)了兩個(gè)晚上的時(shí)間。此電路和程序還有擴(kuò)展改進(jìn)的空間,如在長(zhǎng)時(shí)間不擺動(dòng)的情況下可以使單片機(jī)進(jìn)入省電模式,顯示不僅限于對(duì)稱(chēng)圖片等,大家可以試試。

以下是源程序:
#include <reg51.h>
#define SEG 17 //每幀圖片分成17列來(lái)顯示
#define INTERVAL 20 //每幅圖片在左右搖擺20次后換下一幅

typedef unsigned char uchar;
typedef unsigned int uint;

code char pattern[17][3]={ //3幅圖片的字模
{0xff,0xff,0xff},
{0xff,0xff,0xff},
{0xff,0xff,0xff},
{0xff,0x9f,0xff},
{0xff,0x6f,0xf9},
{0xff,0x77,0x65},
{0xfe,0xbb,0x1e},
{0x7e,0xdd,0xfe},
{0x00,0xee,0xfe},
{0x7e,0xdd,0xfe},
{0xfe,0xbb,0x1e},
{0xff,0x77,0x65},
{0xff,0x6f,0xf9},
{0xff,0x9f,0xff},
{0xff,0xff,0xff},
{0xff,0xff,0xff},
{0xff,0xff,0xff},
};


uchar phase,th1,tl1,index,count;


main()
{
EA=0;
EX0=1;
ET1=1;
PX0=1;
IT0=1;
TMOD=0x11;
index=0;
EA=1;
while(1)
{
}
}

void Int0_Handle(void) interrupt 0 using 2
{
uint t0_time;
TR0=0;
TR1=0;
TF1=0;
t0_time=TH0<<8|TL0;
TL0=0;
TH0=0;
TR0=1;
t0_time=65535-t0_time/SEG;
th1=t0_time/256;
TH1=th1;
tl1=t0_time % 256;
TL1=tl1;
if (count<3*INTERVAL){ //3幅圖片循環(huán)
count++;
}
else{
count=0;
}
index=count/INTERVAL;
if (th1!=0xff || tl1!=0xff){ //如果擺動(dòng)特別慢,定時(shí)器溢出就不顯示
phase=0;
TR1=1;
}
else{
TR1=0;
}
}

void Timer1(void) interrupt 3 using 3
{
if (phase<SEG) //17段依次顯示
{
P1=pattern[phase][index];
phase++;
TH1=th1;
TL1=tl1;
}
}

 

  • 上一篇: AT89C51制作的簡(jiǎn)單計(jì)數(shù)器
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1