單片機(jī)的ADC接口屬于模數(shù)轉(zhuǎn)換接口,將外部的模擬量信號轉(zhuǎn)化為數(shù)字信號,單片機(jī)屬于數(shù)字器件,需將模擬信號轉(zhuǎn)化為數(shù)字信號才能夠為單片機(jī)處理。目前市場的很多單片機(jī)都自帶ADC轉(zhuǎn)換接口,若無ADC轉(zhuǎn)換接口,可以使用ADC數(shù)模轉(zhuǎn)換芯片外擴(kuò)。
▲單片機(jī)最小系統(tǒng)ADC模塊是將模擬信號轉(zhuǎn)化位數(shù)字信號,數(shù)字信號用0和1表示,ADC模塊有參考電壓,假設(shè)給的參考電壓是5V,ADC是12位的(幾位表示用二進(jìn)制幾位數(shù)存儲模擬量轉(zhuǎn)化后的數(shù)字量,12位的ADC則可儲存數(shù)字量范圍為:(二進(jìn)制)000000000000~111111111111,轉(zhuǎn)換為十進(jìn)制數(shù)字范圍為0~2^12即0~4095。
也就是說把參考電壓分為2^12份即4096份,最小分辨率為VREF/4096。
也就是說二進(jìn)制的000000000000代表輸入模擬量0V,而111111111111代表最大值VREF。
▲單片機(jī)原理
下面以上圖C8051單片機(jī)為例子,如原理圖所示,該單片機(jī)工作電源為3.3V,參考電壓為2.048V,所以模擬量的輸入范圍為0~2.048V。若所需采集的電壓范圍大于參考電壓值時,可以使用電阻分壓進(jìn)行降壓或者使用運(yùn)放進(jìn)行縮小等。
該單片機(jī)ADC為12位的。也就是說輸入電壓為0時,單片機(jī)轉(zhuǎn)換后的數(shù)字量結(jié)果為000000000000(二進(jìn)制),當(dāng)輸入電壓為2.048V時,單片機(jī)轉(zhuǎn)換后的數(shù)字量結(jié)果為111111111111(二進(jìn)制),十進(jìn)制為4095。
也就是說,輸入電壓的值V=2.048×ADC采集到的數(shù)字量÷4095。
比如我們要采集一個0~10V范圍的模擬量電壓進(jìn)行顯示,那么,可以先將0~10V的電壓縮小5倍,可以使用電阻分壓,也可以采用運(yùn)放縮小等方式,然后接入單片機(jī)的ADC采樣口,可以接入上圖的P2.2口。
最后換算公式為:V = result * 2.048/ 4095 * 5;其中 result為單片機(jī)采集到的數(shù)字量。
以上是本人的觀點(diǎn),希望本人的回答能夠幫助提問者和頭條的初學(xué)者們,若有不明白的地方可以評論區(qū)下方留言,記得點(diǎn)贊哦,謝謝支持!
聯(lián)系客服