第9章AD、DA轉(zhuǎn)換接口2014_第1頁
第9章AD、DA轉(zhuǎn)換接口2014_第2頁
第9章AD、DA轉(zhuǎn)換接口2014_第3頁
第9章AD、DA轉(zhuǎn)換接口2014_第4頁
第9章AD、DA轉(zhuǎn)換接口2014_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1微機原理與接口技術(shù)2014年11月第9章A/D、D/A轉(zhuǎn)換接口

2

9.1D/A與A/D接口概述9.1.1一個典型的計算機自動控制系統(tǒng)

數(shù)/模(D/A)和模/數(shù)(A/D)轉(zhuǎn)換技術(shù)主要用于計算機實時控制和自動測量系統(tǒng)中。在工業(yè)控制和參數(shù)測量時,經(jīng)常會遇到如溫度、壓力、流量等連續(xù)變化的物理量(通稱模擬量)。用計算機處理這些模擬量必須先將其轉(zhuǎn)換為電信號,然后再經(jīng)A/D轉(zhuǎn)換器將其轉(zhuǎn)換為數(shù)字量。對于大多數(shù)的被控對象,計算機加工處理后輸出的數(shù)字形式控制信號還應(yīng)經(jīng)D/A轉(zhuǎn)換變成模擬量。才能推動執(zhí)行機構(gòu)工作。一個包含A/D和D/A轉(zhuǎn)換的計算機閉環(huán)自動控制系統(tǒng)

如下圖所示3生

產(chǎn)

程傳感器執(zhí)行機構(gòu)A/D轉(zhuǎn)換器I/O接口計算機D/A轉(zhuǎn)換器I/O接口圖9.1典型的計算機自動控制系統(tǒng)模擬量輸入通道的組成典型的模擬量輸入通道由以下幾部分組成1.傳感器-非電量的模擬量轉(zhuǎn)換成電量2.量程放大器-把微弱信號放大到A/D轉(zhuǎn)換器所要求輸入的量程范圍3.低通濾波器-降低噪聲,濾去不必要的干擾,以增加信噪比4.多路開關(guān)-多個模擬量共用一個A/D轉(zhuǎn)換器進行分時采樣和轉(zhuǎn)換。5.采樣保持電路-模擬信號是變化的,完成一次轉(zhuǎn)換需要時間,在A/D轉(zhuǎn)換期間,保持輸入信號不變的電路。6.A/D轉(zhuǎn)換器-將輸入的模擬量轉(zhuǎn)換成數(shù)字量,供計算機讀取。典型的模擬量輸出通道由以下幾部分組成1.D/A轉(zhuǎn)換器-把計算機輸出的數(shù)字量轉(zhuǎn)換成模擬量2.鎖存器-D/A轉(zhuǎn)換需要一定的轉(zhuǎn)換時間,在轉(zhuǎn)換期間,輸入待轉(zhuǎn)換的數(shù)字量應(yīng)該保持不變,若D/A轉(zhuǎn)換芯片上已帶有鎖存器,則不必再額外增加。3.放大驅(qū)動電路-為了驅(qū)動受控設(shè)備,采用功率放大器作為模擬量輸出的驅(qū)動電路。69.1.2模/數(shù)轉(zhuǎn)換器(ADC)的主要性能參數(shù)1.分辨率(Resolution)

分辨率是指A/D轉(zhuǎn)換器響應(yīng)輸入電壓微小變化的能力。通常用數(shù)字輸出的最低位(LSB)所對應(yīng)的模擬輸入的電平值表示。若輸入電壓的滿量程為VFS,轉(zhuǎn)換器的位數(shù)為n,分辨率為(1/2n)VFS.,通常用位數(shù)來表示分辨率,如8位、12位等。2.量化誤差(Quantizingerror)

在A/D轉(zhuǎn)換中由于整量化產(chǎn)生的固有誤差。量化誤差在±1/2LSB(最低有效位)之間。

一個8位的A/D轉(zhuǎn)換器,它把輸入電壓信號分成28=256層,若它的量程為0~5V,那么,量化單位q為:

q==≈0.0195V=19.5mV例如73.轉(zhuǎn)換時間(Conversiontime)

轉(zhuǎn)換時間是A/D完成一次轉(zhuǎn)換所需要的時間。一般轉(zhuǎn)換速度越快越好,常見有高速(轉(zhuǎn)換時間<1us)、中速(轉(zhuǎn)換時間<1ms)和低速(轉(zhuǎn)換時間<1s)等。4.絕對精度

對于A/D,指的是對應(yīng)于一個給定量,A/D轉(zhuǎn)換器的誤差,其誤差大小由實際模擬量輸入值與理論值之差來度量。通常用數(shù)字量的最小有效值LSB的分數(shù)值來表示絕對精度。如+-LSB。5.相對精度

對于A/D,指在零點滿量程校準后,任一數(shù)字輸出所對應(yīng)的實際模擬輸入值(中間值)與理論值(中間值)之差。用模擬電壓滿量程的百分比表示。例如,對于一個8位0~+5V的A/D轉(zhuǎn)換器,如果其相對誤差為1LSB,則其絕對誤差為19.5mV,相對誤差為0.39%。(19,。5mv/5v)4.電源靈敏度 電源靈敏度是指A/D轉(zhuǎn)換器的供電電源的電壓發(fā)生變化時,產(chǎn)生的轉(zhuǎn)換誤差。用電源電壓變化1%時相當(dāng)?shù)哪M量變化的百分數(shù)表示。5.量程 量程是指所能轉(zhuǎn)換的模擬輸入電壓范圍。分單極性、雙極性兩種類型。量程:0——5v,-5v——5v6.輸出邏輯電平 多數(shù)A/D轉(zhuǎn)換器的輸出邏輯電平與TTL電平兼容。7.工作溫度范圍 由于溫度會對比較器、運算放大器、電阻網(wǎng)絡(luò)等產(chǎn)生影響,故只在一定的溫度范圍內(nèi)才能保證額定精度指標。99.1.3數(shù)/模轉(zhuǎn)換器(DAC)的主要性能參數(shù)1.分辨率(Resolution)

分辨率表明DAC對模擬量的分辨能力,它是最低有效位(LSB)所對應(yīng)的模擬量,它確定了能由D/A產(chǎn)生的最小模擬量的變化。通常用二進制數(shù)的位數(shù)表示DAC的分辨率,如分辨率為8位的D/A能給出滿量程電壓的1/28的分辨能力,顯然DAC的位數(shù)越多,則分辨率越高。2.線性誤差(Linearityerror)相鄰兩個數(shù)字量之間的差應(yīng)是1LSB,即理想的轉(zhuǎn)換特性應(yīng)是線性的。在滿量程范圍內(nèi),偏離理想的轉(zhuǎn)換特性的最大值稱為線性誤差。D/A的實際轉(zhuǎn)換值偏離理想轉(zhuǎn)換特性的最大偏差與滿量程之間的百分比稱為線性誤差。103.建立時間(Settingtime)建立時間也稱穩(wěn)定時間,是指在D/A的數(shù)字輸入端加上滿量程的變化(如從全“0”變?yōu)槿?”)以后,其模擬輸出穩(wěn)定到最終值±1/2LSB時所需的時間.4.溫度靈敏度

它是指數(shù)字輸入不變的情況下,模擬輸出信號隨溫度的變化。溫度每變化1℃,增益、線性度、零點及偏移(對雙極性D/A)等參數(shù)的變化量。一般D/A轉(zhuǎn)換器的溫度靈敏度為±50PPM/℃。PPM為百萬分之一。5.輸出電平

不同型號的D/A轉(zhuǎn)換器的輸出電平相差較大,一般為5V~10V,有的高壓輸出型的輸出電平高達24V~30V。11

9.2DAC0832數(shù)/模轉(zhuǎn)換器

D/A轉(zhuǎn)換器是計算機或其它數(shù)字系統(tǒng)與模擬量控制對象之間聯(lián)系的橋梁,它的任務(wù)是將離散的數(shù)字信號轉(zhuǎn)換為連續(xù)變化的模擬信號。在工業(yè)控制領(lǐng)域中,D/A轉(zhuǎn)換器是不可缺少的重要組成部分。9.2.1D/A轉(zhuǎn)換原理數(shù)字量是由一位一位的數(shù)位構(gòu)成的,每個數(shù)位都代表一定的權(quán)。為了把一個數(shù)字量變?yōu)槟M量,必須把每一位的數(shù)碼按照權(quán)來轉(zhuǎn)換為對應(yīng)的模擬量,再把各模擬量相加,這樣,得到的總模擬量便對應(yīng)于給定的數(shù)據(jù)。D/A轉(zhuǎn)換器的主要部件是電阻開關(guān)網(wǎng)絡(luò),通常是由輸入的二進制數(shù)的各位控制一些開關(guān),通過電阻網(wǎng)絡(luò),在運算放大器的輸入端產(chǎn)生與二進制數(shù)各位的權(quán)成比例的電流,經(jīng)過運算放大器相加和轉(zhuǎn)換而成為與二進制數(shù)成比例的模擬電壓。9.2.1D/A轉(zhuǎn)換原理分析輸入數(shù)字量和輸出模擬電壓Uo之間的關(guān)系

T型網(wǎng)絡(luò)開路時的輸出電壓UA即是反相比例運算電路的輸入電壓。反相比例運算電路T型電阻網(wǎng)絡(luò)2RA+URS2S0S1S32R2R2R2Rd0d1d2d30RRR110Uo++-ARF2R0011+–

轉(zhuǎn)換原理用戴維寧定理和疊加定理計算UAA+URS2S0S1S32R2R2R2Rd0d1d2d30RRR1102R0011最低位(LSB)最高位(MSB)1000對應(yīng)二進制數(shù)為00012.轉(zhuǎn)換原理對應(yīng)二進制數(shù)為0001時,A2R2R2RRRRR等效電路如右下圖1122332R2R2R2RRRR2RURARA00對應(yīng)二進制數(shù)為0001時,等效電路如下RA同理:對應(yīng)二進制數(shù)為0010時,有同理:對應(yīng)二進制數(shù)為1000時,有同理:對應(yīng)二進制數(shù)為0100時,有AR17

9.2.2DAC0832數(shù)/模轉(zhuǎn)換器9.2.2DAC0832的內(nèi)部結(jié)構(gòu)與引腳圖

圖9.2給出了DAC0832的內(nèi)部結(jié)構(gòu)。

圖9.3給出了DAC0832的引腳圖。DAC0832是一種相當(dāng)普遍且成本較低的數(shù)/模轉(zhuǎn)換器。該器件是一個8位轉(zhuǎn)換器,它將一個8位的二進制數(shù)轉(zhuǎn)換成模擬電壓。

18圖9.3DAC0832引腳圖720

3

12

11

8

1

CSVREF

WR1RFB

D0D1

D2

D3

D4

D5

D6

D7

XFERILEVCC

DGNDAGND

2

18

9

6

5

4

16

15

14

13

19

10

17

IOUT2

IOUT1

DAC0832WR220各引腳的功能如下:D0~D7:8位數(shù)據(jù)輸入端。CS:片選信號輸入端。WR1、WR2:數(shù)據(jù)寫入信號1和2,,低電平有效。ILE:輸入寄存器允許信號,當(dāng)CS,WR1為低電平,ILE為高時,LE1=1,輸入數(shù)據(jù)立即被送到8位輸入寄存器的輸出端。XFER:傳送控制信號,低電平有效。用于控制WR2是否起作用,控制多個DAC0832同時輸出時特別有用IOUT1和IOUT2:互補的電流輸出端。21RFB:反饋電阻,被制作在芯片內(nèi),與外接的運 算放大器配合構(gòu)成電流/電壓轉(zhuǎn)換電路。

VREF:參考電壓輸入端,轉(zhuǎn)換器的基準電壓。

VCC:芯片電源,工作電源輸入端。

AGND:模擬地,模擬電路接地點。

DGND:數(shù)字地,數(shù)字電路接地點。22(1)直通方式9.2.3DAC0832的工作方式DAC0832可工作在三種不同的工作模式:

當(dāng)ILE接高電平,CS,WR1、WR2和XFER都接數(shù)字地時,DAC處于直通方式,8位數(shù)字量一旦到達D0~7輸入端,就立即加到D/A轉(zhuǎn)換器,被轉(zhuǎn)換成模擬量。此種方式不能直接和數(shù)據(jù)總線相連接。23(2)單緩沖方式

單緩沖方式是將一個鎖存器處于受控鎖存器狀態(tài)或兩個寄存器同步受控,另一個鎖存器處于直通方式,輸入數(shù)據(jù)經(jīng)過一級緩沖送入D/A轉(zhuǎn)換器。一般做法是將WR2和XFER接地,使DAC寄存器處于直通狀態(tài),另外把ILE接高電平,CS接端口地址譯碼信號,WR1接CPU系統(tǒng)總線的IOW信號,這樣可通過一條輸出指令,選中該端口,使CS和WR1有效,啟動D/A轉(zhuǎn)換。(3)雙緩沖方式即數(shù)據(jù)通過兩個寄存器鎖存后再送入D/A轉(zhuǎn)換電路,執(zhí)行兩次寫操作才能完成一次D/A轉(zhuǎn)換。雙緩沖方式的一大用途是數(shù)據(jù)接收和啟動轉(zhuǎn)換可以異步進行在對數(shù)據(jù)轉(zhuǎn)換的同時,能進行下一個數(shù)據(jù)的接收,以提高轉(zhuǎn)換速率。將ILE=1,WR1和WR2接CPU的IOW,CS和XFER分別接兩個不同的I/O地址譯碼信號。執(zhí)行輸出指令時,WR1和WR2均有效。這樣第一條輸出指令,選擇CS端口,把數(shù)據(jù)寫入輸入寄存器,再執(zhí)行第二條輸出指令,選擇XFER端口,把輸入寄存器的內(nèi)容寫入DAC寄存器,實現(xiàn)DA轉(zhuǎn)換。另一用途是可實現(xiàn)多個模擬輸出通道同時進行DA轉(zhuǎn)換,在不同的時刻,把要轉(zhuǎn)換的數(shù)據(jù)分別打入各DA芯片的輸入寄存器,然后由一條轉(zhuǎn)換命令同時啟動多個DA轉(zhuǎn)換。試畫出3片DAC0832構(gòu)成的3路D/A轉(zhuǎn)換系統(tǒng)。WR1和WR2接CPU的寫信號WR,3個DA芯片的CS引腳分別接譯碼器的前3個片選輸出信號,3個XFER引腳連在一起,街道譯碼器的第4個片選信號上,ILE由CPU形成的一個禁止信號來控制,該信號為低電平時,禁止將數(shù)據(jù)寫入輸入寄存器。為高電平時,先用3條輸出指令選擇3個端口,分別將數(shù)據(jù)寫入各個DA芯片的輸入寄存器,當(dāng)數(shù)據(jù)都就緒后,再執(zhí)行一條輸出指令,使XFER有效,同時選通3個DA芯片的DAC寄存器,實現(xiàn)同步轉(zhuǎn)換。P4529.2.4DAC0832與CPU的連接D/A轉(zhuǎn)換器與微處理器間的信號連接包括三部分,即數(shù)據(jù)線、控制線和地址線。微處理器的輸出數(shù)據(jù)要傳送給D/A轉(zhuǎn)換器,首先要把數(shù)據(jù)總線上的輸出信號連接到D/A轉(zhuǎn)換芯片的數(shù)據(jù)輸入端。若D/A芯片內(nèi)帶有鎖存器,微處理器就把D/A芯片當(dāng)作一個并行輸出端口;若D/A芯片內(nèi)無鎖存器,微處理器就把D/A芯片當(dāng)作一個并行輸出的外設(shè),二者之間還需增加并行輸出的接口。這是因為微處理器要處理各種信息,其數(shù)據(jù)總線上的數(shù)據(jù)總是不斷變化的,使得送給D/A轉(zhuǎn)換器的數(shù)據(jù)在數(shù)據(jù)總線上停留時間很短,因而在一般情況下需要鎖存器來保存微處理器送給D/A轉(zhuǎn)換器的數(shù)據(jù)。若cs的端口地址為320H,XFER的端口地址為321H,CPU執(zhí)行一條輸出指令,將數(shù)據(jù)打入輸入寄存器,再執(zhí)行第二條輸出指令,將輸入寄存器的內(nèi)容寫入DAC寄存器,并啟動DA轉(zhuǎn)換。

代碼如下:

MOVDX,320H

MOVAL,DATA

OUTDX,AL

INCDX

OUTDX,AL289.2.4DAC0832與CPU的連接

由于DAC0832內(nèi)部含有數(shù)據(jù)鎖存器,在與CPU相連時,使其可直接掛在數(shù)據(jù)總線上。DAC0832采用單緩沖方式

與CPU的連接如圖9.4所示。29I1I2I3I4I5I6I7I8I9I10O1O2O3O4O5O6O7O8GAL16V8WRA0A1A2A3A4A5A6A7M/IO+5V10K20HCSWR1WR2DGNDD0~D7D0~D7ILEXFERVREFIOUT1IOUT2AGND_+RFBLM741+5VU0DAC0832圖9.4DAC0832與CPU的單緩沖方式連接電路30下面舉例說明如何編寫D/A轉(zhuǎn)換程序。例

編寫圖9.4中DAC0832輸出三角波的匯編程序,要求三角波的最低電壓為0V,最高電壓為2.5V。分析:三角波電壓范圍0~2.5V,對應(yīng)的數(shù)字量 00H~7FH。三角波的下降部分,從7FH 減1,直到數(shù)字量降為00H;上升部分則 從00H加1,直到7FH。31相應(yīng)的程序如下:MOVAL,7FH ;設(shè)2.5V初值

DOWN:OUT20H,AL;輸出模擬信號到端口20H,三角波下降

;段

DECAL ;輸出值減1

CMPAL,00H;輸出值到達0V?

JNZDOWN;輸出值未達到0V,則跳到DOWN

UP:

OUT20H,AL ;輸出模擬量到端口20H,三角波上升段

INCAL ;輸出值加1

CMPAL,7FH ;判別輸出值是否到達2.5V

JNZUP ;輸出值未達到2.5V則跳到UP JMPDOWN;輸出值達到2.5V則跳到DOWN循環(huán)。32

本例中DAC0832輸出的三角波如圖9.5所示。若8086的時鐘頻率為5MHz,則可計算出該三角波的周期大約為1.53ms,即頻率約為654Hz。如果要進一步降低三角波的頻率(增大其周期),可在每次D/A轉(zhuǎn)換之后加入適當(dāng)?shù)难訒r。圖9.5DAC0832輸出的三角波形圖33

9.3ADC0809模/數(shù)轉(zhuǎn)換器9.3.1ADC0809的內(nèi)部結(jié)構(gòu)與引腳圖

ADC0809是一種普遍使用且成本較低的CMOS材料A/D轉(zhuǎn)換器。它具有8個模擬量輸入通道,可將模擬量轉(zhuǎn)換為8位二進制數(shù)字量。

圖9.6給出了ADC0809的內(nèi)部結(jié)構(gòu)。

圖9.7給出了ADC0809的引腳圖。34圖9.6ADC0809轉(zhuǎn)換器的內(nèi)部結(jié)構(gòu)圖EOCOED0D7REF(+)REF(-)ADDCADDBADDAALEIN0IN7比較器通道選擇開關(guān)逐位逼近寄存器(SAR)開關(guān)樹型D/A8位鎖存和三態(tài)門定時和控制通道地址鎖存及譯碼模擬輸入數(shù)字輸出START35圖9.7ADC0809的引腳圖

10

CLOCK

D0

D1

D2

D3

D4

D5

D6

D7

ADDA

ADDB

ADDC

EOC

OE

ALE

START

REF(+)

REF(-)

Vcc

GND

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

17

14

8

15

18

19

20

21

25

24

23

7

9

22

6

12

16

11

13

26

27

28

1

2

3

4

5

ADC0809

CLOCK369.3.2ADC轉(zhuǎn)換的基本原理ADC原理:用被變換信號與分層得到的若干量化刻度(QuantizeScale)相比較,看它的幅值在哪兩個刻度之間,然后取其整值的過程。

存在多種A/D轉(zhuǎn)換技術(shù),各有特點,分別應(yīng)用于不同的場合計數(shù)器式逐次逼近式(ADC0809)雙積分式缺點:轉(zhuǎn)換速度低;只能用于直流信號或慢變化信號的轉(zhuǎn)換,優(yōu)點:一是精度高,且抗干擾能力強。例如制作數(shù)字萬用表等;電荷平衡ADC:改進雙積分的積分電容介質(zhì)吸收及速度問題。并行式371.計數(shù)器式38計數(shù)器式ADC原理集成比較器是一種特殊的運算放大器,它有兩個信號輸入端V+和V-,一個輸出端,當(dāng)V+≥V-時,輸出高電平,反之輸出低電平。由計數(shù)器對固定頻率信號CLK進行計數(shù),計數(shù)輸出值送DAC,DAC的輸出模擬量Vo與輸入模擬量Vi在比較器中進行比較,隨著計數(shù)的進行,Vo不斷增加,當(dāng)Vo>Vi,計數(shù)器停止計數(shù),此時的計數(shù)值即是模擬量Vi對應(yīng)的數(shù)字量。以最低位為增減量單位的逐步計數(shù)法(慢)392.逐次逼近式40逐次逼近ADC原理數(shù)字量由逐次逼近寄存器SAR產(chǎn)生。SAR使用對分搜索法產(chǎn)生數(shù)字量以8位數(shù)字量為例,SAR首先產(chǎn)生8位數(shù)字量的一半,即10000000B,試探模擬量的大小,若Vo>Vi,清除最高位,若Vo<Vi,保留最高位。在最高位確定后,SAR又以對分搜索法確定次高位,即以低7位的一半y1000000B(y為已確定位)試探模擬量的大小。重復(fù)這一過程,直到最低位bit0被確定,轉(zhuǎn)換結(jié)束以最高位開始逐步試探,快419.3.3ADC0809與CPU的連接ADC0809與CPU的連接,主要是正確處理數(shù)據(jù)輸出線(D0~D7),啟動信號START和轉(zhuǎn)換結(jié)束信號EOC與系統(tǒng)總線的連接問題。

圖9.8給出了ADC0809與CPU的典型連接圖。

A/D轉(zhuǎn)換器與系統(tǒng)連接的問題1.啟動信號的供給A/D轉(zhuǎn)換器要求的啟動信號一般有兩種形式:即電平啟動信號和脈沖啟動信號。電平啟動要求整個轉(zhuǎn)換過程中都必須保證啟動信號有效,如果中途撤走啟動信號,就會停止轉(zhuǎn)換而得到錯誤結(jié)果。為此,CPU一般要通過并行接口來對AD芯片發(fā)啟動信號,或者用D觸發(fā)器使啟動信號在AD轉(zhuǎn)換期間保持在有效電平。脈沖信號啟動,通常用CPU執(zhí)行輸出指令時發(fā)出的片選信號和寫信號即可在片內(nèi)產(chǎn)生啟動脈沖,從而開始轉(zhuǎn)換。2.轉(zhuǎn)換結(jié)束信號以及轉(zhuǎn)換數(shù)據(jù)的讀取A/D轉(zhuǎn)換結(jié)束時,A/D轉(zhuǎn)換芯片會輸出轉(zhuǎn)換結(jié)束信號,通知CPU讀取轉(zhuǎn)換數(shù)據(jù)。CPU一般可以采用4種方式和A/D轉(zhuǎn)換器進行聯(lián)絡(luò)來實現(xiàn)對轉(zhuǎn)換數(shù)據(jù)的讀取。程序查詢方式-程序不斷讀取AD轉(zhuǎn)換結(jié)束信號,若發(fā)現(xiàn)結(jié)束信號有效,則讀數(shù)據(jù)。中斷方式-把轉(zhuǎn)換結(jié)束信號作為中斷請求信號。CPU等待方式-利用CPU的READY引腳的功能,設(shè)法在AD轉(zhuǎn)換期間使READY處于低電平,使CPU停止工作,轉(zhuǎn)換結(jié)束時,使READY成為高電平,CPU讀取轉(zhuǎn)換數(shù)據(jù)。第四種是固定的延遲程序方式-預(yù)先精確地知道完成一次AD轉(zhuǎn)換所需要的時間,執(zhí)行一個固定的延遲程序。AD轉(zhuǎn)換芯片類型很多AD轉(zhuǎn)換芯片輸出端具有可控的三態(tài)輸出門,輸出端可以直接和微處理器的數(shù)據(jù)總線相連,由讀信號控制三態(tài)門,轉(zhuǎn)換結(jié)束后,微處理器通過執(zhí)行一條輸入指令產(chǎn)生讀信號,將數(shù)據(jù)從AD取出AD轉(zhuǎn)換芯片內(nèi)部有三態(tài)輸出門,但這種三態(tài)門不是受外部控制的,是由AD芯片在轉(zhuǎn)換結(jié)束時自動接通的沒有三態(tài)輸出門電路的AD,這種AD芯片的數(shù)據(jù)輸出線不能直接和微處理器的數(shù)據(jù)總線相連。13.5A/D轉(zhuǎn)換器與微處理器的接口A/D轉(zhuǎn)換芯片與微處理器接口時,除了要有數(shù)據(jù)信息的傳送外,還應(yīng)有控制信息和狀態(tài)信息的聯(lián)系。其工作過程是:CPU送出控制信號至A/D轉(zhuǎn)換器的啟動端,使A/D轉(zhuǎn)換器開始轉(zhuǎn)換;A/D轉(zhuǎn)換需要一定的轉(zhuǎn)換時間,當(dāng)CPU查詢到轉(zhuǎn)換完成,CPU執(zhí)行輸入指令將A/D轉(zhuǎn)換的結(jié)果讀入。46下面舉例說明如何編寫A/D轉(zhuǎn)換程序。例

編寫圖9.8中的A/D轉(zhuǎn)換程序,具體要求如下:①順序采樣IN0~IN78個輸入通道的模擬信號;②結(jié)果依次保存在ADDBUF開始的八個內(nèi)存

單元中;③上述采樣每隔100ms循環(huán)一次。設(shè)DELAY是一延時100ms子程序。

分析:(1)模擬輸入通道IN0~IN7由A0~A2決定其端口

地址,分別為300H~307H,與IOW相配合,

可啟動ADC0809進行轉(zhuǎn)換;

(2)查詢端口和讀A/D轉(zhuǎn)換結(jié)果寄存器的地址分 別為:308H和300H。

47圖9.8ADC0809與CPU的連接圖300H~307HOE

ALE

START

IN0

IN7

ADDC

ADDB

ADDA

CLK

EOC

D7

D0

REF(-)GND

500KHZ

REF+Vcc

()

+5V

A2

A1

8路模擬輸入

IOR

IOW

ADC0809≥1308H~30FHD7

D0

A0

1

2

≥1I/O

譯碼A9

A3≥148相應(yīng)的采集程序如下:

AD:MOVCX,0008H ;通道計數(shù)單元CX賦初值

MOVDI,OFFSETADDBUF;尋址數(shù)據(jù)區(qū),結(jié)果保存

;在ADDBUF存儲區(qū)

START:MOVDX,300H ;取IN0啟動地址

LOOP1:OUTDX,AL ;啟動A/D轉(zhuǎn)換,AL可為

;任意值

PUSHDX ;保存通道地址

MOVDX,308H ;取查詢EOC狀態(tài)的端口

;地址WAIT:INAL,DX ;讀EOC狀態(tài)

TESTAL,80H ;測試A/D轉(zhuǎn)換是否結(jié)束

JZWAIT ;未結(jié)束,則跳到WAIT;處

49MOVDX,300H;取讀A/D轉(zhuǎn)換結(jié)果寄存器的

;端口地址

INAL,DX ;讀A/D轉(zhuǎn)換結(jié)果

MOV[DI],AL;保存轉(zhuǎn)換結(jié)果

INCDI ;指向下一保存單元

POPDX;恢復(fù)通道地址

INCDX ;指向下一個模擬通道

LOOPLOOP1 ;未完,轉(zhuǎn)入下一通道采樣

CALLDELAY;延時100msJMPAD ;進行下一次循環(huán)采樣,跳至

;AD處。

50

9.4D/A與A/D應(yīng)用舉例

使用ADC0809和DAC0832來捕獲和重放語音信號的實例。本例要求ADC0809采樣大約1秒鐘語音信號并保存到相應(yīng)存儲單元,D/A將此語音信號經(jīng)揚聲器重放10次,然后循環(huán)進行上述采樣和重放,直到系統(tǒng)關(guān)閉。

圖9.9給出了相應(yīng)的電路。511819202123456791011121317272F7H2F6H2F5H2F0HI1

I2

I3

I4

I5

I6

I7

I8

I9

I10

I11

I12

I13

O1

O2O3O4AENIOWIORA9A8A7A6A5A4A3A2A1A0

U3

GAL20V8111224252316762292F6H2627281234510U2

VCCREF(+)IN0IN1

IN2IN3IN4IN5IN6IN7CLK+5VEOCADDAADDBADDCOEALESTART…

D0D7

放大器麥克風(fēng)500KHZD7

2F5HD0

D1

D2

2F0HGNDREF(-)13+5VD7

D0

74112981918211…

103120+12V揚聲器-12V+5V2F7HU1

17DAC0832ADC0809CSXFERDGNDAGNDRFBIOUT2VREFWR2WR1ILEIOUT1D7

D0

-+圖9.9A/D和D/A與CPU連接圖

52分析(1)DAC0832的I/O端口地址由GAL20V8譯碼產(chǎn)生的地址是2F7H;ADC0809的EOC狀態(tài)查詢地址為2F6H;讀ADC0809轉(zhuǎn)換結(jié)果端口地址為2F5H;啟動A/D轉(zhuǎn)換端口地址為2F0H。(2)該程序讀大約1秒鐘語音信號,然后重放10次,重復(fù)此進程直到系統(tǒng)被關(guān)閉。語音信號被采樣存儲在VOICE存儲區(qū)中,采樣率為每秒鐘采樣2048次。設(shè)DELAY是延時1/2048秒的子程序,且數(shù)據(jù)段中已申請2048個單元給VOICE。

53相應(yīng)的程序如下:

START:CALLREAD ;調(diào)用A/D采樣語音子程序

MOVCX,0AH ;置為10次

LOOP1:CALLWRITE ;調(diào)用D/A放音子程序

LOOPLOOP1 ;重復(fù)放音10次

JMPSTART ;進入下一次循環(huán)

READPROCNEAR ;A/D語音采樣子程序

MOVDI,OFFSETVOICE;尋址數(shù)據(jù)區(qū)

MOVCX,0800H ;裝入計數(shù)器CX=2048

READA:MOVAL,00H ;選擇IN0通道,D2=0, ;D1=0,D0=0

MOVDX,2F0H ;DX指向A/D轉(zhuǎn)換啟動端口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論