第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件_第1頁
第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件_第2頁
第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件_第3頁
第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件_第4頁
第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件_第5頁
已閱讀5頁,還剩205頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

概述A/D和D/A轉(zhuǎn)換器是把微型計算機的應(yīng)用領(lǐng)域擴展到檢測和過程控制的必要裝置,是把計算機和生產(chǎn)過程、科學(xué)實驗過程聯(lián)系起來的重要橋梁。下圖給出了A/D、D/A轉(zhuǎn)換器在微機檢測和控制系統(tǒng)中的應(yīng)用實例框圖。概述A/D和D/A轉(zhuǎn)換器是把微型計算機的應(yīng)第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件10.1D/A轉(zhuǎn)換器及其接口技術(shù)一、D/A轉(zhuǎn)換器及其接口

D/A轉(zhuǎn)換器的功能是把二進(jìn)制數(shù)字量電信號轉(zhuǎn)換為與其數(shù)值成正比的模擬量電信號。在D/A參數(shù)中一個最重要的參數(shù)就是分辨率,它是指輸入數(shù)字量發(fā)生單位數(shù)碼變化時,所對應(yīng)輸出模擬量(電壓或電流)的變化量。10.1D/A轉(zhuǎn)換器及其接口技術(shù)一、D/A轉(zhuǎn)換器及其接口

分辨率是指輸入數(shù)字量最低有效位為1時,對應(yīng)輸出可分辨的電壓變化量ΔU與最大輸出電壓Um之比,即分辨率=1/(2-1)

n分辨率是指輸入數(shù)字量最低有效位為1時,對應(yīng)最小階梯電壓=參考電壓*分辨率

=參考電壓/(2n-1)最小階梯電壓=參考電壓*分辨率第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件

實現(xiàn)D/A轉(zhuǎn)換器和微型計算機接口技術(shù)的關(guān)鍵是數(shù)據(jù)鎖存問題。有些D/A轉(zhuǎn)換器芯片本身帶有鎖存器,但也有些D/A從轉(zhuǎn)換器芯片本身不帶鎖存器。此時一些并口芯片如8212,74LS273及可編程的并行I/O接口芯片8255A均可作為D/A轉(zhuǎn)換的鎖存器。第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件數(shù)據(jù)CSWR輸出8255數(shù)據(jù)輸出WRADAD數(shù)據(jù)輸出8255數(shù)據(jù)輸出WRADAD二、并行8位D/A轉(zhuǎn)換芯片AD558及其接口

1、AD558的內(nèi)部結(jié)構(gòu)框圖二、并行8位D/A轉(zhuǎn)換芯片AD558及其接口第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件2、AD558與PC機的連接圖

2、AD558與PC機的連接圖CODE SEGMENT ASSUME CS:CODESTART: MOVCX,256

MOVAL,0

MOVDX,30CHLOOP1: OUTDX,AL ;輸出AL內(nèi)容

CALLDELAY ;延時

INCAL ;AL內(nèi)容加1

LOOPLOOP1 ;循環(huán)256次

JMPSTART ;重新輸出下一 ;個鋸齒波CODEENDS

ENDSTARTCODE SEGMENTDAC0832邏輯結(jié)構(gòu)框圖DAC0832邏輯結(jié)構(gòu)框圖(1)雙緩沖方式(LE1和LE2分別控制)(2)單緩沖方式(其中LE1和LE2有一個直通)(3)直通方式(LE1和LE2均為直通)注:在DAC實際連接中,要注意區(qū)分“模擬地”和“數(shù)字地”的連接,為了避免信號串?dāng)_,數(shù)字量部分只能連接到數(shù)字地,而模擬量部分只能連接到模擬地。DAC0832有三種工作方式:(1)雙緩沖方式(LE1和LE2分別控制)DAC0832有三(3)設(shè)計①硬件設(shè)計根據(jù)上述分析,接口電路主要是提供并處理緩沖方式和寫操作的5根信號線,故采用普通IC芯片就可以組成接口電路。圖中,DAC0832工作在單緩沖方式,并且只對第1級鎖存器的WR1進(jìn)行了控制,而第2級鎖存器的WR2固定接地,未進(jìn)行控制。D7~D0IOWA9~A0AEN系統(tǒng)總線DI0~7WR1ILECSDAC0832譯碼器WR2XFERDGNDVREFRFBIO1IO2AGND+-AR+5VVoutDAC0832單緩沖方式連接+5V314H(3)設(shè)計①硬件設(shè)計D7~D0IOWA9~A0AEN②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)的鋸齒波,可知本程序是一個循環(huán)結(jié)構(gòu),其程序流程圖如圖所示。②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)的鋸齒波,可知本程序是一個循程序清單如下:SAWTOOTHPROCFARMOVAX,DATAMOVDS,AXMOVAL,00H;置AL=0LOP:MOVDX,314H;端口地址

OUTDX,AL;AL的值送DAC0832

MOVBL,AL;保存AL→BL

MOVAH,0BH;是否有鍵按下?

INT21HCMPAL,0FFHJESTOP;有,停止輸出波形

MOVAL,BL;無,恢復(fù)AL的值

INCAL;AL加1

JMPLOP;繼續(xù)循環(huán)輸出波形STOP:MOVAX,4C00H;退出

INT21HSAWTOOTHENDP程序清單如下:SAWTOOTHPROCFAR輸出三角波程序段如下:

MOVDX,314H;DAC0832的端口地址

MOVAL,0H;輸出數(shù)據(jù)0TN1:OUTDX,AL

INCAL;輸出數(shù)據(jù)加1

JNZTN1

MOVAL,0FFH;輸出數(shù)據(jù)0FFHTN2:OUTDX,AL

DECAL;輸出數(shù)據(jù)減1

JNZTN2

JMPTN1輸出三角波程序段如下:(4)討論①利用DAC產(chǎn)生鋸齒波輸出的方法是,將從0開始逐漸遞增的數(shù)據(jù)送到DAC,直到FFH,再回到0。重復(fù)上述過程,就可得到周期性的鋸齒波電壓。實際上,從0到FFH,中間分為256個小臺階,但從宏觀上看,是一個線性增長的電壓直線。②DAC0832的3種緩沖方式,用在不同的場合。雙緩沖方式用于需要多個不同模擬量同時輸出的系統(tǒng)中;單緩沖與直通方式都用于單個模擬量輸出的場合。單緩沖常用在采用普通IC芯片的DAC接口中,直通方式常用于采用可編程并行接口芯片的DAC接口中。(4)討論①利用DAC產(chǎn)生鋸齒波輸出的方法是,將從0開始逐三、串行8位D/A轉(zhuǎn)換器TLC5620第一級緩沖

第二級緩沖三、串行8位D/A轉(zhuǎn)換器TLC5620第一級緩沖第二級緩數(shù)據(jù)寫入方式

(LDAC更新DAC輸出)

數(shù)據(jù)寫入方式

(LOAD更新DAC輸出)

數(shù)據(jù)寫入方式(LDAC更新DAC輸出)數(shù)據(jù)寫入方式(LTLC5620與8255A的連接

TLC5620與8255A的連接

MOVCL,5 ;先把AX內(nèi)容左移5位

SHLAX,CL MOVDX,AX ;DX為串行輸出的數(shù)據(jù),最高位為通道選擇

MOVCX,11 ;循環(huán)11次DAC_PROC1: MOVAL,0 ;預(yù)置對DATA線的置位復(fù)位字

SHLDX,1 ;取串行輸出位

ADCAL,0 ;把串行輸出位送到置位復(fù)位字的第0位

OUT86H,AL ;把DATA線上串行輸出位內(nèi)容

MOVAL,00000010B ;發(fā)送CLK負(fù)脈沖

OUT86H,AL MOVAL,00000011B OUT86H,AL LOOPDAC_PROC1 ;循環(huán)

MOVAL,00000100B ;循環(huán)完畢,發(fā)LOAD負(fù)脈沖

OUT86H,AL

MOVAL,00000101B ;

OUT86H,AL

MOVAL,00000110B ;發(fā)LDAC負(fù)脈沖

OUT86H,AL

MOVAL,00000111B ;

OUT86H,AL MOVCL,5 ;先把AX內(nèi)容左移5位主程序段: MOVAL,10010010B ;8255A初始化OUT86H,ALMOVAL,0FFH ;C口各位初始值全為1OUT84H,AL…… ;其它處理MOVCX,256 ;D/A通道B產(chǎn)生一鋸齒波MOVAL,0 ;D/A初始數(shù)據(jù)為0MOVAH,00000010B ;選取通道B,最大輸出電壓為參考電壓AGAIN:CALLDAC_PROC ;把AX里的內(nèi)容送DACINCAL ;產(chǎn)生鋸齒波的下一個數(shù)據(jù)CALLDELAY ;延遲LOOPAGAIN ;循環(huán)256次

……主程序段: MOVAL,10010010B ;8255A初四、12位D/A轉(zhuǎn)換及接口四、12位D/A轉(zhuǎn)換及接口例

DAC1210接口電路設(shè)計(1)要求通過DAC1210產(chǎn)生并輸出50個方波,方波數(shù)據(jù)存放在內(nèi)存緩沖區(qū)。(2)分析DAC1210的分辨率為12位,且內(nèi)部有兩個三態(tài)鎖存器,用于分別對數(shù)據(jù)的高、低兩個字節(jié)進(jìn)行鎖存,故數(shù)據(jù)線可與系統(tǒng)數(shù)據(jù)總線直接連接。但是,當(dāng)它與8位微機系統(tǒng)連接時,數(shù)據(jù)要分兩次傳輸。例DAC1210接口電路設(shè)計(1)要求8位輸入鎖存器4位輸入鎖存器12位DAC寄存器12位相乘型D/A轉(zhuǎn)換器&&&LELELELSBMSBDI1115DI1016DI917DI818DI719DI620DI54DI45DI36DI27DI18DI09BYTE123/BYTE2CS1WR1

2XFER21WR2

2210VREF14IOUT213IOUT111RFB24Vcc3AGND24DGNDDAC1210內(nèi)部結(jié)構(gòu)8位輸入4位輸入12位DAC12位相乘型&&&LELELEL有兩種數(shù)據(jù)對齊格式:

“右對齊”:從低位對齊(先送低,后送高)

“左對齊”:從高位對齊(先送高,后送低)特別注意:設(shè)置兩個鎖存器,分別鎖存高字節(jié)和低字節(jié)。同時選通兩個鎖存器進(jìn)行D/A轉(zhuǎn)換。有兩種數(shù)據(jù)對齊格式:12位DAC與CPU之間加兩級鎖存器(右對齊)PC擴展槽D0-7IOWANEA0-9BUF1D0-7Q0-7CBUF3D0-7Q0-7CBUF2D0-7Q0-7C12位DACD0-7D/AI01

D8-11I02譯碼器Y0Y1圖10-512位DAC與CPU之間加兩級鎖存器12位DAC與CPU之間加兩級鎖存器(右對齊)PC擴展槽BU(3)設(shè)計①硬件設(shè)計接口電路如圖所示。圖中,DAC1210的12根數(shù)據(jù)線直接與系統(tǒng)的數(shù)據(jù)線相連,但系統(tǒng)數(shù)據(jù)線只有8位,故將DAC1210的低4位數(shù)據(jù)線連到了系統(tǒng)數(shù)據(jù)線的高4位上。這種連接方法稱為“左對齊”方式。DAC1210的3個端口地址為316H(y0)、317H(y1)和318H(y2)。

(3)設(shè)計①硬件設(shè)計②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)50個方波輸出,可知本例程序也是一個循環(huán)結(jié)構(gòu),其流程如圖所示。②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)50個方波輸出,可知本例程序程序清單如下:SSTACKSEGMENTDW256DUP(?)

SSTACKENDSDATASEGMENTBUFRDW50DUP(0000,0FFFH)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKSQUARE:MOVAX,DATAMOVDS,AXMOVAX,SSTACKMOVSS,AXMOVSI,OFFSETBUFRMOVCX,100程序清單如下:SSTACKSEGMENT

SEND:MOVBX,WORDPTR[SI]

MOVCL,4SHLBX,CL;使BX中12位數(shù)向左對齊

MOVDX,316H;DAC1210的第1個字節(jié)鎖存器端口

MOVAL,BH;寫入高8位

OUTDX,ALINCDX;DAC1210的第2個字節(jié)鎖存器端口

MOVAL,BL;寫入低4位

OUTDX,ALINCDX;DAC1210的轉(zhuǎn)換器端口

OUTDX,AL;寫入任意數(shù)據(jù)(假寫)啟動轉(zhuǎn)換

CALLDELAY;延時使方波保持一定的寬度SEND:MOVBX,WORDPTR[SI]INCSI;緩沖區(qū)地址加2

INCSI

DECCX;循環(huán)次數(shù)減1

JNZSEND;循環(huán)次數(shù)未到,繼續(xù)

MOVAX,AC00H;已到,退出

INT21HDELAYPROCNEAR;延時子程序

MOVBX,0FFFFHLOP:DECBXJNZLOPRETDELAYENDPCODEENDSENDSQUAREINCSI;緩沖區(qū)地址加210.2A/D轉(zhuǎn)換器及其接口技術(shù)

分辨率指A/D轉(zhuǎn)換器對輸入模擬信號的分辨能力。通常用數(shù)字輸出最低位(LSB)所對應(yīng)的模擬輸入的電平值表示。如A/D轉(zhuǎn)換器的輸出為12位二進(jìn)制數(shù),最大輸入模擬信號為10V,則其分辨率為

分辨率=10/(2N

-1)≈10/2N≈2.44mV

10.2A/D轉(zhuǎn)換器及其接口技術(shù)10.2A/D轉(zhuǎn)換器及其接口技術(shù)

一、A/D轉(zhuǎn)換原理常用的A/D有并行A/D、逐次逼近A/D、雙積分A/D。10.2A/D轉(zhuǎn)換器及其接口技術(shù)一、A/D轉(zhuǎn)換原理1.計數(shù)斜波式A/D轉(zhuǎn)換器1.計數(shù)斜波式A/D轉(zhuǎn)換器DA8255比較器模擬輸入DA8255比較器模擬輸入2.逐次逼近式A/D轉(zhuǎn)換器10000000D71000000D7D6100000D7D6D5D4D3D2D1D0DHPC02.逐次逼近式A/D轉(zhuǎn)換器1000Ui=163mV的逐次比較過程Ui=163mV的逐次比較過程第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件

3.雙積分型A/D轉(zhuǎn)換器

計數(shù)器3.雙積分型A/D轉(zhuǎn)換器計數(shù)器充電時間T1放電T2充電時間V0=Vi*T1/τ放電時間V0-VR*T2/τ=0T2=(T1/VR

)*Vi在實際測量中T1,VR固定充電時間T1放電T2充電時間V0=V

4.并行比較型A/D轉(zhuǎn)換器第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件類型逐位比較型雙積分型并行比較型速度中慢快分辨率8-14位10-20位8-12位價格中低高類型逐位比較型雙積分型并行比較型速度中慢快分辨率8-14位1二、A/D轉(zhuǎn)換與微機接口技術(shù)原理1、

三態(tài)總線輸入問題有的ADC芯片帶有三態(tài)輸出緩沖器,其控制端為OE(輸出允許)。若不帶三態(tài)緩沖器的ADC芯片(如AD570芯片)與微機接口,必須使用三態(tài)器件,如:8255A,74LS273等。2、

時間配合問題

A/D芯片一般有三個信號要求控制:啟動轉(zhuǎn)換信號(START),轉(zhuǎn)換結(jié)束信號(EOC),允許輸出信號(OE)。二、A/D轉(zhuǎn)換與微機接口技術(shù)原理模擬輸入允許輸出OE數(shù)據(jù)輸出啟動信號Start轉(zhuǎn)換結(jié)束Eoc模擬輸入允許輸出OEA/D轉(zhuǎn)換器與CPU的連接1.ADC的啟動信號:ADC的轉(zhuǎn)換啟動方式有脈沖啟動和電平啟動之分。前者要求在轉(zhuǎn)換期間不變,而后者在轉(zhuǎn)換開始后就可以撤消。轉(zhuǎn)換啟動信號有單個信號啟動和由多個信號組合起來的復(fù)合信號啟動之分。2.ADC的輸入信號:ADC的模擬信號輸入有多通道和單通道之分。3.ADC的輸出信號:(1)A/D轉(zhuǎn)換器的分辨率:當(dāng)ADC的分辨率高于數(shù)據(jù)總線的寬度時,需要兩次讀取。(2)A/D轉(zhuǎn)換器的三態(tài)輸出鎖存器:決定是否可直接掛在CPU的數(shù)據(jù)總線上。4.ADC的轉(zhuǎn)換結(jié)束信號:可用于查詢方式、中斷方式、DMA方式的申請信號。A/D轉(zhuǎn)換器與CPU的連接1.ADC的啟動信號:ADC的A/D轉(zhuǎn)換器接口的主要操作(1)進(jìn)行通道選擇對有多個模擬量輸入通道的系統(tǒng)。(2)發(fā)轉(zhuǎn)換啟動信號由外部控制啟動A/D轉(zhuǎn)換。(3)

取回“轉(zhuǎn)換結(jié)束”狀態(tài)信號當(dāng)轉(zhuǎn)換結(jié)束后,ADC產(chǎn)生轉(zhuǎn)換結(jié)束信號。(4)讀取轉(zhuǎn)換的數(shù)據(jù)用查詢、中斷或其它方法讀取數(shù)據(jù)。(5)發(fā)采樣和保持控制信號一般對高速信號的A/D轉(zhuǎn)換。A/D轉(zhuǎn)換器接口的主要操作(1)進(jìn)行通道選擇分析與設(shè)計A/D轉(zhuǎn)換器接口的方法①ADC的模擬量輸入是否是多通道? 是,則需選擇通道號,應(yīng)提供通道選擇線;不是,則不作處理。②ADC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線寬度? 是,則要分兩次傳輸,故需增加鎖存器,并提供鎖存器選通信號;不是,則不處理。③ADC芯片內(nèi)部是否有三態(tài)輸出鎖存器? 無,則數(shù)據(jù)線不能與DB直接連接,故需增加三態(tài)鎖存器,并提供鎖存允許信號;有,則不處理。④ADC的啟動方式是脈沖觸發(fā)還是電平觸發(fā)? 是脈沖,則提供脈沖信號;是電平,則提供電平信號,并保持到轉(zhuǎn)換結(jié)束。分析與設(shè)計A/D轉(zhuǎn)換器接口的方法①ADC的模擬量輸入是否是分析與設(shè)計A/D轉(zhuǎn)換器接口的方法⑤A/D轉(zhuǎn)換的數(shù)據(jù)采用哪種傳輸方式? 有無條件傳輸、查詢方式、中斷方式和DMA多種方式選擇。⑥A/D轉(zhuǎn)換的數(shù)據(jù)進(jìn)行什么樣的處理? 有顯示、打印、生成文件存盤、遠(yuǎn)距離傳輸?shù)榷喾N處理。⑦ADC接口電路采用什么元器件組成? 有普通IC芯片、可編程并行口芯片、GAL器件等多種選擇。前面4項是由接口對象ADC決定的(可從芯片手冊中查到),用戶無法改變,只能按照它的要求在設(shè)計中給予滿足。后面3項是可以改變的,設(shè)計者應(yīng)根據(jù)設(shè)計目標(biāo)靈活選用。分析與設(shè)計A/D轉(zhuǎn)換器接口的方法⑤A/D轉(zhuǎn)換的數(shù)據(jù)采用哪種三、A/D轉(zhuǎn)換與微機接口電路1、

延時等待法接口電路

三、A/D轉(zhuǎn)換與微機接口電路PROC_ADC PROCFAR ;這是一個數(shù)據(jù)采集子程序

AGAIN: OUTY1,AL ;啟動ADC

CALLDELAY ;延時

INAL,Y1 ;取數(shù)

MOV[BX],AL ;存入數(shù)組

INCBX ;數(shù)組指針加1

LOOPAGAIN ;循環(huán)

RET PROC_ADC ENDPPROC_ADC PROCFAR ;這是一個數(shù)據(jù)采集子程2、查詢法接口電路

第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件查詢方式的數(shù)據(jù)采集程序框架(模塊)①接口芯片初始化(當(dāng)采用可編程并行口芯片作ADC接口時);②選擇通道號(當(dāng)采用多通道A/D轉(zhuǎn)換芯片時);③啟動轉(zhuǎn)換;④查詢轉(zhuǎn)換結(jié)束狀態(tài);⑤讀取數(shù)據(jù);⑥數(shù)據(jù)傳輸?shù)酱鎯ζ?;⑦在線數(shù)據(jù)處理(顯示、打印、存盤等);⑧采集未完,繼續(xù)啟動轉(zhuǎn)換;⑨已完,退出。查詢方式的數(shù)據(jù)采集程序框架(模塊)①接口芯片初始化(當(dāng)采用例

查詢方式的ADC接口電路設(shè)計(1)要求 利用ADC0804采集100個數(shù)據(jù),采集的數(shù)據(jù)以查詢方式傳輸?shù)絻?nèi)存BUFR區(qū)。接口電路采用普通IC芯片組成。例查詢方式的ADC接口電路設(shè)計(1)要求(2)分析

ADC0804是單個模擬量輸入,故不提供通道選擇信號;ADC0804的分辨率為8位,并具有三態(tài)輸出鎖存器,故可與系統(tǒng)數(shù)據(jù)總線直接相連;ADC0804的啟動方式為脈沖啟動,故需提供一個正脈沖信號,進(jìn)行轉(zhuǎn)換啟動。 數(shù)據(jù)傳輸方式為查詢方式,故需將轉(zhuǎn)換結(jié)束狀態(tài)信號作為查詢的對象。(2)分析 ADC0804是單個模擬量輸入,故不提供通道(3)設(shè)計①硬件設(shè)計。 由以上分析可知,本接口電路只需提供轉(zhuǎn)換啟動信號和提供讀取轉(zhuǎn)換結(jié)束狀態(tài)信號的通路。而數(shù)據(jù)線不作處理,直接連接。為此,要設(shè)計端口地址譯碼電路,產(chǎn)生CS,并由CS和WR共同組成啟動信號。同時,還要設(shè)置一個三態(tài)門,將轉(zhuǎn)換結(jié)束信號INTR(INTR=0,表示轉(zhuǎn)換結(jié)束)引到數(shù)據(jù)線的某一位(D7)上,以便CPU讀取狀態(tài)。(3)設(shè)計①硬件設(shè)計。(3)設(shè)計(3)設(shè)計②軟件設(shè)計由于是單通道,且采用普通IC芯片組成接口電路,故在程序中未出現(xiàn)通道選擇和初始化模塊。參考程序清單如下:

STARTPEQU310H;轉(zhuǎn)換啟動端口

STATEPEQU311H;狀態(tài)端口

DATAPEQU310H;數(shù)據(jù)端口

SSTACKSEGMENTDB256DUP(0)

SSTACKENDSDATASEGMENTBUFRDB100(0)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKBEGIN:MOVSI,OFFSETBUFR;緩沖區(qū)指針

MOVCX,100;采樣次數(shù)

②軟件設(shè)計由于是單通道,且采用普通IC芯片組成接口電路,故②軟件設(shè)計START:MOVDX,STARTP;啟動轉(zhuǎn)換

MOVAL,00H;(可以是其他值)

OUTDX,AL;使CS和WR同時有效WAIT1:MOVDX,STATEP;查轉(zhuǎn)換結(jié)束

INAL,DXANDAL,80H;查D7=0(INTR=0?)

JNZWAIT1;未結(jié)束,等待

MOVDX,DATAP;已結(jié)束,讀數(shù)據(jù)

INAL,DXMOV[SI],AL;數(shù)據(jù)傳輸?shù)紹UFR區(qū)

INCSI;緩沖區(qū)地址加1

DECCX;采樣次數(shù)減1

JNZSTART;未完,繼續(xù)啟動

MOVAX,4C00H;已完,退出

INT21HCODEENDSENDBEGIN②軟件設(shè)計START:MOVDX,STARTP;啟動(4)討論①A/D轉(zhuǎn)換數(shù)據(jù)采集程序的基本結(jié)構(gòu)總是循環(huán)程序結(jié)構(gòu)。②ADC0804的轉(zhuǎn)換啟動信號是由系統(tǒng)的IOW信號與片選信號CS共同組成的。當(dāng)系統(tǒng)完成對芯片的寫操作時,也就產(chǎn)生了轉(zhuǎn)換啟動的脈沖信號。這個脈沖信號只與IOW及地址信號CS有關(guān),而與寫入的數(shù)據(jù)無關(guān)。這種寫操作稱為假寫。(4)討論①A/D轉(zhuǎn)換數(shù)據(jù)采集程序的基本結(jié)構(gòu)總是循環(huán)程序例

電平啟動的ADC接口設(shè)計(1)要求采用AD570采集1KB數(shù)據(jù),采集的數(shù)據(jù)以查詢方式傳輸?shù)絻?nèi)存緩沖區(qū),并在屏幕上顯示。(2)分析AD570的啟動方式是電平啟動,轉(zhuǎn)換時間是25μs,故接口電路應(yīng)提供一個啟動電平信號,維持25μs時間,直到轉(zhuǎn)換結(jié)束為止。另外,AD570芯片內(nèi)部無三態(tài)鎖存器,輸出數(shù)據(jù)線不能與系統(tǒng)的數(shù)據(jù)總線直接連接,故采用82C55A并行接口芯片進(jìn)行連接和緩沖。采集的數(shù)據(jù)要在屏幕上顯示。一是要把采集到的用十六進(jìn)制表示的數(shù)據(jù)轉(zhuǎn)換成ASCII碼,才能送到屏幕去顯示;二是顯示格式的選擇,數(shù)據(jù)在屏幕上是采用一列式顯示,還是滿屏顯示或分區(qū)顯示。例電平啟動的ADC接口設(shè)計(1)要求(3)設(shè)計①硬件設(shè)計。本接口電路要為AD570提供啟動電平信號和輸出數(shù)據(jù)線的緩沖電路。這些要求都可以由82C55A接口芯片實現(xiàn)。接口電路如圖所示。82C55A的端口地址為303H(命令口)、302H(C端口)、301H(B端口)、300H(A端口)。(3)設(shè)計①硬件設(shè)計。②軟件設(shè)計本例的流程圖如圖所示。它與上例查詢方式的流程圖不同之處有兩點:一是采用了82C55A,故增加了82C55A的初始化程序段;一是要求顯示數(shù)據(jù),故增加了顯示程序段。②軟件設(shè)計本例的流程圖如圖所示。它與上例查詢方式的流程圖不參考程序清單如下:SSTACKSEGMENTDB256DUP(0)SSTACKENDSDATASEGMENTBUFRDB100(0)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKMAIN:MOVAX,DATA

MOVDS,AX

MOVAX,SSTACK

MOVSS,AX

MOVCX,100;采樣次數(shù)→CX

MOVDI,OFFSETBUFR;緩沖區(qū)指針→SI參考程序清單如下:SSTACKSEGMENTMOVDX,303H;82C55A初始化

MOVAL,91H;工作方式命令字

OUTDX,ALMOVAL,0FH;置PC7=1,使B/C=1,啟動信號無效

OUTDX,ALNOPNOPSTART:MOVDX,303H;啟動轉(zhuǎn)換

MOVAL,0EH;置PC7=0,使B/C=0,啟動轉(zhuǎn)換

OUTDX,ALCHECK:MOVDX,302H;查轉(zhuǎn)換結(jié)束

INAL,DXANDAL,08H;PC3=0否,即DR=0否

JNZCHECK;未結(jié)束,繼續(xù)轉(zhuǎn)換MOVDX,303H;82C55A初始MOVDX,300H;已結(jié)束,讀數(shù)據(jù)

INAL,DXMOV[DI],AL;存數(shù)據(jù)到BUFR區(qū)

MOVDX,303H;撤消啟動信號

MOVAL,0FH;置PC7=1,使B/C=1,撤消啟動信號

OUTDX,ALMOVAL,[DI];十六進(jìn)制→ASCII碼轉(zhuǎn)換

ANDAL,0F0H;高4位碼制轉(zhuǎn)換

MOVCL,4SHRAL,CLCMPAL,9JAHEXADDAL,30JMPDISPLAYMOVDX,300H;已結(jié)束,讀數(shù)據(jù)

HEX:ADDAL,37DISPLAY:MOVDL,AL;顯示高4位

MOVAH,2HINT21HMOVAL,[DI]

MOVAL,0FH;低4位碼制轉(zhuǎn)換

CMPAL,9JAHEX1ANDAL,30JMPDISPLAY1HEX1:ADDAL,37DISPLAY1:MOVDL,AL;顯示低4位

MOVAH,2HINT21HMOVDL,20H;顯示1個空格

MOVAH,2HINT21HINCDI;緩存區(qū)地址加1

DECCX;采樣次數(shù)減1

JNZSTART;未完,繼續(xù)啟動

MOV4X,4C00H;已完,返回DOS

INT21H

CODEENDS

ENDMAINHEX:ADDAL,37MOVAH,(4)討論①AD570是電平啟動,啟動信號是由82C55A的PC7產(chǎn)生的。從程序中可以看到,從PC7置為低電平開始啟動之后,一直保持低電平,直到轉(zhuǎn)換完畢,讀取數(shù)據(jù),并存入BUFR區(qū)之后,才將PC7置高電平,撤消啟動信號。②因為采集的數(shù)據(jù)是以十六進(jìn)制形式存放在內(nèi)存的,而顯示器采用ASCII碼顯示,故在顯示之前,要先進(jìn)行十六進(jìn)制到ASICII碼的轉(zhuǎn)換,然后再送到顯示器。這種數(shù)制的轉(zhuǎn)換,在要把數(shù)據(jù)進(jìn)行顯示、打印處理時,都會碰到。因為顯示器、打印機和鍵盤這些外設(shè)都是采用ASICII碼的。(4)討論①AD570是電平啟動,啟動信號是由82C55A3、中斷法接口電路

第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件中斷方式數(shù)據(jù)采集程序框架(模塊)①接口芯片初始化(當(dāng)采用可編程并行口芯片作ADC接口時);②可屏蔽中斷初始化,包括中斷向量修改、中斷申請的屏蔽等;③選擇通道號(當(dāng)采用多通道A/D轉(zhuǎn)換芯片時);④啟動轉(zhuǎn)換;⑤開中斷,并等待中斷;⑥轉(zhuǎn)換結(jié)束信號申請中斷;⑦進(jìn)入中斷服務(wù)程序,在服務(wù)程序中讀取數(shù)據(jù),并傳輸?shù)酱鎯ζ饕约霸诰€數(shù)據(jù)處理;⑧采集未完,繼續(xù)啟動轉(zhuǎn)換;⑨已完,返回。中斷方式數(shù)據(jù)采集程序框架(模塊)①接口芯片初始化(當(dāng)采用中斷方式的ADC接口設(shè)計(1)要求采用ADC0809,從通道7采集100個數(shù)據(jù),采集的數(shù)據(jù)以中斷方式傳輸?shù)絻?nèi)存緩沖區(qū),并將轉(zhuǎn)換結(jié)束信號EOC連到IRQ4上,請求中斷。(2)分析要實現(xiàn)上述設(shè)計要求,至少有3個方面的問題需要考慮:被控對象ADC0809的特性、接口電路結(jié)構(gòu)形式、中斷處理。中斷方式的ADC接口設(shè)計(1)要求①ADC0809外部特性①ADC0809外部特性ADC0809的內(nèi)部邏輯ADC0809的內(nèi)部邏輯ADC0809的時序ADC0809的時序(2)分析②接口電路結(jié)構(gòu)形式。接口電路采用可編程并行接口芯片82C55A。③中斷處理。本例題是利用系統(tǒng)的中斷資源,故不需做中斷系統(tǒng)的硬件連接和82C59A的初始化。只需做兩件事:一是中斷向量的修改(IRQ4的中斷向量);二是對中斷控制器82C59A的中斷屏蔽寄存器IMR和正在服務(wù)寄存器ISR進(jìn)行操作(在主程序中用命令OCW1屏蔽/開放中斷請求,在服務(wù)程序中返回主程序之前,用OCW2結(jié)束中斷)。(2)分析②接口電路結(jié)構(gòu)形式。接口電路采用可編程并行接口(3)設(shè)計①硬件設(shè)計根據(jù)上述分析可知,本接口電路要提供ADC0809模擬量通道號選擇信號、啟動信號、讀數(shù)據(jù)允許信號。這些信號都可由82C55A接口芯片實現(xiàn)。而EOC的中斷請求直接連到系統(tǒng)總線的IRQ4上。82C55A的4個端口地址是300H(A口)、301H(B口)、302H(C口)、303H(命令口)。注:D2D1D0應(yīng)接到PB口上輸出。方向不同,不能共用A口。圖錯了。(3)設(shè)計①硬件設(shè)計②軟件設(shè)計:程序流程圖整個程序分主程序和中斷服務(wù)程序兩部分。②軟件設(shè)計:程序流程圖整個程序分主程序和中斷服務(wù)程序兩部分程序清單如下:

STACKSEGMENTPARA′STACK′DW256DUP(?)

STACKENDSDATASEGMENTPARA′DATA′OLD_OFFDW?OLD_SEGDW?BUFRDB100DUP(0)

PRTDW?DATAENDS程序清單如下:STACKSEGMENTPARA′STA主程序CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKADCPROCFARMOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AX主程序CODESEGMENT825C5A初始化MOVDX,303H;82C55A命令端口MOVAL,90H;82C55A的方式命令字OUTDX,ALMOVAL,0EH;置PC7=0,使START和ALE無效OUTDX,ALMOVAL,0CH;置PC6=0,使OE無效OUTDX,AL;825C5A初始化MOVDX,303H;82C55A修改中斷向量

MOVAX,350CH;取IRQ4的中斷向量,并保存

INT21HMOVOLD_OFF,BXMOVBX,ESMOVOLD-SEG,BXCLI;置新中斷向量

MOVAX,250CHMOVDX,SEGA_DMOVDS,DXMOVDX,OFFSETA_DINT21H

MOVAX,DATA;恢復(fù)數(shù)據(jù)段

MOVDS,AXSTI;開放中斷請求

INAL,21H;開放IRQ4

ANDAL,0EFH

OUT21H,AL修改中斷向量MOVAX,350CH;取主程序主體MOVCX,100;設(shè)置采樣次數(shù)和內(nèi)存指針

MOVAX,OFFSETBUFRMOVPRT,AXMOVDX,301H;82C55A的B端口

MOVAL,07H;選通道號

OUTDX,ALBEGIN:MOVDX,303H;啟動轉(zhuǎn)換

MOVAL,0FH;產(chǎn)生START啟動脈沖信號

OUTDX,ALNOPNOPMOVAL,0EHOUTDX,ALSTI;開中斷

HLT;等待中斷主程序主體MOVCX,100;設(shè)置DECCX;修改采樣次數(shù)

JNZBEGIN;未完,繼續(xù)啟動CLI;已完,關(guān)中斷

MOVAX,250CH;恢復(fù)IRQ4原中斷向量

MOVDX,OLD-SEGMOVDS,DXMOVDX,OLD-OFFINT21HMOVAX,DATA;恢復(fù)數(shù)據(jù)段

MOVDS,AXSTI;屏蔽中斷請求

INAL,21H;屏蔽IRQ4

ORAL,10H

OUT21H,AL;返回DOS

MOVAX,4C00H

INT21H

ADCENDPDECCX;修改采樣次數(shù)中斷服務(wù)程序A_DPROCFAR;寄存器進(jìn)棧

PUSHAXPUSHDXPUSHDI;服務(wù)程序主體

CLI;關(guān)中斷

MOVDX,303H;82C55A的命令端口

MOVAL,0DH;產(chǎn)生OE信號,打開三態(tài)鎖存器

OUTDX,ALNOPNOPMOVAL,0CHOUTDX,ALMOVDX,300H;825C5A的A端口

INAL,DX;讀數(shù)據(jù)中斷服務(wù)程序A_DPROCFAR;寄存器進(jìn)棧NOPMOVDI,PRT;存數(shù)據(jù)

MOV[DI],AL

INCDI

MOVPRT,DI;發(fā)中斷結(jié)束命令

MOVAL,20H;主片82C59A中斷結(jié)束

OUT20H,AL

;寄存器出棧

POPDIPOPDXPOPAXSTI;開中斷;中斷返回

IRETA_DENDPCODEENDSENDADCNOP(4)討論①本例接口電路是采用的82C55A并行接口芯片,故主程序開始就有82C55A的初始化程序段。②多通道ADC的通道地址選擇線有兩種:一是采用系統(tǒng)的地址線,一是采用系統(tǒng)的數(shù)據(jù)線。本例是使用系統(tǒng)數(shù)據(jù)線的低3位D2D1D0,分別連到ADC0809的3根通道地址線選擇線ADDC~ADDA上。(4)討論①本例接口電路是采用的82C55A并行接口芯片第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件;通道0-7轉(zhuǎn)換100個數(shù)ADC_P DW?ADC_COUNT DW?BUFFER DB100DUP(?)主程序……CALLINIT ;初始化可編程芯片MOVADC_P,OFFSETBUFFERMOVADC_COUNT,100MOVAL,08H ;啟動8253OUTC-PORT,AL……;通道0-7轉(zhuǎn)換100個數(shù);中斷程序ADINT PROC CLI PUSHAX PUSHBX MOVBX,ADC_P INAL,A_PORT ;取數(shù)

MOV[BX],AL ;存數(shù)

INCADC_P ;指針加1

INCADC_COUNT ;計數(shù)器加1

CMPADC_COUNT,100 ;是否轉(zhuǎn)換100個數(shù)

JNZLOP1 ;沒有,轉(zhuǎn)LOP1

MOVAL,0 ;有,停止8253工作

OUTC_PORT,ALLOP1: POPBX POPAX STI IRET ENDP第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件10.4串行8位A/D轉(zhuǎn)換器TLC0831一、TLC0831管腳功能

10.4串行8位A/D轉(zhuǎn)換器TLC0831二、TLC0831的工作原理

第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件三、TLC0831與8086CPU的接口

第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件補充習(xí)題1下圖示出了D/A轉(zhuǎn)換器電路,假設(shè):Y0地址為300H,Y1地址為301H,Y2地址為302H,數(shù)據(jù)為左對齊方式。請編寫在輸出端VO產(chǎn)生三角波的程序段。補充習(xí)題1下圖示出了D/A轉(zhuǎn)換器電路,假設(shè):Y0地址為300解答

;三角波形的上斜坡

MOV AX,0FFFFH ;從0開始NEXT1:INC AX

MOV DX,300H

OUT DX,AL ;送數(shù)給D/A

MOV DX,301H

MOV AL,AH

OUT DX,AL

MOV DX,302H

OUT DX,AL ;送到第二級鎖存器

CALL DELAY ;延時

CMP AX,0FFFH ;是否達(dá)到最高點

JNZ NEXT1解答;三角波形的下斜坡NEXT3:DEC AX

MOV DX,300H

OUT DX,AL ;送數(shù)給D/A

MOV DX,301H

MOV AL,AH

OUT DX,AL

MOV DX,302H

OUT DX,AL ;送到第二級鎖存器

CALL DELAY ;延時

CMP AX,0 ;是否達(dá)到最低點

JNZ NEXT3 DEC AX JMP NEXT1 ;開始上斜坡

;三角波形的下斜坡;延時DELAY:MOV CX,0FFHDEL: LOOP DEL

RET;延時CPUPA0-7PC1PC6GNDA0-7B/CINDRDG8255AAD570A補充習(xí)題2用AD570采用程序查詢方式,采集128個數(shù)據(jù),存入地址為0100:0000的內(nèi)存中。請寫出采集數(shù)據(jù)的程序。硬件電路如下圖示。設(shè)8255A采用0方式,其命令口地址為303H,數(shù)據(jù)口地址為300H,狀態(tài)口地址為302H。CPUPA0-7A0-78255AAD570A補充習(xí)題2用A解答

程序如下

MOVDX,303H;8255A命令口

MOVAL,98H;工作方式字

OUTDX,AL

MOVAL,03H;先置PC1=1,準(zhǔn)備發(fā)啟動信號

OUTDX,AL

MOVAX,0100H;內(nèi)存數(shù)據(jù)區(qū)的段址

MOVES,AX

MOV

BX,00H;偏移地址

MOVCX,7FH;采樣次數(shù)AGN:MOVAL,02H;置PC1=0OUTDX,AL解答WAT:MOVDX,302H;查PC6=0?

INAL,DX

SHLAL,2

JCWAT

MOVDX,300H;8255A數(shù)據(jù)口

INAL,DX

MOVES:[BX],AL;存數(shù)于內(nèi)存

MOVDX,303H;置PC1=1MOVAL,03H;撤消啟動信號

OUTDX,AL

INCBX;內(nèi)存地址加1

LOOPAGN;次數(shù)減1,沒完繼續(xù)

MOVAX,4C00H

IN21HWAT:MOVDX,302H;查PC6=0?補充習(xí)題3若對ADC0809的IN0~I(xiàn)N7這8個通道的模擬量各采樣100個點,并轉(zhuǎn)換成數(shù)字量,數(shù)據(jù)存儲指針為WP,采用查詢方式實現(xiàn)。譯碼電路的地址輸出如下圖所示。注意:圖中是以采集IN0為例給出的譯碼地址。補充習(xí)題3若對ADC0809的IN0~I(xiàn)N7這8個通道的模擬電路圖是:電路圖是:

概述A/D和D/A轉(zhuǎn)換器是把微型計算機的應(yīng)用領(lǐng)域擴展到檢測和過程控制的必要裝置,是把計算機和生產(chǎn)過程、科學(xué)實驗過程聯(lián)系起來的重要橋梁。下圖給出了A/D、D/A轉(zhuǎn)換器在微機檢測和控制系統(tǒng)中的應(yīng)用實例框圖。概述A/D和D/A轉(zhuǎn)換器是把微型計算機的應(yīng)第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件10.1D/A轉(zhuǎn)換器及其接口技術(shù)一、D/A轉(zhuǎn)換器及其接口

D/A轉(zhuǎn)換器的功能是把二進(jìn)制數(shù)字量電信號轉(zhuǎn)換為與其數(shù)值成正比的模擬量電信號。在D/A參數(shù)中一個最重要的參數(shù)就是分辨率,它是指輸入數(shù)字量發(fā)生單位數(shù)碼變化時,所對應(yīng)輸出模擬量(電壓或電流)的變化量。10.1D/A轉(zhuǎn)換器及其接口技術(shù)一、D/A轉(zhuǎn)換器及其接口

分辨率是指輸入數(shù)字量最低有效位為1時,對應(yīng)輸出可分辨的電壓變化量ΔU與最大輸出電壓Um之比,即分辨率=1/(2-1)

n分辨率是指輸入數(shù)字量最低有效位為1時,對應(yīng)最小階梯電壓=參考電壓*分辨率

=參考電壓/(2n-1)最小階梯電壓=參考電壓*分辨率第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件

實現(xiàn)D/A轉(zhuǎn)換器和微型計算機接口技術(shù)的關(guān)鍵是數(shù)據(jù)鎖存問題。有些D/A轉(zhuǎn)換器芯片本身帶有鎖存器,但也有些D/A從轉(zhuǎn)換器芯片本身不帶鎖存器。此時一些并口芯片如8212,74LS273及可編程的并行I/O接口芯片8255A均可作為D/A轉(zhuǎn)換的鎖存器。第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件數(shù)據(jù)CSWR輸出8255數(shù)據(jù)輸出WRADAD數(shù)據(jù)輸出8255數(shù)據(jù)輸出WRADAD二、并行8位D/A轉(zhuǎn)換芯片AD558及其接口

1、AD558的內(nèi)部結(jié)構(gòu)框圖二、并行8位D/A轉(zhuǎn)換芯片AD558及其接口第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件2、AD558與PC機的連接圖

2、AD558與PC機的連接圖CODE SEGMENT ASSUME CS:CODESTART: MOVCX,256

MOVAL,0

MOVDX,30CHLOOP1: OUTDX,AL ;輸出AL內(nèi)容

CALLDELAY ;延時

INCAL ;AL內(nèi)容加1

LOOPLOOP1 ;循環(huán)256次

JMPSTART ;重新輸出下一 ;個鋸齒波CODEENDS

ENDSTARTCODE SEGMENTDAC0832邏輯結(jié)構(gòu)框圖DAC0832邏輯結(jié)構(gòu)框圖(1)雙緩沖方式(LE1和LE2分別控制)(2)單緩沖方式(其中LE1和LE2有一個直通)(3)直通方式(LE1和LE2均為直通)注:在DAC實際連接中,要注意區(qū)分“模擬地”和“數(shù)字地”的連接,為了避免信號串?dāng)_,數(shù)字量部分只能連接到數(shù)字地,而模擬量部分只能連接到模擬地。DAC0832有三種工作方式:(1)雙緩沖方式(LE1和LE2分別控制)DAC0832有三(3)設(shè)計①硬件設(shè)計根據(jù)上述分析,接口電路主要是提供并處理緩沖方式和寫操作的5根信號線,故采用普通IC芯片就可以組成接口電路。圖中,DAC0832工作在單緩沖方式,并且只對第1級鎖存器的WR1進(jìn)行了控制,而第2級鎖存器的WR2固定接地,未進(jìn)行控制。D7~D0IOWA9~A0AEN系統(tǒng)總線DI0~7WR1ILECSDAC0832譯碼器WR2XFERDGNDVREFRFBIO1IO2AGND+-AR+5VVoutDAC0832單緩沖方式連接+5V314H(3)設(shè)計①硬件設(shè)計D7~D0IOWA9~A0AEN②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)的鋸齒波,可知本程序是一個循環(huán)結(jié)構(gòu),其程序流程圖如圖所示。②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)的鋸齒波,可知本程序是一個循程序清單如下:SAWTOOTHPROCFARMOVAX,DATAMOVDS,AXMOVAL,00H;置AL=0LOP:MOVDX,314H;端口地址

OUTDX,AL;AL的值送DAC0832

MOVBL,AL;保存AL→BL

MOVAH,0BH;是否有鍵按下?

INT21HCMPAL,0FFHJESTOP;有,停止輸出波形

MOVAL,BL;無,恢復(fù)AL的值

INCAL;AL加1

JMPLOP;繼續(xù)循環(huán)輸出波形STOP:MOVAX,4C00H;退出

INT21HSAWTOOTHENDP程序清單如下:SAWTOOTHPROCFAR輸出三角波程序段如下:

MOVDX,314H;DAC0832的端口地址

MOVAL,0H;輸出數(shù)據(jù)0TN1:OUTDX,AL

INCAL;輸出數(shù)據(jù)加1

JNZTN1

MOVAL,0FFH;輸出數(shù)據(jù)0FFHTN2:OUTDX,AL

DECAL;輸出數(shù)據(jù)減1

JNZTN2

JMPTN1輸出三角波程序段如下:(4)討論①利用DAC產(chǎn)生鋸齒波輸出的方法是,將從0開始逐漸遞增的數(shù)據(jù)送到DAC,直到FFH,再回到0。重復(fù)上述過程,就可得到周期性的鋸齒波電壓。實際上,從0到FFH,中間分為256個小臺階,但從宏觀上看,是一個線性增長的電壓直線。②DAC0832的3種緩沖方式,用在不同的場合。雙緩沖方式用于需要多個不同模擬量同時輸出的系統(tǒng)中;單緩沖與直通方式都用于單個模擬量輸出的場合。單緩沖常用在采用普通IC芯片的DAC接口中,直通方式常用于采用可編程并行接口芯片的DAC接口中。(4)討論①利用DAC產(chǎn)生鋸齒波輸出的方法是,將從0開始逐三、串行8位D/A轉(zhuǎn)換器TLC5620第一級緩沖

第二級緩沖三、串行8位D/A轉(zhuǎn)換器TLC5620第一級緩沖第二級緩數(shù)據(jù)寫入方式

(LDAC更新DAC輸出)

數(shù)據(jù)寫入方式

(LOAD更新DAC輸出)

數(shù)據(jù)寫入方式(LDAC更新DAC輸出)數(shù)據(jù)寫入方式(LTLC5620與8255A的連接

TLC5620與8255A的連接

MOVCL,5 ;先把AX內(nèi)容左移5位

SHLAX,CL MOVDX,AX ;DX為串行輸出的數(shù)據(jù),最高位為通道選擇

MOVCX,11 ;循環(huán)11次DAC_PROC1: MOVAL,0 ;預(yù)置對DATA線的置位復(fù)位字

SHLDX,1 ;取串行輸出位

ADCAL,0 ;把串行輸出位送到置位復(fù)位字的第0位

OUT86H,AL ;把DATA線上串行輸出位內(nèi)容

MOVAL,00000010B ;發(fā)送CLK負(fù)脈沖

OUT86H,AL MOVAL,00000011B OUT86H,AL LOOPDAC_PROC1 ;循環(huán)

MOVAL,00000100B ;循環(huán)完畢,發(fā)LOAD負(fù)脈沖

OUT86H,AL

MOVAL,00000101B ;

OUT86H,AL

MOVAL,00000110B ;發(fā)LDAC負(fù)脈沖

OUT86H,AL

MOVAL,00000111B ;

OUT86H,AL MOVCL,5 ;先把AX內(nèi)容左移5位主程序段: MOVAL,10010010B ;8255A初始化OUT86H,ALMOVAL,0FFH ;C口各位初始值全為1OUT84H,AL…… ;其它處理MOVCX,256 ;D/A通道B產(chǎn)生一鋸齒波MOVAL,0 ;D/A初始數(shù)據(jù)為0MOVAH,00000010B ;選取通道B,最大輸出電壓為參考電壓AGAIN:CALLDAC_PROC ;把AX里的內(nèi)容送DACINCAL ;產(chǎn)生鋸齒波的下一個數(shù)據(jù)CALLDELAY ;延遲LOOPAGAIN ;循環(huán)256次

……主程序段: MOVAL,10010010B ;8255A初四、12位D/A轉(zhuǎn)換及接口四、12位D/A轉(zhuǎn)換及接口例

DAC1210接口電路設(shè)計(1)要求通過DAC1210產(chǎn)生并輸出50個方波,方波數(shù)據(jù)存放在內(nèi)存緩沖區(qū)。(2)分析DAC1210的分辨率為12位,且內(nèi)部有兩個三態(tài)鎖存器,用于分別對數(shù)據(jù)的高、低兩個字節(jié)進(jìn)行鎖存,故數(shù)據(jù)線可與系統(tǒng)數(shù)據(jù)總線直接連接。但是,當(dāng)它與8位微機系統(tǒng)連接時,數(shù)據(jù)要分兩次傳輸。例DAC1210接口電路設(shè)計(1)要求8位輸入鎖存器4位輸入鎖存器12位DAC寄存器12位相乘型D/A轉(zhuǎn)換器&&&LELELELSBMSBDI1115DI1016DI917DI818DI719DI620DI54DI45DI36DI27DI18DI09BYTE123/BYTE2CS1WR1

2XFER21WR2

2210VREF14IOUT213IOUT111RFB24Vcc3AGND24DGNDDAC1210內(nèi)部結(jié)構(gòu)8位輸入4位輸入12位DAC12位相乘型&&&LELELEL有兩種數(shù)據(jù)對齊格式:

“右對齊”:從低位對齊(先送低,后送高)

“左對齊”:從高位對齊(先送高,后送低)特別注意:設(shè)置兩個鎖存器,分別鎖存高字節(jié)和低字節(jié)。同時選通兩個鎖存器進(jìn)行D/A轉(zhuǎn)換。有兩種數(shù)據(jù)對齊格式:12位DAC與CPU之間加兩級鎖存器(右對齊)PC擴展槽D0-7IOWANEA0-9BUF1D0-7Q0-7CBUF3D0-7Q0-7CBUF2D0-7Q0-7C12位DACD0-7D/AI01

D8-11I02譯碼器Y0Y1圖10-512位DAC與CPU之間加兩級鎖存器12位DAC與CPU之間加兩級鎖存器(右對齊)PC擴展槽BU(3)設(shè)計①硬件設(shè)計接口電路如圖所示。圖中,DAC1210的12根數(shù)據(jù)線直接與系統(tǒng)的數(shù)據(jù)線相連,但系統(tǒng)數(shù)據(jù)線只有8位,故將DAC1210的低4位數(shù)據(jù)線連到了系統(tǒng)數(shù)據(jù)線的高4位上。這種連接方法稱為“左對齊”方式。DAC1210的3個端口地址為316H(y0)、317H(y1)和318H(y2)。

(3)設(shè)計①硬件設(shè)計②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)50個方波輸出,可知本例程序也是一個循環(huán)結(jié)構(gòu),其流程如圖所示。②軟件設(shè)計根據(jù)設(shè)計要求產(chǎn)生連續(xù)50個方波輸出,可知本例程序程序清單如下:SSTACKSEGMENTDW256DUP(?)

SSTACKENDSDATASEGMENTBUFRDW50DUP(0000,0FFFH)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKSQUARE:MOVAX,DATAMOVDS,AXMOVAX,SSTACKMOVSS,AXMOVSI,OFFSETBUFRMOVCX,100程序清單如下:SSTACKSEGMENT

SEND:MOVBX,WORDPTR[SI]

MOVCL,4SHLBX,CL;使BX中12位數(shù)向左對齊

MOVDX,316H;DAC1210的第1個字節(jié)鎖存器端口

MOVAL,BH;寫入高8位

OUTDX,ALINCDX;DAC1210的第2個字節(jié)鎖存器端口

MOVAL,BL;寫入低4位

OUTDX,ALINCDX;DAC1210的轉(zhuǎn)換器端口

OUTDX,AL;寫入任意數(shù)據(jù)(假寫)啟動轉(zhuǎn)換

CALLDELAY;延時使方波保持一定的寬度SEND:MOVBX,WORDPTR[SI]INCSI;緩沖區(qū)地址加2

INCSI

DECCX;循環(huán)次數(shù)減1

JNZSEND;循環(huán)次數(shù)未到,繼續(xù)

MOVAX,AC00H;已到,退出

INT21HDELAYPROCNEAR;延時子程序

MOVBX,0FFFFHLOP:DECBXJNZLOPRETDELAYENDPCODEENDSENDSQUAREINCSI;緩沖區(qū)地址加210.2A/D轉(zhuǎn)換器及其接口技術(shù)

分辨率指A/D轉(zhuǎn)換器對輸入模擬信號的分辨能力。通常用數(shù)字輸出最低位(LSB)所對應(yīng)的模擬輸入的電平值表示。如A/D轉(zhuǎn)換器的輸出為12位二進(jìn)制數(shù),最大輸入模擬信號為10V,則其分辨率為

分辨率=10/(2N

-1)≈10/2N≈2.44mV

10.2A/D轉(zhuǎn)換器及其接口技術(shù)10.2A/D轉(zhuǎn)換器及其接口技術(shù)

一、A/D轉(zhuǎn)換原理常用的A/D有并行A/D、逐次逼近A/D、雙積分A/D。10.2A/D轉(zhuǎn)換器及其接口技術(shù)一、A/D轉(zhuǎn)換原理1.計數(shù)斜波式A/D轉(zhuǎn)換器1.計數(shù)斜波式A/D轉(zhuǎn)換器DA8255比較器模擬輸入DA8255比較器模擬輸入2.逐次逼近式A/D轉(zhuǎn)換器10000000D71000000D7D6100000D7D6D5D4D3D2D1D0DHPC02.逐次逼近式A/D轉(zhuǎn)換器1000Ui=163mV的逐次比較過程Ui=163mV的逐次比較過程第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件

3.雙積分型A/D轉(zhuǎn)換器

計數(shù)器3.雙積分型A/D轉(zhuǎn)換器計數(shù)器充電時間T1放電T2充電時間V0=Vi*T1/τ放電時間V0-VR*T2/τ=0T2=(T1/VR

)*Vi在實際測量中T1,VR固定充電時間T1放電T2充電時間V0=V

4.并行比較型A/D轉(zhuǎn)換器第10章數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口及其應(yīng)用課件類型逐位比較型雙積分型并行比較型速度中慢快分辨率8-14位10-20位8-12位

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論