MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用_第1頁
MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用_第2頁
MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用_第3頁
MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用_第4頁
MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、項(xiàng)目設(shè)計(jì)題目:MSP430F5438單片機(jī)在自動(dòng)恒壓供水系統(tǒng)中的應(yīng)用 摘要:(中英文)在自來水供水系統(tǒng)中,恒壓供水是系統(tǒng)設(shè)計(jì)的重要環(huán)節(jié)。本文采用MSP430系列單片機(jī)作為主控制器,建立并實(shí)現(xiàn)恒壓自動(dòng)調(diào)節(jié)供水系統(tǒng)。給出了系統(tǒng)的工作原理和結(jié)構(gòu)圖,闡述了各功能模塊的主要功能。該系統(tǒng)的成功在供水公司的供水控制系統(tǒng)中具有一定的應(yīng)用和推廣價(jià)值。【關(guān)鍵詞】:恒壓供水,MSP430F5438單片機(jī),自來水一.導(dǎo)言2二。MSP430F5438單片機(jī)II介紹三。自動(dòng)恒壓變頻供水機(jī)組3的設(shè)計(jì)1.工作原則32.單片機(jī)控制設(shè)計(jì)42.1硬件設(shè)計(jì)42.1.1自動(dòng)恒壓供水系統(tǒng)結(jié)構(gòu)框圖42.1.2核心板5的電路分析2 . 1

2、. 3 IPM變頻驅(qū)動(dòng)水泵5電路分析2 . 1 . 4 AD水壓采集回路分析52.1.5壓力和流量檢測(cè)回路的分析62.2軟件設(shè)計(jì)6主程序流程圖7編程思路7四。結(jié)束語7五.所附程序清單8介紹水是生命之源,人類的生存和發(fā)展離不開水。在通常的城鎮(zhèn)供水中,離心泵基本上都是由供水站的電機(jī)驅(qū)動(dòng),產(chǎn)生壓力使管網(wǎng)中的自來水流動(dòng),將供水管網(wǎng)中的自來水輸送給用戶。然而,供水泵在供水的同時(shí)消耗了大量的能量。提高供水泵的效率,保證供水泵可靠穩(wěn)定運(yùn)行,同時(shí)降低能耗,將具有重要的經(jīng)濟(jì)意義。中國(guó)的供水泵具有數(shù)量多、覆蓋面廣、類型多樣的特點(diǎn),并具有一定的工程規(guī)模。但在技術(shù)水平、工程標(biāo)準(zhǔn)、經(jīng)濟(jì)效益指標(biāo)等方面與國(guó)外先進(jìn)水平相比,

3、仍有一定差距。隨著城市化規(guī)模的逐步擴(kuò)大和生活水平的不斷提高,人們對(duì)供水公司供水的可靠性要求越來越高,尤其是對(duì)水壓的要求。人們通常希望水壓能夠穩(wěn)定不變。由于手動(dòng)方式不夠智能,很難實(shí)時(shí)調(diào)節(jié)水壓。因此,在當(dāng)今的供水系統(tǒng)中,傳統(tǒng)的手動(dòng)閥門調(diào)節(jié)方式已經(jīng)逐漸被自動(dòng)化設(shè)備所取代。如何保證恒壓供水,使供水系統(tǒng)能夠隨著用戶需求的變化實(shí)時(shí)自動(dòng)調(diào)節(jié)供水量,保證水壓恒定,成為一個(gè)重要的課題。本文采用MSP430F5438單片機(jī)實(shí)時(shí)調(diào)節(jié)和自動(dòng)控制水泵電機(jī)的轉(zhuǎn)速,使管網(wǎng)供水口的水壓始終保持在預(yù)定值,從而達(dá)到恒壓供水的目的。MSP430F5438單片機(jī)介紹MSP430系列單片機(jī)是美國(guó)儀器公司開發(fā)的16位超低功耗單片機(jī)3。由

4、于其簡(jiǎn)化的指令集,它被稱為混合信號(hào)處理器。該系列單片機(jī)具有以下特點(diǎn):強(qiáng)大的處理能力MSP430系列單片機(jī)是16位單片機(jī),采用RISC結(jié)構(gòu),具有豐富的尋址方式(7個(gè)源操作數(shù)尋址,4個(gè)目的操作數(shù)尋址),簡(jiǎn)潔的27個(gè)核心指令和大量模擬指令;大量的寄存器和芯片數(shù)據(jù)存儲(chǔ)器可以參與各種運(yùn)算;還有高效的查找表處理指令。這些特性確??梢跃幾g高效的源程序。操作速度快MSP430系列單片機(jī)可以實(shí)現(xiàn)25MHz晶體驅(qū)動(dòng)的40ns指令周期。16位的數(shù)據(jù)寬度和40ns的指令周期,配合一個(gè)多功能的硬件乘法器(可以實(shí)現(xiàn)乘法和加法運(yùn)算),可以實(shí)現(xiàn)一些數(shù)字信號(hào)處理算法(如FFT)。超低功耗MSP430單片機(jī)之所以具有超低功耗,是

5、因?yàn)樗诮档托酒碾娫措妷汉挽`活可控的運(yùn)行時(shí)鐘方面有其獨(dú)到之處。首先,MSP430單片機(jī)的電源電壓為1.8-3.6V因此,當(dāng)它以1MHz時(shí)鐘運(yùn)行時(shí),芯片的電流最低將為165A左右,RAM保持模式下的最低功耗僅為0.1A .其次,獨(dú)特的時(shí)鐘系統(tǒng)設(shè)計(jì)。MSP430系列有兩種不同的時(shí)鐘系統(tǒng):基本時(shí)鐘系統(tǒng)、鎖頻環(huán)(FLL和FLL+)時(shí)鐘系統(tǒng)和DCO數(shù)控振蕩器時(shí)鐘系統(tǒng)。只能使用一個(gè)晶體振蕩器(32768Hz)或兩個(gè)晶體振蕩器。系統(tǒng)時(shí)鐘系統(tǒng)產(chǎn)生CPU和各種功能所需的時(shí)鐘。并且這些時(shí)鐘可以在指令的控制下開啟和關(guān)閉,從而控制整體功耗。由于系統(tǒng)運(yùn)行時(shí)啟動(dòng)的功能模塊不同,即工作模式不同,芯片的功耗也有顯著差異。系

6、統(tǒng)有一個(gè)主動(dòng)模式(AM)和五個(gè)低功耗模式(LPM0LPM4)。在實(shí)時(shí)時(shí)鐘模式下可以達(dá)到2.5A,在RAM保持模式下最低可以達(dá)到0.1A。電影資源豐富每個(gè)系列的MSP430單片機(jī)集成了豐富的片上外設(shè)。分別是看門狗(WDT)、模擬比較器A、定時(shí)器A0(Timer_A0)、定時(shí)器A1(Timer_A1)、定時(shí)器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、LCD驅(qū)動(dòng)器、10位/12位ADC、16位-ADC、DMA、I/O端口。 HYPERLINK ./%20%20%20%20:/baike.so%20%20%20%20/doc/3979887.html t _blank USB幾個(gè)

7、外圍模塊(如控制器)的不同組合。其中,watchdog可以在程序失控時(shí)快速復(fù)位;模擬比較器比較模擬電壓,并與定時(shí)器配合設(shè)計(jì)A/D轉(zhuǎn)換器。16位定時(shí)器(Timer_A和Timer_B)具有捕獲/比較功能和大量的捕獲/比較寄存器,可用于事件計(jì)數(shù)、時(shí)序產(chǎn)生、PWM等。有些設(shè)備具有串行通信接口,可以實(shí)現(xiàn)異步、同步和多路訪問,可以方便地實(shí)現(xiàn)多機(jī)通信等應(yīng)用;I/O口較多,P0、P1、P2口可接收外部上升沿或下降沿的中斷輸入;10/12位硬件A/D轉(zhuǎn)換器具有很高的轉(zhuǎn)換速率,高達(dá)200kbps,可以滿足大多數(shù)數(shù)據(jù)采集應(yīng)用。最多可直接驅(qū)動(dòng)160段液晶;實(shí)現(xiàn)了兩路12位D/A轉(zhuǎn)換;硬件I2C串行總線接口實(shí)現(xiàn)內(nèi)存的

8、串行擴(kuò)展;為了提高數(shù)據(jù)傳輸速度,采用了DMA模塊。MSP430系列單片機(jī)的這些外設(shè)為系統(tǒng)的單片機(jī)解決方案提供了極大的便利。另外,MSP430系列單片機(jī)中斷源多,可以任意嵌套,使用靈活方便。當(dāng)系統(tǒng)處于省電和低功耗狀態(tài)時(shí),中斷和喚醒僅需5s。便捷高效的開發(fā)環(huán)境MSP430系列有三種類型的設(shè)備:OTP、FLASH和ROM。這些設(shè)備有不同的開發(fā)方法。對(duì)于OTP型和ROM型器件,仿真器用于在開發(fā)成功后寫入或屏蔽芯片。對(duì)于FLASH類型,有一個(gè)非常方便的開發(fā)和調(diào)試環(huán)境。由于器件芯片有JTAG調(diào)試接口和電可擦閃存,所以開發(fā)時(shí)先將程序下載到FLASH,然后通過軟件控制程序在器件中的運(yùn)行,通過JTAG接口讀取芯

9、片信息,供設(shè)計(jì)人員調(diào)試。這種方法只需要一臺(tái)PC機(jī)和一臺(tái)JTAG調(diào)試器,而不需要仿真器和編程器。開發(fā)語言包括匯編語言和C語言。三。自動(dòng)恒壓變頻供水器的設(shè)計(jì)工作原理:與水塔或屋頂高位水箱供水相比,變頻恒壓供水具有投資少、節(jié)能、水質(zhì)二次污染機(jī)會(huì)小等優(yōu)點(diǎn)。越來越多的城市和住宅小區(qū)已經(jīng)采用或計(jì)劃采用變頻恒壓供水。變頻恒壓供水系統(tǒng)的組成(如圖1所示):圖1:變頻調(diào)速恒壓供水系統(tǒng)的組成變頻調(diào)速恒壓供水系統(tǒng)其工作原理是:控制器通過檢測(cè)實(shí)際水壓值,比較設(shè)定水壓值與實(shí)際水壓值的差值??刂破鞲鶕?jù)規(guī)律計(jì)算后,輸出控制信號(hào)給變頻器,變頻器根據(jù)控制器的輸入信號(hào)調(diào)節(jié)水泵電機(jī)的供電電壓和頻率。當(dāng)用水量增加時(shí),控制器控制變頻器

10、提高電機(jī)的電壓和頻率,提高水泵的轉(zhuǎn)速,增加出水量;當(dāng)用水量減少時(shí),控制器控制變頻器降低電機(jī)的電壓和頻率,降低水泵的轉(zhuǎn)速和出水量。通過這種控制模式,水管的壓力可以保持在設(shè)定值。由于變頻器價(jià)格較高,變頻調(diào)速恒壓供水系統(tǒng)通常采用多臺(tái)水泵并聯(lián)運(yùn)行,多臺(tái)水泵共用一臺(tái)變頻器。工作時(shí),控制器控制配電系統(tǒng)根據(jù)用水量自動(dòng)選擇投入運(yùn)行的水泵數(shù)量。一般的方法是保持其中一臺(tái)泵在變頻器的控制下,其他的泵會(huì)根據(jù)供水量的變化全速運(yùn)行或者工頻停機(jī)。微控制器的設(shè)計(jì);2.1硬件設(shè)計(jì)核心通過壓力和流量傳感器采集出水口水壓和流量的變化,然后與設(shè)定值進(jìn)行比較。如果與設(shè)定值有偏差,IPM變頻模塊控制電機(jī)的電壓和頻率,從而改變水泵的轉(zhuǎn)速,

11、達(dá)到調(diào)節(jié)水壓和流量的目的。2.1.1自動(dòng)恒壓供水系統(tǒng)結(jié)構(gòu)框圖自動(dòng)恒壓供水系統(tǒng)結(jié)構(gòu)框圖自動(dòng)恒壓供水系統(tǒng)結(jié)構(gòu)圖2.1.2核心板電路分析板卡的核心電路主要包括CPU(MSP430F5438)、電源電路、時(shí)鐘電路、液晶顯示、按鍵部分、串口下載電路和復(fù)位電路。2 . 1 . 3 IPM變頻驅(qū)動(dòng)水泵電路分析MSP430F5438單片機(jī)通過計(jì)數(shù)脈沖來改變水泵的驅(qū)動(dòng)電壓和頻率,從而改變水泵的轉(zhuǎn)速,實(shí)現(xiàn)對(duì)水壓和流量的控制。IPM驅(qū)動(dòng)電路原理圖如下:IPM驅(qū)動(dòng)電路原理圖IPM驅(qū)動(dòng)電路原理圖2 . 1 . 4 ad水壓采集電路分析本設(shè)計(jì)采用ADS1118轉(zhuǎn)換芯片。當(dāng)水壓發(fā)生變化時(shí),信號(hào)采集部分根據(jù)水壓向單片機(jī)輸出相

12、應(yīng)的電壓變化,單片機(jī)通過AD部分對(duì)信號(hào)進(jìn)行運(yùn)算,調(diào)整輸出水壓。AD轉(zhuǎn)換部分原理圖如下:AD采集水壓電路AD收集液壓回路2.1.5壓力和流量檢測(cè)回路分析并且水壓和流量的變化被壓力和流量檢測(cè)傳感器采集,轉(zhuǎn)換成相應(yīng)的電壓變化和脈沖頻率變化,然后送到單片機(jī)進(jìn)行處理。壓力和流量檢測(cè)電路如下:壓力和流量檢測(cè)電路壓力和流量檢測(cè)電路2.2軟件設(shè)計(jì)2.2.1主程序流程圖主程序流程圖主程序流程圖編程思路:= 1 * GB3分析電路功能,了解各模塊電路的功能;= 2 * GB3程序的模塊化調(diào)試,這是保證條件明確的必要手段;= 3 * GB3組合模塊程序,分析各模塊的相關(guān)性和影響;= 4 * GB3調(diào)試整機(jī),測(cè)試整體

13、功能的實(shí)現(xiàn),分析存在的問題并解決;= 5 * GB3程序調(diào)試完畢。四。結(jié)束語采用MsP430系列單片機(jī)作為主控制器,實(shí)現(xiàn)供水系統(tǒng)的自動(dòng)恒壓,自動(dòng)調(diào)節(jié)水壓,使供水系統(tǒng)穩(wěn)定。同時(shí),MSP430系列單片機(jī)提高了系統(tǒng)的控制可靠性和抗干擾性。在節(jié)約成本的同時(shí),也進(jìn)一步保證了系統(tǒng)的安全穩(wěn)定運(yùn)行。該系統(tǒng)集成了單片機(jī)控制技術(shù)、反饋控制技術(shù)和電機(jī)調(diào)節(jié)技術(shù)等。在自來水公司的供水控制系統(tǒng)中具有一定的應(yīng)用和推廣價(jià)值。動(dòng)詞 (verb的縮寫)附加程序列表:/* LCD: PSB通過PCB板上的VCC選擇100并行傳輸模式* P3.0 - RS* P3.4 - EN* P3.5 - RW* P11.0 - RST* P8

14、 -數(shù)據(jù)*/#包含 msp430 x54xA.h /#包含 BoardConfigure.h #包含“public.h”#定義uchar無符號(hào)字符#定義uint無符號(hào)整數(shù)/*/* */*檢查L(zhǎng)CD的忙碌狀態(tài)*/*當(dāng)/*lcd_busy為1時(shí),忙,等待。當(dāng)lcd-busy為0時(shí),它處于空閑狀態(tài),可以寫入指令和數(shù)據(jù)。*/* */*/void Delay _ ms(uint t)/50毫秒int j;for(;t 0;t -)for(j = 6245;j 0;j-);void Delay_us(uint t)/50usuint j;for(;t 0;t -)for(j = 19;j 0;j-);無符

15、號(hào)字符LCD_Busy()無符號(hào)字符結(jié)果;LCD _ RS _ L;LCD _ RW _ H;LCD _ EN _ H;delay _ us(400);LCD _ DataIn/數(shù)據(jù)選擇輸入Result = P8IN & 0 x80LCD _ EN _ L;返回結(jié)果;/*/* */*將指令寫入LCD */*RS=L,RW=L,E=高脈沖,D0-D7=指令代碼。*/* */*/void LCD_WriteCommand(無符號(hào)字符命令)while(LCD _ Busy();/忙檢查L(zhǎng)CD _ RS _ L;LCD _ RW _ L;LCD _ EN _ L;delay _ us(10);dela

16、y _ us(10);LCD _ DataOutP8OUT = Cmd/P0 = Cmd;delay _ us(10);LCD _ EN _ H;delay _ us(10);LCD _ EN _ L;/*/* */*將顯示數(shù)據(jù)寫入LCD */*RS=H,RW=L,E=高電平脈沖,D0-D7=數(shù)據(jù)。*/* */*/void LCD_WriteData(無符號(hào)字符數(shù)據(jù))while(LCD _ Busy();/忙檢查L(zhǎng)CD _ RS _ H;LCD _ RW _ L;LCD _ EN _ L;LCD _ DataOutP8OUT = Dat/P0 = Dat;delay _ us(10);LCD

17、_ EN _ H;delay _ us(10);LCD _ EN _ L;/*/* */* LCD初始化設(shè)置*/* */*/void LCD_Init()LCD _ RST _ L;/LCD復(fù)位delay _ ms(3);LCD _ RST _ H;delay _ ms(3);LCD _ write command(0 x 34);/擴(kuò)展指令操作delay _ ms(1);LCD _ write command(0 x 30);/基本指令操作delay _ ms(1);LCD _ write command(0 x0C);/顯示開關(guān)光標(biāo)delay _ ms(1);LCD _ write com

18、mand(0 x 01);/清除LCD的顯示容量delay _ ms(1);/*/* */*設(shè)置漢字的顯示位置/eg:LCD_Position(4,0);-意思是寫*/ -/eg:LCD_Position(4,1);-意思是寫*/ -/* */*/void LCD_Position(無符號(hào)字符X,無符號(hào)字符Y)無符號(hào)字符位置;if(X = = 1)X = 0 x 80;else if(X = = 2)X = 0 x 90;else if(X = = 3)X = 0 x 88;else if(X = = 4)X = 0 x 98;pos = X+Y;LCD _ write command(Pos

19、);/顯示地址/* *閃光功能* */void LCD_Flash()LCD _ write command(0 x 08);/關(guān)閉顯示器delay _ ms(400);LCD _ write command(0 x0c);/打開顯示delay _ ms(400);LCD _ write command(0 x 08);delay _ ms(400);LCD _ write command(0 x0c);delay _ ms(400);LCD _ write command(0 x 08);delay _ ms(200);LCD _ write command(0 x0c);delay _ m

20、s(5);LCD _ write command(0 x 01);/清除顯示delay _ ms(5);/*;顯示字符表代碼*/void LCD_Char_Display()無符號(hào)字符;LCD _ Clear _ Screen();/清除屏幕LCD _ write command(0 x 80);/將顯示位置設(shè)置為第一行for(s = 0;s 16s+)LCD _ WriteData(0 x 30+s);LCD _ write command(0 x 90);/將顯示位置設(shè)置為第二行for(s = 0;s 16s+)LCD _ WriteData(0 x 40+s);LCD _ write c

21、ommand(0 x 88);/將顯示位置設(shè)置為第三行for(s = 0;s 16s+)LCD _ WriteData(0 x 50+s);LCD _ write command(0 x 98);/將顯示位置設(shè)置為第四行for(s = 0;s 16s+)LCD _ WriteData(0 x 60+s);/* *清除屏幕功能* */void LCD_Clear_Screen()LCD _ write command(0 x 34);/擴(kuò)展指令操作delay _ ms(5);LCD _ write command(0 x 30);/基本指令操作delay _ ms(5);LCD _ write

22、command(0 x 01);/清除屏幕delay _ ms(5);void LCD_GPIO_Init()/ Liquid 12864,帶字庫引腳定義P3DIR | = bit 0+bit 4+bit 5;/ RS、RW、EN選擇輸出P3OUT | = bit 0+bit 4+bit 5;P11DIR | = BIT0/ RST選擇輸出P11OUT | = BIT0P8DIR | = 0 xFF/ LCD_Data,選擇輸出void初始化時(shí)鐘(void)無符號(hào)int I;wdt CTL = wdt pw+WDTHOLD;/停止看門狗定時(shí)器/p 11 dir = bit 0+bit 1+bi

23、t 2;/ P11.1-2到輸出方向/p11 sel | = bit 0+bit 1+bit 2;/ P11.1-2輸出SMCLK、MCLKP5SEL | = 0 x0C/端口選擇XT2UCS CTL 6 & = XT 2 off;/ Enae XT2即使不使用UCS CTL 3 | = SELREF _ 2;/ FLLref = REFOUCS CTL 4 | = SELA _ 2;/輔助系統(tǒng)時(shí)鐘源REFOucsctl 4 | = SELS _ 5+SELM _ 5;/ SMCLK=MCLK=XT2-25M_ NOP();UCS CTL 5 | = DIVM _ _ 2+DIVS _ _ 2

24、;/MCLK = 25M;SMCLK = 25MACLK=32768做UCS CTL 7 & = (XT 2 offg+XT 1 lfo ffg+dco ff);/清除XT2、XT1、DCO故障標(biāo)志SFRIFG1 & = OFIFG/清除故障標(biāo)志for(I = 0;i 數(shù)據(jù)輸出(UCB1SIMO)/ | |/ | P5.4|-數(shù)據(jù)輸入(UCB1SOMI)/ | |/ CS 串行時(shí)鐘輸出(UCB1CLK)/沭陽鐘/ U-Program中國(guó),德州儀器公司。/2013年3月/內(nèi)置CCE版本:5.1.1/*#包含 msp430 x54xA.h #包含“ads1118.h”void ADS1118_GP

25、IO_Init(空)P1OUT | = 0 x02/為CS設(shè)置P1.1P1DIR | = 0 x02/將P1.1設(shè)置為輸出方向P3SEL | = 0 x80/ P3.7選項(xiàng)選擇P5SEL | = 0 x30/ P5.4,5選項(xiàng)選擇P5DIR | = 0 x01/將P5.0設(shè)置為輸出方向void ADS1118_SPI_Init(空)UC B1 CTL 1 | = UCS wrst;/*將狀態(tài)機(jī)復(fù)位* *UC B1 CTL 0 | = UC MST+UC sync+UC msb;/ 3引腳、8位SPI主機(jī)/時(shí)鐘極性高,MSBUC B1 CTL 1 | = UC ssel _ 2;/ SMCLKU

26、C B1 br 0 = 0 x 05;/ /2UC B1 br 1 = 0;/UC B1 CTL 1 & = UCS wrst;/*初始化USCI狀態(tài)機(jī)* *_ _延遲周期(100);/等待從機(jī)初始化void ADS1118_ADS_Config(帶符號(hào)int temp_config_value)有符號(hào)整數(shù)配置值;配置值=臨時(shí)配置值;/Config _ Value = 0 x 8583;/初始配置寄存器/ ADS1118配置AIN0/AIN1,F(xiàn)S=+/-2.048,DR=128sps,DOUT上拉P1OUT & = 0 x02/將CS設(shè)為低電平_ _延遲周期(100);/等待從機(jī)初始化ADS

27、1118_WriteSPI(Config_Value,0);/將配置寫入ADS1118_ _延遲周期(100);/等待從機(jī)初始化P1OUT | = 0 x02/將CS設(shè)為高電平int ADS1118_ADS_Read(void)無符號(hào)整型數(shù)據(jù)Config _ Value/Config _ Value = 0 x 058 b;config _ Value = 0;/ ADS1118配置AIN0/AIN1,F(xiàn)S=+/-2.048,DR=128sps,DOUT上拉P1OUT & = 0 x02/將CS設(shè)為低電平data = ads 1118 _ write SPI(Config _ Value,1)

28、;/從ADS1118讀取數(shù)據(jù)P1OUT | = 0 x02/將CS設(shè)為高電平返回?cái)?shù)據(jù);/*模式0:僅將配置寄存器寫入ADS1118*模式1:將配置寄存器寫入ADS1118,并從ADS1118讀取數(shù)據(jù)*/有符號(hào)整數(shù)ADS1118_WriteSPI(無符號(hào)整數(shù)配置,無符號(hào)字符模式)有符號(hào)int msb無符號(hào)int temp有符號(hào)int dummytemp = configif(mode = = 1)temp = 0;而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp 8);/寫入配置的MSB而(!(UC B1 IFG & UCRXIFG);msb = UC B

29、1 rx buf;/讀取數(shù)據(jù)的MSB而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp & 0 x ff);/寫入配置的LSB而(!(UC B1 IFG & UCRXIFG);msb =(msb 8);/寫入配置的MSB而(!(UC B1 IFG & UCRXIFG);dummy = UC B1 rx buf;/讀取配置的MSB而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp & 0 x ff);/寫入配置的LSB而(!(UC B1 IFG & UCRXIFG);dummy =(dummy 8)| UC B1 rx

30、buf;/讀取配置的LSB_ _延遲周期(100);返回msb/*無效總管(無效)volatile int ADC _ Result浮動(dòng)電壓_ ch1浮動(dòng)電壓_ ch2wdt CTL = wdt pw+WDTHOLD;/停止看門狗定時(shí)器ads 1118 _ GPIO _ Init();ads 1118 _ SPI _ Init();/ADS _ Config();while(1)ADS 1118 _ ADS _ Config(0 xb 583);/配置ch2ADC _ Result = ADS 1118 _ ADS _ Read();/從ch1讀取數(shù)據(jù),最后一次結(jié)果電壓_ ch1 = ADC

31、_結(jié)果* 1.0/32768 * 2.048;_ _延遲周期(10000);/需要等待時(shí)間,直到轉(zhuǎn)換結(jié)束ADS 1118 _ ADS _ Config(0 x 8583);/配置ch1ADC _ Result = ADS 1118 _ ADS _ Read();/從ch1讀取數(shù)據(jù),最后一次結(jié)果電壓_ ch2 = ADC _結(jié)果* 1.0/32768 * 2.048;_ _延遲周期(10000);if(電壓_ch1 電壓_ CH2)/范圍+1.0V至+1.2VP5OUT & = BIT0/如果結(jié)果超出范圍,切換LED1else P5OUT | = BIT0/如果在范圍內(nèi),點(diǎn)亮LED1*/* SP

32、WM發(fā)生器-對(duì)稱規(guī)則采樣方法*帶死區(qū)的SPWM波形由6通道PWM產(chǎn)生。Tc:三角波(載波)的周期一般在10KHZ以上;這里,調(diào)制信號(hào)的頻率在5HZ20HZ左右。* Wr:正弦波角頻率,m:載波比,n = fc/fr;CPU :20MHZ,DCO系統(tǒng)生成,* UP/VP/WP-三相上橋臂,UN/VN/WN-三相下橋臂,* PWM_UP| - |P4.2/TB0.2* PWM_VP| - |P4.4/TB0.4* PWM_WP| - |P4.6/TB0.6* PWM_UN| - |P4.3/TB0.3* PWM_VN| - |P4.5/TB0.5* PWM_WN| - |P4.1/TB0.1*錯(cuò)誤

33、| - |P7.2/TB0OUTH*/#包含 msp430 x54xA.h #包含“math.h”#包含 SPWM.h void SPWM _ GPIO _ INIT();void SPWM _ GPIO _ OFF();void SPWM _ ARRAY _ DATA();unsigned int interval time _ UAM= 0 ;/ 0相位unsigned int interval time _ UBM= 0 ;/-120相位unsigned int interval time _ UCM= 0 ;/+120相位signed int Sina _ UAM= 0 ;signed int Sina _ UBM= 0 ;有符號(hào)int Sina _ UCM= 0 ;extern無符號(hào)長(zhǎng)整型Fc = 10000/默認(rèn)10khz外部無符號(hào)字符Fc _ Change _ Flag上午浮動(dòng);void main()無符號(hào)int j;wdt CTL = wdt pw+WDTHOLD

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論