基于MSP430F149的高精度低功耗電能消耗計(jì)量裝置_第1頁(yè)
基于MSP430F149的高精度低功耗電能消耗計(jì)量裝置_第2頁(yè)
基于MSP430F149的高精度低功耗電能消耗計(jì)量裝置_第3頁(yè)
基于MSP430F149的高精度低功耗電能消耗計(jì)量裝置_第4頁(yè)
基于MSP430F149的高精度低功耗電能消耗計(jì)量裝置_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、山東科技大學(xué)電子學(xué)院通信工程專業(yè)方向課程設(shè)計(jì)年級(jí)學(xué)號(hào): * 姓 名:* 指導(dǎo)教師: * 設(shè)計(jì)時(shí)間: 2015.9.72015.9.20 目錄摘要3關(guān)鍵字31目的與內(nèi)容42硬件系統(tǒng)設(shè)計(jì)42.1電壓采樣方案52.2電流采樣方案62.3電壓、電流有效值測(cè)量方案63單元模塊設(shè)計(jì)原理73.1電壓采樣電路73.2電流采樣電路83.3電流電壓測(cè)量電路83.4短信模塊93.5過(guò)流報(bào)警和過(guò)流保護(hù)模塊103.6防竊電模塊103.7智能電能表與電腦的通信114、總的電路原理圖及仿真輸出波形125、系統(tǒng)特點(diǎn)與性能126、心得體會(huì)13參考文獻(xiàn) 15附錄16摘要本系統(tǒng)以MSP430F149單片機(jī)為控制核心,設(shè)計(jì)并制作了高

2、精度低功耗電能消耗計(jì)量裝置。該系統(tǒng)硬件電路簡(jiǎn)單穩(wěn)定,可靠性較高;該系統(tǒng)由阻容降壓供電電路,電壓測(cè)量電路,電流測(cè)量電路,顯示電路等部分組成。電壓測(cè)量部分是220v電壓經(jīng)過(guò)變壓器降壓后經(jīng)過(guò)整流橋得到1.7v半波電壓,輸入單片機(jī)之后經(jīng)采樣和數(shù)據(jù)處理,可得到電壓的峰值,周期,頻率,有效值等參數(shù);電流參數(shù)測(cè)量電路是采用了50A/62.5mA互感器將負(fù)載上的大電流轉(zhuǎn)換成較小的電流,并將小電流通過(guò)定值電阻,電阻兩端的電壓輸入單片機(jī)從而計(jì)算得到電流峰值,有效值等參數(shù);采用的是全球鷹SIM900A V3.7模塊,固定時(shí)間給用戶發(fā)送短信,讓用戶了解目前耗電情況。題目中要求的參數(shù)均經(jīng)單片機(jī)計(jì)算輸出到OLED液晶屏模

3、塊上予以顯示。關(guān)鍵詞:MSP430F149 低功耗 ADC采樣SIM900A V3.7模塊1目的與內(nèi)容 隨著國(guó)民經(jīng)濟(jì)的不斷發(fā)展,電力已經(jīng)成為國(guó)家的最重要能源。長(zhǎng)期以來(lái),我國(guó)生產(chǎn)的交流電度表均為感應(yīng)式機(jī)械電度表,幾十年來(lái)不得不采用人工抄讀電表的原始方式。這種方法不但勞動(dòng)強(qiáng)度大、效率低,而且還會(huì)存在抄表不到位、估抄、漏抄、錯(cuò)抄、錯(cuò)算及抄表周期長(zhǎng)等問(wèn)題,對(duì)竊電的防治更無(wú)從談起。在社會(huì)走向信息化,網(wǎng)絡(luò)化,電力系統(tǒng)大踏步現(xiàn)代化的今天,手工抄表更是與無(wú)人值班等高度的自動(dòng)化形成了鮮明對(duì)比,成為制約供電系統(tǒng)現(xiàn)代化管理的一大障礙。正是由于以上背景,智能電能表應(yīng)運(yùn)而生。2硬件系統(tǒng)設(shè)計(jì)由民用單相電的火線和零線接入電

4、能表接入口,在火線入口處接有一個(gè)繼電器,用于過(guò)流(短路)保護(hù)?;鹁€在電表內(nèi)分成并聯(lián)的兩路:一路經(jīng)過(guò)變壓器變?yōu)殡p6V,然后經(jīng)過(guò)峰值檢波電路,將交流變?yōu)橹绷鳎缓蠼?jīng)過(guò)分壓電路分壓,通過(guò)IAP15F2K61S2單片機(jī)AD口采集,得到電壓數(shù)據(jù);另一路通過(guò)電流互感器,感應(yīng)出交流電流,通過(guò)放大電路和峰值檢波電路后,通過(guò)IAP15F2K61S2單片機(jī)的AD口采集數(shù)據(jù)。然后通過(guò)OLED液晶屏將數(shù)據(jù)顯示出來(lái)。具體如下框圖1所示。系統(tǒng)可以將用戶的電壓、電流以及耗電量顯示出來(lái)。另外,本系統(tǒng)還帶有過(guò)流報(bào)警與過(guò)流保護(hù)裝置、防竊電裝置、短信通知用戶每月耗電情況功能以及能夠?qū)崟r(shí)的將電表狀態(tài)及數(shù)據(jù)發(fā)送到電網(wǎng)公司電腦終端的功能

5、。2.1電壓采樣方案 方案一:直接在電網(wǎng)中并入1M的電阻采集電壓信號(hào),串入一段小電阻銅絲,再加差放采集電流信號(hào)。該方案成本較低,但是采集電路會(huì)污染電網(wǎng),不能使用。 方案二:采用光耦芯片HCNR200對(duì)電網(wǎng)進(jìn)行耦合采集。但是光耦芯片較為昂貴,抗高壓的能力不足,在電網(wǎng)的電壓或者電流較大情況下,測(cè)量將受到限制。 方案三:采用變壓器降壓后在用大電阻分壓,分壓后得到適合ADC采樣輸入電壓,經(jīng)ADC轉(zhuǎn)換后得到數(shù)字信號(hào),最后按比例還原成原來(lái)的被測(cè)電壓的大小。綜上所述,我們選用了方案三。2.2電流采樣方案 方案一:直接在被測(cè)用電器上串聯(lián)小阻值大功率電阻,通過(guò)測(cè)量小阻值電阻兩端的電壓從而測(cè)得電路中的電流。次方案

6、的測(cè)量電阻的消耗功率大,同時(shí)會(huì)是測(cè)量系統(tǒng)連上單相電的火線,使得整個(gè)系統(tǒng)有安全隱患。 方案二:直接在被測(cè)用電器上串聯(lián)小阻值大功率電阻,小阻值電阻兩端的電壓加給光電耦合器,用光電耦合法測(cè)量電路中的電流,起到電器隔離的作用,使得測(cè)量系統(tǒng)安全可靠,但光電藕線性度不是很高,而且易受到干擾。 方案三:采用儀用精密高線性度交流互感器測(cè)量交流電流,線性度高,安裝簡(jiǎn)單,調(diào)試方便,同時(shí)還能起到電氣隔離的作用,安全可靠。通過(guò)以上方案的比較,顯然選擇方案三是三個(gè)方案中最好的。2.3電壓、電流有效值測(cè)量方案 方案一:采用普通峰值檢波電路,實(shí)現(xiàn)電壓、電流峰值的采集,再根據(jù)正弦波峰值和有效值的轉(zhuǎn)換關(guān)系,得出有效值。此方案簡(jiǎn)

7、單,易于實(shí)現(xiàn),但是此電路會(huì)使用二極管來(lái)半波整流,二極管上會(huì)有壓降,從而引入誤差,另外,檢波的值和前端峰值不成線性比例關(guān)系,測(cè)量困難。方案二:由正弦波與基準(zhǔn)電壓相比較得到的脈寬再和基準(zhǔn)電壓通過(guò)相關(guān)公式算出有效值。 圖3 它的主要優(yōu)點(diǎn)是無(wú)需A/D轉(zhuǎn)換就能快速測(cè)量交流電壓有效值,且能消除直流分量對(duì)測(cè)量結(jié)果的影響。但是其測(cè)量值只在較小范圍內(nèi)線性,不能符合本題0到20V的測(cè)量要求。 方案三:采用精密峰值檢波電路,電路中運(yùn)用跟蹤和保持模式對(duì)正弦波精密采集,克服了方案一不線性的缺陷,且測(cè)量值精確,符合本題要求。綜上所述,我們選取方案三。3、單元模塊設(shè)計(jì)原理3.1電壓采樣電路 電壓采樣電路是先通過(guò)變壓器降壓后

8、,再用分壓電阻網(wǎng)絡(luò)采樣被測(cè)電壓。電路中采用了變壓器起到了電氣隔離的作用,系統(tǒng)安全,其電路如圖 1 圖43.2電流采樣電路 用高線性度的儀用電流互感器來(lái)測(cè)量電路中的電流,起到電器隔離的作用,測(cè)量方便簡(jiǎn)潔,電路如Error! Reference source not found.,互感器感應(yīng)產(chǎn)生的電流在電阻上的壓降,經(jīng)OP07運(yùn)算放大器組成的電壓更隨器輸出給ADC測(cè)量。 圖53.3電流電壓測(cè)量電路 把采樣到的電流、電壓信號(hào)經(jīng)過(guò)AC_DC轉(zhuǎn)換電路后得到對(duì)應(yīng)的電壓信號(hào)的真有效值,把真有效值信號(hào)輸入到ADC就能測(cè)量其大小,電路圖如 圖 圖6其中DCV模塊是交流轉(zhuǎn)直流電路,其電路如 圖 圖 73.4短信模

9、塊 采用的是全球鷹SIM900A V3.7模塊,固定時(shí)間給用戶發(fā)送短信,讓用戶了解目前耗電情況。其中部分短信發(fā)送模塊代碼如下。 if(SIM_ONE=0&&Count>2400) PrintString1("AT+CMGF=1rn"); DelaySec(3);PrintString1("AT+CSMP=17,167,2,25rn");DelaySec(3);PrintString1("AT+CSCS="UCS2"rn");DelaySec(3);PrintString1("AT+C

10、MGS="00310035003700360034003200340036003000370031"rn");/此處修改為對(duì)方的電話號(hào)DelaySec(3);PrintString1(sms_text);/修改短信內(nèi)容TX1_write2buff(0x1a);DelaySec(3);SIM_ONE=1; 3.5過(guò)流報(bào)警和過(guò)流保護(hù)模塊 該模塊采用的是聲光報(bào)警方式。用戶可以自行設(shè)置報(bào)警電流閾值,當(dāng)電表監(jiān)測(cè)到用戶的電流大于該閾值的時(shí)候,警示燈會(huì)立即點(diǎn)亮、報(bào)警聲響起,與此同時(shí),控制火線的繼電器會(huì)斷開(kāi)火線,使用戶財(cái)產(chǎn)不會(huì)遭受進(jìn)一步損失。3.6防竊電模塊 系統(tǒng)采用多種方法來(lái)防

11、止竊電行為的發(fā)生。第一,本系統(tǒng)時(shí)刻監(jiān)測(cè)著電表兩端的電壓值,一旦有竊電行為,電表兩端電壓接近零伏,本裝置就會(huì)發(fā)送信息島電腦終端;第二,本系統(tǒng)采用在零線上接一個(gè)氖管,一旦出現(xiàn)將零火線反接的竊電行為時(shí),氖管就會(huì)發(fā)光,提示有竊電行為發(fā)生。3.7智能電能表與電腦的通信為了方便管理和消除傳統(tǒng)抄表的繁瑣,我們自己編寫(xiě)了一款上位機(jī),實(shí)現(xiàn)了智能電表與電網(wǎng)公司的電腦進(jìn)行通信的功能。系統(tǒng)能夠?qū)⒂脩舻暮碾娗闆r實(shí)時(shí)的傳輸?shù)诫娔X的軟件終端,并且可以將是否有竊電行為顯示到電腦上,能夠及時(shí)的預(yù)防竊電行為的發(fā)生。上位機(jī)軟件界面如下圖8所示。 圖84、總的電路原理圖及仿真輸出波形 電路原理圖 5、系統(tǒng)特點(diǎn)與性能第一,功耗低,本系

12、統(tǒng)采用STC公司的低功耗單片機(jī)IAP15F2K61S2、OLED低功耗液晶屏,而且電路結(jié)構(gòu)簡(jiǎn)單,功耗很低。第二,精度高,本系統(tǒng)充分利用IAP15F2K61S2的AD資源,數(shù)據(jù)的精度值得信賴。第三,實(shí)現(xiàn)了人工智能,我們利用準(zhǔn)確計(jì)時(shí)模塊,以固定時(shí)間間隔給用戶發(fā)送信息,通知用戶本月耗電情況,并提醒用戶計(jì)時(shí)繳電費(fèi),以免停電。第四,過(guò)流報(bào)警與過(guò)流保護(hù),一旦用戶的家用電器發(fā)生短路,電表會(huì)及時(shí)斷開(kāi)火線,以免用戶財(cái)產(chǎn)遭受進(jìn)一步損失。第五,防竊電功能,本系統(tǒng)實(shí)現(xiàn)多種防竊電方法。第一,本系統(tǒng)時(shí)刻監(jiān)測(cè)著電表兩端的電壓值,一旦有竊電行為,電表兩端電壓接近零伏,本裝置就會(huì)發(fā)送信息到電腦終端,通知電網(wǎng)管理人員;第二,本系

13、統(tǒng)在穿過(guò)電流互感器的電線上加了氖管,如果有反接零火線的竊電行為,氖管就會(huì)點(diǎn)亮。本設(shè)計(jì)實(shí)現(xiàn)了對(duì)電網(wǎng)質(zhì)量的測(cè)試,利用互感器對(duì)電流,電壓信號(hào)進(jìn)行信號(hào)采集,用多種方法實(shí)現(xiàn)對(duì)電壓、電流、功率的測(cè)試,經(jīng)過(guò)理論推理,計(jì)算出電壓有效值,電流有效值,負(fù)載功率,電網(wǎng)阻抗等,整個(gè)系統(tǒng)原理較為簡(jiǎn)單易于實(shí)現(xiàn),測(cè)試結(jié)果精度較高。利用SIM900A模塊,實(shí)現(xiàn)了固定時(shí)間給用戶發(fā)送短信的功能,使用戶能夠及時(shí)了解本月耗電情況,并及時(shí)繳電費(fèi)以免被停電。并編寫(xiě)了上位機(jī),實(shí)現(xiàn)了智能電表與電腦的通信,極大方便了電網(wǎng)公司的管理。本系統(tǒng)的設(shè)計(jì)充分利用了MSP430F149單片機(jī)的資源,其中包括單片機(jī)的3路AD口,3個(gè)定時(shí)器T0、T1和T2,

14、2路外部中斷,以及單片機(jī)的2個(gè)串口通訊。6、心得體會(huì)做這個(gè)系統(tǒng)的設(shè)計(jì)不僅是對(duì)自己過(guò)去的所學(xué)的知識(shí)做一個(gè)總結(jié),同時(shí)也增強(qiáng)了自己的動(dòng)手能力。它不僅是一門文化課程,教會(huì)了我們科學(xué)技術(shù),也是一門人生課程。我們學(xué)到了許多在課堂上無(wú)法學(xué)到的東西。無(wú)論遇到怎樣失敗,我們都要從失敗中爬起,哪怕再失敗。這是我們學(xué)習(xí)這門課程十分寶貴的知識(shí)。  我們的設(shè)計(jì)包含了單片機(jī)技術(shù),單片機(jī)技術(shù)是現(xiàn)在的熱門技術(shù),單片機(jī)的應(yīng)用改變了傳統(tǒng)的設(shè)計(jì)思路,以前構(gòu)建一個(gè)系統(tǒng)不僅需用很多的數(shù)字模擬器件或者電路單元來(lái)構(gòu)建,而且制作的東西還存在可靠性差、缺乏靈活性、維護(hù)不便、成本高、無(wú)法實(shí)現(xiàn)智能化等諸多缺點(diǎn)。單片機(jī)的應(yīng)用解決

15、了很多問(wèn)題,現(xiàn)在只要寫(xiě)一個(gè)軟件,通過(guò)單片機(jī)和一些簡(jiǎn)單的外接電路就可以實(shí)現(xiàn)具有很多功能的、而且具有智能化的系統(tǒng),同時(shí)可方便升級(jí)維護(hù)。所以單片機(jī)的應(yīng)用廣泛,在日常生活和生產(chǎn)中占用重要位置。我們?cè)谑褂脝纹瑱C(jī)技術(shù)后也深深的體會(huì)到其強(qiáng)大的功能,所以我們意識(shí)到掌握好單片機(jī)技術(shù)是電子專業(yè)學(xué)生必須的。對(duì)英語(yǔ)知識(shí)和專業(yè)英語(yǔ)的學(xué)習(xí),掌握了外文閱讀和外文翻譯的能力,在外文翻譯和查閱外文資料時(shí)候可以得心應(yīng)手;通過(guò)C語(yǔ)言的學(xué)習(xí),在編程的時(shí)候也不感覺(jué)到非常棘手;計(jì)算機(jī)知識(shí)的學(xué)習(xí),使我能夠熟練使用多種最基本的計(jì)算機(jī)相關(guān)軟件和專業(yè)軟件的使用方法,包括基本的Windows辦公軟件,還有一些專業(yè)軟件,如Protel99、Alti

16、um Designer等。同時(shí),我們作為一個(gè)團(tuán)隊(duì),我們感受到了團(tuán)隊(duì)精神的重要。團(tuán)結(jié)是整個(gè)團(tuán)隊(duì)的凝聚力。在完成這個(gè)項(xiàng)目是,需要小組所有成員的共同努力,單憑個(gè)人的力量是無(wú)法完成的。而每個(gè)人的能力都是不同的,我們要根據(jù)每個(gè)人的實(shí)際情況進(jìn)行分工。力求其在指定時(shí)間里完成任務(wù),這樣才能保證任務(wù)的順利完成。通過(guò)以上的設(shè)計(jì)過(guò)程,我們不但在知識(shí)上收獲了,而且發(fā)現(xiàn)了自己的一些不足之處:對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻掌握得不夠牢固。通過(guò)這次設(shè)計(jì)把知識(shí)溫故知新。同時(shí),我們也對(duì)自己的動(dòng)手能力有所鍛煉,而且一次成功的經(jīng)歷給我增添了不少的信心。在以后的時(shí)間里,我將繼續(xù)努力學(xué)習(xí),除此之外,我還將培養(yǎng)自己的動(dòng)手能力,常動(dòng)手,

17、把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合。我相信長(zhǎng)期堅(jiān)持之后一定會(huì)有更大的提升!在此我們還要感謝在這次設(shè)計(jì)中所有給予我們幫助的人們,謝謝你們!參考文獻(xiàn)【1】謝自美 電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試武漢:華中理工大學(xué)出版社 2000年第二版【2】童詩(shī)白 華成英 模擬電子技術(shù)基礎(chǔ) 高等教育出版社【3】邱關(guān)源 電路高等教育出版附錄#include <msp430f169.h>#include <math.h>#define CPU_F (double)8000000) /External OSC#define delay_us(x) _delay_cycles(long)(CPU_F*(double

18、)x/1000000.0)#define delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0)#define DataPort P4OUT#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define RS_CLR P5OUT &= BIT5 /RESET RS#define RS_SET P5OUT |= BIT5 /SET RS#define RW_CLR P5OUT &= BIT6 /RESET RW#de

19、fine RW_SET P5OUT |= BIT6 /SET RW#define EN_CLR P5OUT &= BIT7 /RESET E#define EN_SET P5OUT |= BIT7 /SET E#define PSB_CLR P5OUT &= BIT0 /RESET PSB Serial #define PSB_SET P5OUT |= BIT0 /SET PSB,Parallel#define RST_CLR P5OUT &= BIT1 /RESET RST#define RST_SET P5OUT |= BIT1#define Num_of_Resu

20、lts 200#define Time_interval 30 /微秒static unsigned int index1,index2;/static unsigned int A0resultsNum_of_Results; /static unsigned int A1resultsNum_of_Results;static unsigned int VoltageNum_of_Results; static unsigned int CurrentNum_of_Results;static uchar TransOverFlag = 1;static unsigned int peri

21、odN;static unsigned int index = 0;void Clock_Init() uchar i; BCSCTL1&=XT2OFF; /Turn XT2 BCSCTL2|=SELM1+SELS; /MCLK:8MHZ,SMCLK:8MHZ do IFG1&=OFIFG; /Clear XT2 Error Flag for(i=100;i>0;i-) ; while(IFG1&OFIFG)!=0); /Wait For XT2 IFG1&=OFIFG;void Clock_Init_Inc() / DCOCTL = DCO0 + DCO

22、1 + DCO2; / Max DCO / BCSCTL1 = RSEL0 + RSEL1 + RSEL2; / XT2on, max RSEL DCOCTL = 0x60 + 0x00; /DCO 3MHZ,3030KHZ BCSCTL1 = DIVA_0 + 0x07; BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;void WDT_Init() WDTCTL = WDTPW + WDTHOLD; /Stop WDT/*/初始化IO口子程序/*void Port_init()P4SEL = 0x00; P4DIR = 0xFF; /DATA PORT

23、P5SEL = 0x00; P5DIR|= BIT5 + BIT6 + BIT7; /SET Control PIN MODE->OUT/*/顯示屏命令寫(xiě)入函數(shù)/*void LCD_write_com(unsigned char com)RS_CLR;RW_CLR;EN_SET;DataPort = com; /WRITE COMMANDdelay_ms(5);EN_CLR;/*/顯示屏數(shù)據(jù)寫(xiě)入函數(shù)/*void LCD_write_data(unsigned char data)RS_SET;RW_CLR;EN_SET;DataPort = data; /WRITE DATAdelay_

24、ms(5);EN_CLR;/*/顯示屏清空顯示/*void LCD_clear(void)LCD_write_com(0x01); /Clear SCREENdelay_ms(5);/*/顯示屏字符串寫(xiě)入函數(shù)/*void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_write_com(0x80 + x); /THE FIRST ROW else LCD_write_com(0xC0 + x); /THE SECOND ROW while (*s) LCD_write_data( *

25、s); s +; /*/顯示屏單字符寫(xiě)入函數(shù)/*void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) if (y = 0) LCD_write_com(0x80 + x); /THE FORST ROW else LCD_write_com(0xC0 + x); /THE SECOND ROW LCD_write_data( data);/*/顯示屏初始化函數(shù)/*void LCD_init(void) LCD_write_com(0x38);/顯示模式設(shè)置 delay_ms(5); LCD_write_c

26、om(0x08);/顯示關(guān)閉 delay_ms(5); LCD_write_com(0x01);/顯示清屏 delay_ms(5); LCD_write_com(0x06);/顯示光標(biāo)移動(dòng)設(shè)置 delay_ms(5); LCD_write_com(0x0C);/顯示開(kāi)及光標(biāo)設(shè)置 delay_ms(5);/*求最大值*/unsigned int getMax(unsigned int temp) unsigned int max=temp0; for(unsigned int i=0;i<Num_of_Results;i+) if(max<tempi) max = tempi; in

27、dex1 = i; if(tempi+1<max) break; return max;/*轉(zhuǎn)換最大值至電壓電流*/float maxTOv(unsigned int vParameter) float transResult = vParameter/100.5; return transResult; float maxTOi(unsigned int iParameter) float transResult = iParameter/10.5; return transResult; /*獲得周期*/ unsigned int getPeriod(unsigned int tem

28、p) unsigned int periodN; unsigned int i,num=tempindex1; for(i=index1;i<Num_of_Results;i+) if(num>tempi) num = tempi; index2 = i; periodN = 4*(index2 - index1); return periodN; /*獲得相位差*/float PhaseDiff(unsigned int curTemp) float difference; unsigned int i,num=curTempindex1; for(i=index1;i<N

29、um_of_Results;i+) if(num<curTempi) num = curTempi; index2 = i; if(curTempi+1<num) break; difference = (index2 - index1)/periodN; return difference;/*數(shù)字周期轉(zhuǎn)換至模擬周期*/float transTOperiod(unsigned int temp) return temp/Time_interval;/*數(shù)值提取至數(shù)組用以顯示,*/void deltaExtract(float temp,uint a) unsigned int t

30、emp1; if(temp=0) return ; else temp1 = (unsigned int)temp*1000; a2 = temp1%10; /取個(gè)位 a1 = (temp1/10)%10; /取十位 a0 = (temp1/100); /取百位 /*數(shù)值轉(zhuǎn)換至ASCII*/void transTOASCII(unsigned int temp,unsigned int num) for(unsigned int i=0;i<num-1;i+) tempi+='0' tempnum-1 ='0'void main(void) /*初始化*/

31、 WDT_Init(); /Set WDT Clock_Init(); /Clock Initialize Port_init(); /PORT Initialize delay_ms(100); /delay 100ms LCD_init(); /LCD Initialize LCD_clear(); /clear screen LCD_write_str(0,0,"OSC"); delay_ms(1000); /*AD轉(zhuǎn)換*/ P6SEL = 0x03; / Enable A/D channel inputs ADC12CTL0 = ADC12ON+MSC+SHT0_8

32、 + REFON +REF2_5V; / Turn on ADC12, extend sampling time / to avoid overflow of results ADC12CTL1 = SHP+CONSEQ_3; / Use sampling timer, repeated sequence ADC12MCTL0 = INCH_0+SREF_1; / ref+=2.5V, channel = A0 ADC12MCTL1 = INCH_1+EOS+SREF_1; / ref+=2.5V, channel = A1 end seq ADC12IE = 0x02; / Enable A

33、DC12IFG.3 ADC12CTL0 |= ENC; / Enable conversions ADC12CTL0 |= ADC12SC; / Start conversion _EINT(); /global interrupt while(TransOverFlag); /wait for conversion over LCD_write_str(0,0,"ADC"); delay_ms(1000); /*處理數(shù)據(jù) */ /* for(unsigned i = 0;i<Num_of_Results;i+) Voltagei=A0resultsi; Curren

34、ti=A1resultsi; */ unsigned int vMaxNum; unsigned int cMaxNum; float MaxVol; float MaxCur; float POWER; float PERIOD; vMaxNum = getMax(Voltage); /電壓電流最大值 cMaxNum = getMax(Current); MaxVol = maxTOv(vMaxNum); /電壓峰值 MaxCur = maxTOi(cMaxNum); /電壓峰值 float delta; float phaseDiff; float avoltage; float acurrent; float pPara; periodN = getP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論