日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>發(fā)光二極管>

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

2012年03月19日 13:59 本站整理 作者:秩名 用戶評論(0

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

  

?

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

  

?

  下面是隨便找一個流水燈的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=ch<<1;

  P0=~ch;

  }

  }

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

  

?

  高興之余,發(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;j<8;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;j<8;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)在眼前。

  

?

  

?

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

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

上一頁12全文

非常好我支持^.^

(262) 50.5%

不好我反對

(257) 49.5%

( 發(fā)表人:diyfans )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?
      泸西县| 安塞县| 台东市| 宁陕县| 新竹县| 边坝县| 诸暨市| 英山县| 枣阳市| 太和县| 闻喜县| 芒康县| 广宗县| 门头沟区| 宜城市| 南木林县| 阿拉善右旗| 延庆县| 前郭尔| 新野县| 五台县| 尼勒克县| 永州市| 东辽县| 南丹县| 福建省| 荣昌县| 阿拉善右旗| 屯留县| 中方县| 马公市| 子洲县| 瓦房店市| 连江县| 犍为县| 兖州市| 湘潭市| 凌源市| 自治县| 娱乐| 清涧县|