基于MSP430單片機的數(shù)據采集系統(tǒng)設計_第1頁
基于MSP430單片機的數(shù)據采集系統(tǒng)設計_第2頁
基于MSP430單片機的數(shù)據采集系統(tǒng)設計_第3頁
基于MSP430單片機的數(shù)據采集系統(tǒng)設計_第4頁
基于MSP430單片機的數(shù)據采集系統(tǒng)設計_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 基于msp430單片機的數(shù)據采集系統(tǒng)設計 摘要本論文主要闡述了一種以msp430f149單片機為核心的多路數(shù)據采集系統(tǒng)。該系統(tǒng)采用了模塊化的設計思想,系統(tǒng)硬件電路的設計包括主控電路設計、電源部分設計、模擬量采集電路部分設計、復位電路部分設計、串口通信電路部分設計五部分。電源電路為整個提供3.3v電源電壓,復位電路采用max809芯片實現(xiàn)對單片機的復位,具有很高的可靠性;模擬量數(shù)據采集通過片內的a/d轉換通道與外部的采集傳感器進行連接;單片機電路主要是完成與其它電路的接口,采集系統(tǒng)采集得到數(shù)據后,通過uart串口將數(shù)據送到上位機上去,可以將數(shù)據交給上位機進行處理,從而降低采集系統(tǒng)的負擔,并且也

2、可以避免采集系統(tǒng)的海量存儲器;軟件開發(fā)部分采用c語言編程,軟件開發(fā)以iar systems公司embedded workbench for msp430為集成開發(fā)環(huán)境,達到了采集到的數(shù)據能在pc機上顯示、存儲、繪制曲線、同時pc機能給單片機發(fā)送控制命令等功能。該系統(tǒng)充分體現(xiàn)了智能化、低功耗、高精度的發(fā)展趨勢。關鍵詞: msp430;串口通信;傳感器;a/d轉換abstract this paper describes the msp430f149 microcontroller as the core of a multi-channel data acquisition system. th

3、e system uses a modular design, system hardware design, including the master circuit design, power supply design, part of the design of analog acquisition circuit, reset circuit part of the design, serial communication circuit part of the design of five parts. to provide 3.3v power supply circuit fo

4、r the entire supply voltage reset circuit using max809 reset the microcontroller chip with high reliability; analog data acquisition through the on-chip a / d conversion channels and the acquisition of external sensors connected; scm circuit is mainly done with the other circuits of the interface da

5、ta acquisition system are collected through the uart serial data up to the host computer, the data can be processed to the host computer, thereby reducing the burden of collection system, and also to avoid capture system of mass storage; software development part of the use of c language programming

6、, software development to iar systems corporation embedded workbench for msp430 is an integrated development environment, to the collected data in pc, display, storage, drawing curves, and pc functions to the microcontroller send control commands and other functions. the system fully embodies the in

7、telligent, low-power, high-precision trends.key words: msp430; serial communication; sensor; a / d conversion 目 錄1緒論11.1研究背景11.2 論文主要內容和結構12基于msp430單片機采集系統(tǒng)的設計方案22.1 基于msp430單片機采集系統(tǒng)需求分析22.2系統(tǒng)整體方案設計23系統(tǒng)硬件設計與實現(xiàn)(單元電路設計)33.1主控電路的設計43.1.1 msp430單片機的選擇43.1.2 msp430單片機的端口選擇53.1.3 單片機電路設計53.2電源部分設計63.3復位電路部分

8、設計73.4傳感器模擬量采集電路部分設計83.5 串口通信電路部分設計103.5.1sp3220芯片選擇113.5.2串口通信的電路圖124基于msp430單片機采集系統(tǒng)軟件開發(fā)134.1軟件開發(fā)環(huán)境134.1.1 iar embedded workbench介紹134.1.2 iar embedded workbench 開發(fā)步驟134.2軟件開發(fā)設計194.3關鍵軟件程序214.3.1初始化設置214.3.2中斷服務程序234.3.3 主處理程序24結束語31參考文獻30 基于msp430的單片機數(shù)據采集系統(tǒng)設計 1緒論1.1研究背景數(shù)據采集是從一個或多個信號獲取對象信息的過程。在科學研究

9、及其他各種領域中,數(shù)據采集和監(jiān)測已經成為日益重要的檢測技術,廣泛應用于工農業(yè)等需要同時監(jiān)控溫度、濕度和壓力等場合。數(shù)據采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功能相對獨立的單片機系統(tǒng)來實現(xiàn),作為測控系統(tǒng)不可缺少的部分,數(shù)據采集的性能特點直接影響到整個系統(tǒng)。在許多工業(yè)測控機械、醫(yī)療儀器以及消費電子產品中,都對數(shù)據采集系統(tǒng)的實時性與功耗提出了更高的要求:即在滿足微功耗、微型化的總體設計原則的基礎上,又要能實時反映現(xiàn)場采集數(shù)據的變化。這就對系統(tǒng)的功耗、采樣速度、數(shù)據存儲和傳輸速度等提出了更高的要求。然而,隨著半導體與微控制器技術的飛速發(fā)展,各種微電子器件性能不斷提升,功耗卻不斷降低。技術的進步

10、使得高速度、低功耗的數(shù)據采集系統(tǒng)得以實現(xiàn)。自從1996年ti公司推出的16位、具有超低功耗和豐富的片上外圍模塊的msp430系列單片機,該系列單片機就以其低功耗特性被廣泛應用于醫(yī)療、電子儀表以及消費類電子等產品中。msp430系列單片機支持采用匯編語言和c語言進行開發(fā),該系列單片機集成了較豐富的片內外設備,方便高效的開發(fā)環(huán)境,適應工業(yè)級運行環(huán)境。與目前廣泛使用的89c51單片機相比,具有指令少,超低功耗,運算速度快等優(yōu)點,因而在許多領域特別是要求超低功耗的領域得到了廣泛應用。數(shù)據采集給我們的生活提供了許多的便利,設計的采集系統(tǒng)可同時測量溫度、濃度、壓力、濕度和流量等廣泛應用于各種工業(yè)自控環(huán)境,

11、環(huán)境溫度監(jiān)測、工業(yè)過程控制涉及水利水電等眾多行業(yè)。1.2 論文主要內容和結構本論文中主要介紹了多路數(shù)據采集系統(tǒng)的設計及實現(xiàn)方法;并且闡述了所用器件的工作原理、主要特點、硬件電路設計和軟件設計,是一個具有完整功能的數(shù)據采集系統(tǒng)。通過對超低功耗系列單片機msp430,上位機、max809芯片、sp3220芯片、電源芯片lm317等的介紹,達到熟悉器件的性能、功能及使用方法,應用c語言設計編程實現(xiàn)多路信號采集系統(tǒng),實現(xiàn)采集到的數(shù)據能在pc機上顯示、存儲、繪制曲線、同時pc機能給單片機發(fā)送控制命令等功能,并用protel繪制電路原理圖。本論文大體結構主要由緒論、msp430單片機采集系統(tǒng)的設計方案、硬

12、件電路的設計與實現(xiàn)和系統(tǒng)軟件開發(fā)四部分組成。硬件電路的設計與實現(xiàn)由單片機模塊、傳感器模擬量采集模塊、串口通信模塊和電源供電及復位模塊等來實現(xiàn)它的功能;系統(tǒng)軟件開發(fā)分為軟件開發(fā)環(huán)境和軟件開發(fā)設計兩部分。322基于msp430單片機采集系統(tǒng)的設計方案2.1 基于msp430單片機采集系統(tǒng)需求分析為了使該采集系統(tǒng)能更好地使用目前的數(shù)據采集,基于msp430單片機的采集系統(tǒng)應具有以下功能:遠端控制功能。即單片機與上位機進行串口通訊;能采集多路信號。即可實現(xiàn)8通道數(shù)據采集;采集到的數(shù)據能在pc機上顯示、存儲等功能;具有同時監(jiān)控溫度、濕度、壓力和流量等功能;復位功能。芯片復位具有很高的可靠性。2.2系統(tǒng)整

13、體方案設計通過2.1節(jié)的功能分析,本系統(tǒng)采用模塊化的設計思路,以msp430f149單片機作為系統(tǒng)的核心控制元件,軟件開發(fā)以iar systems公司的embedded workbenchfor msp430為集成開發(fā)環(huán)境,系統(tǒng)設計方案如圖2-1所示。msp430f149單片機采集傳感器pc(上位機)復位模塊8路a/d外設及參考電壓輸入口串口通信模塊電源模塊圖21系統(tǒng)方案設計框圖由圖2-1可以看出,電源模塊為整個系統(tǒng)提供電源電壓,復位模塊對msp430f149單片機進行復位后,經8路a/d外設及參考電壓與外部的采集傳感器進行連接來采集數(shù)據,將采集到的數(shù)據通過串口通信模塊傳給上位機,由于單片機與

14、上位機進行通信時接口電平不同,因此,需要進行接口轉換。采用sp3220芯片來完成接口電平的轉換 ,最后傳輸?shù)缴衔粰C,完成數(shù)據的采集、接收及校驗。 3系統(tǒng)硬件設計與實現(xiàn)通過2.2節(jié)系統(tǒng)方案設計,系統(tǒng)整體電路的設計包括主控電路設計、電源部分設計、模擬量采集電路部分設計、復位電路部分設計、串口通信電路部分設計五部分。系統(tǒng)整體電路設計如圖31所示。 圖3-1系統(tǒng)整體設計電路圖3.1主控電路的設計3.1.1 msp430單片機的選擇msp430系列單片機是美國德州儀器公司(ti)推出的超低功耗16位混合信號處理器(mixed signal processor),集多種領先技術于一體。該系列單片機集成了較

15、豐富的片內外設備,方便高效的開發(fā)環(huán)境,適應工業(yè)級運行環(huán)境,具有超低功耗、運算性能強大、開發(fā)工具方便先進、系統(tǒng)整合豐富實用等優(yōu)點。與目前廣泛使用的89c51單片機相比,具有指令少,超低功耗,運算速度快的特點。因此,該系統(tǒng)選用了msp430單片機。msp430系列器件包含cpu、程序存儲器(rom、rom和flash rom)、數(shù)據存儲器(ram)、運行控制、外圍模塊和振蕩器和倍頻器等主要功能模塊。其基本結構如圖3-2所示。可以看出,msp430內部包含了計算機所有部件,是一個真正的單片機(微控制器mcu)。cpu由一個16位的alu、16個寄存器和一套指令控制邏輯組成。在16個寄存器中,程序計數(shù)

16、器pc、堆棧指針sp、狀態(tài)寄存器sr和常數(shù)發(fā)生器cgl、cg2這4個寄存器有特殊用途。除了r3cg2和r2cgl外,所有寄存器都可作為通用寄存器來用于所有指令操作。常數(shù)發(fā)生器是為指令執(zhí)行時提供常數(shù)的,而不是用于存儲數(shù)據的。對cgl、cg2訪問的尋址模式可以區(qū)分常數(shù)的數(shù)據。在cpu內部有一組16位數(shù)據總線和16位的地址總線;cpu運行正交設計、對模塊高度透明的精簡指令集;pc、sr和sp配合精簡指令組所實現(xiàn)的控制,使應用開發(fā)可實現(xiàn)復雜的尋址模式和軟件算法。存儲器msp430系列采用“馮紐曼結構”。因此,ram、rom和全部外圍模塊都位于同一個地址空間內,即用一個公共的空間對全部功能模塊進行尋址。

17、支持外部擴展存儲器是將來性能增強的目標。特殊功能寄存器及外圍模塊安排在 000h1ffh區(qū)域;ram和rom共享0200hffffh區(qū)域,數(shù)據存儲器(ram)的起始地址是0200h。存儲器與cpu及存儲器數(shù)據總線(mdb)、存儲器地址總線(mab)的連接關系如圖3-2所示,它提供時鐘信號mclk。rom ujpflash rom1kb60kbcpuram126b10kb mdb .16位圖3-2 msp430單片機內部結構關系圖3.1.2 msp430單片機的端口選擇msp430的端口有p1、p2、p3、p4、p5、p6、s和com 8個端口,下面是具體的端口功能。(1)p1,p2端口:i/o

18、,中斷功能,其他片內外設功能如定時器、比較器;(2)p3,p4,p5,p6端口:i/o,其他片內外設功能如spi、uart模式,a/d轉換等;(3)s,com端口:i/o,驅動液晶。即端口com為液晶片的公共端,s為液晶片的段碼端,它們實現(xiàn)與液晶片的直接接口,液晶片輸出端也可經軟件配置為數(shù)字輸出端口。根據本系統(tǒng)設計需求選擇了msp430f149單片機的p3.6,p3.7,p6.0-p6.7等端口,它具有i/o,其它片內外設功能如spi、uart模式,a/d轉換等功能。3.1.3 單片機電路設計單片機電路作為整個系統(tǒng)的核心控制部分,主要是完成與其它電路的接口,在該系統(tǒng)中,單片機主要是負責將采集到

19、的數(shù)據通過串口送到上位機進行處理。單片機msp430f149的p3.6、p3.7端口分別與串口通信模塊t1in、rout連接;dvcc與電源3.3v的輸出口相接;rst/nimi與復位模塊的reset/端口相連;p6.0-p6.7分別與傳感器模擬量ain1-ain7端口相連。單片機的接口電路非常簡單,通過片內的a/d通道實現(xiàn)模擬量采集,采用片內的a/d轉換部分不僅可以降低系統(tǒng)設計的復雜性,而且還可以提高系統(tǒng)的可靠性,避免接口的復雜性,同時還可以減小pcb板的面積,模擬采集的參考電壓采用的是片內提供的參考電壓。在這里需要考慮干擾問題,在該系統(tǒng)中的干擾比較小,因此模擬地和數(shù)字地共地,模擬電源輸入端

20、增加一個濾波電容以減小干擾。電路圖如圖3-3所示。圖3-3單片機電路3.2電源部分設計電源部分是整個系統(tǒng)的關鍵,系統(tǒng)以lm317芯片作為電源供電設計的核心。整個系統(tǒng)采用3.3v電壓供電。lm317的輸出電壓范圍是1.2v至37v,負載電流最大為1.5a。它的使用非常簡單,僅需兩個外接電阻來設置輸出電壓。此外它的線性調整率和負載調整率也比標準的固定穩(wěn)壓器好。lm317是美國國家半導體公司的三端可調正穩(wěn)壓器集成電路。lm317內置有過載保護、安全區(qū)保護等多種保護電路。通常lm317不需要外接電容,除非輸入濾波電容到 lm317 輸入端的連線超過6英寸(約15厘米)。使用輸出電容能改變瞬態(tài)響應。調整

21、端使用濾波電容能得到比標準三端穩(wěn)壓器高的多的紋波抑制比。lm317能夠有許多特殊的用法。比如把調整端懸浮到一個較高的電壓上,可以用來調節(jié)高達數(shù)百伏的電壓,只要輸入輸出壓差不超過lm317的極限就行。當然還要避免輸出端短路。還可以把調整端接到一個可編程電壓上,實現(xiàn)可編程的電源輸出。如圖3-4所示為lm317是常見的可調集成穩(wěn)壓器,最大輸出電流為2.2a,輸出電壓范圍為1.2537v。 圖3-4中1、2腳之間為1.25v電壓基準,為保證穩(wěn)壓器的輸出性能,r1應小于240歐姆,改變r2阻值即可調整穩(wěn)壓電壓值,d1,d2用于保護lm317。 圖3-4 lm317電源電路注意:為了減小電源噪聲,應給各個

22、電源均加上濾波電容,一般取10f和0.1 f的大小電容組合。3.3復位電路部分設計復位電路是單片機工作的必要條件。因此,在單片機系統(tǒng)里,單片機需要復位電路,復位電路可以采用r-c復位電路,也可以采用復位芯片實現(xiàn)的復位電路,r-c復位電路具有經濟性,但可靠性不高,用復位芯片實現(xiàn)的復位電路具有很高的可靠性,因此為了保證復位電路的可靠性,該系統(tǒng)采用復位芯片實現(xiàn)的復位電路,該系統(tǒng)采用max809芯片。為了減小電源的干擾,還需要在復位芯片的電源輸入腿加一個0.1uf的電容來實現(xiàn)濾波,以減小輸入端受到的干擾。max809芯片是一種單一功能的微處理器復位芯片,用于監(jiān)控微處理器(up)、微控制器(uc)以及其

23、他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況下向微控制器提供復位信號。當電源電壓降至預置的復位門限以下時,該電路就發(fā)出一個復位信號,并在電源已經升高到此復位門限后至少保持140ms。 max809為漏極開路輸出,max809為推挽輸出。max809適用于低電平有效的復位輸出max809適用于高電平有效的復位輸出。特性監(jiān)控5.0v、3.3v、3v電源;復位延時時間最小為140ms;抗電源的瞬態(tài)干擾;低至1.1v電源時仍能產生有效的復位信號;小型的三管腳sot-23封裝;無需外部配件;適用于-40+105的溫度范圍。電路圖如圖3-5所示。 圖3-5 max809str芯片電路3.4傳感器模擬

24、量采集電路部分設計3.4.1傳感器選擇本系統(tǒng)對日常采集作用的需求分析,選擇了ds18b20數(shù)字溫度傳感器、粉塵濃度傳感器、濕度傳感器和空氣流量傳感器 。l ds18b20數(shù)字溫度傳感器是美國dallas公司繼ds1820之后推出的增強型單總線溫度傳感器,它具有體積更小、精度更高、適用電壓更寬、可組網等優(yōu)點,該溫度傳感器可廣泛應用于數(shù)據采集系統(tǒng)中的環(huán)境溫度監(jiān)測,取得了良好的測溫效果。與傳統(tǒng)的熱敏電阻相比,它具有可根據實際要求設置轉換精度并直接將溫度值轉換為數(shù)字量獨處的特點。ds18b20數(shù)字溫度傳感器的主要特性有:適應電壓范圍寬、單線接口方式、可編程分辨率為912位,可實現(xiàn)高精度測溫、具有溫度報

25、警功能和支持多點組網功能實現(xiàn)組網內的多點測溫。l nf10gcg1000型粉塵濃度傳感器主要用于各種粉塵作業(yè)場所總粉塵的連續(xù)監(jiān)測,公共場所等環(huán)境監(jiān)測。其特點是:測量快速準確、靈敏度高、性能穩(wěn)定、可預置k值、直接顯示并輸出粉塵質量濃度。l 濕度傳感器是能感受氣體中水蒸氣含量,并轉換成可用輸出信號的傳感器。選用濕敏元件是最簡單的濕度傳感器。濕敏電阻的特點是在基片上覆蓋一層用感濕材料制成的膜,當空氣中的水蒸氣吸附在感濕膜上時,元件的電阻率和電阻值都發(fā)生變化,利用這一特性即可測量濕度。 l 空氣流量傳感器是測定吸入發(fā)動機的空氣流量的傳感器。電子控制汽油噴射發(fā)動流量傳感器機為了在各種運轉工況下都能獲得最

26、佳濃度的混合氣,必須正確地測定每一瞬間吸入發(fā)動機的空氣量,以此作為ecu計算(控制)噴油量的主要依據。3.4.2模擬量采集電路在該系統(tǒng)中主要考慮模擬前端為傳感器,從傳感器送來的是標準信號(即4ma-20ma),這樣設計具有一定的通用性,只要前端接不同的傳感器就可以采集不同的信號源。由于a/d轉換基準為電壓,也就是參考源為電壓,所以a/d轉換的是電壓,這樣需要將電流信號轉換成電壓信號。圖3-7模擬信號采集前端部分,圖3-8為模擬量采集具體的電路。 圖3-7模擬信號采集前端部分圖3-8模擬量采集由圖3-7所示,第1路信號采集了數(shù)字量的溫度;第2路信號采集了粉塵的濃度;第3路信號采集了空氣濕度;第4

27、路采集了空氣的流量;第5路完成了數(shù)字量的溫度采集;第6路完成了對空氣粉塵濃度的采集;第7路完成了對空氣濕度的采集;第8路完成了對空氣流量的采集。由圖3-8所示,采集電路通過一個電阻將電流信號轉換成電壓信號,為了提高采集的進度,需要采用高精度的電阻,這里采用的是精度為1%的電阻。電路中采用二極管作為esd保護電路,考慮到干擾問題,采用電容進行濾波處理,增加采集電路的抗干擾問題,數(shù)字量采集電路部分設計與此類似。3.5 串口通信電路部分設計該系統(tǒng)實現(xiàn)串口模塊主要是與上位機進行通信,單片機系統(tǒng)將采集到的數(shù)據送到上位機進行處理,從而減輕單片機系統(tǒng)的處理負擔。由于單片機與上位機進行通信時接口電平不同,因此

28、需要進行接口轉換,這里采用sp3220芯片來完成接口電平的轉換。sp3220芯片與一般的rs232芯片在使用上基本相同。如圖3-9所示為串口通信的框圖。msp430單片機sp3220pc 圖3-9串口通信框圖3.5.1sp3220芯片選擇sp3220是一款低功耗的rs232驅動芯片,該芯片有以下特性:(1) 寬電壓供電,供電電壓為:3.3v5.0v;(2) 上傳速率可達235kbps;(3) 低功耗的電流為1ua;(4) 增強性esd規(guī)范。為了便于硬件電路的設計,下面圖3-10給出該芯片的管腳圖: 圖3-10 sp3220芯片圖由圖3-10可以看出,該芯片具有16個管腳,下面是具體的管腳功能。

29、en/:接收使能管腳;shdn/:低功耗控制管腳;c1+、c1-:電壓增倍的充電電容的正極和負極;c2+、c2-:倒置充電電容的正極和負極;v+、v-:由充電電容產生的5.5v的正極和負極;vcc:電源管腳; gnd:接地管腳;t1out:rs232驅動的輸出;t1in:ttl/cmos的輸入; r1out:ttl/cmos的輸出;r1in:rs232的輸入。根據系統(tǒng)需求選用了sp3220芯片的shdn/、t1out、t1in、 r1out和r1in五個管腳。3.5.2串口通信的電路圖 圖3-11串口通信的電路圖由圖3-11所示,通過一個上拉電阻r208將shdn/管腳拉高,使該芯片一直處于工

30、作狀態(tài),如果系統(tǒng)需要處于低功耗狀態(tài),也可以通過單片機來控制該管腳,工作的時候將該管腳設置為低電平,需要處于低功耗的時候將該管腳設置為高電平,這樣很容易實現(xiàn)控制。在管腳c1+、c1-、c2+、c2-、v+和v-分別放置0.1uf的電容實現(xiàn)充電作用,滿足相應的充電泵的要求。管腳t1out、tin、riout和rin分別是232轉換的輸入輸出腳,實現(xiàn)單片機的ttl電平與上位機的接口電平的轉換??紤]到減小電源的干擾,還需要在芯片的電源輸入腿加一個0.1uf的電容來實現(xiàn)濾波,以減小輸入端受到的干擾。4基于msp430單片機采集系統(tǒng)軟件開發(fā)4.1軟件開發(fā)環(huán)境該系統(tǒng)采用的開發(fā)環(huán)境是iar embedded

31、workbenchformsp430v3.42a,embedded workbenchfor msp430是iar systems公司為msp430微處理器開發(fā)的一個集成開發(fā)環(huán)境。4.1.1 iar embedded workbench介紹iar embedded workbench 是一種用于開發(fā)應用各種不同的目標處理器的靈活的集成環(huán)境。它提供一個方便的窗口界面用于迅速的開發(fā)和調試。embedded workbench 支持多種不同的目標處理器,使用項目模式組織應用程序。它有如下一些特點。(1)通用性a) 可以在windows環(huán)境下運行;b) 分層的項目(project)表示;c) 直觀的用

32、戶界面;d) 工具與編輯器全集成;e) 全面的超文本幫助。(2) 編輯器a) 可以同時編輯匯編和c語言源文件;b) 編輯匯編和c語言程序的句法用文本格式和顏色區(qū)別顯示;c) 強有力的搜索和置換命令,而且可以多個文件搜索;d) 從出錯列表直接跳轉到出錯的相關文件的相關語句;e) 可以設置在出錯語句前標志;f) 圓括號匹配;g) 自動縮進,可以設置自動縮進的空格;h) 每個窗口的多級取消與恢復。4.1.2 iar embedded workbench 開發(fā)步驟第一次使用程序編寫調試一般需要經過創(chuàng)建工作站、創(chuàng)建并保存工程、創(chuàng)建或加載源文件、保存工作站、設置工作環(huán)境(目標芯片、調試方式、仿真器接口類型

33、、工程編譯連接和調試七個步驟。第一步:創(chuàng)建新工作站打開iar embedded workbench。單擊:“開始”、“程序”、iar systems、 iar embedded workbench for msp430 v3,自動創(chuàng)建一個新的工作站,出現(xiàn)如4-1所示的界面。 圖4-1第一次進入embedded workbench界面提示如下:create new project in current workspace:在新工作站中創(chuàng)建新的工程。add existing project to current workspace:添加已經存在的工程到當前的工作站中。open existing w

34、orkspace:打開已經存在的工作站。example workspace: 打開示例工作站。根據您的具體情況選擇上述4個選項之一。第二步:創(chuàng)建并保存工程單擊選項中create new project in new workbench。出現(xiàn)圖4-2界面。圖4-2 創(chuàng)建新工程選擇工程類型(empty project、asm、c、c+或xternally built executable),若選擇的工程類型為empty project,單擊“ok”按鈕,出現(xiàn)圖4-3界面,選擇保存路徑,同時輸入工程文件名(如test),單擊保存,一個工程就建立完成了。圖4-3 保存新工程第三步:創(chuàng)建一個新工程文件點

35、擊菜單project-creat new project.如圖4-4所示,彈出對話框如圖4-5所示,因為我們所使用的開發(fā)語言是c,所以選擇c結構下的main,點擊“ok”將彈出工程文件保存路勁的對話框如圖4-6所示,選擇要保存的路徑,填上新建的工程名稱,點擊“保存”按鈕將彈出如圖4-7所示的界面,在main.c編輯面板中將自動生成的main.c修改為#include“msp430x14x.h”void main(void)wdtctl=wdtpw+wdthold;/stop watchdog; 修改后如圖4-8所示.然后點擊左上角的save all菜單如圖4-9所示,彈出保存工作區(qū)間對話框如圖

36、4-10所示,在對話框中設置好工作區(qū)間的保存路勁及工作區(qū)間的名稱,點擊“保存按鈕保存退出,返回圖4-8所示的界面。圖4-4 新建工程圖4-5 選擇開發(fā)語言創(chuàng)建main函數(shù)圖4-6 設置工程保存路徑及工程名稱圖4-7 新建的工程面板圖4-8 修改后的main.c圖4-9 點擊save all保存圖4-10 保存工作區(qū)間第四步:編輯代碼,根據需要往工程中加入自己的c文件和h文件件。第五步:設置編譯選項。代碼編輯好以后,在工作面板左邊,右鍵點擊工作區(qū)間里的工程名稱(我的工程名稱為mcu_basedtempreturedectection.ewp),選擇options.(如圖4-11所示),彈出如圖4

37、-12所示的options選項卡,根據我們的器件設置相關的選項卡,完成后點擊“ok”退出。圖4-11 打開工程的options選項卡圖4-12 設置options選項卡第五步:編譯工程點擊圖4-13中紅圈內的“compile”和“make”對工程進行編譯。注:compile只能編譯單個文件,make將會對整個工程文件進行編譯和鏈接最后生成可執(zhí)行文件(后綴為.d43)圖4-13 編譯工程第六步:點擊圖4-13中紅圈內的debug按鈕,可編譯生成的可執(zhí)行文件下載到430單片機內部flash中,可以在線使用jtag接口單步、多步調試或者設置斷點調試,也可以關掉調試窗口,復位單片機后讓其自動運行。至此

38、,整個開發(fā)流程完畢。4.2軟件開發(fā)設計本系統(tǒng)采用模塊化的設計思想,軟件模塊主要包括模擬量采集模塊、數(shù)字量采集模塊、串口通信模塊和主處理模塊。模擬量采集模塊主要是單片機通過a/d通道采集來自傳感器的信號,將信號進行處理。該模塊主要涉及到a/d轉換和定時器a的操作,主要完成8通道模擬數(shù)據的采集,并且通過定時器a來控制采集的頻率,另外也設置一個標志來通知主程序已經獲得新的數(shù)據,通過全局變量來實現(xiàn)與主處理程序實現(xiàn)數(shù)據的交互。這部分程序采用中斷服務程序實現(xiàn),在定時器a里先停止a/d轉換,讀取數(shù)據后啟動a/d轉換,然后再等待下一次中斷的到來。數(shù)字量采集主要是單片機通過的一般i/o口與數(shù)字采集電路進行連接,

39、單片機通過一般i/o口來簡單的讀取數(shù)字采集量的狀態(tài),判斷是高電平還是低電平。數(shù)據采集的時間間隔通過定時器b來完成,整個模塊采用的是中斷服務程序的結構完成。串口模塊主要是與上位機的通信,從而將采集到的數(shù)據送到上位機進行處理。當接收到有數(shù)據時,設置一個標志來通知主程序有數(shù)據到來,當主程序有數(shù)據要發(fā)送的時候,設置一個中斷標志進入中斷發(fā)送數(shù)據。主處理模塊首先完成初始化工作,初始化后進入循環(huán)處理,在循環(huán)過程中主處理獲得采集的模擬數(shù)據和數(shù)字量數(shù)據,并將得到的數(shù)據發(fā)送到上位機。下位機也接收來自上位機的的數(shù)據。整個程序基于中斷服務結構,為了實現(xiàn)中斷程序與主程序之間的數(shù)據交互,通過設置一些全局變量和全局的緩沖區(qū)

40、來實現(xiàn),具體的流程圖如圖4-14所示。圖4-14主流程圖通過流程圖可以看出,主處理只負責簡單的標志判斷和設置標志,然后從指定的緩沖區(qū)讀取數(shù)據或將數(shù)據放到相應的緩沖區(qū),其他的處理由中斷來處理,因此主程序需要和中斷程序進行交互。4.3關鍵軟件程序整個軟件設計包括初始設置、中置服務程序和主處理程序,下面對各個部分程序分別進行詳細介紹。4.3.1初始化設置初始化程序主要包括時鐘初始化,a/d初始化、串口初始化。下面為a/d初始化和定時器初始化的程序代碼。void init_adc(void)/設置p6.0為模擬輸入通道p6sel = 0x07;/設置enc為0,從而修改adc12寄存器的值adc12c

41、tl0 &= (enc);/轉換的起始地址為:adcmem0adc12ctl1 = cstartadd_0;/設置參考電壓為avss和avcc,輸入通道為a0adc12mctl0 = inch_0; /設置參考電壓為avss和avcc,輸入通道為a1 adc12mctl1 |= inch_1; /設置參考電壓為avss和avcc,輸入通道為a2 adc12mctl2 = inch_2; /設置參考電壓為avss和avcc,輸入通道為a3 adc12mctl3 = inch_3; /設置參考電壓為avss和avcc,輸入通道為a4 adc12mctl4 = inch_4; /設置參考電壓為avs

42、s和avcc,輸入通道為a5 adc12mctl5 = inch_5; /設置參考電壓為avss和avcc,輸入通道為a6 adc12mctl6 = inch_6; /設置參考電壓為avss和avcc,輸入通道為a7 adc12mctl7 = inch_7 + eos;adc12ctl0 = |adc12on;adc12ctl0 = |msc;/轉換模式為:多通道、單次轉換 adc12ctl1 |=conseq_1;/smclk, 時鐘分頻為1,采樣脈沖由采樣的定時器產生 adc12ctl1 |= adc12ssel_1;adc12ctl1 |= adc12div_1;adc12ctl1 |=

43、 (shp);/使能adc轉換 adc12ctl0 |= enc;return;void init_timera(void)/選擇smclk,清除tartactl = tassel1 + taclr;/1/8 smclktactl += id1;tsctl += id0;/ccr0 中斷允許cctl0 = ccie;/頻率為250hz ccro =4000;/增計數(shù)模式tactl |= mc0;return;4.3.2中斷服務程序該部分主要完成8通道模擬數(shù)據的采集,并且通過定時器a來控制采集的頻率。另外,也設置一個標志來通知住程序已獲得新的數(shù)據,通過全局變量來實現(xiàn)與主處理器程序進行數(shù)據交互。這

44、部分采用中斷服務程序實現(xiàn),在定時器a里先停止a/d轉換,讀取數(shù)據后啟動a/d轉換,然后在等待下一次中斷的到來,下面為定時器a處理和a/d轉換部分的程序代碼。interrupt timera0_vector void timera_isr(void)int results8;int i;/關閉轉換adc12ctl0 &= enc;/讀初轉換結果adc_buf0nadc_count = adc12mem0; /讀出轉換結果 adc_buf1nadc_count = adc12mem1; /讀出轉換結果 adc_buf2nadc_count = adc12mem2; /讀出轉換結果 adc_buf3

45、nadc_count = adc12mem3; /讀出轉換結果 adc_buf4nadc_count = adc12mem4; /讀出轉換結果 adc_buf5nadc_count = adc12mem5; /讀出轉換結果 adc_buf6nadc_count = adc12mem6; /讀出轉換結果 adc_buf7nadc_count = adc12mem7; nadc_count += 1; if (nadc_count = = 10) /設置標志 nadc_flag = 1; nadc_count = 0; /將數(shù)據倒向數(shù)據緩沖區(qū) for (i = 0; i 10;i+) adc_bu

46、f_temp0i = adc_buf0i; for (i = 0; i 10;i+) adc_buf_temp1i = adc_buf1i; for (i = 0; i 10;i+) adc_buf_temp2i = adc_buf2i;for (i = 0; i 10;i+) adc_buf_temp3i = adc_buf3i;for (i = 0; i 10;i+) adc_buf_temp4i = adc_buf4i;for (i = 0; i 10;i+) adc_buf_temp5i = adc_buf5i;for (i = 0; i 10;i+) adc_buf_temp6i =

47、 adc_buf6i;for (i = 0; i 10;i+) adc_buf_temp7i = adc_buf7i; /開啟轉換adc12ctl0 |= enc + adc12sc;以上程序使用了全局變量“nadc_flag”通知主程序有新的數(shù)據采集數(shù)據獲得;全局變量”nadc_count”用來技術處理;“adc_buf0”等全局變量用來臨時存放數(shù)據;“adc_temp0”等全局變量用來作為住程序交換數(shù)據的緩沖區(qū)。4.3.3 主處理程序主處理程序主要是負責與各個中斷服務程序之間進行數(shù)據交互。主程序與a/d采集中斷服務程序進行數(shù)據交互,將得到的數(shù)據封裝后,與串口中斷服務程序機型數(shù)據交互,由串口

48、段程序將數(shù)據發(fā)送到pc機。下面為具體的程序代碼。void main(void) int i; /關閉看門狗 wdtctl = wdtpw + wdthold; /關閉中斷 _dint(); /初始化 init_clk();init_adc();init_timera();init_port();init_timerb();/初始化變量nadc_flag = 0;nadc_count = 0;nsend_tx1 = 0;ntx1_len = 0;ntx1_flag = 0;nrx1_len _temp = 0;nrev_uart1 = 0;nrx1_len = 0;/打開中斷_eint();/開

49、始循環(huán)for(;) /處理模擬量采集并發(fā)送if (nadc_flag = = 1); nadc_flag = 0;/等待緩沖區(qū)里的數(shù)據發(fā)送完畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據由字轉換成字節(jié)for (i = 0;i 8)& 0x00ff);/設置幀結束標志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據的長度ntx1_len = 22;/設置中斷標志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據發(fā)送完畢while(1) if (ntx1_flag = = 1) break; /將數(shù)據由字轉

50、換成字節(jié)for (i = 0;i 8)& 0x00ff);/設置幀結束標志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/發(fā)送數(shù)據的長度ntx1_len = 22;/設置中斷標志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據發(fā)送完畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據由字轉換成字節(jié)for (i = 0;i 8)& 0x00ff); /設置幀結束標志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據的長度ntx1_len = 22;/設置中斷標志ifg2

51、 |= utxifg1;/等待緩沖區(qū)里的數(shù)據發(fā)送完畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據由字轉換成字節(jié)for (i = 0;i 8)& 0x00ff); /設置幀結束標志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據的長度ntx1_len = 22;/設置中斷標志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據發(fā)送完畢 while(1) if (ntx1_flag = = 0) break; /將數(shù)據由字轉換成字節(jié)for (i = 0;i 8)& 0x00ff); /設置幀結束標志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據

溫馨提示

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

評論

0/150

提交評論