《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于單片機的實現低成本高精度A/D與D/A轉換設計
基于單片機的實現低成本高精度A/D與D/A轉換設計
摘要: 目前單片機在電子產品中已得到廣泛應用,許多類型的單片機內部已帶有A/D轉換電路,但此類單片機會比無A/D轉換功能的單片機在價格上高幾元甚至很多,本文給大家提供一種實用的用普通單片機實現的A/D轉換電路,它只需要使用普通單片機的2個I/O腳與1個運算放大器即可實現,而且它可以很容易地擴展成帶有4通道A/D轉換功能,由于它占用資源很少,成本很低,其A/D轉換精度可達到8位或更高,因此很具有實用價值。
Abstract:
Key words :

  目前單片機在電子產品中已得到廣泛應用,許多類型的單片機內部已帶有A/D轉換電路,但此類單片機會比無A/D轉換功能的單片機在價格上高幾元甚至很多,本文給大家提供一種實用的用普通單片機實現的A/D轉換電路,它只需要使用普通單片機的2個I/O腳與1個運算放大器即可實現,而且它可以很容易地擴展成帶有4通道A/D轉換功能,由于它占用資源很少,成本很低,其A/D轉換精度可達到8位或更高,因此很具有實用價值。

  其電路如圖一所示:

 

  

  圖一

 

  其工作原理說明如下:

  1、硬件說明:

  圖一中“RA0”和“RA1”為單片機的兩個I/O腳,分別將其設置為輸出與輸入狀態,在進行A/D轉換時,在程序中通過軟件產生PWM,由RA0腳送出預設占空比的PWM波形。RA1腳用于檢測比較器輸出端的狀態。

  R1、C1構成濾波電路,對RA0腳送出的PWM波形進行平滑濾波。RA0輸出的PWM波形經過R1、C1濾波并延時后,在U1點產生穩定的電壓值,其電壓值U1=VDD*D1/(D1+D2),若單片機的工作電壓為穩定的+5V,則U1=5V*D1/(D1+D2)。

  圖一中的LM324作為比較器使用,其輸入負端的U1電壓與輸入正端的模擬量電壓值進行比較,當U1大于模擬量輸入電壓時,比較器的輸出端為低電平,反之為高電平。

  2、A/D轉換過程:

  如果使RA0輸出PWM波形,其占空比由小到大逐漸變化,則U1的電壓會由小到大逐漸變化,當U1電壓超過被測電壓時,比較器的輸出端由高電平變為低電平,因此可以認為在該變化的瞬間被測的模擬量與U1的電壓相等。

  由于U1的電壓值=VDD*D1/(D1+D2),當VDD固定時,其電壓值取決于PWM波形的占空比,而PWM的占空比由單片機軟件內部用于控制PWM輸出的寄存器值決定,若軟件中用1個8位寄存器A來存放RA0輸出的PWM的占空比值D1,因此在RA1檢測到由“1”變為“0”的瞬間,A寄存器的值D1即為被測電壓的A/D轉換值,其A/D轉換結果為8位。如果用16位寄存器來作輸出PWM的占空比,則A/D轉換值可達到16位。

  3、A/D轉換誤差分析及解決辦法:

  A/D轉換的誤差主要由以下幾個方面決定,分別說明如下:

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

  (2) 軟件產生的PWM占空比:若用于產生PWM的軟件設計不良,會使存放占空比的寄存器值與實際輸出的PWM占空比不一致,這會導致測量誤差。

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

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

  A/D轉換誤差的解決辦法:

  (1) 對VDD造成的誤差,只能通過提高VDD電壓精度來解決,它相當于A/D轉換的基準電壓。

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

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

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

  4、A/D轉換速度及提高辦法:

  由于該A/D轉換是通過PWM濾波后再進行比較來完成的,其PWM的產生與濾波都需要一定的時間,因此其A/D轉換速度較慢,適用于對A/D轉換速度要求不高的產品中,其A/D轉換速度取決于以下幾個方面:

  (1) 單片機的運行速度:單片機的運行速度越高則PWM的頻率可以越高, RC值就可以取得越小,其延時時間也可以更短,轉換速度就更快。

  (2) 被測電壓值的大小:由于U1電壓時是由小到大逐漸加大的,當被測電壓值較小時,U1電壓上升到相應值的時間就越短,完成A/D轉換的速度就越快。

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

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

  目前單片機在電子產品中已得到廣泛應用,許多類型的單片機內部已帶有A/D轉換電路,但此類單片機會比無A/D轉換功能的單片機在價格上高幾元甚至很多,本文給大家提供一種實用的用普通單片機實現的A/D轉換電路,它只需要使用普通單片機的2個I/O腳與1個運算放大器即可實現,而且它可以很容易地擴展成帶有4通道A/D轉換功能,由于它占用資源很少,成本很低,其A/D轉換精度可達到8位或更高,因此很具有實用價值。

  其電路如圖一所示:

 

  

  圖一

 

  其工作原理說明如下:

  1、硬件說明:

  圖一中“RA0”和“RA1”為單片機的兩個I/O腳,分別將其設置為輸出與輸入狀態,在進行A/D轉換時,在程序中通過軟件產生PWM,由RA0腳送出預設占空比的PWM波形。RA1腳用于檢測比較器輸出端的狀態。

  R1、C1構成濾波電路,對RA0腳送出的PWM波形進行平滑濾波。RA0輸出的PWM波形經過R1、C1濾波并延時后,在U1點產生穩定的電壓值,其電壓值U1=VDD*D1/(D1+D2),若單片機的工作電壓為穩定的+5V,則U1=5V*D1/(D1+D2)。

  圖一中的LM324作為比較器使用,其輸入負端的U1電壓與輸入正端的模擬量電壓值進行比較,當U1大于模擬量輸入電壓時,比較器的輸出端為低電平,反之為高電平。

  2、A/D轉換過程:

  如果使RA0輸出PWM波形,其占空比由小到大逐漸變化,則U1的電壓會由小到大逐漸變化,當U1電壓超過被測電壓時,比較器的輸出端由高電平變為低電平,因此可以認為在該變化的瞬間被測的模擬量與U1的電壓相等。

  由于U1的電壓值=VDD*D1/(D1+D2),當VDD固定時,其電壓值取決于PWM波形的占空比,而PWM的占空比由單片機軟件內部用于控制PWM輸出的寄存器值決定,若軟件中用1個8位寄存器A來存放RA0輸出的PWM的占空比值D1,因此在RA1檢測到由“1”變為“0”的瞬間,A寄存器的值D1即為被測電壓的A/D轉換值,其A/D轉換結果為8位。如果用16位寄存器來作輸出PWM的占空比,則A/D轉換值可達到16位。

  3、A/D轉換誤差分析及解決辦法:

  A/D轉換的誤差主要由以下幾個方面決定,分別說明如下:

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

  (2) 軟件產生的PWM占空比:若用于產生PWM的軟件設計不良,會使存放占空比的寄存器值與實際輸出的PWM占空比不一致,這會導致測量誤差。

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

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

  A/D轉換誤差的解決辦法:

  (1) 對VDD造成的誤差,只能通過提高VDD電壓精度來解決,它相當于A/D轉換的基準電壓。

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

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

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

  4、A/D轉換速度及提高辦法:

  由于該A/D轉換是通過PWM濾波后再進行比較來完成的,其PWM的產生與濾波都需要一定的時間,因此其A/D轉換速度較慢,適用于對A/D轉換速度要求不高的產品中,其A/D轉換速度取決于以下幾個方面:

  (1) 單片機的運行速度:單片機的運行速度越高則PWM的頻率可以越高, RC值就可以取得越小,其延時時間也可以更短,轉換速度就更快。

  (2) 被測電壓值的大小:由于U1電壓時是由小到大逐漸加大的,當被測電壓值較小時,U1電壓上升到相應值的時間就越短,完成A/D轉換的速度就越快。

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

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

  5、輸入電壓的測量范圍:

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

  6、A/D轉換通道的多路擴展:

  圖中所用的運算放大器為LM324,該集成電路內部帶有4個運放,其余3個運放的輸入端可分別作為另外3個A/D轉換通道,其輸出端與單片機連接,在軟件上略作修改,就可以在不增加成本的情況下實現4路A/D轉換。

  7、用同樣的工作原理實現D/A轉換:

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

 

  

  圖二

 

  8、單片機的A/D轉換軟件程序流程圖:

 

  

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
美女精品在线观看| 国产精品自拍在线| 亚洲一区二区在线免费观看视频| 最新日韩在线| 久久成人精品无人区| 亚洲欧美日韩直播| 亚洲视频欧美在线| 一区二区三区四区蜜桃| 夜色激情一区二区| 99精品99| 99亚洲一区二区| 亚洲人成在线免费观看| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产精品成人一区二区 | 亚洲国产高清自拍| 亚洲电影av| 亚洲国产高清在线| 亚洲人成在线观看一区二区 | 欧美在线啊v| 久久精品99国产精品| 欧美中文字幕在线视频| 久久精品一区二区三区不卡| 欧美在线不卡| 久久一区国产| 欧美va日韩va| 欧美精品一区二区三区久久久竹菊| 欧美激情在线观看| 欧美日韩精品三区| 国产精品免费福利| 国产性色一区二区| 亚洲二区免费| 日韩香蕉视频| 亚洲欧美一区在线| 亚洲第一级黄色片| 一本久久a久久精品亚洲| 亚洲特色特黄| 欧美在线不卡| 欧美+日本+国产+在线a∨观看| 欧美精品一区二区三区蜜桃 | 99国产精品99久久久久久粉嫩| 一区二区三区精品国产| 亚洲永久免费精品| 久久成人精品无人区| 亚洲麻豆一区| 午夜欧美不卡精品aaaaa| 久久久久久婷| 欧美精品麻豆| 国产精品一区二区三区四区| 狠狠88综合久久久久综合网| 亚洲国产99| 亚洲午夜久久久久久尤物| 欧美一区二区三区男人的天堂| 91久久嫩草影院一区二区| 亚洲视频一区二区免费在线观看| 欧美制服丝袜第一页| 欧美福利电影在线观看| 国产精品看片你懂得| 国内精品视频一区| 亚洲精品综合精品自拍| 午夜日韩在线观看| 日韩小视频在线观看| 欧美在线免费视屏| 欧美另类久久久品| 国产一区二区精品久久99| 亚洲欧洲一区二区三区在线观看| 中文在线不卡视频| 亚洲国产日韩综合一区| 亚洲欧美电影在线观看| 美日韩免费视频| 国产精品网站视频| 亚洲人成在线观看| 性欧美激情精品| 亚洲午夜电影网| 免费黄网站欧美| 国产精品女人网站| 91久久久久久久久| 欧美在线免费视屏| 亚洲影音先锋| 欧美激情自拍| 极品少妇一区二区| 亚洲男人的天堂在线aⅴ视频| 日韩午夜免费| 久热精品视频在线观看| 国产精品久久久久久久午夜| 亚洲动漫精品| 久久成人亚洲| 欧美在线观看视频| 欧美视频在线观看一区| 亚洲激情专区| 亚洲福利视频网| 欧美在线视频不卡| 国产精品久久9| 91久久精品日日躁夜夜躁国产| 欧美一乱一性一交一视频| 亚洲综合色丁香婷婷六月图片| 欧美高清在线一区| 在线观看日韩精品| 久久精品国产免费观看| 欧美在线视频免费| 欧美午夜一区二区福利视频| 最新日韩在线| 亚洲黄色影院| 免费成人黄色av| 在线高清一区| 亚洲二区免费| 久久精品国产亚洲a| 国产精品美女久久久久久2018| 亚洲精品一品区二品区三品区| 亚洲欧洲在线播放| 久久久午夜视频| 国产亚洲在线观看| 香蕉av777xxx色综合一区| 亚洲女人av| 欧美午夜片欧美片在线观看| 亚洲精品一区二区三区四区高清| 亚洲人人精品| 免费成人网www| 亚洲福利电影| 亚洲人体一区| 欧美精品免费在线| 亚洲第一免费播放区| 91久久在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 激情国产一区二区| 久久精品人人爽| 麻豆亚洲精品| 91久久精品美女高潮| 日韩午夜激情| 欧美日韩在线精品| 国产精品99久久久久久人| 亚洲在线一区二区三区| 国产精品久久久久毛片大屁完整版 | 国内精品一区二区| 亚洲国产成人av好男人在线观看| 久久久久欧美精品| 影音先锋成人资源站| 亚洲国产影院| 欧美日韩三级电影在线| 一区二区三区久久网| 午夜欧美大尺度福利影院在线看| 国产伦一区二区三区色一情| 午夜精品久久久久久久蜜桃app | 国产欧美日韩三区| 欧美一区国产一区| 欧美aⅴ一区二区三区视频| 亚洲国产精品成人| 亚洲午夜成aⅴ人片| 国产精品一区二区三区四区| 欧美在线日韩精品| 欧美成人在线免费观看| 日韩系列在线| 欧美在线在线| 亚洲缚视频在线观看| 中文在线不卡| 国产伦精品一区二区三区四区免费| 欧美中日韩免费视频| 欧美chengren| 在线综合亚洲| 久久久欧美精品sm网站| 亚洲激情图片小说视频| 亚洲综合久久久久| 狠狠久久婷婷| 亚洲天堂成人在线视频| 国产欧美在线视频| 亚洲人成网站精品片在线观看| 欧美日韩黄视频| 亚洲欧美日韩中文播放| 噜噜噜久久亚洲精品国产品小说| 亚洲精品欧美极品| 欧美一区二区私人影院日本| 1024亚洲| 午夜精品久久久久久99热软件| 激情综合在线| 亚洲影院色在线观看免费| 国产在线日韩| 在线视频中文亚洲| 国产人成一区二区三区影院| 亚洲人成在线播放网站岛国| 国产精品美女视频网站| 亚洲激情第一区| 国产精品―色哟哟| 亚洲精品视频在线播放| 国产精品视频免费观看| 亚洲三级免费电影| 国产精品一二三| 99视频+国产日韩欧美| 国产日韩欧美夫妻视频在线观看| 亚洲精品国产精品乱码不99按摩| 国产精品久久毛片a| 亚洲精品一区在线| 国产一区二区精品在线观看| 亚洲视频大全| 亚洲福利视频一区二区| 香蕉成人久久| 亚洲精品免费电影| 久久亚洲欧美国产精品乐播| 一区二区三区国产在线| 欧美成人免费在线视频| 亚洲欧美日韩成人高清在线一区| 欧美激情第二页|