ADC08098通道8位a/d轉(zhuǎn)換器,ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。
主要特性
1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。
2)具有轉(zhuǎn)換起停控制端。
3)轉(zhuǎn)換時(shí)間為100μs(時(shí)鐘為640KHz時(shí)),130μs(時(shí)鐘為500KHz時(shí))。
5)模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。
6)工作溫度范圍為-40~+85攝氏度。
7)低功耗,約15mW。
ADC0809芯片為28引腳為雙列直插式封裝,其引腳排列見圖9.8。
ADC0809引腳功能:
·ALE——地址鎖存允許信號。對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。
·START——轉(zhuǎn)換啟動信號。START上升沿時(shí),復(fù)位ADC0809;START下降沿時(shí)啟動芯片,開始進(jìn)行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。本信號有時(shí)簡寫為ST.
·A、B、C——地址線。通道端口選擇線,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。其地址狀態(tài)與通道對應(yīng)關(guān)系見表9-1。
·CLK——時(shí)鐘信號。ADC0809的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號由外界提供,因此有時(shí)鐘信號引腳。通常使用頻率為500KHz的時(shí)鐘信號
·EOC——轉(zhuǎn)換結(jié)束信號。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請求信號使用。
·D7~D0——數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。D0為最低位,D7為最高
·OE——輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。
·Vcc——5V電源。
GND:地。
ADC0809的地址鎖存與譯碼電路完成對A、B、C3個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,表9-1為通道選擇表。
表9-1通道選擇表
·Vref——參考電源參考電壓用來與輸入的模擬信號進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為5V(Vref()=5V,Vref(-)=-5V)
·IN7~I(xiàn)N0——模擬量輸入通道
工作過程
首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。
轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。
(1)定時(shí)傳送方式
對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時(shí)間為128μs,相當(dāng)于6MHz的MCS-51單片機(jī)共64個(gè)機(jī)器周期??蓳?jù)此設(shè)計(jì)一個(gè)延時(shí)子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。
(2)查詢方式
A/D轉(zhuǎn)換芯片有表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。
(3)中斷方式
把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。
不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號有效時(shí),OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接受。
單片機(jī)C語言程序設(shè)計(jì):ADC0809數(shù)模轉(zhuǎn)換與顯示
/*名稱:ADC0809數(shù)模轉(zhuǎn)換與顯示
說明:ADC0809采樣通道3輸入的
模擬量,轉(zhuǎn)換后的結(jié)果顯示在數(shù)碼管上。
*/
#include《reg51.h》
#defineucharunsignedchar
#defineuintunsignedint
//各數(shù)字的數(shù)碼管段碼(共陰)
ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbitCLK=P1^3;//時(shí)鐘信號
sbitST=P1^2;//啟動信號
sbitEOC=P1^1;//轉(zhuǎn)換結(jié)束信號
sbitOE=P1^0;//輸出使能
//延時(shí)
voidDelayMS(uintms)
{
uchari;
while(ms--)for(i=0;i《120;i++);
}
//顯示轉(zhuǎn)換結(jié)果
voidDisplay_Result(uchard)
{
P2=0xf7;第4個(gè)數(shù)碼管顯示個(gè)位數(shù)
P0=DSY_CODE[d%10];
DelayMS(5);
P2=0xfb;第3個(gè)數(shù)碼管顯示十位數(shù)
P0=DSY_CODE[d%100/10];
DelayMS(5);
P2=0xfd;第2個(gè)數(shù)碼管顯示百位數(shù)
P0=DSY_CODE[d/100];
DelayMS(5);
}
//主程序
voidmain()
{
TMOD=0x02;//T1工作模式2
TH0=0x14;
TL0=0x00;
IE=0x82;
TR0=1;
P1=0x3f;//選擇ADC0809的通道3(0111)(P1.4~P1.6)
while(1)
{
ST=0;ST=1;ST=0;//啟動A/D轉(zhuǎn)換
while(EOC==0);//等待轉(zhuǎn)換完成
OE=1;
Display_Result(P3);
OE=0;
}
}
//T0定時(shí)器中斷給ADC0808提供時(shí)鐘信號
voidTimer0_INT()interrupt1
{
CLK=~CLK;
}
評論
查看更多