




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)題目:基于MSP430數(shù)字式電壓表院系:電子與信息工程學(xué)院班級:學(xué)生姓名:學(xué)號:指導(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ì)。利用外部硬件電路對不同檔位的輸入電壓進(jìn)行處理,使電壓達(dá)到單片機(jī)測量范圍,實(shí)現(xiàn)基本的數(shù)字電壓表功能,使其可以測量0~16.5V的電壓值,并且誤差控制在0.02v以內(nèi),最后在AY-SEBModule板的液晶屏上顯示。該系統(tǒng)的數(shù)字電壓表電路元件較少,成本低,調(diào)節(jié)工作簡單等優(yōu)點(diǎn)。在電壓測量中有較強(qiáng)的實(shí)用性。器件1.MSP430F5529LP開發(fā)板2.AY-SEBModule核心板3.測試前端(電阻分壓和電壓跟隨器組成)三、原理分析測試前端包括電阻分壓和電壓跟隨器,即輸入電壓前接電阻分壓電路和LM358運(yùn)算放大器組成的電壓跟隨器,電阻分壓能增大測量量程(可通過改變兩個電阻比值而改變量程)。運(yùn)算放大器同時起到增加輸入阻抗的作用,使得電阻分壓得到的電壓更穩(wěn)定,避免影響被測量的電壓值。用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://*****************************************************************************//變量來存儲振蕩器故障標(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);//清空顯示頁面 //繪制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,得到電阻分壓電壓,在加上射級跟隨電壓0.707,最后得到檢測電壓。 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ù)號 m=1; //跟蹤緩存位置 } else m=0; //等效為-清除負(fù)號 for(i=m;i<11;i++) //拆分?jǐn)?shù)字 { DispBuff[i]=(i16Number%10); i16Number/=10; } for(i=10;i>=0;i--) //消隱無效"0" { if(DispBuff[i]==0)DispBuff[i]=0; else { pos=i; //保存當(dāng)前第一個有效值 break; } } tempBuff[0]=DispBuff[0]; //保存對應(yīng)的符號位 for(i=10;i>=m;i--) //高低位數(shù)據(jù)轉(zhuǎn)換存儲位置,高位在前,符號位不變 { 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); //移位距離(既需要增加幾個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: 無case2:break;//矢量2: ADC溢出case4:break;//矢量4: ADC時序溢出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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 入隊(duì)前知識培訓(xùn)課件圖片
- 2025年教育信息化:學(xué)習(xí)在中小學(xué)的應(yīng)用與實(shí)踐
- 露天礦山安全標(biāo)準(zhǔn)化培訓(xùn)資料
- 盡職調(diào)查保密協(xié)議期限
- 三農(nóng)村生態(tài)環(huán)境治理與可持續(xù)發(fā)展路徑選擇
- 2025年寶雞貨運(yùn)從業(yè)資格證網(wǎng)上考試答案
- 零件數(shù)據(jù)采集與逆向工程 習(xí)題答案 任務(wù)三 破損類零件的逆向建模修復(fù)
- 勞動關(guān)系管理與員工離職操作技巧-hr貓貓
- 安全協(xié)議安全責(zé)任協(xié)議書
- 高效團(tuán)隊(duì)協(xié)作事務(wù)文書范例集
- 2025中冶建工集團(tuán)限公司校園招聘114人高頻重點(diǎn)提升(共500題)附帶答案詳解
- (完整版)python學(xué)習(xí)課件
- CNAS-RL01:2019實(shí)驗(yàn)室認(rèn)可規(guī)則
- 2025中國人民解放軍空軍部隊(duì)軍工廠招聘21人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年部門預(yù)算支出經(jīng)濟(jì)分類科目說明表
- 一輪復(fù)習(xí)課件:《資產(chǎn)階級民主革命與中華民國的建立》
- 體育賽事策劃與管理全套課件
- 2024綠化養(yǎng)護(hù)作業(yè)指導(dǎo)書
- 2023年12月大學(xué)英語4級真題(第三套)
- 創(chuàng)傷失血性休克中國急診專家共識(2023)解讀課件
- (完整版)幕墻施工方案
評論
0/150
提交評論