久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

旋轉LED燈原理和應用

作者:佚名   來源:本站原創(chuàng)   點擊數:  更新時間:2013年08月04日   【字體:

 

 

如果你在網上用google搜索“POV led”一詞(POV即persistancd of vision),會找到世界各地的各種LED旋轉屏的制作介紹。那些搖晃出的空中圖案,漂浮在車輪上的動畫,以及形態(tài)各異的時鐘,一定給你留下深刻印象。看到這些千奇百怪、創(chuàng)意無限的電子作品,除了羨慕、敬佩、感嘆外,你是否想過自己親自動手也做一個,做一個屬于你自己的LED旋轉屏呢?其實,無論你看到的LED旋轉屏如何神奇,如何復雜,其原理都一樣,也很簡單,說白了就是一個晃動的流水燈。
51單片機最簡系統(tǒng)的其中的一個端口P0接上8LED,就是一個典型的流水燈實驗電路。由于沒有幾個元件,說干就干,把所有元件焊在萬能板上,不需花費多長時間,就可完成整個制作。


 

下面是隨便找一個流水燈的C51程序
#include <reg51.h>
             
void main(void)
{
unsigned int i,ch;
ch=0x01;
while(1)
{
    for(i=500;i>0;i--);
    if(ch==0x00) ch=0x01; else ch=ch<<1;
    P0=~ch;
}
}
將這程序編譯下載到系統(tǒng)的單片機上,待LED燈光開始正常開跑后,我們拿著它在手上來回晃動,你發(fā)現這光已經不是一條豎直線了,它已經變成了一條條斜線。你可以適當修改程序中的延時,讓這一連串的斜線更漂亮些(寬和高基本一致),怎么樣,我們的最簡LED旋轉屏就這樣做成了。

 
高興之余,發(fā)現這與我們的目標好象還有點遙遠,我們并不需要這些斜線,怎樣才能做出網上的那些大蝦那樣顯示的各種各樣的文字圖案呢?接下來,我們還得想其它辦法,換一下思路,將需要的圖案數據一串存在數組中,運行時又將數據一串串讀出來,驅動LED,這樣就能看到我們想看到的圖案了。
這是用此思路編的流水燈C51程序
#include <reg51.h>
code unsigned char led[]={0x01,
0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void main(void)
{
unsigned int i,j;
while(1)
{
    for(j=0;j<8;j++){
       P0=~led[j];
       for(i=3000;i>0;i--);
    }
}
}
運行看一下,結果與我們的第一個程序效果是一樣的,但這個程序的優(yōu)勢在于我們可以按我們的要求,改變數組中的數據來驅動端口上的LED,達到我們預期的顯示效果。這可以說是流水燈的萬能程序。這樣我們邁出了第一步。
再來看如何產生需要的圖案。
現在我們讓LED顯示數字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進制數,我得到8個16進制數
10000010=0x82
11111111=0xff
10000000=0x80
00000000=0x00
11100011=0xe3
10010001=0x91
10001001=0x89
10000111=0x87
這樣我們得到了我們想要的一組掃描碼{0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87}   
將前一程序的數組數據改成我們得到的掃描碼,我們得到新的C51程序
#include <reg51.h>
code unsigned char led[]={0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87};
void main(void)
{
unsigned int i,j;
while(1)
{
    for(j=0;j<8;j++){
       P0=~led[j];
      for(i=600;i>0;i--);
       }
    for(i=8000;i>0;i--);
    for(i=8000;i>0;i--);
}
}
編譯下載后,將運行進的電路板來回晃晃看……,哈,“12”已隱約出現在眼前。

 

是不是成功離我們已經不遠了。
最后是發(fā)揮部分。接著要做的事就是解決如何讓這些LED運動,如何檢測運行時的開始和結束,如何給運動著的系統(tǒng)供電,如何控制運動著的系統(tǒng)….等等。不同的解決方案造就各具特色的LED旋轉屏。
用上面的辦法對一些簡單圖案還能行,當遇到LED個數多或圖文復雜時,用這樣直接取碼的工作量就會很大,這就需要專門軟件,根據顯示的字符和圖案自動生成掃描碼。好在網上有不少這類軟件可免費下載,免去了手工取碼之苦。
     臨淵羨魚,不如退而結網,動手做一個真正屬于自己的旋轉LED顯示并不難。

關閉窗口

相關文章

主站蜘蛛池模板: 亚洲欧美国产精品一区二区 | 超级乱淫av片免费播放 | 日韩高清国产一区在线 | 九色一区| 日日摸天天添天天添破 | 在线播放91 | 最新中文字幕在线播放 | 伊人网综合在线 | 亚洲成人中文字幕 | 国产精品久久久久久久久久了 | h视频在线播放 | 欧美在线日韩 | 国产精品一区二区久久 | 视频一区在线播放 | 国产欧美精品区一区二区三区 | 免费一级做a爰片久久毛片潮喷 | 在线一级片 | 欧美精选一区二区 | av免费看在线 | 日本精品免费在线观看 | 91成人在线视频 | 亚洲欧美国产毛片在线 | 婷婷一级片 | 精品一区二区三区四区外站 | 亚洲一区二区三区观看 | 午夜成人免费视频 | 伊人网伊人网 | 日韩中文字幕一区 | 99久久精品国产一区二区三区 | 亚洲视频在线观看 | 色视频欧美 | 国产精品视频免费看 | 欧美自拍网站 | 婷婷开心激情综合五月天 | 欧美在线观看一区 | 欧美日韩精品久久久免费观看 | 国产成人福利 | 国产精品亚洲成在人线 | 九色网址 | 久久一 | 在线播放国产一区二区三区 |