A/D 是模擬量到數字量的轉換,依靠的是模數轉換器(Analog to Digital Converter),簡稱ADC。D/A 是數字量到模擬量的轉換,依靠的是數模轉換器(Digital to Analog Converter),簡稱 DAC。它們的道理是完全一樣的,只是轉換方向不同,因此我們講解過程主要以 A/D 為例來講解。
很多同學學到 A/D 這部分的時候,感覺是個難點,概念搞不清楚,掌握不好。我個人認為主要原因不在于技術問題,而是不太會感悟生活。我們生活中有很多很多 A/D 的例子,只是沒有在單片機領域里應用而已,下面我?guī)е蠹乙黄鸶形蛞幌?A/D 的概念。
什么是模擬量?就是指變量在一定范圍內連續(xù)變化的量,也就是在一定范圍內可以取任意值。比如米尺,從0到1米之間,可以是任意值。什么是任意值,也就是可以是 1 cm,也可以是 1.001 cm,當然也可以10.000??后邊有無限個小數。總之,任何兩個數字之間都有無限個中間值,所以稱之為連續(xù)變化的量,也就是模擬量。
而我們用的米尺上被我們人為的做上了刻度符號,每兩個刻度之間的間隔是 1 mm,這個刻度實際上就是我們對模擬量的數字化,由于有一定的間隔,不是連續(xù)的,所以在專業(yè)領域里我們稱之為離散的。ADC 就是起到把連續(xù)的信號用離散的數字表達出來的作用。那么我們就可以使用米尺這個“ADC”來測量連續(xù)的長度或者高度這些模擬量。如圖17-1一個簡單的米尺刻度示意圖。
http://wiki.jikexueyuan.com/project/mcu-tutorial-three/images/42.png" alt="" />
圖17-1 米尺刻度示意圖
我們往杯子里倒水,水位會隨著倒入的水量的多少而變化?,F(xiàn)在就用這個米尺來測量我們杯子里的水位的高度。水位變化是連續(xù)的,而我們只能通過尺子上的刻度來讀取水位的高度,獲取我們想得到的水位的數字量信息。這個過程,就可以簡單理解為我們電路中的 ADC 采樣。