智能數(shù)字萬用表的設(shè)計_第1頁
智能數(shù)字萬用表的設(shè)計_第2頁
智能數(shù)字萬用表的設(shè)計_第3頁
智能數(shù)字萬用表的設(shè)計_第4頁
智能數(shù)字萬用表的設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、闞“先浦學虎HUBEIUMVERSITYOFECONOMICS湖北經(jīng)濟學院電子設(shè)計大賽設(shè)計報告課題名稱:數(shù)字智能萬用表指導教師:汪成義王金庭劉光然學生姓名:汪凡夏晶晶張薇學生院系:電子工程系時間:2011年7月智能數(shù)字萬用表一設(shè)計目的1、培養(yǎng)綜合性電子線路的設(shè)計能力。2、掌握綜合性電子線路的安裝和調(diào)試方法。3、學會基于M3進行軟件設(shè)計。二任務及要求1、任務設(shè)計并制作一臺具有直流電壓、交流電壓和電阻測量功能的智能數(shù)字萬用表。示意圖如圖1所示。功能轉(zhuǎn)換與輸入電路A/D轉(zhuǎn)換器單片機鍵盤與顯示;.圖1智能數(shù)字萬用表示意圖2、要求1、基本要求(1)31數(shù)碼顯示,最大讀數(shù)1999。2(2)直流電壓量程:、

2、2V、20V,精度為1個字;輸入阻抗10ML(3)交流電壓量程:、2V、20V,精度為2個字(以50Hz為基準);輸入阻抗方10a;頻率響應范圍為401000Hz(4)電阻量程:2Q、200Q>2MQ,精度2個字。2、發(fā)揮部分(1)直流電壓測量具有自動量程轉(zhuǎn)換功能。(2)具有“自動關(guān)機”功能,即在測量過程中,若1分鐘內(nèi)無任何鍵按下,儀器會自動關(guān)閉顯示并處于低功耗狀態(tài);再按任意鍵,儀器能返回“自動關(guān)機”前的工作狀態(tài)。(3)具有相對誤差(的測量功能,即在進行某項測量時,首先通過示屏提示用戶從鍵盤輸入標稱值,一旦輸入確認后,儀器能顯示相對誤差中的值。(4)其它。三總體設(shè)計方案1、系統(tǒng)模塊圖根據(jù)

3、題目要求和本系統(tǒng)的設(shè)計思想,系統(tǒng)主要包括圖2所示的模塊:電阻測量電路里 程 自 動 轉(zhuǎn) 換 電 路電測阻被測量輸測直流入kOhm °0.2 k Ohm測交流交測直流轉(zhuǎn)換電路圖2系統(tǒng)模塊框2、總體方案分析若被測量為電阻,則須經(jīng)過電阻測量電路將電阻量轉(zhuǎn)化為直流電壓量后才可以進入量程自動轉(zhuǎn)換電路;若被測量為直流電壓,則可以直接進入量程自動轉(zhuǎn)換電路;若被測量為交流電壓,則需要先經(jīng)過交直流轉(zhuǎn)換電路將交流電壓轉(zhuǎn)換為直流電壓后再進入量程自動轉(zhuǎn)換電路。單片機系統(tǒng)通過對CD4052®片AB端的控制實現(xiàn)量程自動轉(zhuǎn)換。A/D轉(zhuǎn)換電路將測得的模擬量轉(zhuǎn)化為數(shù)字量之后通過單片機系統(tǒng)在液晶顯示屏上顯示出

4、來。四單元電路設(shè)計與計算1、電阻測量電路利用運算放大器采用反相比例運算的方法,將測電阻轉(zhuǎn)化為測電壓,電路圖如下:ETDETL-w1 KOhm圖3電阻測量電路由反相比例電路可知:Uo=(Rx/500)X5V,可推出Rx=UO<100,測量電阻時若輸出電壓Uo=2V則被測電阻Rx=20(?如上圖所示。2、父直流轉(zhuǎn)換電路利電路測量交流電壓時須先將交流轉(zhuǎn)化為直流,這里采用全波精密整流電路,用二極管的單向?qū)щ娦?,運放A1構(gòu)成反相器,運放A2構(gòu)成反相加法器,圖如下所示:20 k Ohm741 + I100 uF10k Ohm-AAA*10kOhm圖4交直流轉(zhuǎn)換電路Uo= - U O1-UI =U|當

5、UI>0時D1導通、D2截止UO1=-2UI當UI<0時D1截止、D2導通UO1=0UO=-UO1-UI=-U|輸入與輸出信號波形如下:圖5交直流轉(zhuǎn)換電路輸入與輸出波形3、量程自動轉(zhuǎn)換電路自動量程轉(zhuǎn)換電路的作用是按輸入信號條件(過量程、欠量程信號)和時鐘信號(EOCDS1DS4發(fā)生相應的量程信號控制。通過單片機讀取MC14433勺數(shù)字信號,通過數(shù)字信號的大小來控制模擬開關(guān),從而改變反饋電阻的大小來實現(xiàn)檔位的不同選擇。模擬開關(guān)的導通由Q3和Q0決定,當被測電壓過量程時(Q3=0且Q0=D,向高量程變化;欠量程時(Q3=1且Q0=D,向低量程變化;當量程適當時,保持原來狀態(tài)不變。其中,

6、Au=-Rf/R,R=10K,如果要實現(xiàn)3個檔位,可以將Rf設(shè)為1k、10k、100k,然后通過控制開關(guān)來接通電阻,從而實現(xiàn)換檔。CD4052g一個雙4選一的多路模擬選擇開關(guān),其使用真值表如表1所示:TNMBA送d率拜共oouDX,OYoo1IX,ITo10NX.2YQ113X3Y1XXNone圖6CD4052芯片真值表應用時可以通過單片機對A/B的控制來選擇輸入哪一路,這里選擇Y通道,電路圖如下:cn語I05J5 10116i-Ui ULU.x IM OUT.YDfOUll*15*TUQkIa>insMegp TPCZF:(!:圖7量程自動轉(zhuǎn)換電路4、A/D轉(zhuǎn)換電路采用MC14433集

7、成芯片MC1443配是一個31/2位A/D轉(zhuǎn)換器,其中集成了雙積分式A/D轉(zhuǎn)換器所有的CMOS8擬電路和數(shù)字電路。具有外接元件少,輸入阻抗高,功耗低,電源電壓范圍寬,精度高等特點,并且具有自動校零和自動極性轉(zhuǎn)換功能。MC1403提供輸出可調(diào)基準電壓Vref,當輸入一個直流電壓時,將進行A/D轉(zhuǎn)換,用單片機來處理MC14433I勺控制信號。當A/D轉(zhuǎn)換結(jié)束時,MC14433勺EOCS唧輸出一個高電平脈沖給單片機,單片機進入中斷處理程序。單片機對MC14433勺DS1DS進行動態(tài)掃描,然后將Q0Q3a行轉(zhuǎn)換之后由LCD顯示。相關(guān)理論推導:雙積分過程可以由下面的式子表示:V01R1C1t2t1 Vx

8、dtR1C1TiV021 t2VREF dtRC1 t1 * *VREF 丁RC1 X因為 VoiV02,故有 Vx9 VrefT1,式中Ti=4000Tcp , T1是定時時間,Tx是變時間,由WG確定斜率,若用時鐘脈沖數(shù)N來表示時間Tx ,則被測電壓就轉(zhuǎn)換成了相應的脈沖數(shù),實現(xiàn)了A/D轉(zhuǎn)換。R1g的參數(shù)計算:_VX(max)TR1C1Vc式中Vc為積分電容上充電電壓幅度,Vc=VddVx(max)V,V二,fclk=66kHZ=當Vx(max)=2V時,代入式1,可得R1=480k,取標稱值470k電路圖如下圖所示:單片機圖8A/D轉(zhuǎn)換電路VESTEicnI1V1011國CTgDU%CPI

9、OfL'POEOL:江EE五軟件設(shè)計1、軟件設(shè)計流程圖:開始初始化進入休眠觸鍵喚醒單片機控圖9軟件設(shè)計流程2、程序代碼:程序清單#include""unsignedlongTheSysClock=UL;=1Busy;WriteNum(bai);WriteNum(shi);WriteNum(ge);WriteData('v');WriteNum(n);WriteNum(c);WriteNum(d);WriteData('v');/定義電阻顯示voiddianzu_judge_display()unsignedcharqian=0,bai

10、=0,shi=0,ge=0;unsignedcharm,n,c,d,dianzu;if(a3&0x08)=0x08)qian=0;elseqian=1;bai=a2;shi=a1;ge=a0;dianzu=(qian*1000+bai*100+shi*10+ge)/10;m=dianzu/1000;n=(dianzu-m*1000)/100;c=(dianzu-m*1000-n*100)/10;d=dianzu%10;WriteCommand(0x85);WriteNum(m);WriteNum(n);WriteNum(c);WriteNum(d);/WriteData('&#

11、39;);voidGPIO_Port_B_ISR(void)unsignedlongulStatus;ulStatus=GPIOPinIntStatus(READDATA_PORT,true);GPIOPinIntClear(READDATA_PORT,ulStatus);if(ulStatus&INT)while(!(flag0=1)&&(flag1=1)&&(flag2=1)&&(flag3=1)scan();GPIOPinWrite(READDATA_PORT,LED,0xff);flag0=0;flag1=0;flag2=0;fl

12、ag3=0;程序清單#include""#include""#defineSysCtlPeriClkGatingSysCtlPeripheralClockGating#defineSysCtlPeriSlpEnableSysCtlPeripheralSleepEnable#defineLED_PERIPHSYSCTL_PERIPH_GPIOA#defineLED_PORTGPIO_PORTA_BASE#defineLED_PINGPIO_PIN_0/定義KEY#defineKEY_PERIPHSYSCTL_PERIPH_GPIOD#defineKEY_P

13、ORTGPIO_PORTD_BASE#defineKEY_PINGPIO_PIN_7voidkeyInit(void)SysCtlPeriEnable(KEY_PERIPH);GPIOPinTypeIn(KEY_PORT,KEY_PIN);GPIOIntTypeSet(KEY_PORT,KEY_PIN,GPIO_LOW_LEVEL);GPIOPinIntEnable(KEY_PORT,KEY_PIN);IntEnable(INT_GPIOD);IntMasterEnable();/定義睡眠程序voidsleep(void)jtagWait();clockInit();keyInit();Sys

14、CtlPeriEnable(LED_PERIPH);GPIOPinTypeOut(LED_PORT,LED_PIN);GPIOPinWrite(LED_PORT,LED_PIN,0x00);SysCtlDelay(2500*(TheSysClock/3000);SysCtlPeriClkGating(true);SysCtlPeriSlpEnable(KEY_PERIPH);for(;)GPIOPinWrite(LED_PORT,LED_PIN,0xff);SysCtlSleep();GPIOPinWrite(LED_PORT,LED_PIN,0x00);SysCtlDelay(2500*(T

15、heSysClock/3000);voidGPIO_Port_D_ISR(void)unsignedlongulStatus;ulStatus=GPIOPinIntStatus(KEY_PORT,true);GPIOPinIntClear(KEY_PORT,ulStatus);if(ulStatus&KEY_PIN)SysCtlDelay(10*(TheSysClock/3000);while(GPIOPinRead(KEY_PORT,KEY_PIN)=0);SysCtlDelay(10*(TheSysClock/3000);程序清單#defineSCKLGPIOPinWrite(CT

16、L_PORT,SCK,0x00);/定義信#defineSID_LGPIOPinWrite(CTL_PORT,SID,0x00);#defineCS_LGPIOPinWrite(CTL_PORT,CS,0x00);#definePSB_LGPIOPinWrite(CTL_PORT,PSB,0x00);#defineSCK_HGPIOPinWrite(CTL_PORT,SCK,0xFF);號輸出高電平#defineSID_HGPIOPinWrite(CTL_PORT,SID,0xFF);#defineCS_HGPIOPinWrite(CTL_PORT,CS,0xFF);#definePSB_HG

17、PIOPinWrite(CTL_PORT,PSB,0xFF);號輸出低電平/定義信#defineSIDREADGPIOPinRead(CTL_PORT,SID);/定義讀回的數(shù)據(jù)#defineSIDINGPIOPinTypeGPIOInput(CTL_PORT,SID);/定義SID信號為輸入#defineSID_OUTGPIOPinTypeGPIOOutput(CTL_PORT,SID);voidLCD_init(void);voidSendByte(unsignedcharDbyte);unsignedcharReceiveByte(void);voidCheckBusy(void);vo

18、idWriteCommand(unsignedcharCbyte);voidWriteData(unsignedcharDbyte);unsignedcharReadData(void);voidDelay(unsignedintMS);voidDelayKey(unsignedintSecond,unsignedintMS100);voidLcmInit(void);voidLcmClearTXT(void);voidPutStr(unsignedcharrow,unsignedcharcol,unsignedchar*puts);voidWriteNum(unsignedcharnum);

19、#endif程序清單#ifndef_TEST_H_#define_TEST_H_#include""#include""#defineREADDATA_PERIPHSYSCTL_PERIPH_GPIOB#defineREADDATA_PORTGPIO_PORTB_BASE#defineREADDATAGPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0#defineINTGPIO_PIN_4#defineLEDGPIO_PIN_5#defineSCAN_PERIPHSYSCTL_PERIPH_GPIOA#defineSC

20、AN_PORTGPIO_PORTA_BASE#defineSCANGPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0#defineOUTPUT_PERIPHSYSCTL_PERIPH_GPIOE#defineOUTPUT_PORTGPIO_PORTE_BASE#defineOUTPUTGPIO_PIN_1|GPIO_PIN_0voidscan(void);voidzhiliu_judge_display(void);voidjiaoliu_judge_display(void);voiddianzu_judge_display(void);voiddisplay_wucha_val(void);#endif六系統(tǒng)聯(lián)調(diào)、測試與分析1、測試使用的儀器(1) 函數(shù)信號發(fā)生器(2) 直流電源(3) 示波器(4) 數(shù)字萬用表2、系統(tǒng)聯(lián)調(diào)測試結(jié)果(1)直流電壓的測試測試方法:通過單片機系統(tǒng)選擇直流電壓檔,將直流電源作為整機系統(tǒng)的輸入端,在LCD上顯示出所測直流電壓值。測試結(jié)果:檔位測得電壓實際電壓誤差(的200mV78mV74mV5134mV126mv174mV167mV2V506mV483mV992mV620V交流電壓的測試測試方法:通過單片機系統(tǒng)選擇交流電壓檔,由函數(shù)信號發(fā)生器提供一個正弦交流電壓,作為整機系統(tǒng)的輸入端,最后在LCD上顯示出所測交流

溫馨提示

  • 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

提交評論