0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用單片機(jī)實(shí)現(xiàn)低成本的高精度AD轉(zhuǎn)換和DA轉(zhuǎn)換

Wildesbeast ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-26 09:25 ? 次閱讀

目前單片機(jī)電子產(chǎn)品中已得到廣泛應(yīng)用,許多類(lèi)型的單片機(jī)內(nèi)部已帶有A/D轉(zhuǎn)換電路,但此類(lèi)單片機(jī)會(huì)比無(wú)A/D轉(zhuǎn)換功能的單片機(jī)在價(jià)格上高幾元甚至很多,本文給大家提供一種實(shí)用的用普通單片機(jī)實(shí)現(xiàn)的A/D轉(zhuǎn)換電路,它只需要使用普通單片機(jī)的2個(gè)I/O腳與1個(gè)運(yùn)算放大器即可實(shí)現(xiàn),而且它可以很容易地?cái)U(kuò)展成帶有4通道A/D轉(zhuǎn)換功能,由于它占用資源很少,成本很低,其A/D轉(zhuǎn)換精度可達(dá)到8位或更高,因此很具有實(shí)用價(jià)值。

其電路如圖一所示:

圖一

工作原理說(shuō)明如下:

1、硬件說(shuō)明:

圖一中“RA0”和“RA1”為單片機(jī)的兩個(gè)I/O腳,分別將其設(shè)置為輸出與輸入狀態(tài),在進(jìn)行A/D轉(zhuǎn)換時(shí),在程序中通過(guò)軟件產(chǎn)生PWM,由RA0腳送出預(yù)設(shè)占空比的PWM波形。RA1腳用于檢測(cè)比較器輸出端的狀態(tài)。

R1、C1構(gòu)成濾波電路,對(duì)RA0腳送出的PWM波形進(jìn)行平滑濾波。RA0輸出的PWM波形經(jīng)過(guò)R1、C1濾波并延時(shí)后,在U1點(diǎn)產(chǎn)生穩(wěn)定的電壓值,其電壓值U1=VDD*D1/(D1+D2),若單片機(jī)的工作電壓為穩(wěn)定的+5V,則U1=5V*D1/(D1+D2)。

圖一中的LM324作為比較器使用,其輸入負(fù)端的U1電壓與輸入正端的模擬量電壓值進(jìn)行比較,當(dāng)U1大于模擬量輸入電壓時(shí),比較器的輸出端為低電平,反之為高電平。

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

如果使RA0輸出PWM波形,其占空比由小到大逐漸變化,則U1的電壓會(huì)由小到大逐漸變化,當(dāng)U1電壓超過(guò)被測(cè)電壓時(shí),比較器的輸出端由高電平變?yōu)榈碗娖?,因此可以認(rèn)為在該變化的瞬間被測(cè)的模擬量與U1的電壓相等。

由于U1的電壓值=VDD*D1/(D1+D2),當(dāng)VDD固定時(shí),其電壓值取決于PWM波形的占空比,而PWM的占空比由單片機(jī)軟件內(nèi)部用于控制PWM輸出的寄存器值決定,若軟件中用1個(gè)8位寄存器A來(lái)存放RA0輸出的PWM的占空比值D1,因此在RA1檢測(cè)到由“1”變?yōu)椤?”的瞬間,A寄存器的值D1即為被測(cè)電壓的A/D轉(zhuǎn)換值,其A/D轉(zhuǎn)換結(jié)果為8位。如果用16位寄存器來(lái)作輸出PWM的占空比,則A/D轉(zhuǎn)換值可達(dá)到16位。

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

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

(1) 單片機(jī)的電源電壓VDD:在該A/D轉(zhuǎn)換中,VDD電壓是造成A/D轉(zhuǎn)換誤差的主要原因,如果使VDD電壓精度做到較高,則A/D轉(zhuǎn)換誤差可以做到很小,在VDD電壓精度為0.5%情況下,實(shí)際的A/D轉(zhuǎn)換誤差小于1%。

(2) 軟件產(chǎn)生的PWM占空比:若用于產(chǎn)生PWM的軟件設(shè)計(jì)不良,會(huì)使存放占空比的寄存器值與實(shí)際輸出的PWM占空比不一致,這會(huì)導(dǎo)致測(cè)量誤差。

(3) 比較器輸入端的失調(diào)電壓:該電壓對(duì)A/D轉(zhuǎn)換精度有一定影響,但影響較小。

(4) RC濾波電路的紋波:在R1、C1取值不當(dāng)?shù)那闆r下,U1處的電壓紋波較大,并且延時(shí)時(shí)間不夠,會(huì)使A/D轉(zhuǎn)換產(chǎn)生誤差,因此R1、C1取值不能太小,但太大又會(huì)影響A/D轉(zhuǎn)換速度,推薦使用圖一中所示的R1、C1參數(shù),在紋波合理的情況下,其轉(zhuǎn)換誤差也可通過(guò)軟件消除。

A/D轉(zhuǎn)換誤差的解決辦法:

(1) 對(duì)VDD造成的誤差,只能通過(guò)提高VDD電壓精度來(lái)解決,它相當(dāng)于A/D轉(zhuǎn)換的基準(zhǔn)電壓。

(2) 對(duì)于軟件中PWM設(shè)計(jì)不良導(dǎo)致的誤差,可修改軟件進(jìn)行解決,本文提供了用軟件產(chǎn)生PWM的程序流程圖,實(shí)際使用中可按此流程設(shè)計(jì)程序。

(3) 對(duì)比較器及RC濾波電路的紋波導(dǎo)致的誤差,在軟件中可通過(guò)上、下檢測(cè)法進(jìn)行消除,即先將PWM的占空比由小到大變化,使U1電壓由低往高逐漸變化,在比較器輸出端變化時(shí)記錄其A/D轉(zhuǎn)換值,再將PWM的占空比由大到小變化,使U1電壓由高到低變化,在比較器輸出端變化時(shí)記錄其A/D轉(zhuǎn)換值,將兩次的A/D轉(zhuǎn)換值進(jìn)行平均,可有效地消除這兩種誤差。

(4) 對(duì)A/D轉(zhuǎn)換值進(jìn)行數(shù)字濾波,如多次轉(zhuǎn)換求平均值等。數(shù)字濾波消除誤差的方法很多,在此不再贅述。

4、A/D轉(zhuǎn)換速度及提高辦法:

由于該A/D轉(zhuǎn)換是通過(guò)PWM濾波后再進(jìn)行比較來(lái)完成的,其PWM的產(chǎn)生與濾波都需要一定的時(shí)間,因此其A/D轉(zhuǎn)換速度較慢,適用于對(duì)A/D轉(zhuǎn)換速度要求不高的產(chǎn)品中,其A/D轉(zhuǎn)換速度取決于以下幾個(gè)方面:

(1) 單片機(jī)的運(yùn)行速度:?jiǎn)纹瑱C(jī)的運(yùn)行速度越高則PWM的頻率可以越高, RC值就可以取得越小,其延時(shí)時(shí)間也可以更短,轉(zhuǎn)換速度就更快。

(2) 被測(cè)電壓值的大?。河捎赨1電壓時(shí)是由小到大逐漸加大的,當(dāng)被測(cè)電壓值較小時(shí),U1電壓上升到相應(yīng)值的時(shí)間就越短,完成A/D轉(zhuǎn)換的速度就越快。

(3) 初始占空比:初始占空比越高,U1電壓較大,其上升到被測(cè)電壓值的時(shí)間也就會(huì)越短,完成A/D轉(zhuǎn)換的速度也就越快。

由上所述,A/D轉(zhuǎn)換的速度可以通過(guò)提高單片機(jī)的工作頻率,并在預(yù)知被測(cè)電壓范圍時(shí)盡可能地設(shè)置較高的初始占空比值來(lái)加快轉(zhuǎn)換速度,如果所要求的A/D轉(zhuǎn)換精度要求不高,還可以在軟件中縮短PWM輸出的延時(shí)時(shí)間來(lái)提高A/D轉(zhuǎn)換速度。若單片機(jī)帶有外部電平變換中斷和定時(shí)器中斷,其A/D轉(zhuǎn)換的精度和速度還可以得到提高。

5、輸入電壓的測(cè)量范圍:

A/D轉(zhuǎn)換的輸入電壓測(cè)量范圍為0V至單片機(jī)的電源電壓(VDD),若需要提高被測(cè)電壓范圍,可將輸入電壓通過(guò)電阻分壓后進(jìn)行測(cè)量,但其A/D轉(zhuǎn)換的誤差會(huì)受分壓電阻影響。

6、A/D轉(zhuǎn)換通道的多路擴(kuò)展:

圖中所用的運(yùn)算放大器為L(zhǎng)M324,該集成電路內(nèi)部帶有4個(gè)運(yùn)放,其余3個(gè)運(yùn)放的輸入端可分別作為另外3個(gè)A/D轉(zhuǎn)換通道,其輸出端與單片機(jī)連接,在軟件上略作修改,就可以在不增加成本的情況下實(shí)現(xiàn)4路A/D轉(zhuǎn)換。

7、用同樣的工作原理實(shí)現(xiàn)D/A轉(zhuǎn)換:

如圖二所示,可使該電路很容易地只用單片機(jī)的一個(gè)I/O腳實(shí)現(xiàn)D/A轉(zhuǎn)換功能。其輸出的模擬量電壓Vout=VDD*D1/(D1+D2)。該輸出電壓帶有紋波,當(dāng)RC值足夠大時(shí),該紋波值幾乎為零,可忽略不計(jì)。

8、單片機(jī)的A/D轉(zhuǎn)換軟件程序流程圖:

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635400
  • AD轉(zhuǎn)換
    +關(guān)注

    關(guān)注

    3

    文章

    168

    瀏覽量

    45314
  • DA轉(zhuǎn)換
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    17705
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于單片機(jī)低成本高精度A/D與D/A轉(zhuǎn)換設(shè)計(jì)

    電路,它只需要使用普通單片機(jī)的2個(gè)I/O腳與1個(gè)運(yùn)算放大器即可實(shí)現(xiàn),而且它可以很容易地?cái)U(kuò)展成帶有4通道A/D轉(zhuǎn)換功能,由于它占用資源很少,成本很低,其A/D
    發(fā)表于 09-17 14:23 ?1299次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>低成本</b><b class='flag-5'>高精度</b>A/D與D/A<b class='flag-5'>轉(zhuǎn)換</b>設(shè)計(jì)

    單片機(jī)高精度快速積分型AD轉(zhuǎn)換

    單片機(jī)高精度快速積分型AD轉(zhuǎn)換
    發(fā)表于 06-25 21:57

    高精度DA轉(zhuǎn)換電路圖

    高精度DA轉(zhuǎn)換電路圖
    發(fā)表于 07-15 16:29 ?2268次閱讀
    <b class='flag-5'>高精度</b><b class='flag-5'>DA</b><b class='flag-5'>轉(zhuǎn)換</b>電路圖

    如何實(shí)現(xiàn)高精度高穩(wěn)定性的DA輸出

    單片機(jī)的PWM輸出來(lái)做一個(gè)DA,PWM可以通過(guò)定時(shí)器來(lái)產(chǎn)生,然后經(jīng)過(guò)一個(gè)轉(zhuǎn)換電路,可以實(shí)現(xiàn)一個(gè)隔離的DA輸出。
    發(fā)表于 05-22 00:48 ?1.1w次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>高精度</b>高穩(wěn)定性的<b class='flag-5'>DA</b>輸出

    基于單片機(jī)低成本高精度A/D轉(zhuǎn)換方案設(shè)計(jì)

    目前單片機(jī)在電子產(chǎn)品中已經(jīng)得到了廣泛的應(yīng)用,許多類(lèi)型的單片機(jī)內(nèi)部已帶有A/D轉(zhuǎn)換電路,但此類(lèi)單片機(jī)會(huì)比無(wú)A/D轉(zhuǎn)換功能的
    發(fā)表于 07-09 14:07 ?964次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>低成本</b><b class='flag-5'>高精度</b>A/D<b class='flag-5'>轉(zhuǎn)換</b>方案設(shè)計(jì)

    基于單片機(jī)的AD-DA轉(zhuǎn)換 【C語(yǔ)言與匯編對(duì)照版】

    基于單片機(jī)的AD-DA轉(zhuǎn)換 【C語(yǔ)言與匯編對(duì)照版】,多種集合,符合同時(shí)愛(ài)好C語(yǔ)言+匯編的學(xué)習(xí)者的胃口。
    發(fā)表于 12-31 10:22 ?0次下載

    單片機(jī)AD-DA轉(zhuǎn)換程序 【C語(yǔ)言+匯編版】

    單片機(jī)AD-DA轉(zhuǎn)換程序 【C語(yǔ)言+匯編版】。
    發(fā)表于 12-31 10:36 ?0次下載

    基于單片機(jī)低成本高精度A-D相互轉(zhuǎn)換應(yīng)用

    本文給大家提供一種實(shí)用的用普通單片機(jī)實(shí)現(xiàn)的A/D轉(zhuǎn)換電路,它只需要使用普通單片機(jī)的2個(gè)I/O腳與1個(gè)運(yùn)算放大器即可實(shí)現(xiàn),而且它可以很容易地?cái)U(kuò)
    發(fā)表于 09-07 16:11 ?4次下載
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>低成本</b><b class='flag-5'>高精度</b>A-D相互<b class='flag-5'>轉(zhuǎn)換</b>應(yīng)用

    A/D轉(zhuǎn)換過(guò)程與基于單片機(jī)低成本高精度A_D與D_A轉(zhuǎn)換設(shè)計(jì)

    電路,它只需要使用普通單片機(jī)的2個(gè)I/O腳與1個(gè)運(yùn)算放大器即可實(shí)現(xiàn),而且它可以很容易地?cái)U(kuò)展成帶有4通道A/D轉(zhuǎn)換功能,由于它占用資源很少,成本很低,其A/D
    發(fā)表于 10-20 11:29 ?4次下載
    A/D<b class='flag-5'>轉(zhuǎn)換</b>過(guò)程與基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>低成本</b><b class='flag-5'>高精度</b>A_D與D_A<b class='flag-5'>轉(zhuǎn)換</b>設(shè)計(jì)

    單片機(jī)低成本高精度A/D與D/A轉(zhuǎn)換設(shè)計(jì)解析

    電路,它只需要使用普通單片機(jī)的2個(gè)I/O腳與1個(gè)運(yùn)算放大器即可實(shí)現(xiàn),而且它可以很容易地?cái)U(kuò)展成帶有4通道A/D轉(zhuǎn)換功能,由于它占用資源很少,成本很低,其A/D
    發(fā)表于 10-20 16:12 ?3次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>低成本</b><b class='flag-5'>高精度</b>A/D與D/A<b class='flag-5'>轉(zhuǎn)換</b>設(shè)計(jì)解析

    使用單片機(jī)DA轉(zhuǎn)換實(shí)現(xiàn)正弦波的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)DA轉(zhuǎn)換實(shí)現(xiàn)正弦波的程序免費(fèi)下載。
    發(fā)表于 08-15 17:32 ?30次下載
    使用<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>DA</b><b class='flag-5'>轉(zhuǎn)換</b><b class='flag-5'>實(shí)現(xiàn)</b>正弦波的程序免費(fèi)下載

    如何進(jìn)行51單片機(jī)的AD和DA轉(zhuǎn)換

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何進(jìn)行51單片機(jī)的AD和DA轉(zhuǎn)換詳細(xì)資料說(shuō)明。
    發(fā)表于 06-17 17:44 ?18次下載
    如何進(jìn)行51<b class='flag-5'>單片機(jī)</b>的AD和<b class='flag-5'>DA</b><b class='flag-5'>轉(zhuǎn)換</b>

    使用單片機(jī)控制PCF8591的AD轉(zhuǎn)換DA轉(zhuǎn)換的程序詳細(xì)資料說(shuō)明

    1.利用單片機(jī)控制PCF8591的AD轉(zhuǎn)換,控制AD0和AD1電位器,在數(shù)碼光上顯示DA轉(zhuǎn)換的值。2.利用單片機(jī)控制PCF8591的
    發(fā)表于 05-31 17:54 ?29次下載
    使用<b class='flag-5'>單片機(jī)</b>控制PCF8591的AD<b class='flag-5'>轉(zhuǎn)換</b>和<b class='flag-5'>DA</b><b class='flag-5'>轉(zhuǎn)換</b>的程序詳細(xì)資料說(shuō)明

    使用單片機(jī)控制PCF8591進(jìn)行AD轉(zhuǎn)換和進(jìn)行DA轉(zhuǎn)換的詳細(xì)資料說(shuō)明

    1.利用單片機(jī)控制PCF8591的AD轉(zhuǎn)換,控制AD0和AD1電位器,在數(shù)碼光上顯示DA轉(zhuǎn)換的值。
    發(fā)表于 05-06 18:23 ?24次下載
    使用<b class='flag-5'>單片機(jī)</b>控制PCF8591進(jìn)行AD<b class='flag-5'>轉(zhuǎn)換</b>和進(jìn)行<b class='flag-5'>DA</b><b class='flag-5'>轉(zhuǎn)換</b>的詳細(xì)資料說(shuō)明

    使用單片機(jī)實(shí)現(xiàn)DA轉(zhuǎn)換的實(shí)驗(yàn)文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)DA轉(zhuǎn)換的實(shí)驗(yàn)文件免費(fèi)下載。
    發(fā)表于 03-24 11:11 ?20次下載