基于單片機的電流電壓測量系統設計_第1頁
基于單片機的電流電壓測量系統設計_第2頁
基于單片機的電流電壓測量系統設計_第3頁
基于單片機的電流電壓測量系統設計_第4頁
基于單片機的電流電壓測量系統設計_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

#表3.1真值表輸\出\(-0?2~0?2V)(0?2~2V)(2~20V)(20~100V)(100~200V)(200~400V)(400~600V)(600~800V)(800~1000V)>1000VA1111100000B1110011000C1101010100INH1000000001檔位狀態截止0.2~2V2~20V20~100V100~200V200~400V400~600V600~800V800~1000V截止表3.2譯碼表輸入值輸出值ABCINHY0Y1Y2Y3Y4Y5Y6Y7111100000000111000000001110000000010101000000100100000001000011000010000010000100000001001000000000010000000000100000000根據芯片輸入、輸出的引腳特性,其電路接線圖如圖3.7所示。輸入信號分壓等變換后送入CD4051的X0-X7,8個通道。其中1個控制引腳:INH是4051的禁止端,為低電平開啟,INH=1模擬開關被禁止工作,INH=0時,由A、B、C上的信號來控制某一路的選通。電路引腳中,若A、B、C無輸入或懸空時,Y0輸出1,控制檔位在最高量程電壓檔位上,起到保護電路的作用。

X?3X14X15XJ2X4TX?3X14X15XJ2X4TX55X62X74GNBAlFbicF3INTO7圖3.7檔位判斷電路3)量程自動選擇總電路根據上述研究,可得量程自動轉換電路如圖3.8所示。路中所用的基準電壓都是2V,可用同一直流電源提供。穩壓管均采用2.8V工作電壓的穩壓管。3.2.3■1111-UIUVD模數轉DC08!09轉用A腳接至Cpu至CPU3.2.3■1111-UIUVD模數轉DC08!09轉用A腳接至Cpu至CPU的■rwmrmmr圖3.8量程自動選擇總電路換芯接至CPU的P3.7;0E引腳接至C,米集信號由-米丿與ALE引三位地址線共同接地,表示對INT0的的P1口;其START腳;A、B、C;數字量輸出的P3.6,EOC引腳接號進行模數轉換。電INT0的輸入端口接一選擇開關電路,用以判斷對電壓測量還是對電流測量。ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變為高電平,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態門打開,轉換結果的數字量輸出到數據總線上。主要特性1)8路8位A/D轉換器,即分辨率8位。2)具有轉換起停控制端。3)轉換時間為100“s。4)單個+5V電源供電。5)模擬輸入電壓范圍0?+5V,不需零點和滿刻度校準。6)工作溫度范圍為-40?+85攝氏度。7)低功耗,約15mW。外部特性(引腳功能)ADC0809芯片有28個引腳,采用雙列直插式封裝,各引腳功能如下:IN0-IN7:8路模擬量輸入端。D0-D7:8位數字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。ALE:地址鎖存允許信號。高電平時,把三位地址信號送入地址鎖存器,經譯碼選擇相應的模擬輸入通道,使用時,該信號可以和STARE信號連在一起,以便同時鎖存通道地址和啟動A/D轉換。高電平有效。START:A/D轉換啟動信號,輸入,高電平有效。EOC:A/D轉換結束信號輸出端口,轉換期間一直為低電平。當A/D轉換結束時,此端輸出一個高電平(有效)。OE:數據輸出允許信號輸入端口,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準電壓。Vcc:電源,單一+5V。GND:地。

3.2.4顯示模塊(1)數碼管的選取LED(發光二極管),它是一種由某些特殊的半導體材料制作成的PN結。其發光強度與其正向壓降VF和電流IF的乘積有關,其乘積越大,則發光強度越大。工作電流一般在5MA~20MA。從系統整體考慮,選用的是LDS-5101BH型七段LED數碼管。(2)驅動芯片選用74LS164芯片°74LS164是串行輸入/8位并行輸出的移位寄存器。每片74LS164有兩個串行數據輸入端和一個同步移位脈沖輸入端,以及8個并行輸出口。時鐘CLK端上每一個上升沿都會使該芯片的8位數據輸出右移一位。顯示模塊總體原理圖如圖3.9所示:Ginzut+v-tc札EQHQhQ-QB匹FQEQDCLL卅LSI弭1++Jv1131212ktip3Ginzut+v-tc札EQHQhQ-QB匹FQEQDCLL卅LSI弭1++Jv1131212ktip311Bl+10B2J9+JvE3ISIXDGin=in+札EQHQhQ-QB匹FQEQDCLLGHIKLKET+LSIH1++5v113E:71212Bi:ip311EJCl+10B+C2Jy+5vC3iSI2TDGin=in+札EQHQhQ-QB匹FQEQDCLLGHIKLKJ+LSIH1++Jv113C71212Ctip311C5DI+10C+D2J9+JvD3iSIXDGin=in+kVggEUHQhQGQBnFQCQEnnCLE:.&10ZCLE1++5v_13D7—12nt-11D5-10E4T+LSIHGinzuttkecnDPY^7-SEG_ripDPY_7-SEG_ripnpY^7-SEG_npDPY^7-SEG_rip圖3.9顯示模塊原理圖3.2.5通信模塊(1)單片機與pc機通信的概述在實際應用中,因為單片機功能有限,因而在較大的測控系統中,常常把單片機應用系統作為前端機(也稱為下位機或從機)直接用于控制對象的數據采集與控制,而把PC機作為中央處理機(也稱為上位機或主機)用于數據處理和對下位機的監控管理。它們之間的信息交換主要是采用串行通信,此時單片機可直接采用串行接口,耐C機可利用其配置的8250或8251、16450等可編程串行接口芯片。實現單片機與PC機串行通信的關鍵是在通信協議的約定上要一致,例如,應設定相同的波特率及幀格式等。在正式工作之前,雙方應先互發聯絡信號,以確保通信收發數據的準確性。(2)本設計的通信

串行通信采用MAX232電平轉換電路,可將單片機的TTL電平轉換為PC機的串口電平。使單片機的TTL電平與RS232的電平實現匹配。RS232使用-3~-25V,表示數字1;3~25V表示數字0。RS232在空閑時處于邏輯“1”狀態,在開始傳送時,首先產生一個起始位,起始位為一個寬度的邏輯“0”,緊隨其后的為所需要傳送的數據,所要傳送的數據由最低位開始依次送出,并以一個結束位標志該字節傳送結束,結束位為一個寬度的邏輯“1”狀態。單片機與PC機的通信連接圖如圖3.10所示,下位機(單片機)將接收的數據從串行口P3.0、P3.1輸出,上位機接收到數據后在屏幕上進行顯示。上位機RXDTXD〔上位機RXDTXD〔PC)GNDTXDRXDGND下位機MAX232A(8051)圖3.10單片機與PC機通信連接圖3.2.6電源部分單片機電源采用自制+5V電源供電。其原理圖如圖3.11所示4系統的軟件設計4.1軟件的總體設計原理系統上電后,初始化程序包括對各種參數進行初始化、清零以及一些端口屬性的設定,開始進行量程判斷,再調用A/D轉換子程序,對輸入信號進行A/D模數轉換,轉換結束,為提高測量精度,系統對輸入電壓連續采集10次進行滑動平均值濾波處理,其結果作為對應的電壓值。再調用LED顯示子程序,顯示所測量的電壓或電流值,最后調用通信子程序實現串口通信。系統總流程圖如圖4.1所示:2程序初始化量程選擇子程序調用A/D轉換程序數字濾波數值轉換調用顯示子程序圖4.1系統總流程圖結束

4.1.1A/D轉換程序設計系統上電后,初始化各參量。開啟A/D轉換,調用延時程序,接著判斷A/D轉換是否結束,結束則清標志位、取數據,否則再延時,繼續判斷A/D是否結束。總程序結束。流程圖如圖4.2所示:數字濾波,即在數據采集系統里,由于數據采集環境的電磁干擾,傳感器和放大器自身的影響,往往會含有多種頻率成分的噪聲信號,嚴重時,這種噪聲信號會淹沒待提取的輸入信號,使測試系統無法獲取被測信號。在這種情況下,為了濾除干擾需要采取濾波措施,抑制不需要的雜散信號,使系統的信噪比增加。如果對模擬信號進行離散采樣,通過軟件算法對采樣信號進行平滑加工,增強有效信號,消除或減少噪聲,從而達到濾波的目的,這種濾波方法稱為數字濾波方法。數字濾波完成的功能是將一組輸入數字序列按照一定的算法轉化為一組輸出數字序列,經過數字濾波后的輸出序列比輸入序列更平滑和易于處理。與此對應的就是模擬濾波,模擬濾波主要有無源濾波(直接用電阻、電容、電感等不外接電源的元件組成的)與有源濾波(如運算放大器等需要外接電源組成的),其目的是將信號中的噪音和干擾濾去或者將希望得到的頻率信號濾出為系統所用。數字濾波的出現克服了模擬濾波的很多不足,具有以下優點:是用程序實現的,不需要增加硬設備,所以可靠性高,穩定性好。可以對頻率很低的信號實現濾波,克服了模擬濾波的缺陷。可以根據信號的不同,采用不同的濾波方法或參數,具有靈活、方便、功能強的特點。(2)數字濾波的方法數字濾波的方法有很多種,常用的數字濾波方法有:算術平均值濾波、加權平均值濾波、滑動平均值濾波、中值濾波等,可以根據不同的測量參數進行選擇。1)算術平均值濾波算術平均法是對一點多次采樣,然后取其平均值,并用平均值作為該點的采樣結果。該方法適用于對具有隨機干擾的信號進行濾波。這種濾波的效果與采樣數目有較大的關系,當樣本增多時,信號會變得更平滑,但可能會掩蓋某些變化;若樣本較少,信號的平滑度降低,但對數據的變化較為敏感。實際中采樣數目就具體情況而定,對于非常平穩的信號,可以將樣本數增大,但對于變化頻繁的信號,則應將樣本數減至3~4。這種濾波方法對周期性的干擾有良好的抑制作用。N的取值取決于平滑度和靈敏度的要求,N增大則平滑度提高,靈敏度減小。2)加權平均值濾波算術平均濾波法存在平滑性和靈敏度的矛盾。采樣次數太少,平滑效果差;次數太多,靈敏度下降,對參數的變化趨勢不敏感。為協調兩者關系,可采用加權平均濾波。對連續N次采樣值,分別乘上不同的加權系數之后再求累加和,加權系數一般先小后大,以突出后面若干采樣的效果,加強系統對參數變化趨勢的辨別。各個加權系數均為小于1的小數,且滿足總和等于1的約束條件。這樣,加權運算之后的累加和即為有效采樣值。3)滑動平均值濾波滑動平均值濾波是把連續取N個采樣值看成一個隊列,隊列的長度固定為N,每次采樣到一個新數據放入隊尾,并扔掉原來隊首的一次數據?(先進先出原則),把隊列中的N個數據進行算術平均運算,就可獲得新的濾波結果。算術平均值法和加權平均值濾波,都需要連續采樣N個數據,然后求平均值或加權平均值。需要時間較長,故檢測速度較慢。因此可以采用滑動平均值濾波,其主要用于實時性比較強的系統。在這些系統中,需要對A/D采樣值進行平均值濾波,而沒有足夠的時間允許A/D進行連續的多次采樣,這時采用滑動平均值濾波,可以達到濾波效果。滑動平均濾波算法只采樣一次,將這一次采樣值和過去的若干次采樣值一起求平均值,得到的有效采樣值即可投入使用。如果取N個采樣值求平均,RAM中必須開辟N個數據的暫存區。每次新采集一個數據便存入暫存區,同時去掉一個最老的數據,保持這N個數據始終是最近的數據,而后求包括新數據在內的N個數據的算術平均值或加權平均值。這樣,每進行一次采樣,就可以算出一個新的平均值,從而大大加快了數據處理的速度。這種濾波方法兼容了另兩種濾波算法的優點,既能有效的抑制脈沖干擾和周期性干擾,又能提高濾波算法的靈敏度。本設計采用滑動平均值濾波,先初始化,再讀入電壓值Vi,設滑動平均濾波隊列長度為N,當判斷i是否大于N,是則刪除隊首的數據;求新隊列的平均值;否則使i=i+l,繼續讀入電壓值,直至i>N。其流程圖如圖4.3所示:圖4.3滑動平均濾波流程4.1.3量程自動轉換的程序設計程序開始后先初始化,首先設置量程最大檔,接著存儲采樣值i,并將其與最大量程進行比較,若超出量程范圍,則有溢出顯示,系統結束,否則進行下一輪的比較,直到選擇出合適的檔位。軟件實現流程圖如圖4.4所示圖4.4量程自動轉換流程圖5系統調試及性能分析5.1調試與測試采用Keil軟件進行源程序編譯,用Proteus軟件對其進行仿真。同時進行硬件電路板的設計制作。燒好程序后進行軟硬件聯調,最后進行端口電壓、電流的對比測試.5.2性能分析由于單片機為8位處理器,當輸入電壓為5V時,輸出數據值為255(FFH)。因此單片機最大的數值分辨率為0.0196V(5/255)。這就決定了該電壓表、電流表的最大分辨率(精度)只能達到0.0196V。測試時電壓/電流數值的變化一般以0.02的幅度變化。如果要想獲得更高的精度,應采用12位、13位的A/D轉換器。6結束語6.1設計總結本次設計的課題是《基于單片機的電壓電流測量系統》,首先從課題中我們可以看出,這次設計主要涉及到的是關于單片機的知識。而之所以使用單片機作為本次設計的核心,就個人理解而言,單片機現在是社會上應用比較廣泛的器件,并且能在設計的同時鍛煉大家的語言編程能力,養成良好的語言編程風格。6.2設計的心得課程設計是一個綜合性的實踐課程,是將理論聯系到實際中的實驗過程,是考察學生就最近知識以及綜合知識掌握能力,同時也能讓同學更好的理解甚至于學習相關內容。從拿到本次設計任務后,開始查閱資料,對課設計課題進行論證,到設計電路,軟件上的程序編寫到仿真、調試,硬件上元器件確定、選型及電路搭建,軟硬件聯調,直到論文文本的撰寫。最終完成所設計項目數字電壓、電流表的設計,這一過程鍛煉了我們對單片機應用系統的設計及動手能力。近兩周的課程設計實踐,使我深深的體會到理論結合實際的重要性,在設計過程中要特別細心,在軟件中可能是一個標點或一個字母的問題,而導致運行錯誤;在硬件搭建中更是如此,焊接、連線的牢固性,還要防止短路和斷路。所以每一個環節都是不可大意的。另外,大家在一起討論,互相學習,讓我更深地體會到同學間互相幫助的作用。在軟、硬件調試過程中,真的培養了我的耐心。軟件的調試一一修改一一再調試,如此反復,最終完成了設計的部分任務,但設計還存在很多問題,沒有完全達到設計要求。而且精度也存在問題,有待改進。在不斷的學習與討論中,我對單片機知識有了更為深刻的認識與體會。在收獲的同時,我也受益非淺深感自身理論知識的欠缺與動手能力的不足,在以后的學習及設計中,還要不斷的努力。由于時間的緊缺和許多課業的繁忙,此次設計沒有很好的完成。但是,從基礎而言,我們還沒有放棄。相信以后我們會以更加積極地太對對待我們的畢業設計,甚至于今后的人生。7致謝詞本次課程設計結束了,首先要感謝此次給與指導的王勝老師。由于設計時間的匆忙性,本次設計并沒有要求大家以實物為設計結點。所以有很多問題存在,甚至于是很大的課題謬論,但王勝老師給與的指導都能很好的解決此類問題。他總是耐心地和我們一起探討、分析,再讓我們自己解決。這樣,我們不但解決了問題,還從中學到了更多知識。王老師淵博的知識、嚴謹的作風、以及友善的態度是我以后學習和生活上的榜樣。同時,我要感謝我們班的幾位同學,當我遇到一些措手不及又難以解決的問題時,是在他們的熱心幫助下,才一一得以解決。最后,要感謝我們系里給我們這次理論結合實踐的機會,一次作為電子系學生的最有意義的作業。本次設計結束的同時也意味著一次良好的知識學習機會也隨之而逝,并且在接下來的大學課程中,都不會有此類的機會留于我們。附錄附錄1參考文獻[1]《單片機原理及接口技術》余錫存曹國華西安電子科技大學2000.7[2]《單片機典型模塊設計實例導航》求是科技人民郵電出版社2005.6[3]《MCS-51單片機應用開發實用子程序》邊春遠人民郵電出版社2005.9[4]《單片機在電子電路設計中的應用》赫建國等清華大學出版社2006.5[5]《電子技術基礎數字部分》康華光高等教育出版社2004.4[6][5]《電子技術基礎數字部分》康華光高等教育出版社2004.4[6]《單片機C語言編程與示例》趙亮等人民郵電出版社2003.9清華大學出版社1999.12高等教育出版社2004.7[7]清華大學出版社1999.12高等教育出版社2004.7[8]《電子技術基礎模擬部分》康華光[9]《單片機原理及應用技術》胡輝、王曉等中國水利水電出版社2005.7[10]《電子測量技術基礎》楊永瑞、劉振起等西安電子科技大學出版社2006.1[11]《智能電壓表中量程自動轉換電路研究》張國恒等西北師范大學學報2006.4[12]《電路?模擬.A/D轉換及D/A轉換》童永承、顧家林等科學出版社2004.7[13]《單片機原理與應用技術》魏立峰、王寶興北京大學出版社2006.8[14]《8051單片機基礎教程》陳明熒北京:科學出版社2003[15]《單片機應用系統設計與產品開發》馮建華、趙亮人民郵電出版社2004.11[16]《新編MCS-51單片機應用技術》張毅剛等哈爾濱工業大學出版社2003.7[17]《單片機應用開發實例》劉文濤清華大學出版社2005.9[18]《單片機語言C51程序設計》趙文博等人民郵電出版社2005.010[19]《51單片機應用程序開發典型實例》戴佳、苗龍等中國電力出版社2005.9[20]《精通8051程序設計》[美]MykePredko人民郵電出版社2006.3

附錄2系統總電路圖3.f-J--亍+“.J■.T卜nra3.f-J--亍+“.J■.T卜nra廠7a附錄3源程序#ineludevreg52.h>#inelude<intrins.hdefineByteunsignedchardefineWordunsignedintsbitDisClk=P2A7;sbitDisDat=P2A6;sbitA1=P0A0;sbitB1=P0A1;sbitC1=P0A2;sbitD1=P0A3;/*功能:ADC0809接口程序目標芯片:AT89S52單片機占用資源:采集到的數字量接P1口、MCUADC0809變量名稱P3.7START/ALEADC_STP3.5EOCADC_EOCP3.6OEADC_OEALECLK(經二分頻)無用戶接口函數:ByteADC0809(void)*/#defineAdcDataP1//ADC輸出的數字量接單片機P1口#defineN10〃滑動平均濾波隊列長度ByteValueBuf[N];〃滑動平均濾波隊列ByteFilterCnt=0;//隊列指針sbitADC_ST=P3A7;//START&ALEsbitADC_EOC=P3A5;//EOCsbitADC_OE=P3A6;//OUTPUTENABLE--OEByteADC0809(void){Bytei;

ADC_ST=1;for(i=10;i>0;i--);〃啟動ADC0809,鎖存轉換通道地址,開始轉換〃微秒級延時,保持高電平一段時間ADC_ST=O;while(!ADC_EOC)ADC_0E=1;i=AdcData;ADC_OE=0;return(i);〃等待ADC0809轉換結束//使能ADC0809輸出//MCU采集ADC0809的數字量//關ADC0809ADC_ST=O;while(!ADC_EOC)ADC_0E=1;i=AdcData;ADC_OE=0;return(i);}BytePingFilter(void)〃滑動平均值濾波//}BytePingFilter(void)〃滑動平均值濾波//======================================================================{intCount;intSum;ValueBuf[FilterCnt++]=ADC0809();if(FilterCnt==N){FilterCnt=0;}for(Count=0;CountvN;Count++){Sum+=ValueBuf[Count];}return(Byte)(Sum/N);//===========================================================================}/*數碼管串行顯示程序*/voidDisSerial(Byten){Bytei;for(i=0;i<8;i++){DisDat=(bit)(n&0x80);n<v=1;DisClk=1;_nop_();DisClk=0;_nop_();}}共陽數碼管串行LED顯示不帶小數點的avoidShow(Bytea){unsignedcharcodeled_anti[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0

溫馨提示

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

評論

0/150

提交評論