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

下載本文檔

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

文檔簡介

微機原理與接口技術(shù)2012年10月26日第10章A/D、D/A轉(zhuǎn)換接口

1

10.1D/A與A/D接口概述10.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)

如下圖所示2生

產(chǎn)

程傳感器執(zhí)行機構(gòu)A/D轉(zhuǎn)換器I/O接口計算機D/A轉(zhuǎn)換器I/O接口圖10.1典型的計算機自動控制系統(tǒng)3模擬量I/O通道:模擬接口電路的任務(wù)模擬電路的任務(wù)0010110110101100工業(yè)生產(chǎn)過程傳感器放大濾波多路轉(zhuǎn)換&采樣保持A/D轉(zhuǎn)換放大驅(qū)動D/A轉(zhuǎn)換輸出接口微型計算機執(zhí)行機構(gòu)輸入接口物理量變換信號處理信號變換I/O接口輸入通道輸出通道變送器10.1.2模/數(shù)轉(zhuǎn)換器(ADC)的主要性能參數(shù)1.分辨率(Resolution)

它表明A/D對模擬信號的分辨能力,由它確定能被A/D辨別的最小模擬量變化。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例如53.轉(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)換器的誤差,其誤差大小由實際模擬量輸入值與理論值之差來度量。5.相對精度

對于A/D,指的是滿度值校準以后,任一數(shù)字輸出所對應(yīng)的實際模擬輸入值(中間值)與理論值(中間值)之差。例如,對于一個8位0~+5V的A/D轉(zhuǎn)換器,如果其相對誤差為1LSB,則其絕對誤差為19.5mV,相對誤差為0.39%。tV1/2LSBtCVFULL6圖10–2理想的A/D轉(zhuǎn)換曲線710.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)

D/A的實際轉(zhuǎn)換值偏離理想轉(zhuǎn)換特性的最大偏差與滿量程之間的百分比稱為線性誤差。83.建立時間(Settingtime)

這是D/A的一個重要性能參數(shù),定義為:在數(shù)字輸入端發(fā)生滿量程碼的變化以后,D/A的模擬輸出穩(wěn)定到最終值±1/2LSB時所需要的時間。4.溫度靈敏度

它是指數(shù)字輸入不變的情況下,模擬輸出信號隨溫度的變化。一般D/A轉(zhuǎn)換器的溫度靈敏度為±50PPM/℃。PPM為百萬分之一。5.輸出電平

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

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

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

圖10.3給出了DAC0832的引腳圖。

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

10ILECSWR1

XFERWR2

D0Q0D1Q1

D2Q2

D3Q3

D4Q4

D5Q5

D6Q6

D7Q7GD0Q0D1Q1

D2Q2

D3Q3

D4Q4

D5Q5

D6Q6

D7Q7GD/AD0D1D2

D3

D4D5D6D7

VREF

IOUT2IOUT1RFB鎖存器1鎖存器2轉(zhuǎn)換器圖10.3DAC0832的內(nèi)部結(jié)構(gòu)

11圖10.4DAC0832引腳圖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

DAC0832WR212各引腳的功能如下:D0~D7:8位數(shù)據(jù)輸入端。CS:片選信號輸入端。WR1、WR2:兩個寫入命令輸入端,低電平有效。XFER:傳送控制信號,低電平有效。IOUT1和IOUT2:互補的電流輸出端。13RFB:反饋電阻,被制作在芯片內(nèi),與外接的運 算放大器配合構(gòu)成電流/電壓轉(zhuǎn)換電路。

VREF:轉(zhuǎn)換器的基準電壓。

VCC:工作電源輸入端。

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

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

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

單緩沖方式是將一個鎖存器處于緩沖方式,另一個鎖存器處于直通方式,輸入數(shù)據(jù)經(jīng)過一級緩沖送入D/A轉(zhuǎn)換器。(3)雙緩沖方式

即數(shù)據(jù)通過兩個寄存器鎖存后再送入D/A轉(zhuǎn)換電路,執(zhí)行兩次寫操作才能完成一次D/A轉(zhuǎn)換。1610.2.3D/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時,有AR10.2.4DAC0832與CPU的連接

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

與CPU的連接如圖10.4所示。21I1I2I3I4I5I6I7I8I9I10O1O2O3O4O5O6O7O8GAL16V8WRA0A1A2A3A4A5A6A7M/IO+5V10K20HCSWR1WR2DGNDD0~D7D0~D7ILEXFERVREFIOUT1IOUT2AGND_+RFBLM741+5VU0DAC0832圖10.5DAC0832與CPU的單緩沖方式連接電路22DAC0832單緩沖方式接口框圖

23DAC0832雙緩沖接口框圖

24

在這種方式下,需執(zhí)行兩條輸出指令才能啟動D/A轉(zhuǎn)換器。設(shè)DAC0832輸入寄存器口地址為PORT,DAC寄存器口地址為PORT+1,則下面幾條指令可完成數(shù)字量到模擬量的轉(zhuǎn)換。

MOVDX,PORT

OUTDX,AL;打開輸入寄存器,數(shù)據(jù)裝入并鎖存

INCDX

OUTDX,AL;打開DAC寄存器,數(shù)據(jù)通過,送去D/A轉(zhuǎn)換

第一條輸出指令打開DAC0832的輸入寄存器,把AL中的數(shù)據(jù)送入輸入寄存器并鎖存起來。第二條輸出指令打開DAC0832的DAC寄存器,使輸入寄存器的數(shù)據(jù)通過DAC寄存器送到D/A轉(zhuǎn)換器中進行轉(zhuǎn)換。此時AL中數(shù)值與轉(zhuǎn)換結(jié)果無關(guān),這條指令執(zhí)行時實際上并無CPU的數(shù)據(jù)輸出給DAC寄存器,僅利用執(zhí)行指令時出現(xiàn)的I/O寫信號,打開DAC寄存器。

25下面舉例說明如何編寫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。26相應(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)。27

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

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

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

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

圖10.9給出了ADC0809的引腳圖。29圖10-7A/D轉(zhuǎn)換器及其轉(zhuǎn)換情況(a)A/D轉(zhuǎn)換器;(b)輸入和輸出30t模擬信號A8H96H7BH數(shù)字信號的量模擬量的幅值和數(shù)字量的值之間是一一對應(yīng)的關(guān)系,區(qū)別是模擬信號是時間連續(xù)的,數(shù)字信號是時間不連續(xù)的,是一脈沖序列。完成上述功能的過程為模擬量到數(shù)字量的轉(zhuǎn)換。圖10-15模擬信號與數(shù)字信號的關(guān)系31表10-18位A/D轉(zhuǎn)換器數(shù)字量與模擬量之間的轉(zhuǎn)換關(guān)系數(shù)字量模擬量000000000.0000000000010.0195………………..011111112.4805100000002.5000……………….111111114.980532圖10.8ADC0809轉(zhuǎn)換器的內(nèi)部結(jié)構(gòu)圖EOCOED0

D7

REF(+)REF(-)ADDCADDBADDAALEIN0IN7比較器通道選擇開關(guān)逐位逼近寄存器(SAR)開關(guān)樹型D/A8位鎖存和三態(tài)門定時和控制通道地址鎖存及譯碼模擬輸入數(shù)字輸出START33工作時序34ADC0809的工作過程由時序圖知ADC0809的工作過程如下:送通道地址,以選擇要轉(zhuǎn)換的模擬輸入;鎖存通道地址到內(nèi)部地址鎖存器;啟動A/D變換;判斷轉(zhuǎn)換是否結(jié)束;讀轉(zhuǎn)換結(jié)果3510.3.2ADC轉(zhuǎn)換的基本原理ADC原理:用被變換信號與分層得到的若干量化刻度(QuantizeScale)相比較,看它的幅值在哪兩個刻度之間,然后取其整值的過程。

存在多種A/D轉(zhuǎn)換技術(shù),各有特點,分別應(yīng)用于不同的場合計數(shù)器式逐次逼近式(ADC0809)雙積分式缺點:轉(zhuǎn)換速度低;只能用于直流信號或慢變化信號的轉(zhuǎn)換,優(yōu)點:一是精度高,且抗干擾能力強。例如制作數(shù)字萬用表等;電荷平衡ADC:改進雙積分的積分電容介質(zhì)吸收及速度問題。并行式361.計數(shù)器式37計數(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ù)法(慢)382.逐次逼近式39逐次逼近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é)束以最高位開始逐步試探,快403.雙積分式IREFIinVinVREF積分器比較器V/IV/I時鐘啟動計數(shù)計數(shù)器數(shù)字輸出T2T1Vc固定斜率時間可變固定時間斜率可變轉(zhuǎn)換結(jié)束41

雙積分型A/D轉(zhuǎn)換器是通過兩次積分來完成A/D轉(zhuǎn)換的,第一次是對模擬輸入電壓進行積分,積分時間是固定的;另一次是以積分電容充電后的電壓為初值,對與Ui極性相反的參考電壓Uref進行反向積分,直至電容完全放電為止。42雙積分式ADC原理基本思想是將被變換的電壓轉(zhuǎn)換成與其幅度成正比的時間(V/T轉(zhuǎn)換),然后對時間進行測量(計數(shù)高頻時鐘脈沖)。平均值!先時間固定積分,得V0再電壓固定積分(稱“反向積分”),使輸出=V0對反向積分的時間進行計數(shù),計數(shù)值即ADC的數(shù)據(jù)4310.3.3ADC0809與CPU的連接ADC0809與CPU的連接,主要是正確處理數(shù)據(jù)輸出線(D0~D7),啟動信號START和轉(zhuǎn)換結(jié)束信號EOC與系統(tǒng)總線的連接問題。

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

441.通道地址線ADDA-ADDC的連接多路輸入時,地址線不能接死,要通過一個接口芯片與數(shù)據(jù)總線連接。接口芯片可以選用:簡單接口芯片74LS273,74LS373等(占用一個I/O地址)可編程并行接口8255(占用四個I/O地址)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809輸入DB74LS273Q2Q1Q0CP來自I/O譯碼D0-D7ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809DB8255PB2PB1PB0CS#來自I/O譯碼D0-D7A1A0A1A0452.數(shù)據(jù)輸出線D0-D7的連接可直接連到DB上,或通過另外一個輸入接口與DB相連;兩種方法均需占用一個I/O地址D0-D7ADC0809DBOE來自I/O譯碼D0-D7ADC0809DBOE來自I/O譯碼直接連DB通過輸入接口連DB74LS244+5VDIDOE1#E2#463.ALE和START端的連接獨立連接:用兩個信號分別進行控制——需占用兩個I/O端口或兩個I/O線;統(tǒng)一連接:用一個脈沖信號的上升沿進行地址鎖存,下降沿實現(xiàn)啟動轉(zhuǎn)換——只需占用一個I/O端口或一個I/O線。ADC0809ALESTART獨立連接來自I/O譯碼1來自I/O譯碼2ADC0809ALESTART統(tǒng)一連接來自I/O譯碼474.ADC0809與系統(tǒng)的連接示例D0IN0A15--A0IORIOWD7--D0D7-D0EOCOESTARTALEADDCADDBADDA譯碼器ADC0809I/O接口485.判斷轉(zhuǎn)換結(jié)束的方法軟件延時等待(比如延時1ms)此時不用EOC信號,CPU效率最低軟件查詢EOC狀態(tài)。把EOC作為中斷申請信號,接到8259的IN端。在中斷服務(wù)程序中讀入轉(zhuǎn)換結(jié)果,效率較高49A/D轉(zhuǎn)換的啟動啟動信號一般有兩種形式脈沖信號啟動轉(zhuǎn)換電平信號啟動轉(zhuǎn)換轉(zhuǎn)換啟動轉(zhuǎn)換結(jié)束50轉(zhuǎn)換結(jié)束信號的處理不同的處理方式對應(yīng)程序設(shè)計方法不同①

查詢方式——把結(jié)束信號作為狀態(tài)信號②

中斷方式——把結(jié)束信號作為中斷請求信號③

延時方式——不使用轉(zhuǎn)換結(jié)束信號④

DMA方式——把結(jié)束信號作為DMA請求信號51例1:中斷方式D0~D7220hIRQ2A0~A9譯碼VccD0~D7EOCADDAADDBADDCALE模擬輸入(0~5V)500KHzCLOCKVREF(+)+5VIN0OESTARTGNDVREF(-)IORIOW52

;數(shù)據(jù)段 adtempdb0 ;給定一個臨時變量 ;代碼段 …… ;設(shè)置中斷向量等工作 sti ;開中斷

movdx,220h outdx,al ;啟動A/D轉(zhuǎn)換 …… ;其他工作例1主程序

53例1:中斷服務(wù)程序(1)

adint proc sti ;開中斷 pushax ;保護寄存器 pushdx pushds movax,@data ;設(shè)置數(shù)據(jù)段DS movds,ax movdx,220h inal,dx ;讀A/D轉(zhuǎn)換的數(shù)字量 movadtemp,al ;送入緩沖區(qū)54 moval,20h ;發(fā)送EOI命令 out20h,al popds ;恢復(fù)寄存器 popdx popax iret ;中斷返回adint endp例1:中斷服務(wù)程序(2)55例2:查詢方式8通道模擬輸入(0~5V)VccD7A3~A9D0~D7D0~D7OEEOCA0A1A2ADDAADDBADDC

譯碼500KHzCLOCKSTARTGNDVREF(+)VREF(-)ALE+5VIN0IN1IN2IN3IN4IN5IN6IN7220h~227h238h~23fhIORIOW56例2:啟動轉(zhuǎn)換 ;數(shù)據(jù)段counter equ8buf dbcounterdup(0) ;數(shù)據(jù)緩沖區(qū) ;代碼段 movbx,offsetbuf movcx,counter movdx,220h ;從IN0開始轉(zhuǎn)換start1: outdx,al ;啟動A/D轉(zhuǎn)換 pushdx57例2:查詢讀取 movdx,238h ;查詢是否轉(zhuǎn)換結(jié)束start2: inal,dx ;讀入狀態(tài)信息 testal,80h ;D7=1,轉(zhuǎn)換結(jié)束否? jzstart2 ;沒有結(jié)束,繼續(xù)查詢 popdx ;轉(zhuǎn)換結(jié)束 inal,dx ;讀取數(shù)據(jù) mov[bx],al ;存入緩沖區(qū) incbx incdx loopstart1 ;轉(zhuǎn)向下一個模擬通道586.ADC0809的轉(zhuǎn)換公式輸入模擬電壓輸出數(shù)字量基準電壓正極基準電壓負極8)(REF)(REF)(REFin2VVVVN--=-+-×59單極性轉(zhuǎn)換示例基準電壓VREF(+)=5V,VREF(-)=0V輸入模擬電壓Vin=1.5V

N=(1.5-0)÷(5-0)×256 =76.8≈77=4DH8)(REF)(REF)(REFin2VVVVN×--=-+-60雙極性轉(zhuǎn)換示例基準電壓VREF(+)=+5V,VREF(-)=-5V輸入模擬電壓Vin=-1.5V

N=(-1.5+5)÷(5+5)×256 =89.6≈90=5AH8)(REF)(REF)(REFin2VVVVN×--=-+-61圖10.10ADC0809與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≥162下面舉例說明如何編寫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。

63相應(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;處

64MOVDX,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處。

65

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

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

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

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

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

67分析(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。

68相應(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

溫馨提示

  • 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

提交評論