新聞中心

        EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 旋轉(zhuǎn)LED屏原理介紹

        旋轉(zhuǎn)LED屏原理介紹

        作者: 時間:2012-03-21 來源:網(wǎng)絡(luò) 收藏

          POV led”一詞(POV即persistancd of vision),LED屏。那些搖晃出的空中圖案,漂浮在車輪上的動畫,以及形態(tài)各異的時鐘,一定給你留下深刻印象。你是否想過自己親自動手做一個LED屏呢?其實(shí)說白了就是一個晃動的流水燈。

        旋轉(zhuǎn)LED屏原理介紹

          在51單片機(jī)最簡系統(tǒng)的其中的一個端口P0接上8個LED,就是一個典型的流水燈實(shí)驗(yàn)電路。由于沒有幾個元件,說干就干,把所有元件焊在萬能板上,不需花費(fèi)多長時間,就可完成整個制作。

          

        旋轉(zhuǎn)LED屏原理介紹

          下面是隨便找一個流水燈的C51程序

          #include

          void main(void)

          {

          unsigned int i,ch;

          ch=0x01;

          while(1)

          {

          for(i=500;i>0;i--);

          if(ch==0x00) ch=0x01; else ch=ch1;

          P0=~ch;

          }

          }

          將這程序編譯下載到系統(tǒng)的單片機(jī)上,待LED燈光開始正常開跑后,我們拿著它在手上來回晃動,你發(fā)現(xiàn)這光已經(jīng)不是一條豎直線了,它已經(jīng)變成了一條條斜線。你可以適當(dāng)修改程序中的延時,讓這一連串的斜線更漂亮些(寬和高基本一致),怎么樣,我們的最簡LED屏就這樣做成了。

          

        旋轉(zhuǎn)LED屏原理介紹

          高興之余,發(fā)現(xiàn)這與我們的目標(biāo)好象還有點(diǎn)遙遠(yuǎn),我們并不需要這些斜線,怎樣才能做出網(wǎng)上的那些大蝦那樣顯示的各種各樣的文字圖案呢?接下來,我們還得想其它辦法,換一下思路,將需要的圖案數(shù)據(jù)一串存在數(shù)組中,運(yùn)行時又將數(shù)據(jù)一串串讀出來,驅(qū)動LED,這樣就能看到我們想看到的圖案了。

        這是用此思路編的流水燈C51程序

          #include

          code unsigned char led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

          void main(void)

          {

          unsigned int i,j;

          while(1)

          {

          for(j=0;j8;j++){

          P0=~led[j];

          for(i=3000;i>0;i--);

          }

          }

          }

          運(yùn)行看一下,結(jié)果與我們的第一個程序效果是一樣的,但這個程序的優(yōu)勢在于我們可以按我們的要求,改變數(shù)組中的數(shù)據(jù)來驅(qū)動端口上的LED,達(dá)到我們預(yù)期的顯示效果。這可以說是流水燈的萬能程序。這樣我們邁出了第一步。

          再來看如何產(chǎn)生需要的圖案。

          現(xiàn)在我們讓LED顯示數(shù)字12為例,我們先作一個表。

          0 1 0 0 1 1 1 1 低四位

          1 1 0 0 1 0 0 1

          0 1 0 0 0 0 0 1

          0 1 0 0 0 0 1 0

          0 1 0 0 0 1 0 0 高四位

          0 1 0 0 1 0 0 0

          0 1 0 0 1 0 0 0

          1 1 1 0 1 1 1 1

          從下到上將每列看成是一個16進(jìn)制數(shù),我得到8個16進(jìn)制數(shù)

          10000010=0x82

          11111111=0xff

          10000000=0x80

          00000000=0x00

          11100011=0xe3

          10010001=0x91

          10001001=0x89

          10000111=0x87

          這樣我們得到了我們想要的一組掃描碼{0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87}

          將前一程序的數(shù)組數(shù)據(jù)改成我們得到的掃描碼,我們得到新的C51程序

          #include

          code unsigned char led[]={0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87};

          void main(void)

          {

          unsigned int i,j;

          while(1)

          {

          for(j=0;j8;j++){

          P0=~led[j];

          for(i=600;i>0;i--);

          }

          for(i=8000;i>0;i--);

          for(i=8000;i>0;i--);

          }

          }

          編譯下載后,將運(yùn)行進(jìn)的電路板來回晃晃看……,哈,“12”已隱約出現(xiàn)在眼前。

          

        旋轉(zhuǎn)LED屏原理介紹

          

        旋轉(zhuǎn)LED屏原理介紹

          哈哈,是不是成功離我們已經(jīng)不遠(yuǎn)了。

          最后是發(fā)揮部分。接著要做的事就是解決如何讓這些LED運(yùn)動,如何檢測運(yùn)行時的開始和結(jié)束,如何給運(yùn)動著的系統(tǒng)供電,如何控制運(yùn)動著的系統(tǒng)….等等。不同的解決方案造就各具特色的LED旋轉(zhuǎn)屏。



        關(guān)鍵詞: 旋轉(zhuǎn) LED屏 原理介紹

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 和硕县| 湾仔区| 海阳市| 泽普县| 中宁县| 华阴市| 孝感市| 姚安县| 进贤县| 扎囊县| 卓尼县| 阿拉善盟| 望谟县| 同仁县| 永清县| 东至县| 万州区| 江川县| 江口县| 会同县| 比如县| 自贡市| 湛江市| 长宁区| 吐鲁番市| 独山县| 海门市| 丽水市| 女性| 老河口市| 松阳县| 彰化县| 宜丰县| 阜新| 文昌市| 嘉义县| 灌云县| 上蔡县| 锦屏县| 英吉沙县| 睢宁县|