基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器_第1頁
基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器_第2頁
基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器_第3頁
基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器_第4頁
基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MSP430G2系列Launchpad開發(fā)板應用實例作品基于MSP430G2231實現(xiàn)的多路數(shù)據(jù)采集器李萌美國德州儀器半導體技術(shù)上海(有限)公司西安電子科技大學MSP430單片機聯(lián)合實驗室2011年12月目 錄第一章 作品概述3 第一節(jié) 作品功能和單片機介紹3第二節(jié) 設(shè)計方案3第二章 硬件系統(tǒng)設(shè)計4第一節(jié) MSP430G2系列Launchpad開發(fā)板介紹4第二節(jié) 信號調(diào)理電路介紹5第三節(jié) 顯示部分電路7第四節(jié) 硬件裝配調(diào)試說明8第三章 軟件系統(tǒng)設(shè)計6 第一節(jié) 程序概述6第二節(jié) 子程序介紹9第三節(jié) 主程序介紹12 第四節(jié) 軟件注意事項13第四章 總結(jié)與思考13附錄 元器件清單第一章 作品概述第一

2、節(jié) 作品功能和單片機介紹運用MSP430G2231型單片機對外部輸入的8路電流信號進行順序采樣,并通過12864進行顯示。本作品選用MSP430G2231單片機,該單片機超低功耗,具有5種節(jié)電模式,1us內(nèi)便可從待機模式喚醒,并具有一個強大的16位RISC CPU、16位寄存器和常數(shù)發(fā)生器,有助于最大限度的發(fā)揮代碼效率。此單片機還具有豐富的時鐘源,包括LF、OSC和VLO。它可通過串行口系統(tǒng)編程,無需外部編程電壓,具有可編程的保密熔絲代碼保護,它具有Spy-Bi-Wire仿真邏輯接口。另外它還有10位IO口、8個比較器通道和16位的Timer_A定時器,帶2路捕獲和比較寄存器。此單片機的IO口

3、和Timer_A定時器都具有強大的中斷能力。第二節(jié) 設(shè)計方案Laungch PAD模擬信號調(diào)理128 64點陣液晶圖1.1 系統(tǒng)組成結(jié)構(gòu)框圖如圖1.1所示:外部信號通過模擬信號調(diào)理電路將外界輸入的420mA電流轉(zhuǎn)換成01.5V的電壓信號用ADC10模塊進行采集通過單片機的內(nèi)部運算將電壓信號轉(zhuǎn)換成需要顯示的電流信號。模擬信號調(diào)理版由采樣電阻,低通濾波以及射極跟隨器組成。采樣電阻將輸入的電流信號轉(zhuǎn)換成電壓信號,低通濾波減少存在于輸入端的共模干擾,射極跟隨器起到減小輸出阻抗以及保護后級電路的作用。模擬信號調(diào)理版將輸入的420mA電流信號轉(zhuǎn)換成0.31.5V的電壓信號通過單片機進行采集。采集完成后送往

4、點陣液晶進行顯示。該應用充分發(fā)揮了MSP430G2231的IO資源:14(總管腳數(shù))=2(電源和地)+2(JTAG)+2(串行點陣)+8(ADC輸入)。第二章 硬件系統(tǒng)設(shè)計第一節(jié) MSP430G2系列Launchpad開發(fā)板介紹基于LaunchPad的MSP-EXP430G2低成本實驗板是一款適用于TI最新MSP430G2xx系列產(chǎn)品的完整開發(fā)解決方案。其基于USB的集成型仿真器可提供為全系列MSP430G2xx器件開發(fā)應用所必需的所有軟、硬件。LaunchPad具有集成的DIP目標插座,可支持多達20個引腳,從而使MSP430ValueLine器件能夠簡便地插入LaunchPad電路板中。此

5、外,還可提供板上Flash仿真工具,以直接連接至PC輕松進行編程、調(diào)試和評估。LaunchPad實驗板還能夠?qū)Z430-RF2500T目標板、eZ430-Chronos手表模塊或eZ430-F2012T/F2013T目標板進行編程。此外,它還提供了從MSP430G2xx器件到主機PC或相連目標板的9600波特UART串行連接。其實物圖如圖2.1所示。圖2.1 MSP430G2系列Launchpad開發(fā)板實物圖MSP-EXP430G2采用IAR EmbeddedWorkbench集成開發(fā)環(huán)境(IDE)或CodeComposerStudio(CCS)編寫、下載和調(diào)試應用。調(diào)試器是非侵入式的,這使

6、用戶能夠借助可用的硬件斷點和單步操作全速運行應用,而不耗用任何其他硬件資源。MSP-EXP430G2LaunchPad特性: USB調(diào)試與編程接口無需驅(qū)動即可安裝使用,且具備高達9600波特的UART串行通信速度 支持所有采用PDIP14或PDIP20封裝的MSP430G2xx和MSP430F20xx器件 分別連接至綠光和紅光LED的兩個通用數(shù)字I/O 引腳可提供視覺反饋 兩個按鈕可實現(xiàn)用戶反饋和芯片復位 器件引腳可通過插座引出,既可以方便的用于調(diào)試,也可用來添加定制的擴展板 高質(zhì)量的20引腳DIP插座,可輕松簡便地插入目標器件或?qū)⑵湟瞥诙?jié) 信號調(diào)理及電源供電電路介紹2.1:電源供電電路圖

7、2.2 電源供電原理如圖2.2所示,采用9V適配器供電,11175V可產(chǎn)生5V電壓。1117-3.3V可產(chǎn)生3V電壓。5V供液晶使用,3.3V供單片機以及信號調(diào)理電路使用。2.2:信號調(diào)理電路圖2.3 信號調(diào)理電路原理圖如圖2.3所示,420mA電流信號經(jīng)75歐姆采樣電阻轉(zhuǎn)換成0.3V1.5V電壓信號,經(jīng)過低通濾波器后進入運放,通過射極跟隨器連接到單片機IO口。在輸入運放之前采用一階低通濾波來減小高頻的共模干擾,射極跟隨器起的作用是,保護后級電路和實現(xiàn)阻抗匹配。2.3系統(tǒng)原理圖圖2.4 系統(tǒng)原理圖第三節(jié) 顯示部分電路本作品選用12864液晶顯示器進行顯示,器件實物如圖2.3所示。圖3.1 12

8、864液晶顯示器實物圖12864液晶顯示器是一種具有 4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為 128×64, 內(nèi)置 8192 個 16*16 點漢字,和128個16*8點 ASCII 字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示 8×4 行 16×16 點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也

9、略低于相同點陣的圖形液晶模塊。本作品選用12864液晶顯示器的串行接口方式,僅需2根IO口即可完成。電路如圖3.2所示圖3.2 12864液晶顯示器的串行接口電路連接圖第四節(jié) 硬件裝配圖電流采集板圖4.1 模擬信號調(diào)理板LaunchPad圖4.2 LaunchPad底板圖4.3 底板整體裝配圖圖4.4 整體裝配圖裝配方法:1.將模擬信號調(diào)理版上焊上插針(共16個連接底板),以及兩排排座每排10個(連接LaunchPad),20孔的插座(連接LCD)(如圖4.1所示) 2在Launch上焊上兩排插針(如圖4.2所示)。 3.在萬用版上焊上8個2端子,插上16個插針并用排線接出,并打上固定孔(如圖

10、4.3所示)。 4.將信號調(diào)理版插在LaunchPad上。 5.將LCD插在信號調(diào)理版上 6.將點陣液晶用長銅柱固定在萬用版上,接上59V的電源適配器即可(如圖4.4)第五節(jié) 模擬信號調(diào)理版PCB圖圖5.1 PCB板正面 圖5.2 PCB板反面第三章 軟件系統(tǒng)設(shè)計第一節(jié) 程序概述程序通過AD10模塊的采樣模式1:順序采樣方式輪詢的對八路電流輸入信號進行采樣,采樣間隔通過主循環(huán)中的延時設(shè)置。通過IO口串行控制液晶,每次計算完成后,將結(jié)果送串行液晶予以顯示。 第二節(jié) 子程序介紹AD初始化程序:入口參數(shù):無出口參數(shù):無void AD_Init(void) ADC10CTL0 |= SREF_1+RE

11、FON+ADC10IE;/將AD10基準設(shè)置為1.5V 開啟AD允許中斷 ADC10CTL0 |= ADC10SHT_3+MSC;/打開AD轉(zhuǎn)換,過采樣率設(shè)置為64個采樣周期 ADC10CTL1 |= ADC10SSEL_3+SHS_0;/選擇250K的采樣時鐘,用ADC10SC觸發(fā)采集 ADC10CTL1 |= CONSEQ_1+INCH_7;/連續(xù)采樣模式,從通道07 ADC10CTL0 |= ADC10ON; ADC10AE0 |= 0xFF; ADC10CTL0 |= ADC10SC+ENC;時鐘初始化程序:入口參數(shù):無出口參數(shù):無void clk_init(void)BCSCTL1

12、|= CALBC1_1MHZ;DCOCTL |= CALDCO_1MHZ;/上面兩句將內(nèi)部DCO校準至1MHz/while(IFG1&OFIFG)/IFG1 &= OFIFG;/delay_ms(100);/BCSCTL2 |= SELM_0;/MCLK采用1M的內(nèi)部DCOBCSCTL2 |= DIVS_2;/SMCLK采用250K的時鐘 IO初始化程序:入口參數(shù):無出口參數(shù):無void io_init(void) P2SEL &= (BIT6+BIT7);/ 2231將其初始化為晶振輸入端,所以要關(guān)掉第二功能選擇 P2DIR |= BIT6+BIT7;/將其置為輸出方

13、向 /P1OUT =0; P1SEL = 0xFF;/將IO選擇為AD輸入 /P1SEL|=BIT6; P1DIR = 0;液晶初始化:入口參數(shù):無出口參數(shù):無void lcd_init (void) wr_lcd (comm,0x30); /30-基本指令動作 wr_lcd (comm,0x01); /清屏,地址指針指向00H delay_ms(100); wr_lcd (comm,0x06); /光標的移動方向 wr_lcd (comm,0x0c); /開顯示,關(guān)游標串行液晶底層驅(qū)動:入口參數(shù):func:功能數(shù)據(jù) data:數(shù)據(jù)出口參數(shù):無void wr_lcd(uchr func,uch

14、r data) uchr i,i1,i3,i2,CF; SID_H; for(i=0;i<5;i+) SCK_H; SCK_L; /5起始位 SID_L; SCK_H; SCK_L;/寫使能 if(func=1) SID_H; else SID_L; SCK_H; SCK_L;/功能位 SID_L; SCK_H; SCK_L;/寫0 for(i3=0;i3<2;i3+) for(i1=0;i1<4;i1+) CF=data&0x80; if(CF=0x80) SID_H; else SID_L; SCK_H; SCK_L; data=data<<1; fo

15、r(i2=0;i2<4;i2+) SID_L; SCK_H; SCK_L; 液晶顯示入口參數(shù):無出口參數(shù):無void chn_disp1 (uchr const *chn) uchr i,j; /wr_lcd (comm,0x30); wr_lcd (comm,0x80); for(j=0;j<4;j+) for (i=0;i<16;i+) wr_lcd (dat,chnj*16+i); void Write_Num(int addr,int val1,int val2) wr_lcd (comm,addr); if(val1!=0x2E) val1=val1+0x30; v

16、al2=val2+0x30; wr_lcd (dat,val1); wr_lcd (dat,val2);將采樣值轉(zhuǎn)換成電流值入口參數(shù):無出口參數(shù):無void Calculate(void) /_DINT(); int i; for(i=0;i<8;i+) Disp_Tabi=AD_Resulti*0.195503; /_EINT();第三節(jié) 主程序介紹首先關(guān)閉看門狗,將10個IO口配置成8路AD輸入,兩個IO輸出(控制液晶)。運用DCO將校準至1M的時鐘供系統(tǒng)使用。進行LCD初始化,顯示液晶上的“常量數(shù)字”。并對AD10進行初始化,1.5V基準源,250K采樣時鐘,從通道7至0進行輪詢順

17、序采樣。每當有ADC10SC觸發(fā)式進行采集。采集間隔通過主循環(huán)中的delay_ms()控制(這里設(shè)置的為50ms)。采樣值計算完成后送液晶顯示。void main() WDTCTL = WDTPW+WDTHOLD; io_init(); clk_init(); lcd_init(); chn_disp1(tab); AD_Init(); _EINT(); while(1) delay_ms(50); ADC10CTL0 |= ENC+ADC10SC; Calculate(); /Write_Num(0x81,Disp_Tab0/100,(Disp_Tab0%100)/10); /Write_N

18、um(0x82,0x2E,(Disp_Tab0%100)%10); Write_Num(0x85,Disp_Tab1/100,(Disp_Tab1%100)/10); Write_Num(0x86,0x2E,(Disp_Tab1%100)%10); Write_Num(0x91,Disp_Tab2/100,(Disp_Tab2%100)/10); Write_Num(0x86,0x2E,(Disp_Tab2%100)%10); Write_Num(0x95,Disp_Tab3/100,(Disp_Tab3%100)/10); Write_Num(0x86,0x2E,(Disp_Tab3%100

19、)%10); Write_Num(0x89,Disp_Tab4/100,(Disp_Tab4%100)/10); Write_Num(0x86,0x2E,(Disp_Tab4%100)%10); Write_Num(0x8D,Disp_Tab5/100,(Disp_Tab5%100)/10); Write_Num(0x86,0x2E,(Disp_Tab5%100)%10); Write_Num(0x95,Disp_Tab6/100,(Disp_Tab6%100)/10); Write_Num(0x86,0x2E,(Disp_Tab6%100)%10); Write_Num(0x9D,Disp_

20、Tab7/100,(Disp_Tab7%100)/10); Write_Num(0x86,0x2E,(Disp_Tab7%100)%10); 第四節(jié) 調(diào)試注意事項1:開啟ENC之后任何的初始化語句都無效,也就是說想要成功的完成初始化必須要在關(guān)閉ENC的情況下完成。2:DCO可以較為精準的時鐘頻率只要用兩句語句即可完成:BCSCTL1 |= CALBC1_1MHZ;DCOCTL |= CALDCO_1MHZ;/上面兩句將內(nèi)部DCO校準至1MHz3:不要重復的進行液晶的刷新,要加延時。4:設(shè)置ADC10的IO口時只需設(shè)置ADC10AE即可,別的不用管。5:對于ADC10來說,250K的采樣時鐘以及64的過采樣率能夠采集到最為穩(wěn)定的值。6:對于G2231有限的內(nèi)存來說,盡量多使用Static

溫馨提示

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

評論

0/150

提交評論