畢業(yè)設(shè)計(jì) msp430搖搖棒
摘要
本設(shè)計(jì)以MSP430單片機(jī)為中央控制器,顯示棒搖動(dòng)時(shí)顯示的字符或者圖形由LED燈顯示。LED燈成線狀排列,每個(gè)瞬間線陣只能顯示數(shù)字編碼后的文字或者圖形的一列,利用人眼的視覺(jué)暫留原理,將需要顯示的字符或者圖形分成64列,因此,通過(guò)單片機(jī)控制LED線陣以一較低頻率掃描顯示字符或者圖形的每一刻,擺動(dòng)顯示棒時(shí)即可因視覺(jué)暫留看出顯示的字符或者圖形;左右擺動(dòng)一次通過(guò)端口電平變化,調(diào)用相應(yīng)的顯示子程序,字符切換通過(guò)外部中斷實(shí)現(xiàn),該系統(tǒng)設(shè)計(jì)對(duì)程序設(shè)計(jì)的要求硬件電路要高。整套系統(tǒng)由中央控制模塊,LED顯示模塊,供電模塊等部分構(gòu)成。
關(guān)鍵詞: MSP430單片機(jī); LED燈;搖搖棒
Abstract
The design for the central controller m.weilaioem.comSP430MCU時(shí)鐘系統(tǒng)能啟用和禁用各種不同的時(shí)鐘和振蕩器,從而使器件能夠進(jìn)入不同的低功耗模式(LPM)。這種高度靈活的時(shí)鐘系統(tǒng)可確保僅在適當(dāng)?shù)臅r(shí)候啟用所需時(shí)鐘,從而能夠顯著優(yōu)化總體能耗。
子系統(tǒng)時(shí)鐘(SMCLK)—用于各個(gè)較快速外設(shè)模塊的源,可由內(nèi)部DCO驅(qū)動(dòng)(頻率最高達(dá)25MHZ),也可采用外部晶體驅(qū)動(dòng)。
即時(shí)喚醒—MSP430MCU可通過(guò)LPM即時(shí)喚醒。這種超高速喚醒功能得益于MSP430MCU的內(nèi)部數(shù)控振蕩器(DCO),其可實(shí)現(xiàn)高達(dá)25MHZ的源頻率,而且能在1US的時(shí)間內(nèi)激活并實(shí)現(xiàn)穩(wěn)定工作。即時(shí)喚醒功能對(duì)超低功耗應(yīng)用來(lái)說(shuō)非常重要,因?yàn)槠涫刮⑻幚砥髂茉跇O高效的突發(fā)任務(wù)中充分發(fā)揮CPU的作用,并能較長(zhǎng)時(shí)間處于LPM模式。
零功耗掉電復(fù)位(BOR)—MSP430MCU BOR能夠在所有操作模式下始終保持啟用于工作狀態(tài),這不僅能確保實(shí)現(xiàn)最可靠的性能,同時(shí)還可保持超低功耗運(yùn)行。BOR電路可對(duì)欠壓情況進(jìn)行檢測(cè),并在提供或者斷開(kāi)電源時(shí)對(duì)器件進(jìn)行復(fù)位。該功能對(duì)電池供電的應(yīng)用而言尤其重要。
高集成度
MSP430MCU擁有卓越的高集成度,能夠提供各種高性能模擬及數(shù)字外設(shè)。
智能外設(shè)
MSP430MCU的外設(shè)旨在確保時(shí)間最強(qiáng)大的功能性,并以業(yè)界最低功耗提供系統(tǒng)中斷,復(fù)位和總線判優(yōu)。許多外設(shè)都能自動(dòng)工作,因?yàn)樽畲笙薅葴p少了CPU處于工作模式的時(shí)間。
高性能集成
超過(guò)200種MSP430器件都具備高性能集成優(yōu)勢(shì),完美結(jié)合了USB,RF,LCD控制器以及16位△-∑ACD等。這種可擴(kuò)展的產(chǎn)品系列使設(shè)計(jì)人員能夠?yàn)楸姸嗟凸膽?yīng)用選擇適當(dāng)?shù)腗SP430器件。此外,MSP430MCU的高集成度還能支持物理尺寸較小的解決方案,進(jìn)而最大限度降低整體物料成本。
輕松開(kāi)展設(shè)計(jì)工作
MSP430MCU采用現(xiàn)代16位RISC架構(gòu)以及簡(jiǎn)單的開(kāi)發(fā)生態(tài)系統(tǒng),因?yàn)閾碛袠O佳的易用性。16位正交架構(gòu) ,MSP430MCU采用的16位架構(gòu)可提供16個(gè)高度靈活的,可完全尋址的單周期操作16位CPU寄存器,以及RISC性能。該CPU的現(xiàn)代設(shè)計(jì)不僅簡(jiǎn)潔,而且功能十分豐富,僅采用了27條簡(jiǎn)單易懂的指令與7種統(tǒng)一尋址模式。
圖3——2
本實(shí)驗(yàn)所采用的單片機(jī)是MSP430F2131,MSP430F2131是超低功耗的混合信號(hào)控制器,集成了一個(gè)16位的定時(shí)器和14只I/O管腳。
低供電電壓 2.5 V - 5.5 V 超低功耗
<!--[if !supportLists]-->·<!--[endif]-->低工作電流,1 MHz,3 V電壓下只有330 uA
<!--[if !supportLists]-->·<!--[endif]-->兩種節(jié)電模式:
<!--[if !supportLists]-->o<!--[endif]-->備用模式:1.5 uA
<!--[if !supportLists]-->o<!--[endif]-->RAM 保持關(guān)斷模式:0.1 uA
<!--[if !supportLists]-->·<!--[endif]-->從備用模式到正常工作最多需要 6 us
<!--[if !supportLists]-->·<!--[endif]-->16位 RISC 體系結(jié)構(gòu),200 ns 指令循環(huán)周期
<!--[if !supportLists]-->·<!--[endif]-->基本時(shí)鐘模式配置
<!--[if !supportLists]-->o<!--[endif]-->不同的內(nèi)部電阻器
<!--[if !supportLists]-->o<!--[endif]-->單一外部電阻器
<!--[if !supportLists]-->o<!--[endif]-->32 kHz 晶振
<!--[if !supportLists]-->o<!--[endif]-->高頻晶振
<!--[if !supportLists]-->o<!--[endif]-->諧振器
<!--[if !supportLists]-->o<!--[endif]-->外部時(shí)鐘源
<!--[if !supportLists]-->·<!--[endif]-->可與外部組件構(gòu)成單斜率模數(shù)轉(zhuǎn)換器
<!--[if !supportLists]-->·<!--[endif]-->16位定時(shí)器,帶有三個(gè)捕獲/比較寄存器
<!--[if !supportLists]-->·<!--[endif]-->串行的在線編程
<!--[if !supportLists]-->·<!--[endif]-->安全熔絲程序保護(hù)(Program Code Protection by Security Fuse)
3.6 關(guān)于創(chuàng)新部分的討論本設(shè)計(jì)的最大特色就是可以使單列的LED組合燈通過(guò)一定頻率的播動(dòng)在擺動(dòng)的扇形區(qū)域內(nèi)呈現(xiàn)出特定的字符或圖形。在題日要求的基礎(chǔ)上,我們決定從硬件和軟件兩部分對(duì)此搖動(dòng)棒進(jìn)行特別改造,比如美化外形,實(shí)現(xiàn)畫(huà)而的動(dòng)態(tài)顯示等。
3.7按鍵模塊 使用一個(gè)按鍵對(duì)顯示的所有內(nèi)容進(jìn)行切換,通過(guò)按鈕按下的次數(shù)確定顯示的內(nèi)容。(見(jiàn)圖3——3)
圖3——3
3.8 LED顯示模塊首先,我們根據(jù)LED點(diǎn)陣屏的顯示原理:點(diǎn)陣屏的顯示分為行掃描和列列掃描兩種,列掃描是將我們的字模數(shù)組通過(guò)點(diǎn)陣屏的行驅(qū)動(dòng)進(jìn)行輸入,然后通過(guò)列對(duì)每一行進(jìn)行掃描,當(dāng)列為低(高)電平、行為高(低)電平時(shí)則表示該點(diǎn)為圖案的一部分,將其讀出、顯示。它的順序可以總結(jié)為:行不斷的送數(shù)據(jù),每送完設(shè)置的信息后列進(jìn)行讀取,然后行再次送數(shù)據(jù),列再次讀取……依次循環(huán)下去,一幅完整的圖案就顯示在了顯示屏上。
而本次設(shè)計(jì)的LED顯示棒數(shù)據(jù)傳輸原理與LED點(diǎn)陣屏相似?梢园袻ED顯示棒看成是LED點(diǎn)陣屏中的一列。為了使顯示的圖案清晰,我們使用了16個(gè)LED管將它們排成一列,整個(gè)屏在靜止時(shí)也就相當(dāng)于16行×1列。數(shù)據(jù)傳輸時(shí)我們同樣使用行送數(shù)據(jù)、列掃描。在擺動(dòng)過(guò)程中,應(yīng)用視覺(jué)暫留原理,我們點(diǎn)亮的列不會(huì)很快的消失,而是隨著擺動(dòng)的方向繼續(xù)向前移動(dòng),只要移動(dòng)的速度高于視覺(jué)暫留的最短時(shí)問(wèn).顯示內(nèi)容就不會(huì)熄火,至此,一幅圖案也就可以這樣被“擺動(dòng)”出來(lái)了。
3.9慣性開(kāi)關(guān)模塊慣性開(kāi)關(guān)裝置,它由擺桿、觸點(diǎn)和導(dǎo)軌組成。當(dāng)LED顯示棒向左擺動(dòng)到極點(diǎn)時(shí),擺桿,與左邊的觸點(diǎn)2接觸,此時(shí)與2相連的P1.0口變?yōu)榈碗娖剑凑哲浖脑O(shè)定:從此刻起禁止對(duì)行進(jìn)行數(shù)據(jù)傳輸:同理,當(dāng)顯示棒擺到右邊極點(diǎn)時(shí),與3接觸,,與此相連的P1.1口變?yōu)榈碗娖剑浖O(shè)定從此刻起數(shù)據(jù)開(kāi)始傳輸。整個(gè)擺動(dòng)過(guò)程就是這樣:擺子擺到左邊,禁止數(shù)據(jù)傳輸:擺到右邊,開(kāi)始數(shù)據(jù)傳輸……。使用這種方法就可以讓數(shù)據(jù)單程傳輸,解決了雙程均傳輸時(shí)產(chǎn)生的重影,使得畫(huà)而更加清晰、明了。
3.10總體設(shè)計(jì)圖3——4
第四章 系統(tǒng)軟件設(shè)計(jì)
4.1軟件設(shè)計(jì)思路在搖動(dòng)LED棒的時(shí)候單片機(jī)必須單程送數(shù)據(jù)否則顯示的圖形會(huì)產(chǎn)生重影,影響視覺(jué)效果。因此當(dāng)系統(tǒng)開(kāi)始工作后通過(guò)慣性開(kāi)關(guān)的位置來(lái)使單片機(jī)實(shí)現(xiàn)單程送數(shù)據(jù)給LED。如果慣性開(kāi)關(guān)位于右邊,則進(jìn)入外部中斷Tl并將變量置l。在變量為1期間讓單片機(jī)以一定的頻率將數(shù)據(jù)送給LED。如果慣性開(kāi)關(guān)位于左邊,則進(jìn)入外部中斷TO并將變量置0,在這期間單片機(jī)不會(huì)送數(shù)據(jù)給LED。在送數(shù)據(jù)時(shí),數(shù)據(jù)送完后應(yīng)延時(shí)一段時(shí)間來(lái)使搖動(dòng)時(shí)顯示的每個(gè)字不會(huì)太擁擠。之后再立刻熄火LED并開(kāi)始重新判斷慣性開(kāi)關(guān)的位置。
4.2軟件系統(tǒng)流程圖LED燈熄滅
<!--[if !mso]--><!--[endif]--><!--[if !mso & !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]-->圖4——1
4.3動(dòng)態(tài)圖片的實(shí)現(xiàn)設(shè)計(jì)中實(shí)現(xiàn)單個(gè)圖形或者一個(gè)詞組的顯示方法是將要顯示的內(nèi)容一次性送出,延時(shí)一段時(shí)問(wèn)后再進(jìn)行第二次傳送數(shù)據(jù)。而要顯示一個(gè)動(dòng)態(tài)圖片,仿照動(dòng)畫(huà)制作方法,先要將一個(gè)連貫的動(dòng)作分為幾幅獨(dú)立的動(dòng)作,分別提取字模,輸出數(shù)據(jù)是一幅接一幅的連續(xù)送,當(dāng)動(dòng)作結(jié)束后延時(shí)一會(huì),再進(jìn)行第二次連貫動(dòng)作的傳輸。同樣利用視覺(jué)暫留原理,當(dāng)搖動(dòng)顯示棒時(shí),幾幅圖接連出現(xiàn)覆蓋前面的畫(huà)面,相同的部分將一直顯示,不同的部分就形成了動(dòng)態(tài)的動(dòng)作,以此一幅動(dòng)態(tài)畫(huà)面就出現(xiàn)了。
4.4軟件實(shí)現(xiàn)功能的完善本次設(shè)計(jì)的一個(gè)難點(diǎn)是去除重影,我們的解決方法是使用外部中斷讓數(shù)據(jù)單程傳輸。
第二個(gè)難點(diǎn)是當(dāng)顯示如“m.weilaioem.comagedata><!--[if !vml]--><!--[endif]-->
圖5——1
圖5——2
圖5——3
5.2 系統(tǒng)硬件調(diào)試
圖5——4 (載入程序)
第六章 總結(jié)
經(jīng)過(guò)了一個(gè)多月的學(xué)習(xí)和努力,我終于完成了《搖搖棒的設(shè)計(jì)與制作》的畢業(yè)設(shè)計(jì)。從開(kāi)始選題到設(shè)計(jì)的成功,再到論文文章的完成,每走一步對(duì)我來(lái)說(shuō)都是一個(gè)挑戰(zhàn),畢業(yè)設(shè)計(jì)不僅是對(duì)前面所學(xué)知識(shí)的一種檢驗(yàn),也是對(duì)自己能力的一種提高。在這段時(shí)間里,我學(xué)到了很多知識(shí)也有很多感受,為了更好的利用Keil、proteus、Protel及硬件電路等相關(guān)知識(shí),我開(kāi)始查閱相關(guān)的資料和書(shū)籍,豐富自己的相關(guān)知識(shí),讓自己頭腦中模糊的概念逐漸清晰,能夠更熟練的去運(yùn)用課本
上的知識(shí)。
在制作硬件電路時(shí),我們遇到了很多問(wèn)題,比如:在軟件編程的時(shí)候字符的取模比較困難,剛開(kāi)始沒(méi)有取模軟件就手工取模特別麻煩!再比如說(shuō)怎樣使字能夠盡量在搖晃的中間顯示,顯示的時(shí)間長(zhǎng)短也是特別困難的。后來(lái)經(jīng)過(guò)不斷的模擬與調(diào)試終于找到了最為適合的時(shí)間?傊,自己動(dòng)手做了就是一種收獲,會(huì)對(duì)電路了解的更多,學(xué)到了很多以前沒(méi)有接觸過(guò)的知識(shí),也使我了解到知識(shí)必須通過(guò)應(yīng)用才能實(shí)現(xiàn)其價(jià)值!有些東西以為學(xué)會(huì)了,當(dāng)?shù)阶约哼\(yùn)用的時(shí)候卻并非如此,所以我認(rèn)為只有到真正會(huì)用的時(shí)候才能算真的學(xué)會(huì)了。
此次的畢業(yè)設(shè)計(jì)我曾有過(guò)灰心,感覺(jué)底氣的不足,但收獲更大的是我學(xué)到了很多的東西,不光是學(xué)習(xí)上帶來(lái)的快樂(lè),更多的是在人與人的相處上我學(xué)到了團(tuán)結(jié)帶給人的歡樂(lè),所有的這些都為我的將來(lái)奠定了很大的基礎(chǔ),F(xiàn)在的我就要離開(kāi)學(xué)校,走上工作的崗位了,這也是我人生歷程的又一個(gè)起點(diǎn),我會(huì)繼續(xù)學(xué)習(xí),走實(shí)人生的每一步。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。