圖形顯示的原理:
利用人眼的視覺(jué)暫留效應,使手在擺動(dòng)到不同位置的時(shí)候,讓位于一條直線(xiàn)上的LED顯示二維圖像的不同的列,實(shí)現圖形掃描顯示。
電路原理圖:
物理機制:
當我們在擺動(dòng)手臂的時(shí)候,短時(shí)間內擺動(dòng)位置和左右幅度不會(huì )有太大變化,利用我們手臂的這個(gè)運動(dòng)規律,只要能得到棒從一側擺動(dòng)到另一側的時(shí)間,然后把這個(gè)時(shí)間分成N份,然后在每一份的時(shí)間里顯示不同的花樣就能實(shí)現圖形的顯示。當我們在擺動(dòng)手臂的時(shí)候,并不能預先得知此次擺動(dòng)需要的時(shí)間,怎樣得到從一側擺動(dòng)到另一側的時(shí)間呢?
再想想,短時(shí)間內我們手臂的擺動(dòng)頻率也不會(huì )有特別大的變化,我們只要能得到前一次擺動(dòng)所用的時(shí)間,然后用這個(gè)時(shí)間近似得到下一次擺動(dòng)所需要的時(shí)間,然后分N份就可以了。得到一次擺動(dòng)所需的時(shí)間的任務(wù)由光遮斷器完成,在棒上裝一個(gè)可以擺動(dòng)的用來(lái)遮擋光遮斷器光線(xiàn)的細桿,粗細比光遮斷器的狹縫稍寬,我用的是整流橋焊后剪下的一段管腳。每左右擺動(dòng)一次這個(gè)桿就會(huì )通過(guò)一次光遮斷器,使單片機產(chǎn)生一次中斷,兩次中斷之間的時(shí)間就是想要得到的時(shí)間,實(shí)現這個(gè)功能用掉2051的一個(gè)定時(shí)器T0和外部中斷INT0。然后用2051的另一個(gè)定時(shí)器T1,其定時(shí)時(shí)間是T0的N分之一,每次中斷依次顯示一列,就是照片上的效果。
再細想一下,手臂擺動(dòng)的頻率大于2Hz的時(shí)候才大概能由視覺(jué)暫留看出圖形,再快也不過(guò)十幾Hz,由T0為16位定時(shí)器的最長(cháng)計時(shí)時(shí)間得到2051的時(shí)鐘頻率1MHz最合適,還有遮擋用的細桿的粗細也可以大概估算,使其不會(huì )對計時(shí)精度產(chǎn)生太大影響。
所用元件: AT89C2051 高亮LED共8個(gè) 電池盒 單面萬(wàn)用板 晶振 光遮斷器 電阻電容導線(xiàn)
顯示效果:
此電路電路非常簡(jiǎn)單,代碼短,但是用到了2051的外部中斷編程和T0、T1定時(shí)器編程,非常適合初學(xué)者練習。我制作這個(gè)玩具花費了兩個(gè)晚上的時(shí)間。此電路和程序還有擴展改進(jìn)的空間,如在長(cháng)時(shí)間不擺動(dòng)的情況下可以使單片機進(jìn)入省電模式,顯示不僅限于對稱(chēng)圖片等,大家可以試試。
以下是源程序:
程序下載(右鍵點(diǎn)擊-目標另存為) |