




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于51單片機數(shù)字萬用表摘要:本設計采用AT89C52為主控芯片配以振蕩電路設計設計了一個數(shù)字萬用表,可用于測量直流電壓,直流電流,電阻和電容,并配以檔位轉換。本系統(tǒng)使用ADC0832作為數(shù)據(jù)轉換芯片,LM358作為放大芯片,通過LCD1602顯示,各模塊主要通過AD轉換以及電壓放大實現(xiàn)測量功能。緒論:數(shù)字多用表(GMM)就是在電氣測量中要用到的電子儀器。它可以有很多特殊功能,但主要功能就是對電壓、電阻和電流進行測量。傳統(tǒng)的指針式萬用表功能單精度低,不能滿足數(shù)字化時代的需求,采用單片機制作的數(shù)字萬用表,具有精度高、抗干擾能力強,可擴展力強、集成方便等優(yōu)點,目前,由各種單片機芯片構成的數(shù)字電萬用表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領域,顯示出強大的生命力??傮w設計設計方案:電壓分壓電路AD電路單片機顯示電路電流放大電路AD電路電阻晶振電路振蕩電路放大電路路路電容功能開關1.電壓測量原理與AD轉換電路ADC0832是美國國家半導體公司生產(chǎn)的一種8 位分辨率、雙通道A/D轉換芯片。其最高分辨可達256級,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入在05V之間。芯片轉換時間僅為32S,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉換速度快且穩(wěn)定性能強。獨立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過DI 數(shù)據(jù)輸入端,可以輕易的實現(xiàn)通道功能的選擇。本系統(tǒng)只對CH0 進行單通道轉換。電壓信號輸入單片機顯示AD轉換分壓電壓測量流程圖對于本設計分壓電路模塊介紹之前首先分析以下兩種設計方案。多量程分壓電路多量程分壓器原理上述兩圖所制作的多量程電壓測量,其內阻比較小,不能達到測量要求,對電路做以下改進。對于本次設計的電壓模塊只設置5V,30V兩個檔位,如圖直接采用一組分壓電路既可達到要求。2.電流測量原理與放大電路對于電流模塊此處給予多種方案:(本系統(tǒng)采用的方案二)方案一:原理:通過改變檢流電阻的大小實現(xiàn)不同檔位的轉換。圖中保險絲可保護電流過大,二極管防止電壓過大,當二極管兩端電壓達到導通電壓,檢流電阻連端電壓將達到穩(wěn)定,從而有效的控制輸入電壓的大小。方案二:電流測量原理與方案一基本相同,但在相同電流的測量上此電路比方案一電路的內組更小,由于加入了運算放大器,所以最大的輸出電壓不會超過電源電壓(實驗數(shù)據(jù)顯示不會超過3.6V)并不用擔心檢流電阻兩端電壓大小。而且此方案還有一個最大的優(yōu)勢,它的分辨率更高,理由如下:根據(jù)ADC0832的最小分辨率x可知,此方案中測量電流的最小分辨電流i滿足i*R*k=x(R為檢流電阻,k為放大器放大倍數(shù)),得到i=x/(R*k)在方案一中,i=x/R,由于電阻材質的問題其本身電壓不能超過額定電壓,在量程相同的情況下Imax*R*k=3,Imax*RR即ii.(LM358 內部包括有兩個獨立的、高增益、內部頻率補償?shù)碾p運算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關。它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運算放大器的場合。)單片機處理3.電阻模塊的測量原理顯示AD轉換放大電壓選擇量程接入電阻放大電路放大器的最大放大電壓為3V左右(實際放大為3.5V左右,這里取3V),則輸入電壓滿足5*10v(1010+R).v是最小輸入電壓。根據(jù)上述說明可以得出各個檔位測量范圍。檔位1(V=0.05,v=0.0003.),R148990檔位2(V=0.005, v=0.00003.),8990R1498990檔位3(V=0.0005,v=0.000003.), 98990R14998990.如果擋位1取9000,檔位2取99000,檔位3取999000.在上述電路制作成功后并沒有達到比較好的測量效果,對于大電阻的測量測量值往往會遠小于實際電阻值。針對這個問題,在對放大器各級電壓比較后發(fā)現(xiàn)主要是由于大電阻測量時輸入電壓太小以至于達不到放大器的正常放大電壓,因此上述電路在很大程度上限制了測量電阻的范圍。對電路做以下改變:直接將前兩級放大合并為一級放大,達到減小放大的門款電壓。其他測量方法:原理圖如下:通過恒流源(恒流電路此處用電流源代替)給待測電阻供電,放大待測電阻的電壓,輸出給電壓表。此方法和上述方案原理上的差別在于一個利用的是電流恒定,另一個利用的是電壓恒定,對于電流的恒定,一方面,它的電路設計比較復雜,另一方面,如果電流源電路設計的不太理想,電流源的大小變化會產(chǎn)生很大的測量誤差。不過它可以使測量誤差比較穩(wěn)定,在測量誤差不大的情況下電壓恒定電路的誤差變化可以忽約嗎,因此本設計不采用這種設計思路。4.電容的測量原理與振蕩電路:單片機電容充放電選擇量程接入電容顯示根據(jù)555定時器構成單穩(wěn)態(tài),產(chǎn)生脈沖波形,通過單片機讀取高低電平得出頻率,通過公式換算得到電容值。 總結:整個設計基本上是圍繞放大器所組成的放大電路展開,放大器的放大誤差直接決定著測量的誤差。此設計設計電路簡單,測量精度比較小。而且材料成本低,對于直流電路的測量有著很好的實用性。程序主函數(shù)#includelcd.hsbit AAD_CS=P10;sbit AAD_D0=P12;sbit AAD_D1=P13;sbit AAD_CLK=P11;sbit AVD_CS=P14;sbit AVD_D0=P16;sbit AVD_D1=P17;sbit AVD_CLK=P15;sbit key_boat=P33; unsigned char AAD_read(),AVD_read();unsigned char dat4=0,0,0,0;unsigned char date=0,date1=0,key=0,time=18;unsigned long add; void main() init();TH0=0x3c;TL0=0xb0;TH1=0x3c;TL1=0xb0;TMOD=0x11;EA=1;EX0=1;EX1=1;IT0=1;IT1=1;ET0=1;ET1=1;PT0=0;PX0=0;PX1=1;TR0=1;while(1); void capac() interrupt 0 /電容測量,記數(shù)中斷add+;TR0=1; void time_ADC() interrupt 1/其他測量,數(shù)據(jù)采集周期 time-; if(time=0) if(date=1) /電壓檔位1 add=AVD_read(); dat0=add*196/10000; dat1=(add*196/1000)%10; dat2=(add*196/100)%10; writedate(0x80,dat0+0); writedate(0x81,.); writedate(0x82,dat1+0); writedate(0x83,dat2+0); if(date=2)/電壓檔位2 add=AVD_read(); dat0=add*1176/100000; dat1=(add*1176/10000)%10; dat2=(add*1176/1000)%10; dat3=(add*1176/100)%10; writedate(0x80,dat0+0); writedate(0x81,dat1+0); writedate(0x82,.); writedate(0x83,dat2+0); writedate(0x84,dat3+0); if(date1=1) /電流檔位1 add=AAD_read(); if(add163) dat0=(add*1000/163)/100; dat1=(add*1000/163)/10)%10; dat2=(add*1000/163)%10; writedate(0xc0,dat0+0); writedate(0xc1,.); writedate(0xc2,dat1+0); writedate(0xc3,dat2+0); else writedate(0xc0,1); if(date1=2) /電流檔位2 add=AAD_read(); if(add173) dat0=(add*1000/173)/100; dat1=(add*1000/173)/10)%10; dat2=(add*1000/173)%10; writedate(0xc0,dat0+0); writedate(0xc1,dat1+0); writedate(0xc2,.); writedate(0xc3,dat2+0); else writedate(0xc0,1); if(date1=3) /電流檔位3 add=AAD_read(); if(add13) dat0=(153000/add-1010)/1000; dat1=(153000/add-1010)/100)%10; dat2=(153000/add-1010)/10)%10; dat3=(153000/add-1010)%10; writedate(0xc0,dat0+0); writedate(0xc1,dat1+0); writedate(0xc2,dat2+0); writedate(0xc3,dat3+0); else writedate(0xc0,1); if(date1=5) /電阻檔位2 add=AAD_read(); if(add16) dat0=(168300/add-101)/1000; dat1=(168300/add-101)/100)%10; dat2=(168300/add-101)/10)%10; dat3=(168300/add-101)%10; writedate(0xc0,dat0+0); writedate(0xc1,dat1+0); writedate(0xc2,.); writedate(0xc3,dat2+0); writedate(0xc4,dat3+0); else writedate(0xc0,1); if(date1=6) /電阻檔位3 add=AAD_read(); if(add15) dat0=(1545300/add-101)/10000; dat1=(1545300/add-101)/1000)%10; dat2=(1545300/add-101)/100)%10; dat3=(1545300/add-101)/10)%10; writedate(0xc0,dat0+0); writedate(0xc1,dat1+0); writedate(0xc2,dat2+0); writedate(0xc3,.); writedate(0xc4,dat3+0); else writedate(0xc0,1); if(date1=7)/電容檔位1TR0=0;if(add51)dat0=(505000/add)/1000;dat1=(505000/add)/100)%10;dat2=(505000/add)/10)%10;dat3=(505000/add)%10;writedate(0x80,dat0+0); writedate(0x81,dat1+0); writedate(0x82,dat2+0); writedate(0x83,.); writedate(0x84,dat3+0); else writedate(0x80,1); add=0;if(date1=8)/電容檔位2TR0=0;if(add51)dat0=(505000/add)/1000;dat1=(505000/add)/100)%10;dat2=(505000/add)/10)%10;dat3=(505000/add)%10;writedate(0x80,dat0+0); writedate(0x81,dat1+0); writedate(0x82,dat2+0); writedate(0x83,.); writedate(0x84,dat3+0); else writedate(0x80,1); add=0; if(date1=9) /電容檔位3(此檔位不可用)TR0=0;writedate(0xc0,add/10000000+0); writedate(0xc1,(add/1000000)%10+0);writedate(0xc2,(add/100000)%10+0);writedate(0xc3,(add/10000)%10+0);writedate(0xc4,(add/1000)%10+0);writedate(0xc5,(add/100)%10+0);writedate(0xc6,(add/10)%10+0);writedate(0xc7,(add)%10+0);add=0; time=18; TH0=0x3c;TL0=0xb0; void keyboat() interrupt 2 /功能轉換開關 unsigned char trange=200; if(key_boat=0) delay(50); if(key_boat=0) key+; TR0=0; if(key11)key=1;TR0=1; writeadd(1); switch(key) case 1: writedate(0x80+13,U);writedate(0x80+14,5); writedate(0x80+15,v);break; case 2: writedate(0x80+12,U) ;writedate(0x80+13,3); writedate(0x80+14,0); writedate(0x80+15,v);break; case 3: writedate(0xc0+11,I) ;writedate(0xc0+12,1); writedate(0xc0+13,0); writedate(0xc0+14,m);writedate(0xc0+15,A);break; case 4: writedate(0xc0+11,I) ;writedate(0xc0+12,8); writedate(0xc0+13,0); writedate(0xc0+14,m);writedate(0xc0+15,A);break; case 5: writedate(0xc0+10,I) ;writedate(0xc0+11,1); writedate(0xc0+12,5);writedate(0xc0+13,0); writedate(0xc0+14,m);writedate(0xc0+15,A);break; case 6:writedate(0xc0+13,R);writedate(0xc0+14,9); writedate(0xc0+15,K);break; case 7: writedate(0xc0+12,R) ;writedate(0xc0+13,9); writedate(0xc0+14,9); writedate(0xc0+15,K);break; case 8: writedate(0xc0+11,R) ;writedate(0xc0+12,9); writedate(0xc0+13,9); writedate(0xc0+14,9);writedate(0xc0+15,K);break; case 9: writedate(0x80+12,C); writedate(0x80+13,=); writedate(0x80+14,u);writedate(0x80+15,F);break; case 10:writedate(0x80+12,C); writedate(0x80+13,=); writedate(0x80+14,n);writedate(0x80+15,F);break; case 11:writedate(0x80+10,e) ;writedate(0x80+11,r); writedate(0x80+12,r);writedate(0x80+13,o); writedate(0x80+14,r);break; date=key; date1=key-2; delay(50); while(key_boat=0&trange) trange-; key_boat=1; TR0=1; unsigned char AAD_read() /電流測量端數(shù)據(jù)接收函數(shù)unsigned char dat,i,test=0,adval=0; AAD_CLK=0;/ AAD_D1=1; _nop_(); AAD_CS=0; _nop_(); AAD_CLK=1; _nop_(); AAD_CLK=0;/ AAD_D1=0; _nop_(); AAD_CLK=1; _nop_(); AAD_CLK=0; / AAD_D1=0; _nop_(); AAD_CLK=1; _nop_(); AAD_CLK=0; AAD_D1=1; for(i=0;i8;i+) _nop_(); adval=1; AAD_CLK=1;_nop_(); AAD_CLK=0; if(AAD_D0) adval|=1; for(i=0;i=1; if(AAD_D0)test|=0x80; AAD_CLK=1;_nop_(); AAD_CLK=0; if(adval=test)dat=test;_nop_();AAD_CS=1;AAD_D0=1;AAD_D1=1;AAD_CLK=1;return dat;unsigned char AVD_read() /電壓測量端ADC0832數(shù)據(jù)接收函數(shù)unsigned char dat,i,test=0,adval=0; AVD_CLK=0;/ AVD_D1=1; _nop_(); AVD_CS=0; _nop_(); AVD_CLK=1; _nop_(); AVD_CLK=0;/ AVD_D1=0; _nop_(); AVD_CLK=1; _nop_(); AVD_CLK=0; / AVD_D1=0; _nop_(); AVD_CLK=1; _nop_(); AVD_CLK=0; AVD_D1=1; for(i=0;i8;i+) _nop_(); adval=1; AVD_CLK=1;_nop_(); AVD_CLK=0; if(AVD_D0) adval|=1; for(i=0;i=1; if(AVD_D0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省石家莊市二十八中學2024年九年級化學第一學期期末復習檢測試題含解析
- 2025至2030運動和健身房地板行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 河南省開封市蘭考縣2024年八年級物理第一學期期末達標檢測試題含解析
- 倉儲物流中心車間出租管理合同
- 空間技術裝備市場拓展策略研究
- 水輪機技術革新前沿:1000MW級混流式水輪機行業(yè)深度研究
- 2025至2030體外診斷試劑市場行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國自行車消費GPS行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國自動閘門操作員行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國自動離合器行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- HG-T20678-2023《化工設備襯里鋼殼設計標準》
- 初中數(shù)學分層作業(yè)設計論文
- 中小學校長管理案例
- 《電力設施治安安全風險等級和安全防護要求》
- 工程項目部安全生產(chǎn)治本攻堅三年行動實施方案
- 四川建筑安全員-C證考試(專職安全員)題庫及答案
- 光伏驗收報告
- 職業(yè)倦怠量表MBI-HSS
- 學校桌椅采購投標方案
- 盤扣式外腳手架施工方案
- 初中數(shù)學目錄(浙教版)
評論
0/150
提交評論