基于MSP430數(shù)字式電壓表_第1頁(yè)
基于MSP430數(shù)字式電壓表_第2頁(yè)
基于MSP430數(shù)字式電壓表_第3頁(yè)
基于MSP430數(shù)字式電壓表_第4頁(yè)
基于MSP430數(shù)字式電壓表_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)題目:基于MSP430數(shù)字式電壓表院系:電子與信息工程學(xué)院班級(jí):學(xué)生姓名:學(xué)號(hào):指導(dǎo)老師:2016年7月6日Msp430數(shù)字電壓表設(shè)計(jì)目標(biāo)采用MSP430單片機(jī)來實(shí)現(xiàn)數(shù)字電壓表的功能,本數(shù)字電壓表由MSP430F5529作為主控器件,A/D轉(zhuǎn)換器采用MSP430自帶轉(zhuǎn)換器,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)數(shù)字電壓表的硬件電路和軟件設(shè)計(jì)。利用外部硬件電路對(duì)不同檔位的輸入電壓進(jìn)行處理,使電壓達(dá)到單片機(jī)測(cè)量范圍,實(shí)現(xiàn)基本的數(shù)字電壓表功能,使其可以測(cè)量0~16.5V的電壓值,并且誤差控制在0.02v以內(nèi),最后在AY-SEBModule板的液晶屏上顯示。該系統(tǒng)的數(shù)字電壓表電路元件較少,成本低,調(diào)節(jié)工作簡(jiǎn)單等優(yōu)點(diǎn)。在電壓測(cè)量中有較強(qiáng)的實(shí)用性。器件1.MSP430F5529LP開發(fā)板2.AY-SEBModule核心板3.測(cè)試前端(電阻分壓和電壓跟隨器組成)三、原理分析測(cè)試前端包括電阻分壓和電壓跟隨器,即輸入電壓前接電阻分壓電路和LM358運(yùn)算放大器組成的電壓跟隨器,電阻分壓能增大測(cè)量量程(可通過改變兩個(gè)電阻比值而改變量程)。運(yùn)算放大器同時(shí)起到增加輸入阻抗的作用,使得電阻分壓得到的電壓更穩(wěn)定,避免影響被測(cè)量的電壓值。用MSP430F5529開發(fā)板P6.0(A0)通道采用中斷方式,不//**************************數(shù)字電壓表程序**************************//MSP430F5529LP-MSP-EXP430F5529LP+AY-SEBModule核心板//描述:P60(A0)通道采用中斷方式,不間斷連續(xù)采集輸入電壓,再經(jīng)液晶屏顯示。//*******************************************************************#include<msp430.h>#include"grlib.h"#include"LCD_driver/Template_Driver.h"#include"images/images.h"#include"driverlib.h"http://*****************************************************************************//變量來存儲(chǔ)振蕩器故障標(biāo)志的狀態(tài)//*******************************************************************uint16_tstatus;#defineNum_of_Results16#defineADC_REF 1500 //adc基準(zhǔn)參考電壓(1.5V與2.5V)#defineADC_RANGE 4095 //adc轉(zhuǎn)換位數(shù)volatileuint16_tresults[Num_of_Results];volatileuint16_tadc_filter;Graphics_Contextg_sContext;#ifdefined(__IAR_SYSTEMS_ICC__)int16_t__low_level_init(void){//StopWDT(WatchDogTimer)WDTCTL=WDTPW+WDTHOLD;return(1);}#endiftContextg_sContext;externvoidGrStringNumberCentered(consttContext*pContext,int16_tNumber, uint8_tui8Dot,uint8_tui8X,uint8_tui8Y);voidmain(void){ volatileunsignedinti; volatileunsignedintvin_mv; _system_pre_init();//設(shè)置LCDTemplate_DriverInit();Graphics_initContext(&g_sContext,&g_sTemplate_Driver);Graphics_setForegroundColor(&g_sContext,ClrBlack);//設(shè)置前景為白色Graphics_setBackgroundColor(&g_sContext,ClrWhite); //設(shè)置背景為黑色Graphics_setFont(&g_sContext,&g_sFontCm16b); //設(shè)置字體Graphics_clearDisplay(&g_sContext);//清空顯示頁(yè)面 //繪制LCD界面 GrStringDraw(&g_sContext,"=shuzidianya=",AUTO_STRING_LENGTH,5,17,OPAQUE_TEXT); GrStringDraw(&g_sContext,"zhi:v",AUTO_STRING_LENGTH,5,34,OPAQUE_TEXT); GrFlush(&g_sContext);//打開全局中斷__bis_SR_register(GIE); while(1) { //轉(zhuǎn)換成電壓值(單位:mv)并乘于電阻分壓倍數(shù)11,得到電阻分壓電壓,在加上射級(jí)跟隨電壓0.707,最后得到檢測(cè)電壓。 vin_mv=(adc_filter*1.0*11)/ADC_RANGE*ADC_REF+707;//擦除舊的LCD顯示數(shù)據(jù) GrStringDrawCentered(&g_sContext,"",AUTO_STRING_LENGTH,70,40,OPAQUE_TEXT); //顯示電壓并把電壓換算成V(1V=1000mV) GrStringNumberCentered(&g_sContext,vin_mv,3,70,40); GrFlush(&g_sContext); }}//====================數(shù)字轉(zhuǎn)字符串函數(shù)=========================voidNum2String(int16_ti16Number,uint8_tui8Dot,uint8_t*p){ int8_ti=0,ds=0; uint8_tpos=0,m=0; uint8_tDispBuff[11]={0}; uint8_ttempBuff[11]={0}; if(i16Number<0) { i16Number=-i16Number; //處理負(fù)數(shù) DispBuff[0]='-'; //顯示負(fù)號(hào) m=1; //跟蹤緩存位置 } else m=0; //等效為-清除負(fù)號(hào) for(i=m;i<11;i++) //拆分?jǐn)?shù)字 { DispBuff[i]=(i16Number%10); i16Number/=10; } for(i=10;i>=0;i--) //消隱無(wú)效"0" { if(DispBuff[i]==0)DispBuff[i]=0; else { pos=i; //保存當(dāng)前第一個(gè)有效值 break; } } tempBuff[0]=DispBuff[0]; //保存對(duì)應(yīng)的符號(hào)位 for(i=10;i>=m;i--) //高低位數(shù)據(jù)轉(zhuǎn)換存儲(chǔ)位置,高位在前,符號(hào)位不變 { if(i<=pos) { tempBuff[pos-i+m]=DispBuff[i]+0x30; } else tempBuff[i]=32; //空格(ASCII) } if(ui8Dot>0) { if(ui8Dot<pos+1-m) //pos+1-m為當(dāng)前數(shù)組數(shù)據(jù)位數(shù) { for(i=pos;i>=pos-(ui8Dot-1);i--) { tempBuff[i+1]=tempBuff[i]; } tempBuff[pos-(ui8Dot-1)]=0x2e; //小數(shù)點(diǎn) } else//if(ui8Dot>pos+m) { ds=ui8Dot-(pos+1-m); //移位距離(既需要增加幾個(gè)0) for(i=pos;i>=m;i--) { tempBuff[i+ds+2]=tempBuff[i]; //這里+2是為了增加前置:“0.” } for(i=0;i<ds;i++) { tempBuff[m+2+i]=0x30; //這里小數(shù)點(diǎn)后“補(bǔ)0操作” } tempBuff[m]=0x30; //添加前置 “0.” tempBuff[m+1]=0x2e; } } for(i=0;i<7;i++) { if(tempBuff[i]!='') { *p=tempBuff[i]; *p++; } else break; }}//-------------------//GrStringDraw(consttContext*pContext,constchar*pcString,longlLength,longlX,longlY,unsignedlongbOpaque)voidGrStringNumberCentered(consttContext*pContext,int16_tNumber,uint8_tui8Dot,uint8_tui8X,uint8_tui8Y){ uint8_tString[8]={0}; Num2String(Number,ui8Dot,String); GrStringDrawCentered(pContext,(constchar*)String,AUTO_STRING_LENGTH,ui8X,ui8Y,OPAQUE_TEXT);}#ifdefined(__TI_COMPILER_VERSION__)||defined(__IAR_SYSTEMS_ICC__)#pragmavector=ADC12_VECTOR__interrupt#elifdefined(__GNUC__)__attribute__((interrupt(ADC12_VECTOR)))#endifvoidADC12ISR(void)//adc12a中斷函數(shù){staticuint8_tindex=0;volatileuint8_ti;switch(__even_in_range(ADC12IV,34)){case0:break;//矢量0: 無(wú)case2:break;//矢量2: ADC溢出case4:break;//矢量4: ADC時(shí)序溢出case6://矢量6: ADC12IFG0//Moveresultsresults[index]=ADC12_A_getResults(ADC12_A_BASE,ADC12_A_MEMORY_0);index++;if(index==Num_of_Results){ adc_filter=0; for(i=0;i<Num_of_Results;i++) adc_filter+=results[i]; adc_filter>>=4;index=0;}case8:break;//Vector8:ADC12IFG1case10:break;//Vector10:ADC12IFG2case12:break;//Vector12:ADC12IFG3case14:break;//Vector14:ADC12IFG4case16:break;//Vector16:ADC12IFG5case18:break;//Vector18:ADC12IFG6case20:break;//Vector20:ADC12IFG7case22:break;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論