前言
A/D轉(zhuǎn)換模塊是單片機(jī)的高功能模塊,用于對(duì)模擬信號(hào)進(jìn)行數(shù)字轉(zhuǎn)換,本文以STC8H8K64U單片機(jī)為例(原理與其他51單片機(jī)并無(wú)差別),該單片機(jī)A/D模塊為16通道12位。
A/D轉(zhuǎn)換模塊的結(jié)構(gòu)
STC8H的這個(gè)單片機(jī)A/D轉(zhuǎn)換模塊輸入通道有16個(gè)(通道越多,同時(shí)可以接收的模擬量就越多),分別為ADC0——ADC15,其中ADC15用于測(cè)試內(nèi)部1.19V基準(zhǔn)電壓,工作時(shí),各個(gè)輸入通道都工作在高阻狀態(tài)。
關(guān)于位數(shù):12位是用于精度,位數(shù)越多,精度越高,以5v電壓為例,當(dāng)一位時(shí),只能分成兩份,2.5v以上是1,2.5v以下為0,當(dāng)兩位時(shí),可以分成4份,也就是1.25v,2.5v,3.75v,5v為分界,提高了精度,以此類(lèi)推。
該單片機(jī)A/D轉(zhuǎn)換模塊由多路選擇開(kāi)關(guān)、比較器、逐次比較寄存器、12位數(shù)字模擬轉(zhuǎn)換器(D/A轉(zhuǎn)換模塊)、A/D轉(zhuǎn)換結(jié)果寄存器、A/D轉(zhuǎn)換模塊控制寄存器以及A/D轉(zhuǎn)換模塊配置寄存器構(gòu)成。
A/D轉(zhuǎn)換模塊的分類(lèi)
按轉(zhuǎn)化原理分類(lèi):逐次逼近型、雙積分型、并行/串行比較型、壓頻轉(zhuǎn)換型等
按轉(zhuǎn)化速度分類(lèi):超高速<=1ns、高速<=20us、中速<=1ms、低速<=1s。
按轉(zhuǎn)化位數(shù)分類(lèi):8、12、14、16。
目前主要有逐次比較型轉(zhuǎn)換器(最常用的)和雙積分型轉(zhuǎn)換器,故接下來(lái)主要講解逐次比較型轉(zhuǎn)換器。
逐次比較型轉(zhuǎn)換器
逐次比較型模擬數(shù)字轉(zhuǎn)換器根據(jù)逐次比較的邏輯,從最高位(MSB)開(kāi)始,逐次對(duì)每一個(gè)輸入的電壓模擬量與內(nèi)部D/A轉(zhuǎn)換器輸出進(jìn)行比較,多次比較之后,使得轉(zhuǎn)換得到的數(shù)字量逼近輸入模擬量對(duì)應(yīng)值,直到A/D轉(zhuǎn)換結(jié)束。
下圖為逐次比較型轉(zhuǎn)換器原理圖

A/D轉(zhuǎn)換模塊的參考電壓源
該A/D轉(zhuǎn)換模塊的電源與單片機(jī)電源是同一個(gè),但A/D模塊有獨(dú)立的參考電壓源輸入端。
當(dāng)測(cè)量精度要求不高時(shí),可以直接使用單片機(jī)的工作電壓,高精度時(shí)使用精準(zhǔn)的參考電壓。
A/D轉(zhuǎn)換模塊的控制
A/D轉(zhuǎn)換模塊主要由ADC_CONTR、ADCCFG、ADC_RES、ADC_RESL和A/D轉(zhuǎn)換模塊時(shí)序控制寄存器ADCTIM以及控制A/D轉(zhuǎn)換的有關(guān)中斷的控制寄存器進(jìn)行控制和管理。
由于寄存器標(biāo)志位等過(guò)多,此處僅列舉較為重要的個(gè)別寄存器。

此代碼中出現(xiàn)的寄存器有ADC_CONTR,ADC_RES,ADC_RESL。
其中ADC_RES和ADC_RESL共同作為存儲(chǔ)結(jié)果寄存器,RES是高8位,RESL是低8位。
ADC_CONTER各位如下圖:

B7是A/D模塊的電源控制位,1打開(kāi),0關(guān)閉。
B6是A/D轉(zhuǎn)換啟動(dòng)控制位,1時(shí)啟動(dòng)轉(zhuǎn)換,轉(zhuǎn)換完成后自動(dòng)清0,為0時(shí)無(wú)影響(當(dāng)A/D轉(zhuǎn)換模塊啟動(dòng)之后,即使寫(xiě)0也無(wú)法停止)
B5是完成標(biāo)志位,完成轉(zhuǎn)換后置1,需要手動(dòng)清0。
主要:?jiǎn)?dòng)A/D轉(zhuǎn)換前一定保證A/D轉(zhuǎn)換模塊電源已打開(kāi),A/D轉(zhuǎn)換結(jié)束后關(guān)閉A/D轉(zhuǎn)換模塊電源可以降低能耗。初次打開(kāi)時(shí)需要適當(dāng)延時(shí),等內(nèi)部電路穩(wěn)定后再啟動(dòng)A/D轉(zhuǎn)換。
A/D轉(zhuǎn)換模塊轉(zhuǎn)換結(jié)果選擇
A/D轉(zhuǎn)換模塊轉(zhuǎn)換結(jié)束后,結(jié)果保存到ADC_RES和ADC_RESL中(因?yàn)槭?2位,一個(gè)寄存器8位,所以需要兩個(gè)寄存器拼起來(lái)存儲(chǔ)結(jié)果),但是有兩種存儲(chǔ)格式,由ADCFG中的RESFMT控制。
RESFMT=0時(shí),結(jié)果左對(duì)齊,右邊空余位自動(dòng)為0。
RESFMT=1時(shí),結(jié)果右對(duì)齊,左邊空余位自動(dòng)為0。
電子發(fā)燒友App








評(píng)論