基于STC12C5410AD設(shè)計(jì)10位高精度ADC
2 軟件設(shè)計(jì)
2.1 寄存器的相關(guān)設(shè)置
STC12C5410AD單片機(jī)要實(shí)現(xiàn)上述設(shè)計(jì),必須對(duì)相關(guān)寄存器進(jìn)行設(shè)置:
通過(guò)設(shè)置P1M0,P1M1兩個(gè)寄存器對(duì)P1口選擇作為A/D轉(zhuǎn)換的輸入口進(jìn)行設(shè)置,比如若是選擇P1.7,則設(shè)置:
P1M0=0x80;
P1M1=0x80;
選擇I/O口模式為開(kāi)漏(Open Drain),可以作為A/D使用,還可以選擇高阻輸入,設(shè)置為:
P1M0=0x80;
P1M1=0x00;
ADC_CONTR特殊功能寄存器,從高到底依次表示:
ADC_POWER SPEED1 SPEED0 ADC_FLAG CHS2CHS1 CHS0;
選擇P1.7作為A/D輸入管腳需將CHS2/CHS1/CHS0設(shè)置為:
CHS2=1;
CHS1=1;
CHS0=1;
SPEED1/SPEED0是數(shù)/模轉(zhuǎn)換速率控制位,為了達(dá)到最快的轉(zhuǎn)換速率,本設(shè)計(jì)采用210個(gè)時(shí)鐘周期轉(zhuǎn)換一次,設(shè)置為:
SPEED1=1;
SPEED0=1;
ADC_FLAG位,為模/數(shù)轉(zhuǎn)換結(jié)束標(biāo)志位,轉(zhuǎn)換結(jié)束后自動(dòng)跳變?yōu)椤?”,需軟件清零;
ADC_START,為ADC開(kāi)始控制位,設(shè)置為:
ADC_START=1; //模/數(shù)轉(zhuǎn)換開(kāi)始
ADC_DATA,ADC_LOW2分別是10位模/數(shù)轉(zhuǎn)換結(jié)果的高8位和低2位的寄存器。轉(zhuǎn)換計(jì)算公式為:
(ADC_DATA[7:0],ADC_LOW2[1:0])=1 024*Vin/Vcc;
式中:Vin為模擬輸入通道的輸入電壓;Vcc為單片機(jī)的供電電壓,由單片機(jī)的供電電路9805或者LM317穩(wěn)壓電路輸出端決定。
2.2 軟件調(diào)試
A/D初始化子程序和啟動(dòng)A/D轉(zhuǎn)換的子程序:
3 結(jié)語(yǔ)
機(jī)內(nèi)測(cè)試系統(tǒng)在裝備系統(tǒng)中所占比例不得超過(guò)裝備的10%,否則會(huì)影響裝備的正常運(yùn)行。在信號(hào)采集中,硬件設(shè)計(jì)的簡(jiǎn)化尤其重要。本設(shè)計(jì)不但達(dá)到設(shè)計(jì)電路的精簡(jiǎn)元器件且多個(gè)測(cè)試點(diǎn)共用的要求。10位精度的ADC分辨率理論上可達(dá)到1/1 024,為了能夠穩(wěn)定的輸出頻率,試驗(yàn)中加入了中轉(zhuǎn)寄存器保持轉(zhuǎn)換結(jié)果,同時(shí)運(yùn)用滑動(dòng)濾波器消除不穩(wěn)定信號(hào)的噪聲影響。最后試驗(yàn)結(jié)果可保持長(zhǎng)時(shí)間穩(wěn)定輸出,達(dá)到試驗(yàn)預(yù)期要求。同時(shí)最低位能夠連續(xù)跳變,保證輸出的連續(xù)性和準(zhǔn)確性。本設(shè)計(jì)對(duì)模數(shù)轉(zhuǎn)換器的高精度要求,在調(diào)試過(guò)程中需對(duì)STC12C5410AD單片機(jī)的供電電壓進(jìn)行微調(diào)。設(shè)計(jì)中運(yùn)用LM317穩(wěn)壓器供電電路,調(diào)節(jié)輸入電壓,保證電壓精確穩(wěn)定在5 V,所達(dá)到效果和效率遠(yuǎn)遠(yuǎn)高于雷達(dá)裝備的BIT的模數(shù)轉(zhuǎn)換要求。同時(shí)該設(shè)計(jì)簡(jiǎn)單有效,且故障率低,能夠持續(xù)保持穩(wěn)定工作。該設(shè)計(jì)在保證設(shè)計(jì)要求條件下優(yōu)化了硬件電路設(shè)計(jì),精簡(jiǎn)元器件,降低成本和實(shí)際電路運(yùn)行的故障率。本設(shè)計(jì)的不足之處有兩點(diǎn):集成化程度還是太低,解決方法是采用貼片小板設(shè)計(jì);沒(méi)用同時(shí)處理信號(hào)的能力。后續(xù)研究將主要針對(duì)這兩點(diǎn)對(duì)其進(jìn)行改進(jìn)。
評(píng)論