<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    LED顯示搖棒全套方案及源程序

    發布時間:2010-11-1 21:46    發布者:eetech
    關鍵詞: LED , 顯示搖棒 , 源程序
    情人節我們做電的兄弟們送什么禮物給心儀已久的MM?在離情人節還有一個月的時間,給大家提供一個適合作為禮物的簡單電路,自己動手做的漂亮玩具一定會是送給MM的最好的禮物。

    以下是詳細說明:

    圖形顯示的原理:

    利用人眼的視覺暫留效應,使手在擺動到不同位置的時候,讓位于一條直線上的LED顯示二維圖像的不同的列,實現圖形掃描顯示。

    物理機制:

    當我們在擺動手臂的時候,短時間內擺動位置和左右幅度不會有太大變化,利用我們手臂的這個運動規律,只要能得到棒從一側擺動到另一側的時間,然后把這個時間分成N份,然后在每一份的時間里顯示不同的花樣就能實現圖形的顯示。當我們在擺動手臂的時候,并不能預先得知此次擺動需要的時間,怎樣得到從一側擺動到另一側的時間呢?再想想,短時間內我們手臂的擺動頻率也不會有特別大的變化,我們只要能得到前一次擺動所用的時間,然后用這個時間近似得到下一次擺動所需要的時間,然后分N份就可以了。得到一次擺動所需的時間的任務由光遮斷器完成,在棒上裝一個可以擺動的用來遮擋光遮斷器光線的細桿,粗細比光遮斷器的狹縫稍寬,我用的是整流橋焊后剪下的一段管腳。每左右擺動一次這個桿就會通過一次光遮斷器,使單片機產生一次中斷,兩次中斷之間的時間就是想要得到的時間,實現這個功能用掉2051的一個定時器T0和外部中斷INT0。然后用2051的另一個定時器T1,其定時時間是T0的N分之一,每次中斷依次顯示一列,就是照片上的效果。

    再細想一下,手臂擺動的頻率大于2Hz的時候才大概能由視覺暫留看出圖形,再快也不過十幾Hz,由T0為16位定時器的最長計時時間得到2051的時鐘頻率1MHz最合適,還有遮擋

    用的細桿的粗細也可以大概估算,使其不會對計時精度產生太大影響。

    所用元件:

      AT89C2051      8元
      高亮LED共8個   3.6元
      電池盒         0.5元
      單面萬用板     8元    可以裁成3塊,做3個搖棒
      陶瓷諧振器     1元
      光遮斷器       2元
      電阻電容導線   2元
      外殼*          0.7元    可以裁成2塊

    可選元件:

      電源開關       1元

      總成本不超過20元

    *外殼我用在家樂福買的半透明文件夾卷成的


    此電路電路非常簡單,代碼短,但是用到了2051的外部中斷編程和T0、T1定時器編程,非常適合初學者練習。我制作這個玩具花費了兩個晚上的時間。此電路和程序還有擴展改進

    的空間,如在長時間不擺動的情況下可以使單片機進入省電模式,顯示不僅限于對稱圖片等,大家可以試試。

    以下是源程序:

    /*************************************************************************/
    //        ---------------
    //          LED顯示搖棒
    //        ---------------
    //    作者:nim    于 http://www.21icbbs.com    2005-1-7
    //
    //    email: linyige@yahoo.com
    //        
    //    本設計版權歸作者所有,請勿擅自用于商業目的,轉載請注明作者及出處
    /*************************************************************************/
    #include
    #define SEG 17        //每幀圖片分成17列來顯示
    #define INTERVAL 20    //每幅圖片在左右搖擺20次后換下一幅

    typedef unsigned char uchar;
    typedef unsigned int uint;

    code char pattern[17]={    //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幅圖片循環
            count++;
        }
        else{
            count=0;
        }
        index=count/INTERVAL;
        if (th1!=0xff || tl1!=0xff){    //如果擺動特別慢,定時器溢出就不顯示
            phase=0;
            TR1=1;
        }
        else{
            TR1=0;
        }
    }

    void Timer1(void) interrupt 3 using 3
    {
        if (phase     {
            P1=pattern[phase][index];
            phase++;
            TH1=th1;
            TL1=tl1;
        }
    }

    本文地址:http://www.portaltwn.com/thread-35758-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關在線工具

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷