led顯示搖棒全套方案及源程序 - 電子設(shè)計(jì)技術(shù)_第1頁
led顯示搖棒全套方案及源程序 - 電子設(shè)計(jì)技術(shù)_第2頁
led顯示搖棒全套方案及源程序 - 電子設(shè)計(jì)技術(shù)_第3頁
led顯示搖棒全套方案及源程序 - 電子設(shè)計(jì)技術(shù)_第4頁
led顯示搖棒全套方案及源程序 - 電子設(shè)計(jì)技術(shù)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、源程序以下是詳細(xì)說明: 圖形顯示的原理:        利用人眼的視覺暫留效應(yīng),使手在擺動到不同位置的時候,讓位于一條直線上的LED顯示二維圖像的不同的列,實(shí)現(xiàn)圖形掃描顯示。 物理機(jī)制:        當(dāng)我們在擺動手臂的時候,短時間內(nèi)擺動位置和左右幅度不會有太大變化,利用我們手臂的這個運(yùn)動規(guī)律,只要能得到棒從一側(cè)擺動到另一側(cè)的時間,然后把這個時間分成N份,然后在每一份的時間里顯示不同的花樣就能實(shí)現(xiàn)圖形的顯示。當(dāng)我們在擺動手臂的時候,并不能預(yù)先得知此次擺動需要的時間,怎樣得到從

2、一側(cè)擺動到另一側(cè)的時間呢?       再想想,短時間內(nèi)我們手臂的擺動頻率也不會有特別大的變化,我們只要能得到前一次擺動所用的時間,然后用這個時間近似得到下一次擺動所需要的時間,然后分N份就可以了。得到一次擺動所需的時間的任務(wù)由光遮斷器完成,在棒上裝一個可以擺動的用來遮擋光遮斷器光線的細(xì)桿,粗細(xì)比光遮斷器的狹縫稍寬,我用的是整流橋焊后剪下的一段管腳。每左右擺動一次這個桿就會通過一次光遮斷器,使單片機(jī)產(chǎn)生一次中斷,兩次中斷之間的時間就是想要得到的時間,實(shí)現(xiàn)這個功能用掉2051的一個定時器T0和外部中斷INT0。然后用2051的另一個定時

3、器T1,其定時時間是T0的N分之一,每次中斷依次顯示一列,就是照片上的效果。        再細(xì)想一下,手臂擺動的頻率大于2Hz的時候才大概能由視覺暫留看出圖形,再快也不過十幾Hz,由T0為16位定時器的最長計(jì)時時間得到2051的時鐘頻率1MHz最合適,還有遮擋用的細(xì)桿的粗細(xì)也可以大概估算,使其不會對計(jì)時精度產(chǎn)生太大影響。 所用元件: AT89C2051 8元 高亮LED共8個 3.6元 電池盒 0.5元 單面萬用板 8元 可以裁成3塊,做3個搖棒 陶瓷諧振器 1元 光遮斷器 2元 電阻電容導(dǎo)線 2元 外殼* 0.7元 可以裁成2塊

4、可選元件: 電源開關(guān) 1元 總成本不超過20元 *外殼我用在家樂福買的半透明文件夾卷成的此電路電路非常簡單,代碼短,但是用到了2051的外部中斷編程和T0、T1定時器編程,非常適合初學(xué)者練習(xí)。我制作這個玩具花費(fèi)了兩個晚上的時間。此電路和程序還有擴(kuò)展改進(jìn)的空間,如在長時間不擺動的情況下可以使單片機(jī)進(jìn)入省電模式,顯示不僅限于對稱圖片等,大家可以試試。 以下是源程序: /*/ / - / LED顯示搖棒 / - / 作者:nim 于 2005-1-7 / / email: linyige / / 本設(shè)計(jì)版權(quán)歸作者所有,請勿擅自用于商業(yè)目的,轉(zhuǎn)載請注明作者及出處 /*/ #include <re

5、g51.h> #define SEG 17 /每幀圖片分成17列來顯示 #define INTERVAL 20 /每幅圖片在左右搖擺20次后換下一幅 typedef unsigned char uchar; typedef unsigned int uint; code char pattern173= /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,0x

6、ee,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_t

7、ime; 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) /如果擺動特別慢,定時器溢出就不顯示 phase=0; TR1=1; else TR1=0; voi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論