單片機AD轉換方法 為什么要AD轉換?所有單片機一般只能處理數字信號。可是當單片機需要獲取電路上的某一點電壓值的時候,就必須使用AD轉換。如果你直接把單芯片的引腳連接到電路的點上,單片機只知道這個點的電壓是低的或高的,怎樣才能得到它的電壓值呢?比如數字萬用表,它測量電壓,先將AD轉換電路,將電壓值轉換為一個值,然后將此值發送到單片機,單片機經過計算處理后,再將電壓值顯示到屏幕上。但現在有一些強大的單片機,其內部AD轉換器已經集成,不需要你連接AD轉換芯片。
A是模擬信號的意思,D是數字信號的意思,AD轉換就是模數轉換,顧名思義,就是把模擬信號轉換成數字信號,例如把電壓值轉化為數字信號。
1、分辨率
舉個簡單的例子,8位芯片只能轉換最小到0.01V的電壓,而12位的芯片卻能轉換最小到0.001V的電壓,如果一個電壓為3.359V,8位芯片轉出來后的數值是3.35V,12位芯片轉換出來后是3.359V,精度比8位就高一個檔次了。(注:這里數值不是正確的數值,舉例用,切勿實際使用)
2、8位16位的ad轉換芯片是什么意思
8位,16位就代表了AD轉換芯片的轉換分辨率,數字越大,分辨率越高,同時也反映了它的精度,數字越大,精度相對也越高。8位算是最低了,有些單片機里集成的AD轉換器一般是10位的。12位和16位的芯片價格就比較貴了。
3、精度
精度是AD芯片的一個重要參數,表示采集到的數據和真實值之間的相差的程度。例如單片機轉換出來的結果是0.3V,而實際可能是0.31V,這樣就相差了0.01V。這種誤差是不可避免無法消除的。這和在第3點中提到的位數有關,位數越高,這樣的誤差越小。
單片機ad轉換處理方法
4、采樣
采樣是AD轉換的速度性能指標,通俗的說就是每秒里能采樣多少次,采樣次數越高芯片性能越好。如果對采樣不理解,也可以用另一種方式理解,就是一個AD轉換芯把電壓值轉換成數字值這個過程所需要的時間,時間越短越好。
單片機內集成的A/D轉換,一般都有相應的特殊功能寄存器來設置A/D的使能標志,參考電壓,轉換頻率,通道選擇,A/D輸入口的屬性(模擬量輸入還是普通的I/O口),啟動,停止控制等。有了這些寄存器,使得我們控制單片機的模擬量采集變得非常方便。
A/D轉換的基本原理是:將參考電平按最大的轉換值量化,再利用輸入模擬電平與參考電平的比例來求得輸入電平的測量值(V測=V參*(AD量化值/AD轉換的最大值))。有些MCU A/D轉換的參考電平可以選擇由一個外部引腳輸入,這樣使得用戶可以對A/D轉換進行更好的控制。值得注意的一點就是A/D轉換的輸入電平必須比參考電平低或相等,不然測試的結果就會有很大的偏差。
下面以參考電平為5V,轉換的精度為8位為例來說明如何取得實際的測量值是多少。如果AD量化值為128,則V測= 5*128/256=2.5V。因為V測=V參*(AD量化值/AD轉換的最大值)=AD量化值*(V參/AD轉換的最大值),而針對具體的硬件電路,“V參/AD轉化的最大值”是一個固定的系數。而這個系數,就相當于測試的精度了。對于10位的A/D,5V的參考電壓的測試精度約5毫伏,而用2.048伏的參考電壓,精度就可以達到2毫伏。當然測試的電壓范圍相應的也減小了。我曾經就用這種減小測量范圍來提高精度,使用PIC16F76做A/D測量,使得正負誤差不超過5毫伏的高精度測試電源。當誤差超過5毫伏時,電路發出報警聲,提示操作員,重新調解電壓到規定范圍內。
然而,即使使用同樣一款MCU,不同的軟硬件設計者,使得A/D轉換的效果相差也甚遠。主要是很多新手在處理上有些不當,不是直接把一次轉換后的結果拿來處理并做相應的顯示,就是對參考電平不做處理。所以使得顯示效果老是變化不定,給人一種不穩定的感覺。
針對參考電平設在單片機內部的MCU,主要是要對A/D的量化值做數字濾波處理,比如多次間隔采樣,再求平均等。而針對參考電壓可以從外部輸入腳引入的,最好單獨設置一組高穩定度的參考電壓,如TL431等。這樣,即使MCU的主電源有些波動也不會導致A/D轉換值的漂移。其實在沒有高精度參考電壓的情況下,或者A/D量化值很不穩定的情況下,
我們依然可以通過軟件的方法將與A/D轉換有關的顯示或其他的驅動做得非常穩定。這就要看程序員的設計經驗了。