




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 畢業(yè)生畢業(yè)設(shè)計說明書題 目: 基于msp430單片機(jī)的任意信號發(fā)生器設(shè)計 學(xué)院名稱: 電氣工程學(xué)院 班 級: 電氣f0902 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 教師職稱: 高級工程師 目 次1 概述11.1 信號發(fā)生器背景及其發(fā)展?fàn)顩r11.2 本設(shè)計主要研究內(nèi)容12 方案論證22.1 設(shè)計方案的提出22.2 設(shè)計方案的比較22.3 設(shè)計方案的選擇33 選用模塊介紹33.1 msp430f149單片機(jī)33.2 1602液晶63.3 dac5571芯片83.4 時鐘模塊及定時器a94 方案的實(shí)現(xiàn)104.1 系統(tǒng)硬件設(shè)計104.2 系統(tǒng)軟件設(shè)計124.3 仿真調(diào)試18總結(jié)26致謝27參考文獻(xiàn)28附
2、錄a:硬件原理圖29附錄b:仿真調(diào)試程序30371 概述1.1 信號發(fā)生器背景及其發(fā)展?fàn)顩r信號發(fā)生器在各個領(lǐng)域都有著相當(dāng)廣泛的應(yīng)用,無論是通信產(chǎn)品還是電子儀表,無論是科學(xué)指導(dǎo)還是教學(xué)研究,小到電子手表、大到計算機(jī),都離不開信號發(fā)生器。信號發(fā)生器在許多方面發(fā)揮著重要的作用。信號發(fā)生器也常常被稱為信號源,能夠提供穩(wěn)定的和可靠的參考信號。信號發(fā)生器的頻率、幅值、波形等信號參數(shù)可以通過人設(shè)置調(diào)節(jié)?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用越來越深入到各個方面,這一發(fā)展趨勢必然會使得以前的檢測技術(shù)獲得巨大變革。由單片機(jī)控制的儀器具有可靠性高、性能價格比好的優(yōu)點(diǎn),并廣泛應(yīng)用在醫(yī)療通信和智能儀器等諸多領(lǐng)域,而且還走入普通
3、家庭從冰箱、遙控器到汽車,隨處可見其身影。以單片機(jī)為控制核心,加上鍵盤掃描、1602液晶顯示、數(shù)模轉(zhuǎn)換(d/a)等電路,可以設(shè)計出功能多樣化、性能卓越的信號發(fā)生器,同時該信號發(fā)生器還可以采用usb接口設(shè)計,從而使其具有遠(yuǎn)程通信的功能。目前,實(shí)驗、科研和生產(chǎn)制造中一般都選擇該方法去實(shí)現(xiàn)所需信號源。伴隨著科技的進(jìn)步,各個領(lǐng)域需要的信號種類五花八門、頻率也越來越高。所以,目前信號發(fā)生器的發(fā)展趨勢是朝著頻率調(diào)節(jié)范圍寬、功率消耗低、調(diào)節(jié)頻率精度要求高、實(shí)現(xiàn)功能多樣化、自動控制程度高和智能控制好方向發(fā)展。1.2 本設(shè)計主要研究內(nèi)容通過圖書館查閱msp430單片機(jī)相關(guān)書籍,了解該單片機(jī)的功能模塊、內(nèi)部硬件結(jié)
4、構(gòu)、主要技術(shù)特點(diǎn)、存儲方式,從而進(jìn)一步利用網(wǎng)絡(luò)資源,搜尋msp430系列單片機(jī)開發(fā)板的教學(xué)視頻,加深對該單片機(jī)的理解和應(yīng)用,最后根據(jù)本次設(shè)計的要求,選擇合適的功能模塊及芯片,完成相應(yīng)設(shè)計,達(dá)到應(yīng)用要求。主要開展以下幾個方面的學(xué)習(xí)與設(shè)計工作:對msp430系列單片機(jī)有一定程度的掌握,熟悉內(nèi)部各個模塊的基本功能;了解d/a轉(zhuǎn)換器的原理,選擇合適的d/a轉(zhuǎn)換器以獲得高精度的波形信號; lcd1602液晶顯示的控制;鍵盤鍵位的功能定義;波形信號發(fā)生程序的編寫;各個電路模塊之間的數(shù)據(jù)傳輸以及模塊的初始化。2 方案論證信號發(fā)生器的應(yīng)用領(lǐng)域非常寬廣,根據(jù)不一樣的應(yīng)用條件,對信號發(fā)生器的具體要求也不一樣。所以
5、,信號發(fā)生器的設(shè)計方法就會各式各樣。2.1 設(shè)計方案的提出方案一:主要采用運(yùn)算放大器加上分立元件來實(shí)現(xiàn)。第一步是產(chǎn)生出正弦波,第二步運(yùn)用波形變換實(shí)現(xiàn)其他波形信號,如果要改變波形信號的頻率、幅值及占空比,只需要改變電路的具體參數(shù)就可以實(shí)現(xiàn),第三步通過開關(guān)電路來選擇輸出不同的波形信號。如果要實(shí)現(xiàn)精度準(zhǔn)的頻率和穩(wěn)定的信號輸出,需要對電路的結(jié)構(gòu)進(jìn)行優(yōu)化以及選用高精度的元器件才能達(dá)到目的。例如采用555振蕩電路產(chǎn)生正弦波、方波等。方案二:主要采用單片機(jī)作為控制核心,通過鍵盤掃描,獲得波形參數(shù)的輸入信息,然后將信息傳輸給顯示電路,根據(jù)參數(shù)信息設(shè)定定時器的定時間隔,當(dāng)定時器中斷到來,進(jìn)入中斷服務(wù)程序,將選擇
6、波形的幅值信息發(fā)送給數(shù)模轉(zhuǎn)換(d/a)芯片輸出,從而得到相應(yīng)設(shè)定參數(shù)的波形信號(正弦波、方波、三角波、鋸齒波),輸出的波形信號可以通過外接運(yùn)放進(jìn)行調(diào)節(jié)。方案三:主要采用單片集成的信號發(fā)生器。首先將各種波形信號的功能電路集成優(yōu)化到一個集成電路芯片里,然后再外加少量的電阻、電容元件來實(shí)現(xiàn)。例如max038(最高頻率可達(dá)40mhz)和icl8038(最高頻率為300khz)。2.2 設(shè)計方案的比較方案一:優(yōu)點(diǎn)是工作原理相對簡單,抗干擾性好,不用使用集成芯片。缺點(diǎn)是頻率調(diào)節(jié)范圍窄而且波形質(zhì)量比較差,體積大,電路結(jié)構(gòu)復(fù)雜,工作不穩(wěn)定。方案二:優(yōu)點(diǎn)是操作方便,頻率和幅值參數(shù)易于調(diào)節(jié),工作原理簡單,體積小,
7、成本低。缺點(diǎn)是頻率精度不高,方波通過d/a輸出后有輕微失真現(xiàn)象,波形發(fā)生程序復(fù)雜。方案三:優(yōu)點(diǎn)是頻率調(diào)節(jié)范圍相對較寬,精度好,操作簡單,體積小。缺點(diǎn)是波形信號種類少,調(diào)節(jié)方式單一,對集成芯片控制要求高。2.3 設(shè)計方案的選擇根據(jù)上述三種設(shè)計方案的優(yōu)缺點(diǎn),并結(jié)合自身對知識的掌握程度,從各個方面綜合分析,決定選擇方案二來達(dá)到實(shí)現(xiàn)該設(shè)計的目的。具體實(shí)現(xiàn)過程以msp430f149單片機(jī)作為控制核心,通過鍵盤掃描,獲得波形參數(shù)的輸入信息,然后將輸入內(nèi)容傳輸給lcd1602顯示電路,根據(jù)參數(shù)信息設(shè)定定時器a的定時間隔,當(dāng)定時器的中斷標(biāo)志置1時,調(diào)用中斷服務(wù)程序,將選擇波形的幅值信息發(fā)送給d/a芯片輸出,從
8、而得到設(shè)定的相應(yīng)波形信號(正弦波、方波、三角波、鋸齒波)。如果要改變頻率,只需要重新設(shè)置定時器a的記數(shù)周期值就可以,要改變幅值的話,只需要將送入數(shù)模轉(zhuǎn)換(d/a)芯片的數(shù)值乘以一定的比例系數(shù)(不大于1)就可以。3 選用模塊介紹3.1 msp430f149單片機(jī)msp430f149單片機(jī)是按照精簡指令集(risc)和高透明的宗旨來設(shè)計內(nèi)核cpu的結(jié)構(gòu)的,該單片機(jī)的存儲器采用“馮諾依曼”結(jié)構(gòu)使得rom和ram在同一地址空間(0000h-ffffh),地址和數(shù)據(jù)總線為同一組。msp430f149單片機(jī)含有一個16位的算術(shù)邏輯單元(alu)、一個指令控制操作單元,其中4個特殊的功能寄存器分別是程序計數(shù)
9、器(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ī),采用了精簡指令集(risc)結(jié)構(gòu),查詢地址的方式非常豐富,相比89c51的111條指令msp430的27 條內(nèi)部指令就相當(dāng)簡潔,同時具有許多模擬指令和可參與幾種運(yùn)算的寄存器,還有高效率的對表查詢處理指令。低電壓、超低功耗msp430系列單片機(jī)電源電壓范圍是1.8-3.6v,該單片機(jī)還具有低功耗應(yīng)用、根據(jù)對速度和數(shù)
10、據(jù)傳輸?shù)奶幚硪笠约巴鈬O(shè)備需要消耗的最小電流可以設(shè)置成不同的操作模式。單片機(jī)可以隨時進(jìn)入低功率消耗模式,進(jìn)入低功率消耗模式后,系統(tǒng)的時鐘會停止,所有的i/o端口、ram和寄存器的內(nèi)容不會發(fā)生變化,此時系統(tǒng)的功率消耗處于a級。當(dāng)出現(xiàn)外部中斷時系統(tǒng)能從低功率消耗模式中蘇醒,從而去執(zhí)行規(guī)定的操作。只需要不到6us,該單片機(jī)就能從低功耗模式迅速轉(zhuǎn)換到活躍模式。msp430單片機(jī)具有一種活動模式和5種低功率消耗模式2。片內(nèi)資源豐富msp430系列單片機(jī)內(nèi)部都含有豐富的功能模塊可以實(shí)現(xiàn)好多應(yīng)用,主要有看門狗(wdt)、定時器a、比較器、adc模塊、usart模塊、flash模塊、基礎(chǔ)時鐘、i/o端口等若
11、干外圍模塊。其中,看門狗可以通過設(shè)定中斷的時間間隔,防止程序出現(xiàn)“跑飛”的現(xiàn)象,一旦打開看門狗,程序在正常運(yùn)行的情況下到中斷的地點(diǎn)會自動清除看門狗內(nèi)容,而當(dāng)程序異常時,則無法清除,此時看門狗將產(chǎn)生一個信號使得系統(tǒng)復(fù)位,從而重新啟動系統(tǒng),保證了系統(tǒng)的正常運(yùn)行。定時器(timer_a 和 timer_b)是一個16位的定時/計數(shù)器,含有多個捕獲/比較寄存器,能同時對多個時序進(jìn)行控制,可以實(shí)現(xiàn)pwm的輸出,而且具有多個中斷能力。定時器(timer_a 和 timer_b)具有停止計數(shù)模式、増加計數(shù)模式、連續(xù)增加計數(shù)模式、增加/減少計數(shù)模式這四種工作的模式。時鐘電路模塊主要產(chǎn)生三種不一樣的時鐘信號,通
12、常情況下,系統(tǒng)的功率消耗隨著系統(tǒng)的工作頻率增加而增加,根據(jù)各自的情況選擇適合的時鐘可以達(dá)到降低功率消耗的目的。例如要實(shí)現(xiàn)較低功率消耗則選擇低速的晶體;如果要滿足系統(tǒng)的運(yùn)算速度需要選用高速的晶體產(chǎn)生的時鐘;對系統(tǒng)實(shí)時的操作要求高時,應(yīng)該選用aclk時鐘。系統(tǒng)工作穩(wěn)定系統(tǒng)上電復(fù)位后,由dcoclock作為系統(tǒng)時鐘,從而使系統(tǒng)可以從正確的地址去執(zhí)行程序。隨后其靈活的時鐘系統(tǒng)允許軟件選擇不同的系統(tǒng)的時鐘,但是在晶體振蕩器作為系統(tǒng)的時鐘無法起振時,dcoclock被默認(rèn)切換為系統(tǒng)的時鐘從而保證了系統(tǒng)的正常工作。3.1.3 msp430f149單片機(jī)的應(yīng)用msp430f149單片機(jī)具有超低功耗、16位指令
13、,內(nèi)置a/d轉(zhuǎn)換器、usart模塊、硬件乘法器、lcd液晶驅(qū)動電路及抗干擾能力強(qiáng)、運(yùn)算速度快等技術(shù)特點(diǎn),因此,特別適合應(yīng)用在智能儀表、智能化家用電器、工業(yè)控制、計算機(jī)網(wǎng)絡(luò)和醫(yī)用設(shè)備領(lǐng)域等產(chǎn)品之中。該設(shè)計中主要運(yùn)用msp430f149的低功耗,時鐘可以分頻控制,運(yùn)算速度快,工作穩(wěn)定等技術(shù)特點(diǎn),將輸入的波形信息,顯示在1602液晶上,同時可以選用按鍵對波形參數(shù)進(jìn)行選擇,最后采用d/a芯片輸出波形信號,用示波器測量實(shí)際波形信息。3.2 1602液晶1602液晶也被稱為1602字符型液晶主要用來顯示字母、數(shù)字、符號的點(diǎn)陣型液晶模塊。每個點(diǎn)陣字符可以實(shí)現(xiàn)一個字符的顯示,由于每一位之間具有一個點(diǎn)距間隔,同
14、時每一行之間也具有間隔,所以圖形內(nèi)容是無法實(shí)現(xiàn)顯示的。3.2.1 1602液晶引腳圖圖3-2 1602液晶引腳圖表3-1 lcd1602的引腳功能說明引腳符號功能說明1vss接地端2vdd接正電源端3ao對比度設(shè)置端4r/s置1時為選擇數(shù)據(jù),置0時為選擇指令5r/w置1時讀操作,置0時寫操作。6e下降沿使能端7-13d0-d6 雙向數(shù)據(jù)線14d7置1表明液晶處于忙狀態(tài)15bla背光電源正極16blk背光電源負(fù)極3.2.2 lcd1602顯示控制表表3-2 基本操作時序讀狀態(tài)輸入:rs=l,rw=h,e=h輸出:d0-d7=狀態(tài)字讀數(shù)據(jù)輸入:rs=h,rw=h,e=h輸出:d0-d7=數(shù)據(jù)寫指令
15、輸入:rs=l,rw=l,e=高脈沖,d0-d7=指令碼輸出:無寫數(shù)據(jù)輸入:rs=h,rw=l,e=高脈沖,d0-d7=數(shù)據(jù)輸出:無表3-3 ram地址映射圖表3-4 指令說明表3-5 lcd1602控制指令集3.3 dac5571芯片3.3.1 dac5571引腳圖圖3-3 dac5571引腳圖表3-6 dac5571的引腳功能說明3.3.2 dac5571工作原理dac5571芯片采用i2c協(xié)議的半雙工串行通信方式,空閑時通過上拉電阻sda和sck線置1。首先,單片機(jī)向芯片發(fā)送起始信號(sck為高電平時,sda從高電平向低電平跳變),接著單片機(jī)向芯片按照從高到低的順序發(fā)送地址以及讀寫(r/
16、w為0)數(shù)據(jù),然后單片機(jī)等待接收芯片發(fā)送的應(yīng)答的信號,正確接收后向芯片發(fā)送要輸出的數(shù)據(jù)信息。每次在sck為高電平期間,芯片才能讀取sda線上信息,sck低電平期間,更新sda線上內(nèi)容,為了保證正確的傳輸,每發(fā)送完一個字節(jié)的數(shù)據(jù)后,等待芯片向單片機(jī)發(fā)送應(yīng)答的信號,最終單片機(jī)向芯片發(fā)送結(jié)束信號,才能結(jié)束本次通信。dac5571數(shù)模轉(zhuǎn)換芯片可以通過設(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ù)字信號轉(zhuǎn)換為模擬信號輸出。圖3-4 dac5571芯片內(nèi)部轉(zhuǎn)換圖dac5571輸
17、出模擬電壓計算方法:vout = vdd*(d/256)。3.4 時鐘模塊及定時器a3.4.1 時鐘模塊的應(yīng)用msp430f149的時鐘模塊主要有高速晶體,低速晶體和數(shù)字控制振蕩器(dco)等器件組成。低速晶體振蕩器支持超低功耗,低頻模式下將32768hz晶體連接在xin和xout針腳,不需要外接電容,作為aclk時鐘源;高速晶體的振蕩器需要消耗的功率較大,外接高速晶體在xin2和xout2之間另外還需要外接電容,作為smclk和mclk時鐘源;dco是內(nèi)部集成的rc類型振蕩器,msp430f149上電默認(rèn)選擇該類型振蕩器,頻率會隨著溫度和電壓的變化而變化,作為smclk和mclk時鐘源。ms
18、p430f149有一種活動模式和5種低功耗模式,主要通過狀態(tài)寄存器中的cpuoff、oscoff、scg0、scg1來設(shè)置的2。表3-7 控制位與工作模式scg1scg0oscoffcpuoff模式cpu和時鐘狀態(tài)0000活動cpu激活、所有的時鐘激活0001lpm0cpu、mclk停止;smclk、aclk活動0101lpm1cpu、mclk、dco停止;smclk、aclk活動1001lpm2cpu、mclk、smclk、dco停止;dc使能;smclk、aclk活動1101lpm3cpu、mclk、smclk、dco停止;dc禁止;smclk、aclk活動1111lpm4cpu所有時鐘停
19、止3.4.2 定時器a的功能應(yīng)用定時器a是一個16位定時/計數(shù)器,通過設(shè)定mc1和mc0的值可以確定定時器a的四種工作方式。該設(shè)計主要采用増計數(shù)模式:首先設(shè)定ccr0寄存器里面的內(nèi)容(定時器的記數(shù)周期),當(dāng)計數(shù)器增加到等于ccr0寄存器里面的內(nèi)容時,計數(shù)器重新從0開始計數(shù),此時taifg中斷標(biāo)志置1,進(jìn)入中斷服務(wù)程序后將波形信息發(fā)送給數(shù)模轉(zhuǎn)換dac5571芯片進(jìn)行輸出。要實(shí)現(xiàn)不同頻率的波形輸出只需要改變ccr0寄存器里面的數(shù)值就可以實(shí)現(xiàn)。通過對tactl寄存器設(shè)置,選擇定時器a的時鐘源,然后打開定時器中斷。4 方案的實(shí)現(xiàn)4.1 系統(tǒng)硬件設(shè)計4.1.1 信號發(fā)生器工作原理信號發(fā)生器電路主要由ms
20、p430f149單片機(jī)、獨(dú)立鍵盤電路、1602液晶顯示電路、dac5571數(shù)模轉(zhuǎn)換芯片、系統(tǒng)電源電路等組成。系統(tǒng)原理方框圖如4-1所示。圖4-1 系統(tǒng)原理方框圖4.1.2 msp430f149復(fù)位電路復(fù)位電路的主要作用是在上電時對單片機(jī)進(jìn)行一些初始的設(shè)置或者當(dāng)程序運(yùn)行失控時,選擇手動復(fù)位從而使單片機(jī)重啟。有上電自動復(fù)位,手動復(fù)位和外部脈沖復(fù)位3種復(fù)位方式。本設(shè)計用到的msp430f149單片機(jī)采用的是低電平上電自動復(fù)位,當(dāng)上電瞬間由于電容電壓不能突然變化,所以rst也就相當(dāng)于和地相連,單片機(jī)復(fù)位。當(dāng)程序運(yùn)行出現(xiàn)故障時,可以手動按下s5鍵進(jìn)行手動復(fù)位。msp430f149復(fù)位電路如圖4-2所示。
21、 圖4-2 msp430f149復(fù)位電路4.1.3 獨(dú)立鍵盤電路采用了四個獨(dú)立按鍵對波形信息進(jìn)行選擇和設(shè)置如圖4-3所示。圖4-3 獨(dú)立鍵盤電路4.1.4 液晶顯示電路通過lcd1602顯示電路能將按鍵輸入的波形信息顯示出來。lcd1602顯示電路如圖4-4所示。圖4-4 lcd1602顯示電路4.1.5 波形產(chǎn)生電路采用dac5571芯片將單片機(jī)輸出的數(shù)字信號轉(zhuǎn)換成模擬信號輸出。數(shù)模轉(zhuǎn)換dac5571波形發(fā)生電路如圖4-4所示。圖4-5 dac5571波形產(chǎn)生電路4.2 系統(tǒng)軟件設(shè)計4.2.1 信號發(fā)生器主流程圖首先對各個功能模塊進(jìn)行初始化,接著掃描獨(dú)立按鍵獲取默認(rèn)參數(shù)(10hz,0.5v)
22、的波形信號(正弦波、方波、鋸齒波、三角波)并將參數(shù)信息顯示在1602液晶上,然后再次掃描按鍵,判斷是否修改波形參數(shù),如果要改變頻率,只需要重新設(shè)置定時器a中ccr0的記數(shù)周期值就可以,要改變幅值的話,只需要將送入dac數(shù)模轉(zhuǎn)換芯片的數(shù)值乘以一定的比例系數(shù)(不大于1)就可以,如圖4-5所示。圖4-6 信號發(fā)生器主流程圖4.2.2 正弦波程序流程圖首先建立一個正弦波數(shù)據(jù)列表tosin256,每次進(jìn)入定時器a的中斷服務(wù)時,就將列表里的數(shù)據(jù)送給dac數(shù)模轉(zhuǎn)換芯片輸出,將256個元素輸出一遍,產(chǎn)生一個正弦波,如此循環(huán)如圖4-6所示。圖4-7 正弦波產(chǎn)生程序流程圖4.2.3 方波程序流程圖方波信號是通過m
23、sp430f149內(nèi)部定時器a每次中斷到來時,進(jìn)入中斷服務(wù)程序,前128次中斷時將0xff乘以一定系數(shù)(不大于1)送dac數(shù)模轉(zhuǎn)換芯片輸出,后128次中斷時將0送dac數(shù)模轉(zhuǎn)換芯片輸出,然后中斷次數(shù)清零,如此循環(huán)如圖4-7所示。圖4-8 方波產(chǎn)生程序流程圖4.2.4 鋸齒波程序流程圖鋸齒波信號的產(chǎn)生是當(dāng)定時器a中斷時,一旦進(jìn)入中斷服務(wù)程序后,變量i自增,同時將變量i的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i等于255時,i清零,重新計數(shù),如此循環(huán)如圖4-8所示。圖4-9 鋸齒波產(chǎn)生程序流程圖4.2.5 三角波程序流程圖三角波和鋸齒波的主要區(qū)別是:前者上坡和下坡的斜率相等,后者的不相等。三角波信號的產(chǎn)
24、生是當(dāng)定時器a中斷時,一旦進(jìn)入中斷服務(wù)程序,變量i乘以2,同時將變量i乘以2的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i大于128時,將(255-i)乘以2的值送給dac數(shù)模轉(zhuǎn)換芯片輸出,當(dāng)i等于255時,i清零,重新計數(shù),如此循環(huán)如圖4-9所示。圖4-10 三角波產(chǎn)生程序流程圖4.2.6 開發(fā)工具和語言介紹本次設(shè)計使用的開發(fā)工具是iar embedded workbench,該工具對c/c+語言高度優(yōu)化,同時也是一個強(qiáng)大的編輯器和一個項目工程管理器,其次更重要的是該工具在仿真調(diào)試方面功能也很強(qiáng)大。這款開發(fā)工具適用于許多8位、16位和32位的mcu,本次用到的msp430單片機(jī)屬于16位的單片機(jī),因此
25、同樣也適用。msp430單片機(jī)開發(fā)語言有兩種,分別是匯編語言和c語言。傳統(tǒng)的匯編語言開發(fā)出來的代碼雖然運(yùn)行效率高,但是開發(fā)難度相對較大,并且代碼不容易移植。盡管c語言沒有匯編的高效率,但是現(xiàn)在很多編譯器都對c語言進(jìn)行優(yōu)化,而且單片機(jī)的時鐘頻率也很高所以效率方面已經(jīng)不是問題了,另外c語言開發(fā)相當(dāng)簡單,而且比較方便實(shí)現(xiàn)移植。因此本次設(shè)計采用了c語言編程。4.3 仿真調(diào)試4.3.1 信號發(fā)生器仿真原理圖選擇合適的芯片,依據(jù)信號發(fā)生器的硬件設(shè)計原理和軟件設(shè)計流程圖,在proteus中對信號發(fā)生器系統(tǒng)進(jìn)行仿真和調(diào)試,運(yùn)用proteus仿真從而可以很方便將各個功能模塊進(jìn)行連接,了解各個數(shù)據(jù)端口的電平變化,
26、波形信息也比較直觀,而且不需要真實(shí)的元件,通過應(yīng)用仿真進(jìn)行軟件調(diào)試很大程度上降低了成本。通過仿真調(diào)試,可以完善自己思路,優(yōu)化自己硬件的設(shè)計電路和軟件的程序結(jié)構(gòu),發(fā)現(xiàn)自己系統(tǒng)設(shè)計中的問題,讓自己更加深入的了解信號發(fā)生器的工作原理。軟件仿真并不能完全反映實(shí)際情況,但可以作為一種學(xué)習(xí)的輔助手段。信號發(fā)生器仿真原理圖如圖4-11所示。圖4-11 信號發(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)正弦波仿真圖圖4-14
27、 幅值調(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é)果分析通過軟件仿真調(diào)試發(fā)現(xiàn),只要改變d/a芯片的參考電壓,就可以改變輸出波形的幅值,可以用滑動變阻器實(shí)現(xiàn)分壓,送給d/a芯片作為參考電壓,同時將此時的參考電壓采集并且顯示在1602液晶上的話,就可以擴(kuò)大幅值調(diào)節(jié)的范圍。還有輸出波形的最大頻率與所選擇的d/a芯片有關(guān),還與外接運(yùn)放的處理速度有很大聯(lián)系。由于只是軟件仿真,所以波形的頻率和幅值參數(shù)其實(shí)只作為參考,用來觀察模擬該功能的。總結(jié)通過本次
29、課題設(shè)計,首先深入了解了信號發(fā)生器的工作原理和發(fā)展趨勢,對于msp430單片機(jī)的內(nèi)部模塊以及應(yīng)用特點(diǎn)有了清晰的認(rèn)識,擴(kuò)展了自己的知識面,鍛煉了自己的學(xué)習(xí)能力以及如何有條理的進(jìn)行一項設(shè)計。該設(shè)計主要產(chǎn)生四種波形信號(正弦波、方波、鋸齒波、三角波),而且這四種波形信號還可以通過按鍵實(shí)現(xiàn)幅值(0.5v,1.0v,2.0v)和頻率(10hz,20hz,30hz,50hz)的調(diào)節(jié)。最后,對課題進(jìn)行了仿真,可以很直觀的看到波形信號的變化,通過調(diào)試不斷完善自己的思路。該設(shè)計還可以進(jìn)行擴(kuò)展功能從而達(dá)到幅值和頻率的寬覆蓋,高精度的目的。當(dāng)然在設(shè)計中也遇到許多問題比如方波的波形出現(xiàn)失真,這主要是因為方波是從d/a
30、輸出的波形信號,由于方波的電平變化劇烈,內(nèi)部電容充放電明顯從而影響了輸出信號波形。如果方波從單片機(jī)的i/o管腳輸出的話,不會出現(xiàn)失真,不過i/o管腳只有高地電平變化,不能進(jìn)行幅值調(diào)節(jié),需要通過外接電路改變參考電壓來調(diào)節(jié)幅值,為了方便對四種波形統(tǒng)一調(diào)節(jié),就都從d/a輸出,其實(shí)當(dāng)方波頻率提高的時候,失真現(xiàn)象就會減弱。還有就是1602液晶手冊上說明使用的時候要進(jìn)行忙檢測,在硬件調(diào)試的時候沒問題,當(dāng)進(jìn)行仿真的時候,忙檢測程序?qū)е?602液晶忙檢測位一直處于高電平狀態(tài),使得1602液晶無法正常工作,刪除忙檢測程序就可以。軟件仿真只能模擬大概功能,好多具體實(shí)際參數(shù)需要硬件調(diào)試去修改。軟件仿真和硬件調(diào)試互相
31、配合,可以更好的處理問題。致謝能順利完成該設(shè)計,首先衷心的感謝指導(dǎo)老師楊勇老師,他細(xì)致的指導(dǎo)給我提供了巨大的幫助,使我學(xué)到了今后工作中也會用到的能力,怎樣一步步解決問題。還要感謝的就是幫助我的同學(xué),和他們的討論加深了我對知識的運(yùn)用,還有對我所參考的作者也表示感謝。參 考 文 獻(xiàn)1 張涵,任秀華,王全景.基于proteus的電路及單片機(jī)設(shè)計與仿真m.北京:電 子工業(yè)出版社,2012.2 秦龍. msp430單片機(jī)常用模塊與綜合系統(tǒng)實(shí)例精講m. 1版. 北京:電子工業(yè)出版社, 2007.3 林志琦, 蔣惠萍. 信號發(fā)生電路原理與實(shí)用技術(shù)m. 1版. 北京:人民郵電出版社, 2010. 4 郭惠,
32、解書剛. protel 99se常用功能與應(yīng)用m. 1版. 北京:電子工業(yè)出版社, 2008. 5 曹磊. msp430單片機(jī)c程序設(shè)計與實(shí)踐m. 1版. 北京:北京航空航天大學(xué)出版社, 2007. 6 胡大可. msp430系列超低功耗16位單片機(jī)原理與應(yīng)用m. 2版. 北京:北京航 空航天大學(xué)出版社, 2001. 7 張晞, 王德銀, 張晨. msp430系列單片機(jī)實(shí)用c語言程序設(shè)計m. 1版. 北京:人民郵電出版社, 2005. 8 楊平,王威. msp430系列超低功耗單片機(jī)及應(yīng)用j. 國外電子測量技術(shù),2008,27(12):48-50. 9 吳平,龔彬,丁鐵夫.液晶顯示模塊和msp
33、430單片機(jī)在顯示終端上的應(yīng)用j. 液晶與顯示,2003,18(6):436-440. 10 吳少軍, 劉光斌. 單片實(shí)用低功耗設(shè)計-原理,器件與應(yīng)用m.北京:人民郵電 出版社,2003.11 鄒江峰,劉滌塵. msp430在液晶顯示上的應(yīng)用j. 液晶與顯示, 2005, 20(2):159-162.12 謝敏. 基于msp430的低功耗儀表系統(tǒng)設(shè)計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. 水利水文自動化,200
34、3,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. 附錄a:硬件原
35、理圖附錄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 p6out |= bit3#define clr_rw p6out &=
36、 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 ,50hz;uchar* strv =0.5v ,1.0v,2.0v;uchar tosin256=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,
37、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,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
38、f,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,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,
39、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,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x0
40、1,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,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e ,0x51,0x55,0x57,0x5a,0x5d
41、,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 ; /*液晶顯示模塊功能定義*/void delay1(void) /*長延時*/ uint i; for(i=100;i0;i-);void lcdwritecmd(uchar cmd ) /*液晶寫命令*/clr_rw;clr_rs;_nop(); dataout = cmd;_nop();set_en;_nop();_nop(); _nop();clr_en;void lcdwritedata (uchar data) /*液晶寫數(shù)據(jù)*/ clr_rw;set_rs; _no
42、p();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 |= 0x80;lcdwritecmd(temp1);void dischar(uchar x,uchar y,uchar chardata) /*指定坐標(biāo)寫字符*/lcddisxy(x,y);lcdwritedata(chardata);void disstring
43、(uchar x,uchar y,uchar* ptr) /*指定坐標(biāo)顯示字符串*/uchar a,b=0;uchar *p;p = ptr;while(*ptr+ != 0) b+;for(a=0;ab;a+) dischar(x+,y,pa); if(x=0x0f) x = 0; y = 1; void lcd_init (void)/*液晶初始化*/ datadir = 0xff;ctrldir = 0xff;lcdwritecmd(0x38);lcdwritecmd(0x08); lcdwritecmd(0x01);lcdwritecmd(0x06);lcdwritecmd(0x0c); /定時器初始化void timer_init(void) /tactl = tassel_2 + mc_1; p1dir = 0xff; p1out = 0xff;void main(void) wdtctl = wdtpw + wdthold;/*關(guān)閉看門狗*/ p4dir = 0xff; p5dir |= 0x03; cs_h; wr_h; p4
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自己建房合同范本
- 出租車司機(jī)合同樣本
- 金融產(chǎn)品合同范本
- 礦用口罩采購合同范本
- 貨車包工合同范本
- 投資食堂合同范本
- 辦公車采購合同
- 室外粉刷合同范本
- 合同執(zhí)行監(jiān)督體系協(xié)議
- 工程訂單合同范本
- 大學(xué)??啤稒C(jī)電傳動控制》課件
- 高中地理高清區(qū)域地理填圖冊
- 品管圈QCC質(zhì)量持續(xù)改進(jìn)案例手術(shù)室-優(yōu)化手術(shù)病理標(biāo)本處置流程PDCA
- 培根鑄魂征文800字
- 基于核心素養(yǎng)的學(xué)習(xí)觀和教學(xué)觀
- 感染性腹瀉及其防控措施
- 第二篇-安全操作規(guī)程
- 《多維度兒童智力診斷量表》MIDSC的編制
- 罪犯教育學(xué)課程
- 紀(jì)檢監(jiān)察辦案談話應(yīng)注意的問題研討
- 超實(shí)用工程結(jié)算單excel模板
評論
0/150
提交評論