<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的雙積分型A/D電路設計

          基于單片機的雙積分型A/D電路設計

          作者: 時間:2012-04-12 來源:網(wǎng)絡 收藏

          0 引言

          A/D轉(zhuǎn)換電路是數(shù)據(jù)采集系統(tǒng)中的重要部分,也是計算機應用系統(tǒng)中一種重要的功能接口。目前市場上有兩種常用的A/D轉(zhuǎn)換芯片,一類是逐次逼近式的,如AD1674,其特點是轉(zhuǎn)換速度較高,功率較低。另一類是雙積分式的,如ICL7135,其特點是轉(zhuǎn)換精度高、抗干擾能力強。但高位數(shù)的A/D轉(zhuǎn)換器價格相對較高。本文介紹的一種基于的高精度、A/D轉(zhuǎn)換電路,具有電路體積小、成本低、性價比高、結構簡單、調(diào)試容易和工作可靠等特點,有很好的實際應用價值。

          1 雙積分式ADC基本原理

          雙積分式ADC的基本電路如圖1所示,運放A 1、R、C用來組成積分器,運放A2作為比較器。電路先對未知的模擬輸入電壓U1進行固定時間T1的積分,然后轉(zhuǎn)為對標準電壓U0進行反向積分,直到積分輸出返回起始值,反向積分時間為T0。如圖2所示,輸入電壓U1越大,則反向積分時間越長。整個采樣期間,積分電容C上的充電電荷等于放電電荷,因而有

          由于U0及T1均為常數(shù),因而反向積分時間T0與輸入模擬電壓U1成正比,此期問的內(nèi)部計數(shù)器計數(shù)值與信號電壓的大小成正比,此計數(shù)值就是U1所對應的數(shù)字量。

          2 實用雙積分A/D轉(zhuǎn)換電路

          1)硬件電路圖

          如圖3所示,運放A1、R、C構成積分電路,C常取0.22μF的聚丙烯電容,R常取500kΩ左右,A2是電壓跟隨器,為電路提供穩(wěn)定的比較電壓,運放 A3作為電壓比較器,保證A/D轉(zhuǎn)換電平迅速翻轉(zhuǎn),CD4051是多路選擇開關,P1.0、P1.1、P1.2作為輸出端口,控制其地址選擇端A、 B、C選擇不同的通道輸入到積分器A1,U為將要進行A/D轉(zhuǎn)換的模擬輸入電壓,Uin為積分器的輸入電壓,U0為比較電壓,U1為基準電壓,為使A/D 轉(zhuǎn)換結果具有更高的精度,基準電路應該提供精確的電壓,建議使用精度為1%的精密電阻,單片機使用89C51,其內(nèi)部定時器T0為積分電路提供精確的時間定時,計數(shù)器T1用來記錄反向積分時間,INT0用來檢測比較器電平變化。所需測量的模擬輸入信號和零點參考電壓以及基準電壓接到多路選擇開關的輸入端,通過單片機中的程序控制,輪流選擇接入各路輸入信號,通過積分電路分別和固定電壓進行定時或定值積分。

          積分電路的輸出信號作為比較器的輸入信號與比較電壓進行比較,當比較器輸出翻轉(zhuǎn)信號時,CPU計數(shù)器停止計數(shù),從而獲得零點參考電壓的計數(shù)值,對這個數(shù)據(jù)進行處理計算后,完成A/D轉(zhuǎn)換。

          2)轉(zhuǎn)換過程

          為了給積分電路提供積分零點,在系統(tǒng)上電階段,積分電路先接通GND,待比較器輸出為低電平時,再對積分電路進行一段時間的放電,以使得積分電容零電荷。因此雙積分電路的工作過程分為三個階段:

          (1)清零階段:當比較器輸出低電平時,積分電容上聚集了大量電荷,必須對其放電為后續(xù)的A/D轉(zhuǎn)換提供精確的零起始點。即對U0進行定值積分,由由此可見放電時間根據(jù)U0、U1、R、C具體值而定。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();