非常簡(jiǎn)單,而且比較有意思,適合初學(xué)者學(xué)習(xí)
單片機(jī)原理與應(yīng)用
課程設(shè)計(jì)報(bào)告
作品名稱: 基于STC89C52的16LED搖搖棒
目錄
一、作品說(shuō)明2
二、系統(tǒng)總體設(shè)計(jì)4
三、硬件設(shè)計(jì)6
四、軟件設(shè)計(jì)7
五、系統(tǒng)調(diào)試與分析8
六、課程作品制作體會(huì)11
基于STC89C52的16LED搖搖棒設(shè)計(jì) 一、作品說(shuō)明 搖搖棒是如今流行的一種玩具,在各種聚會(huì)、節(jié)日中均見(jiàn)得到它的身影。本設(shè)計(jì)也追隨著搖搖棒的原理,利用人眼的視覺(jué)暫留特性,通過(guò)STC89C52單片機(jī)對(duì)16只高亮度LED發(fā)光二極管進(jìn)行控制, 配合手的左右搖晃就可呈現(xiàn)一幅完整的畫(huà)面。 該搖搖棒具有如下功能: 可以通過(guò)開(kāi)關(guān)實(shí)現(xiàn)轉(zhuǎn)換,輪流顯示并循環(huán): - 顯示 “心”心形圖案;
- 顯示 “o(∩_∩)o”圖案;
5) 顯示 “LOVE”; 具體實(shí)物圖如下:  
二、系統(tǒng)總體設(shè)計(jì) 1、總體方案比較與論證 所謂的“搖搖棒”,其實(shí)就是一個(gè)循環(huán)的LED顯示,利用人的視覺(jué)滯留產(chǎn)生靜態(tài)顯示的現(xiàn)象。要實(shí)現(xiàn)這個(gè)目標(biāo),就要求延時(shí)部分做的比較小,所以采用石英晶體振蕩器。而目前能夠?qū)崿F(xiàn)這種功能的器件有很多種,不同的類型的器件也能夠很好的完成。 本作品本著方便、價(jià)格低廉的原則,采用單片機(jī)控制,由晃動(dòng)開(kāi)關(guān)的閉合對(duì)單片機(jī)產(chǎn)生外部中斷,從而對(duì)中斷進(jìn)行采集。到達(dá)一定數(shù)量便進(jìn)行圖象的轉(zhuǎn)換。整個(gè)系統(tǒng)由單片機(jī)控制模塊,開(kāi)關(guān)及電源模塊和輸出顯示模塊三個(gè)部分構(gòu)成。系統(tǒng)框圖如下: 2、主要部件原理 (1)單片機(jī)控制模塊 用單片機(jī)想要控制LED顯示只需要定時(shí)輸出就可以,但每個(gè)人搖動(dòng)的速度不一樣,如何準(zhǔn)確的并穩(wěn)定的變換圖案呢?這就需要用到外部中斷。將晃動(dòng)開(kāi)關(guān)的兩個(gè)引腳一端接單片機(jī)引腳(P3.2),一端接GND,這樣的話,當(dāng)搖棒向一邊運(yùn)動(dòng)時(shí)LED按照程序編輯好的規(guī)律顯示,而向另一邊運(yùn)動(dòng)時(shí)LED全滅,此時(shí)一個(gè)周期就會(huì)產(chǎn)生一個(gè)下跳沿的信號(hào),信號(hào)傳遞給單片機(jī)的INT0產(chǎn)生中斷,對(duì)中斷的數(shù)量計(jì)數(shù),當(dāng)計(jì)到10時(shí)便轉(zhuǎn)換顯示的圖案,當(dāng)依次顯示完后便回到初始狀態(tài)進(jìn)行循環(huán)。 由于人的視覺(jué)滯留時(shí)間長(zhǎng)達(dá)0.1s,所以在每顯示完一列LED后加入一段合適的延時(shí),如5ms,每個(gè)字之間加入延時(shí)如15ms,這樣,我們就能看到靜態(tài)的穩(wěn)定的字,并且每個(gè)字之間是有空隙的。為了讓字能夠在空間的中部顯示,在啟動(dòng)中斷顯示后延時(shí)一段合適的時(shí)間,使棒在半圓軌跡的大約1/4處開(kāi)始顯示,這樣看到的字方向上才比較正。 晃動(dòng)開(kāi)關(guān)也叫振動(dòng)開(kāi)關(guān),其實(shí)都是震動(dòng)開(kāi)關(guān)的一種只是叫法不一樣是通過(guò)彈簧接觸導(dǎo)針的原理來(lái)控制電路的接通或者斷開(kāi)的。 簡(jiǎn)單來(lái)說(shuō),就如同打開(kāi)或關(guān)掉電燈一樣,開(kāi)關(guān)觸碰里頭的金屬板電燈就亮,離開(kāi)就關(guān),晃動(dòng)開(kāi)關(guān)也是利用類似的原理。利用彈簧的晃動(dòng),制造與金屬端子的觸碰或改變光線行進(jìn)的路線,就能產(chǎn)生導(dǎo)通或不導(dǎo)通的效果。 本系統(tǒng)包括單片機(jī)控制模塊,開(kāi)關(guān)及電源模塊和輸出顯示模塊三個(gè)部分。 單片機(jī)控制模塊由Keil C進(jìn)行編寫(xiě),實(shí)現(xiàn)起來(lái)簡(jiǎn)單,主要有三部分,主程序、中斷服務(wù)部分還有字符點(diǎn)陣。 開(kāi)關(guān)及電源模塊采用兩節(jié)電池并配合晃動(dòng)開(kāi)關(guān)開(kāi)關(guān)使用。輸出顯示模塊采用16個(gè)LED燈,在版上一字排開(kāi)。 三、硬件設(shè)計(jì) 硬件連接上用滾珠開(kāi)關(guān)產(chǎn)生的電平轉(zhuǎn)換引發(fā)中斷,傳遞給單片機(jī),再由單片機(jī)調(diào)用點(diǎn)陣文件輸出到LED上。 搖搖棒設(shè)計(jì)電路圖 STC89C52單片機(jī)作為控制器,在它的P0、P2口接有16只以共陽(yáng)的方式連接的高亮度LED,由單片機(jī)輸出低電平點(diǎn)亮。串在LED公共端的二極管D18會(huì)產(chǎn)生一定的壓降,用來(lái)保護(hù)LED。S3是畫(huà)面切換開(kāi)關(guān),用于切換顯示不同內(nèi)容;S2為晃動(dòng)開(kāi)關(guān)。系統(tǒng)電源使用2節(jié)扭扣電池串聯(lián)6V。 16只LED發(fā)光管作為畫(huà)面每一列的顯示,左右搖晃起到了掃描的作用,人眼的視覺(jué)暫留現(xiàn)象使得看到的是一幅完整的畫(huà)面。 晃動(dòng)開(kāi)關(guān)的作用:棒在搖動(dòng)時(shí),只能在朝某一方向搖動(dòng)時(shí)顯示,否則會(huì)出現(xiàn)鏡像字或鏡像畫(huà)面,所以通過(guò)接一只晃動(dòng)開(kāi)關(guān)來(lái)控制,使搖搖棒從左向右搖動(dòng)時(shí)將內(nèi)容顯示出來(lái)。 軟件部分包括主函數(shù)程序、中斷服務(wù)程序、延時(shí)子程序以及四個(gè)顯示子程序。軟件設(shè)計(jì)流程如下: 主要測(cè)試單片機(jī)的工作情況,能否正常用LED顯示出各圖案,并且記錄各圖案持續(xù)的時(shí)間和穩(wěn)定顯示度以及一個(gè)循環(huán)周期所用的時(shí)間。并且檢查L(zhǎng)ED的發(fā)光亮度,使之可以明顯的分辯出來(lái)。
經(jīng)過(guò)測(cè)試,當(dāng)擺動(dòng)的幅度和速度適當(dāng)時(shí),各個(gè)畫(huà)面均可以明顯的顯示出來(lái)。整體來(lái)說(shuō),本方案設(shè)計(jì)比較成功。 拍攝照片: 六、課程作品制作體會(huì) 通過(guò)一學(xué)期的《單片機(jī)原理與應(yīng)用》課程的學(xué)習(xí),對(duì)單片機(jī)有了一定的認(rèn)識(shí)和體會(huì)。作為機(jī)械電子方向的學(xué)生,要想深入發(fā)展,尤其是對(duì)自動(dòng)化感興趣的我,單片機(jī)是必須要學(xué)好的一門課程。從小喜歡敲敲打打,對(duì)制作單片機(jī)很感興趣,滿心希望能做出一個(gè)讓自己滿意的作品。 但是想起來(lái)容易做起來(lái)難,由于種種原因,我在學(xué)習(xí)、制作過(guò)程中遇到了很多的困難。首先,單片機(jī)的先修課程《微機(jī)原理》這門課,我們雖然上學(xué)期學(xué)過(guò),但是當(dāng)時(shí)掌握效果很差,所以在單片機(jī)課程開(kāi)始階段,涉及到相關(guān)知識(shí)時(shí)感到很吃力,花了很多的時(shí)間去“補(bǔ)課”。其次,焊接的基本功不扎實(shí),上學(xué)期雖然做過(guò)焊接收音機(jī)的實(shí)習(xí),但是那次是在設(shè)計(jì)電路已給出、精密度較低的情況下糊里糊涂的完成的,跟這次課程設(shè)計(jì)要完成的任務(wù)差距甚大,所以也花了不少的代價(jià)去彌補(bǔ)基本功的不扎實(shí)。最后還有一個(gè)問(wèn)題是,原機(jī)械專業(yè)及物理方面共八門考試,讓自己的復(fù)習(xí)、制作過(guò)程相當(dāng)緊張,而機(jī)電院還安排了在長(zhǎng)沙各工廠的認(rèn)識(shí)實(shí)習(xí),時(shí)間相當(dāng)緊迫。我能做的就是,抓緊時(shí)間,少走彎路,提高效率。 請(qǐng)教了有經(jīng)驗(yàn)的同學(xué)以后,我開(kāi)始在網(wǎng)上搜各種相關(guān)程序和資料,根據(jù)自己的想法進(jìn)行修改和整理。由于以前學(xué)過(guò)C語(yǔ)言,有一定的基礎(chǔ),所以就不顧老師強(qiáng)烈推薦的匯編語(yǔ)言,毅然選擇用C語(yǔ)言設(shè)計(jì)了。相關(guān)知識(shí)理解得差不多了以后便開(kāi)始設(shè)計(jì)電路。由于畫(huà)圖的軟件應(yīng)用不很熟悉,又沒(méi)有經(jīng)驗(yàn),剛開(kāi)始的圖又丑又亂,焊起來(lái)很是麻煩,改了又改,加上基本功的不扎實(shí),因此燒壞了第一塊板子……沮喪之后,我請(qǐng)教了上屆教物的一個(gè)師兄,在他的指導(dǎo)下我修改并完善了線路圖,重新買了板子從頭做起。這次為了避免犯大的錯(cuò)誤,我遇到?jīng)]有把握的地方認(rèn)真分析,實(shí)在不會(huì)的就及時(shí)請(qǐng)教,一點(diǎn)一點(diǎn)踏實(shí)做起。 然而,好事多磨,就在我仔細(xì)焊接完成之后,測(cè)試的時(shí)候卻發(fā)現(xiàn)顯示的字和畫(huà)面都是反的!我又認(rèn)真檢查、分析了一下,發(fā)現(xiàn)自己把S52的兩個(gè)端口搞反了,水銀開(kāi)頭的方向也接反了。問(wèn)題找到了,我又耐著性子,把線拆了重新焊起。一鼓作氣,終于再次把電路板焊好。這次,終于成功了! 通過(guò)此次課程作品制作,我對(duì)書(shū)本上很多以前不理解的內(nèi)容有了新的實(shí)際的認(rèn)識(shí),也把很多抽象的知識(shí)具體化了,收獲頗多。看來(lái),很多時(shí)候我們只是讀書(shū)是遠(yuǎn)遠(yuǎn)不夠的,紙上得來(lái)終覺(jué)淺,絕知此事要躬行,尤其是對(duì)于我們這些理工科的學(xué)生。以后的學(xué)習(xí)過(guò)程中,希望能有更多的實(shí)踐的機(jī)會(huì)。
全部資料51hei下載地址:
搖搖棒配套資料.zip
(7.77 MB, 下載次數(shù): 218)
2018-7-16 10:49 上傳
點(diǎn)擊文件名下載附件
c代碼以及原理圖PCB
|