




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上積分式直流數字電壓表摘要本雙積分電壓表系統以89C51單片機為核心、以分立元件制作的雙積分型A/D轉換器為主要部件的4位半積分式數字直流電壓表,并對所設計的電壓表進行了測試,結果測量誤差±0.03%,精度達到4位半。實現了自動量程轉換功能,自動調零功能,有很好的實際應用價值。 關鍵詞:單片機,雙積分A/D轉換器,自動調零,自動轉換量程目錄 方案論證與比較1.1.1 信號調理比較與選擇方案一、信號經過緩沖器提高輸入阻抗后經過低通濾波器后,然后由模擬開關選擇信號放大與不放大,當信號大于200mv時不放大,小于200mv時經過儀表放大器進行放大。方案二、信號經過電
2、壓分阻條統一衰減后經過緩沖器提高其負載能力,信號進行低通濾波器其截止頻率在10HZ左后濾除高頻噪聲及干擾,然后經過低噪聲,高精度運放放大。方案論證:方案一對不同信號進行放大其電路復雜,當測量多個量程時放大電路的增益不一樣,需多個放大電路成本很高,且用儀表放大器價格過于昂貴。方案二通過統一衰減后在進行放大其電路簡單調試方便。所以采用方案二。 1.2 處理器的比較與選擇STC單片機所特有的在線下載功能和其他公司的單片機不同,不是利用SPI進行在線編程,而是利用IAP功能,在系統運行時編程,因此,可以通過串口來對單片機進行編程。其電路極為簡單,只要所使用的單片機系統具有232串口通信功能即可。.工作
3、寬溫度范圍,-4085,在系統可編程,無需編程器,可遠程升級,抗干擾強.價格低廉,所以采用了STC單片機.1.3積分器比較與選擇方案一、采用雙極性運放UA741,UA741為通用運放價格便宜,容易購買。積分電容選擇膽電容進行積分。方案二、采用FET運放TL062,其漏電流小,電容選擇獨石電容。方案論證:方案一ua741器基集電流大,失調電流大對積分產生影響,且膽電容的漏電流大也對積分產生一定影響,而方案二TL062為FET型輸入阻抗高基集電流小且獨石電容漏電流小。所以才用方案二。2 系統設計2.1 總體設計本設計基于STC89C51單片機的4位半積分式直流數字電壓表設計的設計思路及實現方法。在
4、設計中,充分利用了89C51單片機內部的高速計數器和以分立元件組成的雙積分型A/D轉換器的優良特性,使整個設計達到了比較滿意的效果。硬件設計主要有雙電源電路、信號采集電路、量程轉換電路、開關邏輯控制電路、積分比較與自動回零電路、單片機系統、顯示電路組成。軟件編程采用模塊化結構,主要有時序子程序,系數運算子程序, BCD碼轉換子程序,自動量程轉換子程序,顯示子程序等組成。信號經過電阻分壓器統一衰減后,經過運放緩沖后在經過高精度,低噪聲,失調電壓小的運放OP37放大,開始先對信號進行積分,后開始對基準源進行反積分,然后經過單片機運算處理后有單片機顯示。 圖一2.2 單元電路設計 2.2.1 信號調
5、理調理電路 圖二信號經過電壓分阻條統一衰減后經過緩沖器提高其負載能力,信號進行低通濾波器其截止頻率在10HZ左后濾除高頻噪聲及干擾,然后經過低噪聲,高精度運放放大。放大倍數可有可變電阻進行調整補償。2.2.2 雙積分電路設計 圖三單片機通過對開關邏輯控制電路來控制雙積分A/D轉換,單片機先控制開關邏輯控制電路使s2接通進行自動回零,接著OUT2接通將待測電壓進行正積分,再使Vref接通對反積分基準電壓進行反積分,同時單片機內部計數器開始計數,到一定時間后比較電路中的比較電路輸出中斷信號,單片機停止計數并將計數值濾波,通過減法、乘法和除法的系數運算最后轉換成BCD碼,再通過顯示電路將待測電壓值顯
6、示出來。A/D轉換是在單片機和開關邏輯控制電路的控制下有條不紊地進行,全部過程可分三個階段:(1)正積分:也稱信號采集階段。在這個階段,通過單片機對開關邏輯控制電路的控制對檢測電壓out2積分。積分器的輸出電壓隨時間線性地增加。正積分時間由單片機控制,定時為T1,在T1結束時積分器的輸出電壓為: Vout(T1)=-1C2*R9out2 (公式一)(2)反積分:也稱計數階段。在這個階段,通過單片機對開關邏輯控制電路的控制對基準電壓ref積分。經過T2時間后回到0, Vout2(T2)=Vout1+1C2*R9Vref (公式二) T2=out2*T1/T2 (公式三)由此可以看出T2的大小取決
7、于輸入待測電壓Vx的大小。(3)自動回零:也稱復位階段,在該階段,因反積分使比較器輸出由高電平變成低電平,再由單片機控制開關邏輯控制電路動作,使VA導通,使得積分電容充分放大。2.2.3 基準電壓電路設計 圖四負電源電壓采用高精度可編程穩壓器件TL431產生,然后進過電源濾波。在經過緩沖器進行隔離,以免后級電路對基準源產生負載影響,影響基準源的精度。3 軟件設計控制芯片為STC89C52,由于處理器速度較快,所以采用c語言編程方便簡單.軟件流程如圖下 電壓表主流程圖4系統測試 電壓測試數據(室溫條件下)標準電壓值自動量程選擇實測電壓值誤差/1.000mV200mV檔01.00mV050.000
8、mV 200mV檔50.00mV0120.000mV檔200mV120.01mV0.008199.990mV檔200mV199.97mV-0.010.20020V2V檔0.2000V-0.011.25000V2V檔1.2503V0.0241.98000V2V檔1.9804V0.020從標準穩壓電源輸出標準的待測電壓,用5位半數字電壓表作為校準設備,分別用5位半數字電壓表和本電壓表對待測電壓進行測試,并對測試結果進行了比較,如表1所示。測試結果表明,本電壓表的測量誤差±0.03%,精度達到4位半。當測量199.990mV和0.20020V兩組標準電壓值時,本電壓表進行了自動量程轉換,由
9、此表明本電壓表具有200mV和2V兩個量程并且可以實現自動量程轉換功能。5 結論由于系統架構設計合理,功能電路實現較好,系統性能優良、穩定,較好地達到了題目要求的各項指標。參考文獻:1模擬電子線路基礎,吳運昌著,廣州:華南理工大學出版社,2004年;2數字電子技術基礎,閻石著,北京:高等教育出版社,1997年;3單片機原理及應用,李建忠著,西安:西安電子科技大學,2002年;4王劍銘,黃俊杰,寧彥卿.新穎實用的單片機雙積分A/D轉換電路和軟件J.鄭州工業大學學報,2001;5李偉.一種高精度低成本A/D轉換器的原理和實現J.自動化儀表,2007;6馮文濤,于明鑫.單片機控制的高精度雙積分ADC
10、J.遼寧師專學報,2004;附錄:附1:元器件明細表:1、STC89C522、TL0623、OP374、1602液晶附2:儀器設備清單1、 低頻信號發生器 2、 數字萬用表 3、 數字示波器4、 穩壓電源附3:電路圖圖紙 整體電路圖附4:程序清單/SW1 S1 S0 00 A4 Vin 11 A7 GND /SW2 S1 S0 10 A6 Vref 11 A7 GND 01 A5 Vin/SW3 S 0 導通 1 斷開/#include <reg51.h>#include <intrins.h> #define uchar unsigned char #define u
11、int unsigned int #define LCD_DATA P0 sbit LCD_RS = P24; sbit LCD_RW = P25; sbit LCD_EN = P26; sbit change_in = P30;sbit S2 = P31;sbit S3 = P32;sbit S4 = P34;sbit S5 = P35;/sbit S6 = P36;sbit P1_7 = P17; sbit cmp_in = P33; sbit P1_4 = P10; sbit P1_5 = P11;sbit P1_6 = P12; uchar compares_zero = 'a
12、' ,first_integral = 'b',second_integral = 'c', discharge = 'd', Operation = 'e'/狀態定義為 校零 第一次積分 第二次積分 電容放電 運算 uchar state;uint regser; uchar code dis1 = " current voltage" uchar dis2 = " 00000 mv " uchar cnt=0; /*/ /* /* 延時子程序 /* /*/ void delay(
13、uint ms) uchar i; while(ms-) for(i = 0; i< 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); /*/ /* /*檢查LCD忙狀態 /*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數據。 /* /*/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(LCD_DATA&0x80); LCD_EN =
14、 0; return result; /*/ /* /*寫指令數據到LCD /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 /* /*/ void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 1; LCD_DATA = cmd; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 0; /*/ /* /*寫顯示數據到LCD /*RS=H,RW=L,E=高脈沖,D0-D7=數據。 /* /*/ void lcd_wdat(uchar dat) whil
15、e(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 1; LCD_DATA = dat; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 0; /*/ /* /* 設定顯示位置 /* /*/ void lcd_pos(uchar pos) lcd_wcmd(pos|0x80); /數據指針=80+地址變量 /*/ /* /* LCD初始化設定 /* /*/ void lcd_init() delay(15); /等待LCD電源穩定 lcd_wcmd(0x38); /16*2顯示,5*7點陣,8位數據 delay
16、(5); lcd_wcmd(0x0c); /顯示開,關光標 delay(5); lcd_wcmd(0x06); /字符進入 delay(5); lcd_wcmd(0x01); /清除LCD的顯示內容 delay(5); /*/ /* /* 清屏子程序 /* /*/ void lcd_clr() lcd_wcmd(0x01); /清除LCD的顯示內容 delay(5); /*/顯示函數/*/ void display_line( uchar *p,uchar line) if(line = 1) lcd_pos(0x00); else if(line =2) lcd_pos(0x40); whi
17、le(*p) lcd_wdat(*p); p+; / /SW1 S1 S0 00 A4 Vin 11 A7 GND /SW2 S1 S0 10 A6 Vref 11 A7 GND 01 A5 Vin/SW3 S 1 導通 0 斷開/ void compare ( ) P1_4=1; P1_5=0; P1_6=0; if(cmp_in = 1)/ state = first_integral; else / S1 = 0; /校零時接地 if(change_in = 0) S2 = 0; /接入放大器 else S2 = 1; S3 = 1; /將積分輸入端接非參考電壓 S4 = 1; /對調零
18、電容充電 S5 = 1; /積分電容非放電 /S6 = 1; /參考電壓電容充電 /delay(100); void f_integral () P1_4=0; P1_5=1; P1_6=0; if(change_in = 0) S2 = 0; /接入放大器 else S2 = 1; S3 = 1; /將積分輸入端接非參考電壓 S4 = 0; /對調零電容斷開 S5 = 0; /積分電容非放電 /S6 = 1; /參考電壓電容充電 TMOD |=0x10; TH1 =0x15; TL1 =0xa0; ET1=1; TR1=1; EA=1 void s_integral() if(change_
19、in = 0) S2 = 0; else S2 = 1; S3 = 0; /將積分輸入端接參考電壓 S4 = 1; /對調零電容斷開 S5 = 0; /積分電容非放電 P1_4=1; P1_5=1; P1_6=0; TMOD |=0x90; TH1 =0x00; TL1 =0x00; ET1=1; TR1=1; EA=1; /S6 = 0; while( state =second_integral ) if(cmp_in = 0) regser = 0x00ff&TH1; regser<<=8; regser = regser+TH0; state = Operation
20、; void Operation_display () uchar a,b,c,d,e; uchar vref = 20; float result; uint midle ; P1_4=0;P1_5=0; P1_6=1; if(change_in = 0)S2 = 0; /接入放大器 else S2 = 1;S3 = 1; /將積分輸入端接非參考電壓S4 = 1; /對調零電容充電S5 = 1; /積分電容非放電/S6 = 1; /參考電壓電容充電 result = (float)regser)/6)*vref); if(change_in = 0) result =result/9.262
21、5; midle = (uint)result; a = (uint)result/10000; midle = midle%10000; b = midle/1000; midle = midle%1000; c= midle/100; midle = midle%100; d= midle/10; e = midle%10; dis21 = a + 0x30; dis22 = b + 0x30; dis23 = c + 0x30; dis25 = d + 0x30; dis24 = '.' dis26 = e + 0x30; dis27 = 'm' dis28 = 'V' dis29 = ' ' else result =result/9.2500;/10.0019; midle = (uint)result; a = (uint)result/10000; midle = midle%10000; b = midle/1000; midle = midle%1000; c= midle
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路旅客運輸服務普速列車設施設備課件
- 隧道襯砌裂損及其防治高速鐵路隧道工程習淑娟石家莊鐵路課
- 鐵路班組管理企業文化的含義和要素課件
- 鐵路工程安全技術石家莊鐵路32課件
- 中國書法結體概述課件
- 中華傳統文化課程課件
- 大學生職業規劃大賽《城鄉規劃專業》生涯發展展示
- 餐飲項目合作經營合同書
- 江蘇省淮安市四校2025年下學期高三語文試題第三次統一練習試題含解析
- 沈陽工業大學《筆譯實訓2》2023-2024學年第二學期期末試卷
- 2025世界防治哮喘日知識講座專題課件
- 糧食安全時政試題及答案
- 小學開展常規教育經驗交流活動方案
- 第四單元專題學習《孝親敬老傳承家風》公開課一等獎創新教學設計-(同步教學)統編版語文七年級下冊名師備課系列
- 茂名市生活垃圾焚燒發電項目
- 2025年03月四川成都農業科技中心公開招聘筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 大學英語四級考試2024年6月真題(第1套)翻譯
- 2024年鄭州鐵路職業技術學院單招職業技能測試題庫必考題
- 2025年03月國家機關事務管理局所屬事業單位公開招聘應屆畢業生14人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 鄉村民宿開發管理運營手冊
- 城市交通中的共享出行模式研究
評論
0/150
提交評論