ADC0804是逐次比較型A/D轉(zhuǎn)換器,它采用CMOS工藝20引腳集成芯片,分辨率為8位,轉(zhuǎn)換時間100us,輸入電壓范圍0~5V芯片內(nèi)具有三態(tài)輸出數(shù)據(jù)鎖存器,科直接連接在數(shù)據(jù)總線上。
ADC0804引腳
ADC0804引腳分布圖
Vin(+)Vin(-):兩模擬信號輸入端,用以接收單極性、雙極性和差模輸入信號
DB7~DB0:具有三態(tài)特性數(shù)字信號輸出口
AGND:模擬信號地DGNA:數(shù)字信號地
CLK:時鐘信號輸入端
CLKR:內(nèi)部時鐘發(fā)生器的外接電阻端,與CLK端配合可由芯片自身產(chǎn)生時鐘脈沖,其頻率為1/(1.1RC)
CS:片選信號輸入端,低電平有效,一旦CS有效,表明AD轉(zhuǎn)換器被選中,可啟動工作WR:寫信號輸入,低電平啟動AD轉(zhuǎn)換。
RD:讀信號輸入,低電平輸出端有效。
INTR:AD轉(zhuǎn)換結(jié)束信號,低電平表示本次轉(zhuǎn)換已完成。
Vref/2:參考電平輸入,決定量化單位
Vcc:芯片電源5V輸入
TX-1C開發(fā)板上的ADC0804接法
分析圖如下:
1.ADC0804的片選CS連接U2鎖存器的Q7輸出端,我們可以通過控制鎖存器來控
制CS,這樣接是因為開發(fā)板擴展的外圍太多,沒有多余的IO口來獨立控制ADC0804的CS,所以選擇U2
2.Vin(+)接電位器的中間滑動端,Vin(-)接地,因為這兩端可以輸入查分電壓,即它可測量Vin(+)和Vin(-)之間的電壓,當(dāng)Vin(-)接地時,Vin(+)端的電壓即為ADC0804的模擬輸入電壓,Vin(+)與電位器之間串聯(lián)一個10K的電阻,目的是限制輸入Vin(+)的電流,防止電流過大而燒壞AD芯片,當(dāng)用短路帽接插針ADIN后,電位器的中間滑動端便通過電阻R12與Vin(+)連接,此時調(diào)節(jié)電位器的旋鈕,其中間滑動端的電壓便在0~Vcc間變化,進而ADC0804的數(shù)字輸出端也在0x00~0xFF變化。
3.CLKR、CLK、GND之間用電阻電容組成RC振蕩器,用來給ADC0804提供工作所需的脈沖,其脈沖的頻率為1/(1.1RC),按芯片手冊上說明,R取10K,C取150pF。
4.Vref/2端用兩個1K的電阻分壓得到Vcc/2的電壓,將該電壓作為AD芯片工作時內(nèi)部的參考電壓
5.WR、RD分別接單片機的P3.6和P3.7引腳,數(shù)字輸出端接單片機的P1口。
6.將AGND和DGND同時連接到實驗板的GND上,實際應(yīng)用電路要考慮精確度和穩(wěn)定度最好將器件的模擬地和數(shù)字地分別連接,最后將模擬地和數(shù)字地僅在一點相連。
ADC0804啟動轉(zhuǎn)換時序
ADC0804啟動轉(zhuǎn)換時序圖
序分析:CS先為低電平,WR隨后置低,經(jīng)過至少tw(WR)L(min100ns)時間后,WR拉高,隨后AD轉(zhuǎn)換器被啟動,并且在經(jīng)過(1~8個AD時間周期+內(nèi)部Tc)時間后,模/數(shù)完成轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入數(shù)據(jù)鎖存器,同時INTR自動變?yōu)榈碗娖剑ㄖ?a target="_blank">單片機本次轉(zhuǎn)換已結(jié)束。
時序分析:當(dāng)INTR變?yōu)榈碗娖胶螅瑢S先置低,接著再將RD置低,在RD置低至少經(jīng)過tacc(max200ns)時間后,數(shù)字輸出口上的數(shù)據(jù)達到穩(wěn)定狀態(tài),此時直接讀取數(shù)字輸出端口的數(shù)據(jù)便可得到轉(zhuǎn)換后的數(shù)字信號,讀走數(shù)據(jù)后,馬上將RD拉高,然后再將CS拉高,INTR是自動變化得,當(dāng)RD置低tr1時間后,INTR自動拉高。上面是啟動一次和讀取一個數(shù)據(jù)的時序圖,當(dāng)我們需要連續(xù)轉(zhuǎn)換并且連續(xù)讀走數(shù)據(jù)時,就沒有必要每次都把CS置低再拉高,因為CS是片選信號,只要開始就把CS置低,以后當(dāng)要啟動轉(zhuǎn)換盒讀取數(shù)據(jù)時只需操作WR和RD即可。
實例程序:
#include《reg52.h》
sbitadrd=P3^7;//IO口定義
sbitadwr=P3^6;sbitdiola=P2^5;sbitdula=P2^6;sbitwela=P2^7;
unsignedcharj,k,adval;voidmain()//主程序{
uchara,A1,A2,A2t,A3;while(1){
wela=1;P0=0;//選通ADCS
adwr=0;//AD寫入(隨便寫個什么都行,主要是為了啟動AD轉(zhuǎn)換)_nop_();adwr=1;P0=0xff;//關(guān)閉ADCSdelay(10);
wela=0;//關(guān)閉有AD片選信號鎖存器的鎖存端以防止在操作數(shù)碼管時使AD的片選發(fā)生變化
for(a=20;a》0;a--)//需要注意的是ADC0804在寫和讀之間的時間間隔要足夠長否則
無法讀出數(shù)據(jù)
{//這里把顯示部分放這里的原因也是為了增加寫讀之間的時間間隔
display(A1,A2,A3);}//送去顯示各位。wela=1;//重新打開有AD片選信號鎖存器的鎖存端P1=0xff;//讀取P1口之前先給其寫全1P0=0;//選通ADCS
adrd=0;//AD讀使能adval=P1;//AD數(shù)據(jù)讀取賦給P1口adrd=1;P0=0xff;//關(guān)閉ADCSadwr=0;P1=adval;//同時把AD的值送八個發(fā)光二極顯示
A1=adval/100;//分出百,十,和個位
A2t=adval%100;
A2=A2t/10;
A3=A2t%10;
};
}
1.零點和滿刻度調(diào)節(jié)
ADC0804的零點無需調(diào)整。滿刻度調(diào)整時,先給輸入端加入電壓VIN+,使?jié)M刻度所對應(yīng)的電壓值是
其中Vmax是輸入電壓的最大值,Vmin是輸入電壓的最小值。當(dāng)輸入電壓與VIN+值相當(dāng)時,調(diào)整VREF/2端電壓值是輸出碼為FEH或FFH。
2.參考電壓的調(diào)節(jié)
在使用A/D轉(zhuǎn)換器時,為保證其轉(zhuǎn)換精度,要求輸入電壓滿量程使用,如輸入電壓動態(tài)范圍較小,則可調(diào)節(jié)參考電壓VREF,以保證小信號輸入時ADC0804芯片8位的轉(zhuǎn)換精度。
3.接地
模數(shù)、數(shù)模轉(zhuǎn)換電路中要特別注意到地線的正確連接,否則干擾很嚴(yán)重,以致影響轉(zhuǎn)換結(jié)果的正確性。A/D、D/A及取樣-保持芯片上都提供了獨立的模擬地(AGND)和數(shù)字地(DGND)的引腳。在線路設(shè)計中,必須將所有的器件的模擬地和數(shù)字地分別相連,然后將模擬地與數(shù)字地僅在一點上相連接。地線的正確連接方法如圖所示:
?
評論