基于MSP430單片機(jī)的信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)_第1頁(yè)
基于MSP430單片機(jī)的信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)_第2頁(yè)
基于MSP430單片機(jī)的信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)_第3頁(yè)
基于MSP430單片機(jī)的信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)_第4頁(yè)
基于MSP430單片機(jī)的信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 畢業(yè)生畢業(yè)設(shè)計(jì)說(shuō)明書(shū)題 目: 基于msp430單片機(jī)的任意信號(hào)發(fā)生器設(shè)計(jì) 學(xué)院名稱(chēng): 電氣工程學(xué)院 班 級(jí): 電氣f0902 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 教師職稱(chēng): 高級(jí)工程師 目 次1 概述11.1 信號(hào)發(fā)生器背景及其發(fā)展?fàn)顩r11.2 本設(shè)計(jì)主要研究?jī)?nèi)容12 方案論證22.1 設(shè)計(jì)方案的提出22.2 設(shè)計(jì)方案的比較22.3 設(shè)計(jì)方案的選擇33 選用模塊介紹33.1 msp430f149單片機(jī)33.2 1602液晶63.3 dac5571芯片83.4 時(shí)鐘模塊及定時(shí)器a94 方案的實(shí)現(xiàn)104.1 系統(tǒng)硬件設(shè)計(jì)104.2 系統(tǒng)軟件設(shè)計(jì)124.3 仿真調(diào)試18總結(jié)26致謝27參考文獻(xiàn)28附

2、錄a:硬件原理圖29附錄b:仿真調(diào)試程序301 概述1.1 信號(hào)發(fā)生器背景及其發(fā)展?fàn)顩r信號(hào)發(fā)生器在各個(gè)領(lǐng)域都有著相當(dāng)廣泛的應(yīng)用,無(wú)論是通信產(chǎn)品還是電子儀表,無(wú)論是科學(xué)指導(dǎo)還是教學(xué)研究,小到電子手表、大到計(jì)算機(jī),都離不開(kāi)信號(hào)發(fā)生器。信號(hào)發(fā)生器在許多方面發(fā)揮著重要的作用。信號(hào)發(fā)生器也常常被稱(chēng)為信號(hào)源,能夠提供穩(wěn)定的和可靠的參考信號(hào)。信號(hào)發(fā)生器的頻率、幅值、波形等信號(hào)參數(shù)可以通過(guò)人設(shè)置調(diào)節(jié)?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用越來(lái)越深入到各個(gè)方面,這一發(fā)展趨勢(shì)必然會(huì)使得以前的檢測(cè)技術(shù)獲得巨大變革。由單片機(jī)控制的儀器具有可靠性高、性能價(jià)格比好的優(yōu)點(diǎn),并廣泛應(yīng)用在醫(yī)療通信和智能儀器等諸多領(lǐng)域,而且還走入普通家庭

3、從冰箱、遙控器到汽車(chē),隨處可見(jiàn)其身影。以單片機(jī)為控制核心,加上鍵盤(pán)掃描、1602液晶顯示、數(shù)模轉(zhuǎn)換(d/a)等電路,可以設(shè)計(jì)出功能多樣化、性能卓越的信號(hào)發(fā)生器,同時(shí)該信號(hào)發(fā)生器還可以采用usb接口設(shè)計(jì),從而使其具有遠(yuǎn)程通信的功能。目前,實(shí)驗(yàn)、科研和生產(chǎn)制造中一般都選擇該方法去實(shí)現(xiàn)所需信號(hào)源。伴隨著科技的進(jìn)步,各個(gè)領(lǐng)域需要的信號(hào)種類(lèi)五花八門(mén)、頻率也越來(lái)越高。所以,目前信號(hào)發(fā)生器的發(fā)展趨勢(shì)是朝著頻率調(diào)節(jié)范圍寬、功率消耗低、調(diào)節(jié)頻率精度要求高、實(shí)現(xiàn)功能多樣化、自動(dòng)控制程度高和智能控制好方向發(fā)展。1.2 本設(shè)計(jì)主要研究?jī)?nèi)容通過(guò)圖書(shū)館查閱msp430單片機(jī)相關(guān)書(shū)籍,了解該單片機(jī)的功能模塊、內(nèi)部硬件結(jié)構(gòu)、

4、主要技術(shù)特點(diǎn)、存儲(chǔ)方式,從而進(jìn)一步利用網(wǎng)絡(luò)資源,搜尋msp430系列單片機(jī)開(kāi)發(fā)板的教學(xué)視頻,加深對(duì)該單片機(jī)的理解和應(yīng)用,最后根據(jù)本次設(shè)計(jì)的要求,選擇合適的功能模塊及芯片,完成相應(yīng)設(shè)計(jì),達(dá)到應(yīng)用要求。主要開(kāi)展以下幾個(gè)方面的學(xué)習(xí)與設(shè)計(jì)工作:對(duì)msp430系列單片機(jī)有一定程度的掌握,熟悉內(nèi)部各個(gè)模塊的基本功能;了解d/a轉(zhuǎn)換器的原理,選擇合適的d/a轉(zhuǎn)換器以獲得高精度的波形信號(hào); lcd1602液晶顯示的控制;鍵盤(pán)鍵位的功能定義;波形信號(hào)發(fā)生程序的編寫(xiě);各個(gè)電路模塊之間的數(shù)據(jù)傳輸以及模塊的初始化。2 方案論證信號(hào)發(fā)生器的應(yīng)用領(lǐng)域非常寬廣,根據(jù)不一樣的應(yīng)用條件,對(duì)信號(hào)發(fā)生器的具體要求也不一樣。所以,信

5、號(hào)發(fā)生器的設(shè)計(jì)方法就會(huì)各式各樣。2.1 設(shè)計(jì)方案的提出方案一:主要采用運(yùn)算放大器加上分立元件來(lái)實(shí)現(xiàn)。第一步是產(chǎn)生出正弦波,第二步運(yùn)用波形變換實(shí)現(xiàn)其他波形信號(hào),如果要改變波形信號(hào)的頻率、幅值及占空比,只需要改變電路的具體參數(shù)就可以實(shí)現(xiàn),第三步通過(guò)開(kāi)關(guān)電路來(lái)選擇輸出不同的波形信號(hào)。如果要實(shí)現(xiàn)精度準(zhǔn)的頻率和穩(wěn)定的信號(hào)輸出,需要對(duì)電路的結(jié)構(gòu)進(jìn)行優(yōu)化以及選用高精度的元器件才能達(dá)到目的。例如采用555振蕩電路產(chǎn)生正弦波、方波等。方案二:主要采用單片機(jī)作為控制核心,通過(guò)鍵盤(pán)掃描,獲得波形參數(shù)的輸入信息,然后將信息傳輸給顯示電路,根據(jù)參數(shù)信息設(shè)定定時(shí)器的定時(shí)間隔,當(dāng)定時(shí)器中斷到來(lái),進(jìn)入中斷服務(wù)程序,將選擇波形

6、的幅值信息發(fā)送給數(shù)模轉(zhuǎn)換(d/a)芯片輸出,從而得到相應(yīng)設(shè)定參數(shù)的波形信號(hào)(正弦波、方波、三角波、鋸齒波),輸出的波形信號(hào)可以通過(guò)外接運(yùn)放進(jìn)行調(diào)節(jié)。方案三:主要采用單片集成的信號(hào)發(fā)生器。首先將各種波形信號(hào)的功能電路集成優(yōu)化到一個(gè)集成電路芯片里,然后再外加少量的電阻、電容元件來(lái)實(shí)現(xiàn)。例如max038(最高頻率可達(dá)40mhz)和icl8038(最高頻率為300khz)。2.2 設(shè)計(jì)方案的比較方案一:優(yōu)點(diǎn)是工作原理相對(duì)簡(jiǎn)單,抗干擾性好,不用使用集成芯片。缺點(diǎn)是頻率調(diào)節(jié)范圍窄而且波形質(zhì)量比較差,體積大,電路結(jié)構(gòu)復(fù)雜,工作不穩(wěn)定。方案二:優(yōu)點(diǎn)是操作方便,頻率和幅值參數(shù)易于調(diào)節(jié),工作原理簡(jiǎn)單,體積小,成本

7、低。缺點(diǎn)是頻率精度不高,方波通過(guò)d/a輸出后有輕微失真現(xiàn)象,波形發(fā)生程序復(fù)雜。方案三:優(yōu)點(diǎn)是頻率調(diào)節(jié)范圍相對(duì)較寬,精度好,操作簡(jiǎn)單,體積小。缺點(diǎn)是波形信號(hào)種類(lèi)少,調(diào)節(jié)方式單一,對(duì)集成芯片控制要求高。2.3 設(shè)計(jì)方案的選擇根據(jù)上述三種設(shè)計(jì)方案的優(yōu)缺點(diǎn),并結(jié)合自身對(duì)知識(shí)的掌握程度,從各個(gè)方面綜合分析,決定選擇方案二來(lái)達(dá)到實(shí)現(xiàn)該設(shè)計(jì)的目的。具體實(shí)現(xiàn)過(guò)程以msp430f149單片機(jī)作為控制核心,通過(guò)鍵盤(pán)掃描,獲得波形參數(shù)的輸入信息,然后將輸入內(nèi)容傳輸給lcd1602顯示電路,根據(jù)參數(shù)信息設(shè)定定時(shí)器a的定時(shí)間隔,當(dāng)定時(shí)器的中斷標(biāo)志置1時(shí),調(diào)用中斷服務(wù)程序,將選擇波形的幅值信息發(fā)送給d/a芯片輸出,從而得

8、到設(shè)定的相應(yīng)波形信號(hào)(正弦波、方波、三角波、鋸齒波)。如果要改變頻率,只需要重新設(shè)置定時(shí)器a的記數(shù)周期值就可以,要改變幅值的話(huà),只需要將送入數(shù)模轉(zhuǎn)換(d/a)芯片的數(shù)值乘以一定的比例系數(shù)(不大于1)就可以。3 選用模塊介紹3.1 msp430f149單片機(jī)msp430f149單片機(jī)是按照精簡(jiǎn)指令集(risc)和高透明的宗旨來(lái)設(shè)計(jì)內(nèi)核cpu的結(jié)構(gòu)的,該單片機(jī)的存儲(chǔ)器采用“馮·諾依曼”結(jié)構(gòu)使得rom和ram在同一地址空間(0000h-ffffh),地址和數(shù)據(jù)總線(xiàn)為同一組。msp430f149單片機(jī)含有一個(gè)16位的算術(shù)邏輯單元(alu)、一個(gè)指令控制操作單元,其中4個(gè)特殊的功能寄存器分別是

9、程序計(jì)數(shù)器(pc)、堆棧指針(sp)、狀態(tài)寄存器和常數(shù)發(fā)生器2。3.1.1 msp430f149單片機(jī)引腳圖msp430f149單片機(jī)的引腳圖如圖3-1所示。圖3-1 msp430f149單片機(jī)引腳圖3.1.2 msp430單片機(jī)的特點(diǎn)強(qiáng)大的處理能力msp430系列單片機(jī)是一款16位的單片機(jī),采用了精簡(jiǎn)指令集(risc)結(jié)構(gòu),查詢(xún)地址的方式非常豐富,相比89c51的111條指令msp430的27 條內(nèi)部指令就相當(dāng)簡(jiǎn)潔,同時(shí)具有許多模擬指令和可參與幾種運(yùn)算的寄存器,還有高效率的對(duì)表查詢(xún)處理指令。低電壓、超低功耗msp430系列單片機(jī)電源電壓范圍是1.8-3.6v,該單片機(jī)還具有低功耗應(yīng)用、根據(jù)對(duì)

10、速度和數(shù)據(jù)傳輸?shù)奶幚硪笠约巴鈬O(shè)備需要消耗的最小電流可以設(shè)置成不同的操作模式。單片機(jī)可以隨時(shí)進(jìn)入低功率消耗模式,進(jìn)入低功率消耗模式后,系統(tǒng)的時(shí)鐘會(huì)停止,所有的i/o端口、ram和寄存器的內(nèi)容不會(huì)發(fā)生變化,此時(shí)系統(tǒng)的功率消耗處于a級(jí)。當(dāng)出現(xiàn)外部中斷時(shí)系統(tǒng)能從低功率消耗模式中蘇醒,從而去執(zhí)行規(guī)定的操作。只需要不到6us,該單片機(jī)就能從低功耗模式迅速轉(zhuǎn)換到活躍模式。msp430單片機(jī)具有一種活動(dòng)模式和5種低功率消耗模式2。片內(nèi)資源豐富msp430系列單片機(jī)內(nèi)部都含有豐富的功能模塊可以實(shí)現(xiàn)好多應(yīng)用,主要有看門(mén)狗(wdt)、定時(shí)器a、比較器、adc模塊、usart模塊、flash模塊、基礎(chǔ)時(shí)鐘、i/o

11、端口等若干外圍模塊。其中,看門(mén)狗可以通過(guò)設(shè)定中斷的時(shí)間間隔,防止程序出現(xiàn)“跑飛”的現(xiàn)象,一旦打開(kāi)看門(mén)狗,程序在正常運(yùn)行的情況下到中斷的地點(diǎn)會(huì)自動(dòng)清除看門(mén)狗內(nèi)容,而當(dāng)程序異常時(shí),則無(wú)法清除,此時(shí)看門(mén)狗將產(chǎn)生一個(gè)信號(hào)使得系統(tǒng)復(fù)位,從而重新啟動(dòng)系統(tǒng),保證了系統(tǒng)的正常運(yùn)行。定時(shí)器(timer_a 和 timer_b)是一個(gè)16位的定時(shí)/計(jì)數(shù)器,含有多個(gè)捕獲/比較寄存器,能同時(shí)對(duì)多個(gè)時(shí)序進(jìn)行控制,可以實(shí)現(xiàn)pwm的輸出,而且具有多個(gè)中斷能力。定時(shí)器(timer_a 和 timer_b)具有停止計(jì)數(shù)模式、増加計(jì)數(shù)模式、連續(xù)增加計(jì)數(shù)模式、增加/減少計(jì)數(shù)模式這四種工作的模式。時(shí)鐘電路模塊主要產(chǎn)生三種不一樣的時(shí)鐘

12、信號(hào),通常情況下,系統(tǒng)的功率消耗隨著系統(tǒng)的工作頻率增加而增加,根據(jù)各自的情況選擇適合的時(shí)鐘可以達(dá)到降低功率消耗的目的。例如要實(shí)現(xiàn)較低功率消耗則選擇低速的晶體;如果要滿(mǎn)足系統(tǒng)的運(yùn)算速度需要選用高速的晶體產(chǎn)生的時(shí)鐘;對(duì)系統(tǒng)實(shí)時(shí)的操作要求高時(shí),應(yīng)該選用aclk時(shí)鐘。系統(tǒng)工作穩(wěn)定系統(tǒng)上電復(fù)位后,由dcoclock作為系統(tǒng)時(shí)鐘,從而使系統(tǒng)可以從正確的地址去執(zhí)行程序。隨后其靈活的時(shí)鐘系統(tǒng)允許軟件選擇不同的系統(tǒng)的時(shí)鐘,但是在晶體振蕩器作為系統(tǒng)的時(shí)鐘無(wú)法起振時(shí),dcoclock被默認(rèn)切換為系統(tǒng)的時(shí)鐘從而保證了系統(tǒng)的正常工作。3.1.3 msp430f149單片機(jī)的應(yīng)用msp430f149單片機(jī)具有超低功耗、1

13、6位指令,內(nèi)置a/d轉(zhuǎn)換器、usart模塊、硬件乘法器、lcd液晶驅(qū)動(dòng)電路及抗干擾能力強(qiáng)、運(yùn)算速度快等技術(shù)特點(diǎn),因此,特別適合應(yīng)用在智能儀表、智能化家用電器、工業(yè)控制、計(jì)算機(jī)網(wǎng)絡(luò)和醫(yī)用設(shè)備領(lǐng)域等產(chǎn)品之中。該設(shè)計(jì)中主要運(yùn)用msp430f149的低功耗,時(shí)鐘可以分頻控制,運(yùn)算速度快,工作穩(wěn)定等技術(shù)特點(diǎn),將輸入的波形信息,顯示在1602液晶上,同時(shí)可以選用按鍵對(duì)波形參數(shù)進(jìn)行選擇,最后采用d/a芯片輸出波形信號(hào),用示波器測(cè)量實(shí)際波形信息。3.2 1602液晶1602液晶也被稱(chēng)為1602字符型液晶主要用來(lái)顯示字母、數(shù)字、符號(hào)的點(diǎn)陣型液晶模塊。每個(gè)點(diǎn)陣字符可以實(shí)現(xiàn)一個(gè)字符的顯示,由于每一位之間具有一個(gè)點(diǎn)距

14、間隔,同時(shí)每一行之間也具有間隔,所以圖形內(nèi)容是無(wú)法實(shí)現(xiàn)顯示的。3.2.1 1602液晶引腳圖圖3-2 1602液晶引腳圖表3-1 lcd1602的引腳功能說(shuō)明引腳符號(hào)功能說(shuō)明1vss接地端2vdd接正電源端3ao對(duì)比度設(shè)置端4r/s置1時(shí)為選擇數(shù)據(jù),置0時(shí)為選擇指令5r/w置1時(shí)讀操作,置0時(shí)寫(xiě)操作。6e下降沿使能端7-13d0-d6 雙向數(shù)據(jù)線(xiàn)14d7置1表明液晶處于忙狀態(tài)15bla背光電源正極16blk背光電源負(fù)極3.2.2 lcd1602顯示控制表表3-2 基本操作時(shí)序讀狀態(tài)輸入:rs=l,rw=h,e=h輸出:d0-d7=狀態(tài)字讀數(shù)據(jù)輸入:rs=h,rw=h,e=h輸出:d0-d7=數(shù)

15、據(jù)寫(xiě)指令輸入:rs=l,rw=l,e=高脈沖,d0-d7=指令碼輸出:無(wú)寫(xiě)數(shù)據(jù)輸入:rs=h,rw=l,e=高脈沖,d0-d7=數(shù)據(jù)輸出:無(wú)表3-3 ram地址映射圖表3-4 指令說(shuō)明表3-5 lcd1602控制指令集3.3 dac5571芯片3.3.1 dac5571引腳圖圖3-3 dac5571引腳圖表3-6 dac5571的引腳功能說(shuō)明3.3.2 dac5571工作原理dac5571芯片采用i2c協(xié)議的半雙工串行通信方式,空閑時(shí)通過(guò)上拉電阻sda和sck線(xiàn)置1。首先,單片機(jī)向芯片發(fā)送起始信號(hào)(sck為高電平時(shí),sda從高電平向低電平跳變),接著單片機(jī)向芯片按照從高到低的順序發(fā)送地址以及讀

16、寫(xiě)(r/w為0)數(shù)據(jù),然后單片機(jī)等待接收芯片發(fā)送的應(yīng)答的信號(hào),正確接收后向芯片發(fā)送要輸出的數(shù)據(jù)信息。每次在sck為高電平期間,芯片才能讀取sda線(xiàn)上信息,sck低電平期間,更新sda線(xiàn)上內(nèi)容,為了保證正確的傳輸,每發(fā)送完一個(gè)字節(jié)的數(shù)據(jù)后,等待芯片向單片機(jī)發(fā)送應(yīng)答的信號(hào),最終單片機(jī)向芯片發(fā)送結(jié)束信號(hào),才能結(jié)束本次通信。dac5571數(shù)模轉(zhuǎn)換芯片可以通過(guò)設(shè)置運(yùn)放外接不同的電阻從而實(shí)現(xiàn)輸出電壓幅值的調(diào)節(jié)。3.3.3 dac5571轉(zhuǎn)換運(yùn)算原理輸入8位二進(jìn)制數(shù)表示256種狀態(tài),從而控制電阻的不同連接方式,達(dá)到不同分壓的目的,最終數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。圖3-4 dac5571芯片內(nèi)部轉(zhuǎn)換圖dac5

17、571輸出模擬電壓計(jì)算方法:vout = vdd*(d/256)。3.4 時(shí)鐘模塊及定時(shí)器a3.4.1 時(shí)鐘模塊的應(yīng)用msp430f149的時(shí)鐘模塊主要有高速晶體,低速晶體和數(shù)字控制振蕩器(dco)等器件組成。低速晶體振蕩器支持超低功耗,低頻模式下將32768hz晶體連接在xin和xout針腳,不需要外接電容,作為aclk時(shí)鐘源;高速晶體的振蕩器需要消耗的功率較大,外接高速晶體在xin2和xout2之間另外還需要外接電容,作為smclk和mclk時(shí)鐘源;dco是內(nèi)部集成的rc類(lèi)型振蕩器,msp430f149上電默認(rèn)選擇該類(lèi)型振蕩器,頻率會(huì)隨著溫度和電壓的變化而變化,作為smclk和mclk時(shí)鐘

18、源。msp430f149有一種活動(dòng)模式和5種低功耗模式,主要通過(guò)狀態(tài)寄存器中的cpuoff、oscoff、scg0、scg1來(lái)設(shè)置的2。表3-7 控制位與工作模式scg1scg0oscoffcpuoff模式cpu和時(shí)鐘狀態(tài)0000活動(dòng)cpu激活、所有的時(shí)鐘激活0001lpm0cpu、mclk停止;smclk、aclk活動(dòng)0101lpm1cpu、mclk、dco停止;smclk、aclk活動(dòng)1001lpm2cpu、mclk、smclk、dco停止;dc使能;smclk、aclk活動(dòng)1101lpm3cpu、mclk、smclk、dco停止;dc禁止;smclk、aclk活動(dòng)1111lpm4cpu所

19、有時(shí)鐘停止3.4.2 定時(shí)器a的功能應(yīng)用定時(shí)器a是一個(gè)16位定時(shí)/計(jì)數(shù)器,通過(guò)設(shè)定mc1和mc0的值可以確定定時(shí)器a的四種工作方式。該設(shè)計(jì)主要采用増計(jì)數(shù)模式:首先設(shè)定ccr0寄存器里面的內(nèi)容(定時(shí)器的記數(shù)周期),當(dāng)計(jì)數(shù)器增加到等于ccr0寄存器里面的內(nèi)容時(shí),計(jì)數(shù)器重新從0開(kāi)始計(jì)數(shù),此時(shí)taifg中斷標(biāo)志置1,進(jìn)入中斷服務(wù)程序后將波形信息發(fā)送給數(shù)模轉(zhuǎn)換dac5571芯片進(jìn)行輸出。要實(shí)現(xiàn)不同頻率的波形輸出只需要改變ccr0寄存器里面的數(shù)值就可以實(shí)現(xiàn)。通過(guò)對(duì)tactl寄存器設(shè)置,選擇定時(shí)器a的時(shí)鐘源,然后打開(kāi)定時(shí)器中斷。4 方案的實(shí)現(xiàn)4.1 系統(tǒng)硬件設(shè)計(jì)4.1.1 信號(hào)發(fā)生器工作原理信號(hào)發(fā)生器電路主

20、要由msp430f149單片機(jī)、獨(dú)立鍵盤(pán)電路、1602液晶顯示電路、dac5571數(shù)模轉(zhuǎn)換芯片、系統(tǒng)電源電路等組成。系統(tǒng)原理方框圖如4-1所示。圖4-1 系統(tǒng)原理方框圖4.1.2 msp430f149復(fù)位電路復(fù)位電路的主要作用是在上電時(shí)對(duì)單片機(jī)進(jìn)行一些初始的設(shè)置或者當(dāng)程序運(yùn)行失控時(shí),選擇手動(dòng)復(fù)位從而使單片機(jī)重啟。有上電自動(dòng)復(fù)位,手動(dòng)復(fù)位和外部脈沖復(fù)位3種復(fù)位方式。本設(shè)計(jì)用到的msp430f149單片機(jī)采用的是低電平上電自動(dòng)復(fù)位,當(dāng)上電瞬間由于電容電壓不能突然變化,所以rst也就相當(dāng)于和地相連,單片機(jī)復(fù)位。當(dāng)程序運(yùn)行出現(xiàn)故障時(shí),可以手動(dòng)按下s5鍵進(jìn)行手動(dòng)復(fù)位。msp430f149復(fù)位電路如圖4-

21、2所示。 圖4-2 msp430f149復(fù)位電路4.1.3 獨(dú)立鍵盤(pán)電路采用了四個(gè)獨(dú)立按鍵對(duì)波形信息進(jìn)行選擇和設(shè)置如圖4-3所示。圖4-3 獨(dú)立鍵盤(pán)電路4.1.4 液晶顯示電路通過(guò)lcd1602顯示電路能將按鍵輸入的波形信息顯示出來(lái)。lcd1602顯示電路如圖4-4所示。圖4-4 lcd1602顯示電路4.1.5 波形產(chǎn)生電路采用dac5571芯片將單片機(jī)輸出的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)輸出。數(shù)模轉(zhuǎn)換dac5571波形發(fā)生電路如圖4-4所示。圖4-5 dac5571波形產(chǎn)生電路4.2 系統(tǒng)軟件設(shè)計(jì)4.2.1 信號(hào)發(fā)生器主流程圖首先對(duì)各個(gè)功能模塊進(jìn)行初始化,接著掃描獨(dú)立按鍵獲取默認(rèn)參數(shù)(10hz,0

22、.5v)的波形信號(hào)(正弦波、方波、鋸齒波、三角波)并將參數(shù)信息顯示在1602液晶上,然后再次掃描按鍵,判斷是否修改波形參數(shù),如果要改變頻率,只需要重新設(shè)置定時(shí)器a中ccr0的記數(shù)周期值就可以,要改變幅值的話(huà),只需要將送入dac數(shù)模轉(zhuǎn)換芯片的數(shù)值乘以一定的比例系數(shù)(不大于1)就可以,如圖4-5所示。圖4-6 信號(hào)發(fā)生器主流程圖4.2.2 正弦波程序流程圖首先建立一個(gè)正弦波數(shù)據(jù)列表tosin256,每次進(jìn)入定時(shí)器a的中斷服務(wù)時(shí),就將列表里的數(shù)據(jù)送給dac數(shù)模轉(zhuǎn)換芯片輸出,將256個(gè)元素輸出一遍,產(chǎn)生一個(gè)正弦波,如此循環(huán)如圖4-6所示。圖4-7 正弦波產(chǎn)生程序流程圖4.2.3 方波程序流程圖方波信號(hào)

23、是通過(guò)msp430f149內(nèi)部定時(shí)器a每次中斷到來(lái)時(shí),進(jìn)入中斷服務(wù)程序,前128次中斷時(shí)將0xff乘以一定系數(shù)(不大于1)送dac數(shù)模轉(zhuǎn)換芯片輸出,后128次中斷時(shí)將0送dac數(shù)模轉(zhuǎn)換芯片輸出,然后中斷次數(shù)清零,如此循環(huán)如圖4-7所示。圖4-8 方波產(chǎn)生程序流程圖4.2.4 鋸齒波程序流程圖鋸齒波信號(hào)的產(chǎn)生是當(dāng)定時(shí)器a中斷時(shí),一旦進(jìn)入中斷服務(wù)程序后,變量i自增,同時(shí)將變量i的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i等于255時(shí),i清零,重新計(jì)數(shù),如此循環(huán)如圖4-8所示。圖4-9 鋸齒波產(chǎn)生程序流程圖4.2.5 三角波程序流程圖三角波和鋸齒波的主要區(qū)別是:前者上坡和下坡的斜率相等,后者的不相等。三角波

24、信號(hào)的產(chǎn)生是當(dāng)定時(shí)器a中斷時(shí),一旦進(jìn)入中斷服務(wù)程序,變量i乘以2,同時(shí)將變量i乘以2的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i大于128時(shí),將(255-i)乘以2的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i等于255時(shí),i清零,重新計(jì)數(shù),如此循環(huán)如圖4-9所示。圖4-10 三角波產(chǎn)生程序流程圖4.2.6 開(kāi)發(fā)工具和語(yǔ)言介紹本次設(shè)計(jì)使用的開(kāi)發(fā)工具是iar embedded workbench,該工具對(duì)c/c+語(yǔ)言高度優(yōu)化,同時(shí)也是一個(gè)強(qiáng)大的編輯器和一個(gè)項(xiàng)目工程管理器,其次更重要的是該工具在仿真調(diào)試方面功能也很強(qiáng)大。這款開(kāi)發(fā)工具適用于許多8位、16位和32位的mcu,本次用到的msp430單片機(jī)屬于16位的單片

25、機(jī),因此同樣也適用。msp430單片機(jī)開(kāi)發(fā)語(yǔ)言有兩種,分別是匯編語(yǔ)言和c語(yǔ)言。傳統(tǒng)的匯編語(yǔ)言開(kāi)發(fā)出來(lái)的代碼雖然運(yùn)行效率高,但是開(kāi)發(fā)難度相對(duì)較大,并且代碼不容易移植。盡管c語(yǔ)言沒(méi)有匯編的高效率,但是現(xiàn)在很多編譯器都對(duì)c語(yǔ)言進(jìn)行優(yōu)化,而且單片機(jī)的時(shí)鐘頻率也很高所以效率方面已經(jīng)不是問(wèn)題了,另外c語(yǔ)言開(kāi)發(fā)相當(dāng)簡(jiǎn)單,而且比較方便實(shí)現(xiàn)移植。因此本次設(shè)計(jì)采用了c語(yǔ)言編程。4.3 仿真調(diào)試4.3.1 信號(hào)發(fā)生器仿真原理圖選擇合適的芯片,依據(jù)信號(hào)發(fā)生器的硬件設(shè)計(jì)原理和軟件設(shè)計(jì)流程圖,在proteus中對(duì)信號(hào)發(fā)生器系統(tǒng)進(jìn)行仿真和調(diào)試,運(yùn)用proteus仿真從而可以很方便將各個(gè)功能模塊進(jìn)行連接,了解各個(gè)數(shù)據(jù)端口的電

26、平變化,波形信息也比較直觀(guān),而且不需要真實(shí)的元件,通過(guò)應(yīng)用仿真進(jìn)行軟件調(diào)試很大程度上降低了成本。通過(guò)仿真調(diào)試,可以完善自己思路,優(yōu)化自己硬件的設(shè)計(jì)電路和軟件的程序結(jié)構(gòu),發(fā)現(xiàn)自己系統(tǒng)設(shè)計(jì)中的問(wèn)題,讓自己更加深入的了解信號(hào)發(fā)生器的工作原理。軟件仿真并不能完全反映實(shí)際情況,但可以作為一種學(xué)習(xí)的輔助手段。信號(hào)發(fā)生器仿真原理圖如圖4-11所示。圖4-11 信號(hào)發(fā)生器仿真原理圖4.3.2 正弦波仿真圖(1) 初始設(shè)置(10hz,0.5v)正弦波仿真圖圖4-12 默認(rèn)設(shè)置正弦波仿真圖(2) 調(diào)頻(15hz,0.5v)正弦波仿真圖圖4-13 頻率調(diào)節(jié)正弦波仿真圖(3) 調(diào)幅(10hz,1.0v)正弦波仿真圖圖

27、4-14 幅值調(diào)節(jié)正弦波仿真圖4.3.3 方波仿真圖(1) 初始設(shè)置(10hz,0.5v)方波仿真圖圖4-15 默認(rèn)參數(shù)方波仿真圖(2) 調(diào)頻(15hz,0.5v)方波仿真圖圖4-16 頻率調(diào)節(jié)方波仿真圖(3) 調(diào)幅(10hz,1.0v)方波仿真圖圖4-17 幅值調(diào)節(jié)方波仿真圖4.3.4 鋸齒波仿真圖(1) 初始設(shè)置(10hz,0.5v)鋸齒波仿真圖圖4-18 默認(rèn)參數(shù)鋸齒波仿真圖(2) 調(diào)頻(15hz,0.5v)鋸齒波仿真圖圖4-19 頻率調(diào)節(jié)鋸齒波仿真圖(3) 調(diào)幅(10hz,1.0v)鋸齒波仿真圖圖4-20 幅值調(diào)節(jié)鋸齒波仿真圖4.3.5 三角波仿真圖(1) 初始設(shè)置(10hz,0.5v

28、)三角波仿真圖圖4-21 默認(rèn)參數(shù)三角波仿真圖(2) 調(diào)頻(15hz,0.5v)三角波仿真圖圖4-22 頻率調(diào)節(jié)三角波仿真圖(3) 調(diào)幅(10hz,1.0v)三角波仿真圖圖4-23 幅值調(diào)節(jié)三角波仿真圖4.3.6 結(jié)果分析通過(guò)軟件仿真調(diào)試發(fā)現(xiàn),只要改變d/a芯片的參考電壓,就可以改變輸出波形的幅值,可以用滑動(dòng)變阻器實(shí)現(xiàn)分壓,送給d/a芯片作為參考電壓,同時(shí)將此時(shí)的參考電壓采集并且顯示在1602液晶上的話(huà),就可以擴(kuò)大幅值調(diào)節(jié)的范圍。還有輸出波形的最大頻率與所選擇的d/a芯片有關(guān),還與外接運(yùn)放的處理速度有很大聯(lián)系。由于只是軟件仿真,所以波形的頻率和幅值參數(shù)其實(shí)只作為參考,用來(lái)觀(guān)察模擬該功能的??偨Y(jié)

29、通過(guò)本次課題設(shè)計(jì),首先深入了解了信號(hào)發(fā)生器的工作原理和發(fā)展趨勢(shì),對(duì)于msp430單片機(jī)的內(nèi)部模塊以及應(yīng)用特點(diǎn)有了清晰的認(rèn)識(shí),擴(kuò)展了自己的知識(shí)面,鍛煉了自己的學(xué)習(xí)能力以及如何有條理的進(jìn)行一項(xiàng)設(shè)計(jì)。該設(shè)計(jì)主要產(chǎn)生四種波形信號(hào)(正弦波、方波、鋸齒波、三角波),而且這四種波形信號(hào)還可以通過(guò)按鍵實(shí)現(xiàn)幅值(0.5v,1.0v,2.0v)和頻率(10hz,20hz,30hz,50hz)的調(diào)節(jié)。最后,對(duì)課題進(jìn)行了仿真,可以很直觀(guān)的看到波形信號(hào)的變化,通過(guò)調(diào)試不斷完善自己的思路。該設(shè)計(jì)還可以進(jìn)行擴(kuò)展功能從而達(dá)到幅值和頻率的寬覆蓋,高精度的目的。當(dāng)然在設(shè)計(jì)中也遇到許多問(wèn)題比如方波的波形出現(xiàn)失真,這主要是因?yàn)榉讲ㄊ?/p>

30、從d/a輸出的波形信號(hào),由于方波的電平變化劇烈,內(nèi)部電容充放電明顯從而影響了輸出信號(hào)波形。如果方波從單片機(jī)的i/o管腳輸出的話(huà),不會(huì)出現(xiàn)失真,不過(guò)i/o管腳只有高地電平變化,不能進(jìn)行幅值調(diào)節(jié),需要通過(guò)外接電路改變參考電壓來(lái)調(diào)節(jié)幅值,為了方便對(duì)四種波形統(tǒng)一調(diào)節(jié),就都從d/a輸出,其實(shí)當(dāng)方波頻率提高的時(shí)候,失真現(xiàn)象就會(huì)減弱。還有就是1602液晶手冊(cè)上說(shuō)明使用的時(shí)候要進(jìn)行忙檢測(cè),在硬件調(diào)試的時(shí)候沒(méi)問(wèn)題,當(dāng)進(jìn)行仿真的時(shí)候,忙檢測(cè)程序?qū)е?602液晶忙檢測(cè)位一直處于高電平狀態(tài),使得1602液晶無(wú)法正常工作,刪除忙檢測(cè)程序就可以。軟件仿真只能模擬大概功能,好多具體實(shí)際參數(shù)需要硬件調(diào)試去修改。軟件仿真和硬件

31、調(diào)試互相配合,可以更好的處理問(wèn)題。致謝能順利完成該設(shè)計(jì),首先衷心的感謝指導(dǎo)老師楊勇老師,他細(xì)致的指導(dǎo)給我提供了巨大的幫助,使我學(xué)到了今后工作中也會(huì)用到的能力,怎樣一步步解決問(wèn)題。還要感謝的就是幫助我的同學(xué),和他們的討論加深了我對(duì)知識(shí)的運(yùn)用,還有對(duì)我所參考的作者也表示感謝。參 考 文 獻(xiàn)1 張涵,任秀華,王全景.基于proteus的電路及單片機(jī)設(shè)計(jì)與仿真m.北京:電 子工業(yè)出版社,2012.2 秦龍. msp430單片機(jī)常用模塊與綜合系統(tǒng)實(shí)例精講m. 1版. 北京:電子工業(yè)出版社, 2007.3 林志琦, 蔣惠萍. 信號(hào)發(fā)生電路原理與實(shí)用技術(shù)m. 1版. 北京:人民郵電出版社, 2010. 4

32、郭惠, 解書(shū)剛. protel 99se常用功能與應(yīng)用m. 1版. 北京:電子工業(yè)出版社, 2008. 5 曹磊. msp430單片機(jī)c程序設(shè)計(jì)與實(shí)踐m. 1版. 北京:北京航空航天大學(xué)出版社, 2007. 6 胡大可. msp430系列超低功耗16位單片機(jī)原理與應(yīng)用m. 2版. 北京:北京航 空航天大學(xué)出版社, 2001. 7 張晞, 王德銀, 張晨. msp430系列單片機(jī)實(shí)用c語(yǔ)言程序設(shè)計(jì)m. 1版. 北京:人民郵電出版社, 2005. 8 楊平,王威. msp430系列超低功耗單片機(jī)及應(yīng)用j. 國(guó)外電子測(cè)量技術(shù),2008,27(12):48-50. 9 吳平,龔彬,丁鐵夫.液晶顯示模塊

33、和msp430單片機(jī)在顯示終端上的應(yīng)用j. 液晶與顯示,2003,18(6):436-440. 10 吳少軍, 劉光斌. 單片實(shí)用低功耗設(shè)計(jì)-原理,器件與應(yīng)用m.北京:人民郵電 出版社,2003.11 鄒江峰,劉滌塵. msp430在液晶顯示上的應(yīng)用j. 液晶與顯示, 2005, 20(2):159-162.12 謝敏. 基于msp430的低功耗儀表系統(tǒng)設(shè)計(jì)j.微計(jì)算機(jī)信息, 2007, 23(22):142-144. 13 蘇維嘉, 王旭輝. 基于msp430單片機(jī)的數(shù)據(jù)采集系統(tǒng)j. 現(xiàn)代電子技術(shù), 2007(23):117-119. 14 龐文瑞. d/a轉(zhuǎn)換器及其應(yīng)用j. 水利水文自動(dòng)化

34、,2003,1(1):41-46. 15 bucur d, kwiatkowska m. on software verification for sensor nodesj. the journal of systems & software, 2011, 84(10):1693-1707. 16 tarzanlorente m, ceravalls j, bosch j, etal. electronic system for controlling the food cooking processj. procedia chemistry, 2009, 1(1):489-492.

35、 附錄a:硬件原理圖附錄b:仿真調(diào)試程序#include "msp430x14x.h"#define cs_l p5out &= bit0#define wr_l p5out &= bit1#define cs_h p5out |= bit0#define wr_h p5out |= bit1#define dataout p2out#define datain p2in #define ctrldir p6dir#define datadir p2dir#define clr_rs p6out &= bit3 #define set_rs p6ou

36、t |= bit3#define clr_rw p6out &= bit4#define set_rw p6out |= bit4#define clr_en p6out &= bit5#define set_en p6out |= bit5#define uchar unsigned char#define uint unsigned intchar f = 0,v = 0;uchar i = 0;uint num,flag1;uchar* strf ="10hz ","20hz ","30hz ","50

37、hz"uchar* strv ="0.5v ","1.0v","2.0v"uchar tosin256=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5 ,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0x

38、ee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd ,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc

39、,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51 ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x

40、22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1

41、e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e ,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 ; /*液晶顯示模塊功能定義*/void delay1(void) /*長(zhǎng)延時(shí)*/ uint i; for(i=100;i>0;i-);void lcdwritecmd(uchar cmd ) /*液晶寫(xiě)命令*/clr_rw;clr_r

42、s;_nop(); dataout = cmd;_nop();set_en;_nop();_nop(); _nop();clr_en;void lcdwritedata (uchar data) /*液晶寫(xiě)數(shù)據(jù)*/ clr_rw;set_rs; _nop();dataout = data;_nop();set_en;_nop();_nop(); _nop();clr_en;void lcddisxy(uchar x,uchar y) /*顯示坐標(biāo)*/uchar temp1;temp1 = x & 0x0f;y &= 0x01;if(y) temp1 |= 0x40;temp1

43、|= 0x80;lcdwritecmd(temp1);void dischar(uchar x,uchar y,uchar chardata) /*指定坐標(biāo)寫(xiě)字符*/lcddisxy(x,y);lcdwritedata(chardata);void disstring(uchar x,uchar y,uchar* ptr) /*指定坐標(biāo)顯示字符串*/uchar a,b=0;uchar *p;p = ptr;while(*ptr+ != '0') b+;for(a=0;a<b;a+) dischar(x+,y,pa); if(x=0x0f) x = 0; y = 1; vo

44、id lcd_init (void)/*液晶初始化*/ datadir = 0xff;ctrldir = 0xff;lcdwritecmd(0x38);lcdwritecmd(0x08); lcdwritecmd(0x01);lcdwritecmd(0x06);lcdwritecmd(0x0c); /定時(shí)器初始化void timer_init(void) /tactl = tassel_2 + mc_1; p1dir = 0xff; p1out = 0xff;void main(void) wdtctl = wdtpw + wdthold;/*關(guān)閉看門(mén)狗*/ p4dir = 0xff; p5dir |= 0x03; cs_h; wr_h; p4out = 0; lcd_init(); timer_init(); p3dir = 0; disstring(2,0,"x

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論