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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)實(shí)現(xiàn)低成本A/D轉(zhuǎn)換

          單片機(jī)實(shí)現(xiàn)低成本A/D轉(zhuǎn)換

          作者: 時(shí)間:2013-05-13 來源:網(wǎng)絡(luò) 收藏

          在前面的文章中分別介紹了兩種用普通現(xiàn)低成本A/D轉(zhuǎn)換的方法,這兩種方法中在單片機(jī)的外部都要使用到一個(gè)比較器,在本文中繼續(xù)向大家介紹低成本的A/D轉(zhuǎn)換的一種方法,只是這種方法成本會(huì)更低,而且外部無需使用比較器。此種方法的A/D轉(zhuǎn)換精度不高,只有6~7bit,并且被測電壓范圍較為有限,但在某些精度要求不高,且被測電壓值變化不大的場合也很有實(shí)用價(jià)值,比如溫度測量方面。

          其電路如圖一所示:

          單片機(jī)實(shí)現(xiàn)低成本A/D轉(zhuǎn)換

          其工作原理說明如下:

          1、硬件說明:

          圖一中的R1、R2和C1構(gòu)成RC充電電路,被測量通過R1、R2對(duì)C1充電。N1為單片機(jī),本電路中采用MICROCHIP的PIC12C508A來舉例說明。C2為給電源供電用的濾波電路,VD1為保護(hù)用穩(wěn)壓二極管,以避免輸入電壓過高而損壞單片機(jī)。

          2、A/D轉(zhuǎn)換過程:

          首先GP5輸出低電平,使電容C1上的電量完全放光,隨后GP5即轉(zhuǎn)變?yōu)檩斎霠顟B(tài),此時(shí)單片機(jī)開始計(jì)時(shí),被測電壓經(jīng)過R1、R2電阻對(duì)電容C1進(jìn)行充電,電容C1上的電壓會(huì)逐漸升高,C1上的電壓U滿足以下公式:

          單片機(jī)實(shí)現(xiàn)低成本A/D轉(zhuǎn)換

          其中U為電容C1上的電壓,E為輸入電壓(被測量),T=(R1+R2)*C1,t為時(shí)間。

          當(dāng)C1上的電壓U達(dá)到單片機(jī)I/O腳的門嵌電壓時(shí),單片機(jī)的GP5由低電平狀態(tài)轉(zhuǎn)變?yōu)楦唠娖綘顟B(tài)。記錄從充電開始至此時(shí)所經(jīng)過的時(shí)間t。

          從上式可知,當(dāng)單片機(jī)I/O腳的門嵌電壓、R1、R2、C1值都固定不變時(shí),被測量的電壓值E與時(shí)間t呈一一對(duì)應(yīng)關(guān)系。

          因此測量輸入電壓對(duì)C1電容充電到門嵌電壓的時(shí)間,進(jìn)行查表計(jì)算,就可以得到被測電壓值,從而實(shí)現(xiàn)了A/D轉(zhuǎn)換。

          3、A/D轉(zhuǎn)換誤差分析及解決辦法:

          A/D轉(zhuǎn)換的誤差主要由以下幾個(gè)方面決定,分別說明如下:

          (1)單片機(jī)的電源電壓VDD:在該A/D轉(zhuǎn)換中,VDD電壓變化較大時(shí)有可能造成I/O口的門嵌電壓發(fā)生變化,不過其影響較小。

          (2)單片機(jī)內(nèi)部的定時(shí)器對(duì)C1電容上電壓上升時(shí)間的測量偏差:該測量偏差是A/D轉(zhuǎn)換誤差的主要因素。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();