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

下載本文檔

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

文檔簡介

1、第第1111章章 AT89S51AT89S51單片機與單片機與D/AD/A、 A/D A/D 轉(zhuǎn)換器的接口轉(zhuǎn)換器的接口12 第第11章章 目錄目錄11.1 AT89S51單片機與單片機與DAC的接口的接口 11.1.1 D/A轉(zhuǎn)換器簡介 11.1.2 AT89S51單片機與8位D/A轉(zhuǎn)換器0832的接口設(shè)計 11.1.3 AT89S51單片機與12位D/A轉(zhuǎn)換器AD667的接口設(shè)計 11.1.4 AT89S51與串入的12位D/A轉(zhuǎn)換器AD7543的接口設(shè)計11.2 AT89S51單片機與單片機與ADC的接口的接口 11.2.1 A/D轉(zhuǎn)換器簡介 11.2.2 AT89S51與逐次比較型8位A

2、/D轉(zhuǎn)換器ADC0809的接口 11.2.3 AT89S51與逐次比較型12位A/D轉(zhuǎn)換器AD1674的接口 3 11.2.4 AT89S51與雙積分型A/D轉(zhuǎn)換器MC14433的接口11.3 89S51單片機與單片機與V/F轉(zhuǎn)換器的接口轉(zhuǎn)換器的接口 11.3.1 用V/F轉(zhuǎn)換器實現(xiàn)A/D轉(zhuǎn)換的原理 11.3.2 常用V/F轉(zhuǎn)換器LMX31簡介 11.3.3 V/F轉(zhuǎn)換器與MCS-51單片機接口 11.3.4 LM331應(yīng)用舉例4內(nèi)容概要內(nèi)容概要在單片機測控系統(tǒng)中,被測量被測量的溫度、壓力、流量、速度等非電物理量非電物理量,須經(jīng)傳感器先轉(zhuǎn)換模擬電信號,必須轉(zhuǎn)換成數(shù)字量后才能在單片機中用軟件進行

3、處理。模擬量轉(zhuǎn)換成數(shù)字量的器件為模擬量轉(zhuǎn)換成數(shù)字量的器件為A/D轉(zhuǎn)換器(轉(zhuǎn)換器(ADC)。單片機處理完畢的數(shù)字量,有時需轉(zhuǎn)換為轉(zhuǎn)換為模擬信號輸出模擬信號輸出。器件稱為D/A轉(zhuǎn)換器(轉(zhuǎn)換器(DAC)。本章介紹典型的ADC、DAC集成電路芯片,以及與單片機的硬件接口設(shè)計及軟件設(shè)計。n11.1 AT89S51單片機與單片機與DAC的接口的接口n介紹單片機系統(tǒng)如何輸出如何輸出模擬量模擬量。n目前商品化商品化DAC芯片芯片較多,設(shè)計者只需要合理的選用只需要合理的選用合適的芯片合適的芯片,了解它們的功能、引腳外特性以及與單片機的接口設(shè)計方法即可。n由于現(xiàn)在部分的單片機芯片中集成了D/A轉(zhuǎn)換器,位數(shù)一般在1

4、0位左右,且轉(zhuǎn)換速度也很快,所以單片的DAC開始向高的位數(shù)和高轉(zhuǎn)換速度上轉(zhuǎn)變。n低端的產(chǎn)品,如8位的D/A轉(zhuǎn)換器,開始面臨被淘汰的危險,但在實驗室或涉及某些工業(yè)控制方面的應(yīng)用,低端的8位DAC以其優(yōu)異性價比還是具有相當大的應(yīng)用空間的。5n11.1.1 D/A轉(zhuǎn)換器簡介轉(zhuǎn)換器簡介n1概述概述n購買和使用D/A轉(zhuǎn)換器時,要注意D/A轉(zhuǎn)換器選擇轉(zhuǎn)換器選擇的幾個問題。n(1)D/A轉(zhuǎn)換器的輸出形式轉(zhuǎn)換器的輸出形式n有兩種輸出形式兩種輸出形式。n電壓輸出電壓輸出,即給D/A轉(zhuǎn)換器輸入的是數(shù)字量,而輸出為電壓。n電流輸出電流輸出。n對電流輸出的D/A轉(zhuǎn)換器,如需要模擬電壓輸出,可在其輸出端加一個由運算放大

5、器構(gòu)成的I-V轉(zhuǎn)換轉(zhuǎn)換電路,將電流輸出轉(zhuǎn)換為電壓輸出。6n(2)D/A轉(zhuǎn)換器與單片機的接口形式轉(zhuǎn)換器與單片機的接口形式n單片機與D/A轉(zhuǎn)換器的連接,早期多采用8位數(shù)字量并行傳輸?shù)牟⑿薪涌?,現(xiàn)在除并行接口外除并行接口外,帶有串行口的串行口的D/A轉(zhuǎn)換器品種也不斷增多轉(zhuǎn)換器品種也不斷增多。n除了通用的UART串行口串行口外,目前較為流行的還有I2C串串行口行口和SPI串行口串行口等。n所以在選擇單片D/A轉(zhuǎn)換器時,要考慮單片機與考慮單片機與D/A轉(zhuǎn)換轉(zhuǎn)換器的器的接口形式接口形式。7n2主要技術(shù)指標主要技術(shù)指標n指標很多,使用者最關(guān)心的幾個指標如下。n(1)分辨率)分辨率n指單片機輸入給輸入給D/A

6、轉(zhuǎn)換器的轉(zhuǎn)換器的單位數(shù)字量的變化單位數(shù)字量的變化,所引,所引起的起的模擬量輸出的變化模擬量輸出的變化。通常定義為定義為輸出滿刻度值與2n之比(n為D/A轉(zhuǎn)換器的二進制位數(shù))。n習慣上用輸入數(shù)字量的二進制位數(shù)表示習慣上用輸入數(shù)字量的二進制位數(shù)表示。位數(shù)越多,分辨率越高,即D/A轉(zhuǎn)換器對輸入量變化的敏感程度越高。8n例如,例如,8位的D/A轉(zhuǎn)換器,若滿量程輸出為10V,根據(jù)分辨率定義,則分辨率為則分辨率為10V/2n,分辨率為,分辨率為:n10V/256=39.1mV ,即輸入的二進制數(shù)最低位的變化可引起輸出的模擬電壓變化39.1mV,該值占滿量程的0.391%,常用符號1LSB表示。n同理:n1

7、0位D/A轉(zhuǎn)換1 LSB = 9.77mV = 0.1%滿量程n12位D/A轉(zhuǎn)換1 LSB = 2.44mV = 0.024%滿量程n16位D/A轉(zhuǎn)換1 LSB = 0.076mV = 0.00076%滿量程n使用時,應(yīng)根據(jù)對根據(jù)對D/A轉(zhuǎn)換器分辨率轉(zhuǎn)換器分辨率的需要來選定D/A轉(zhuǎn)換器的位數(shù)位數(shù)。9n(2)建立時間)建立時間n描述D/A轉(zhuǎn)換器轉(zhuǎn)換快慢轉(zhuǎn)換快慢的一個參數(shù),用于表明轉(zhuǎn)換表明轉(zhuǎn)換時間或轉(zhuǎn)換速度時間或轉(zhuǎn)換速度。其值為從其值為從輸入數(shù)字量到輸出達到終值誤差輸入數(shù)字量到輸出達到終值誤差 (1/2)LSB時時所需的所需的時間時間。n電流輸出電流輸出的轉(zhuǎn)換時間較短較短,而電壓輸出電壓輸出的轉(zhuǎn)換

8、器,由于要加上完成I-V轉(zhuǎn)換的運算放大器的延遲時間,因此轉(zhuǎn)轉(zhuǎn)換時間要長一些換時間要長一些。n快速D/A轉(zhuǎn)換器的轉(zhuǎn)換時間可控制在1s以下。10n(3)轉(zhuǎn)換精度)轉(zhuǎn)換精度n理想情況下,轉(zhuǎn)換精度與分辨率基本一致,位數(shù)越多精度越高。n但由于電源電壓、基準電壓、電阻、制造工藝等各種因素存在著誤差。嚴格講,轉(zhuǎn)換精度與分辨率并不完全一轉(zhuǎn)換精度與分辨率并不完全一致致。只要位數(shù)相同,分辨率則相同,但相同位數(shù)的不同轉(zhuǎn)但相同位數(shù)的不同轉(zhuǎn)換器換器轉(zhuǎn)換精度轉(zhuǎn)換精度會有所不同會有所不同。n例如,例如,某種型號的8位DAC精度為0.19%,而另一種型號的8位DAC精度為0.05%。11n11.1.2 AT89S51與與8位

9、位D/A轉(zhuǎn)換器轉(zhuǎn)換器0832的接口設(shè)計的接口設(shè)計n1DAC0832芯片介紹芯片介紹n(1)DAC0832的特性的特性n美國國家半導體公司的DAC0832芯片是具有兩個輸入數(shù)據(jù)寄存器的8位DAC,它能直接與AT89S51單片機連接,主主要特性如下要特性如下。n 分辨率為分辨率為8位。位。n 電流輸出,建立時間為電流輸出,建立時間為1 s。n 可雙緩沖輸入、單緩沖輸入或直接數(shù)字輸入??呻p緩沖輸入、單緩沖輸入或直接數(shù)字輸入。n 單一電源供電(單一電源供電(+5V+15V)。)。n 低功耗,低功耗,20mW。12n(2)DAC0832的引腳及邏輯結(jié)構(gòu)的引腳及邏輯結(jié)構(gòu)n引腳引腳如圖圖11-1所示,DAC

10、0832的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)如圖圖11-2所示。13圖圖11-1 DAC0832的引腳圖的引腳圖DI0DI7:8位數(shù)字信位數(shù)字信號輸入端,號輸入端,與單片機的與單片機的數(shù)據(jù)總線數(shù)據(jù)總線P0口相連口相連,用于接收單片機送來的用于接收單片機送來的待轉(zhuǎn)換為模擬量的數(shù)字待轉(zhuǎn)換為模擬量的數(shù)字量,量,DI7為最高位。為最高位。片選端,當片選端,當 為低電平為低電平時,本芯片被選中。時,本芯片被選中。數(shù)據(jù)鎖存允許控制端,數(shù)據(jù)鎖存允許控制端,高電平有效。高電平有效。第一級輸入寄存器寫選通控第一級輸入寄存器寫選通控制,低電平有效。制,低電平有效。DAC寄存器寫選通控制寄存器寫選通控制端,低電平有效。端,低電平有效

11、。數(shù)據(jù)傳送控制,低電平數(shù)據(jù)傳送控制,低電平有效。有效。D/A轉(zhuǎn)換器電流輸出1端,輸入數(shù)字量全為“1”時,IOUT1最大,輸入數(shù)字量全為“0”時,IOUT1最小。D/A轉(zhuǎn)換器電流輸出2端IOUT2 + IOUT1 = 常數(shù)。外部反饋信號輸入端,內(nèi)部已有反饋電阻Rfb,根據(jù)需要也可外接反饋電阻。電源輸入端,在電源輸入端,在+5V+15V范圍內(nèi)。范圍內(nèi)。14圖圖11-2 DAC0832的邏輯結(jié)構(gòu)的邏輯結(jié)構(gòu)n2AT89S51單片機與單片機與DAC0832的接口電路設(shè)計的接口電路設(shè)計n設(shè)計接口電路時,常用單緩沖方式單緩沖方式或雙緩沖方式雙緩沖方式的單極性輸出。n(1)單緩沖方式)單緩沖方式n指DAC08

12、32內(nèi)部的兩個數(shù)據(jù)緩沖器兩個數(shù)據(jù)緩沖器有一個有一個處于處于直通直通方式方式,另一個另一個處于受AT89S51單片機控制的鎖存方式鎖存方式。在實際應(yīng)用中,如果只有一路模擬量輸出,或雖是多路模擬量輸出但并不要求多路輸出同步的情況下,可采用單緩沖方式。n單緩沖方式單緩沖方式的接口電路如圖圖11-3所示所示。1516圖圖11-3 單緩沖方式下單片機與單緩沖方式下單片機與DAC0832的接口電路的接口電路n圖圖11-3所示的是單極性模擬電壓輸出電路,由于DAC0832是8位(28=256)的D/A轉(zhuǎn)換器,由基爾霍夫定律列出的方程組可解得0832輸出電壓vo與輸入數(shù)字量輸入數(shù)字量B的關(guān)系為n n顯然,輸出

13、的模擬電壓輸出的模擬電壓vo和輸入的數(shù)字量和輸入的數(shù)字量B以及基準電以及基準電壓壓VREF成正比成正比,且B為0時,vo也為0,輸入數(shù)字量為255時,vo為最大的絕對值輸出,且不會大于VREF。17REFo256VvB n圖圖11-3中,中, 和和 接地,接地,故DAC0832的“8位DAC寄存器”(見圖11-2)工作于直通方式工作于直通方式。n“8位輸入寄存器”受 和 端控制,而且 由譯碼器輸出端FEH送來(也可由P2口的某一條口線來控制)。因此,單片機執(zhí)行如下兩條指令就可在 和 上產(chǎn)生低電平信號,使DAC0832接收AT89S51送來的數(shù)字量。nMOVR0,#0FEH;DAC端口地址FEH

14、R0nMOVXR0,A;單片機的 和譯碼器FEH輸出端有效18XFERWR2WR1CSWR1CSn【例例11-1】DAC0832用作波形發(fā)生器波形發(fā)生器。試根據(jù)圖11-3,分別寫出產(chǎn)生鋸齒波鋸齒波、三角波三角波和矩形波矩形波的程序。n在圖11-3中,運算放大器A輸出端Vout直接反饋到Rfb,故這種接線產(chǎn)生的模擬輸出電壓是單極性的。產(chǎn)生上述三種波形的參考程序如下。n 鋸齒波的產(chǎn)生鋸齒波的產(chǎn)生 ORG2000HSTART: MOVR0,#0FEH;DAC地址FEH R0MOVA,#00H;數(shù)字量ALOOP: MOVX R0,A ;數(shù)字量D/A轉(zhuǎn)換器 INCA ;數(shù)字量逐次加1SJMP LOOP1

15、9n當輸入數(shù)字量從輸入數(shù)字量從0開始,逐次加開始,逐次加1進行進行D/A轉(zhuǎn)換轉(zhuǎn)換,模擬量與其成正比輸出。n當A = FFH時,再加1則溢出清0,模擬輸出又為0,然后又重新重復上述過程,如此循環(huán),輸出的波形就是鋸齒波,如圖圖11-4所示所示。n實際上,每一上升斜邊要分成256個小臺階個小臺階,每個小臺小臺階暫留時間階暫留時間為執(zhí)行后三條指令所需要的時間后三條指令所需要的時間。因此 “INC A”指令后插入NOP指令或延時程序,則可改變鋸齒波頻率。20 三角波的產(chǎn)生。三角波的產(chǎn)生。 ORG2000HSTART: MOVR0,#0FEHMOVA,#00HUP: MOVX R0,A;產(chǎn)生三角波的上升邊

16、;產(chǎn)生三角波的上升邊INCAJNZUPDOWN: DECA ;A=0時減時減1為為FFH, 產(chǎn)生三角波的下降邊產(chǎn)生三角波的下降邊MOVXR0,AJNZDOWN SJMPUP輸出的三角波輸出的三角波如如圖圖11-5所示所示。21n 矩形波的產(chǎn)生矩形波的產(chǎn)生 ORG2000HSTART: MOV R0,#0FEHLOOP: MOVA,#data1 ;#data1為上限電平對應(yīng)的數(shù)字量MOVX R0,A;置矩形波上限電平LCALL DELAY1;調(diào)用高電平延時程序MOV A,#data2 ;#data2為下限電平對應(yīng)的數(shù)字量MOVX R0,A;置矩形波下限電平LCALL DELAY2;調(diào)用低電平延時

17、程序SJMP LOOP;重復進行下一個周期nDELAY1、DELAY2為兩個延時程序,分別決定輸出的矩形波高、低電平時的持續(xù)寬度。矩形波頻率也可用延時方法改變。22n(2)雙緩沖方式)雙緩沖方式n多路的多路的D/A轉(zhuǎn)換轉(zhuǎn)換要求同步輸出同步輸出時,必須采用雙緩沖同必須采用雙緩沖同步方式步方式。此方式工作時,數(shù)字量的輸入鎖存和D/A轉(zhuǎn)換輸出是分兩步分兩步完成的。單片機必須通過 來鎖存待轉(zhuǎn)換的數(shù)字量,通過 來啟動D/A轉(zhuǎn)換(見圖圖11-2)。n因此,雙緩沖方式下,DAC0832應(yīng)該為單片機提供兩個I/O端口。AT89S51單片機和DAC0832在雙緩沖方式雙緩沖方式下的連接如圖圖11-7所示。23L

18、E1LE224 圖圖11-7 單片機和兩片單片機和兩片DAC0832的雙緩沖方式接口電路的雙緩沖方式接口電路n由圖11-7可見可見,1#DAC0832因 和譯碼器FDH相連而占有FDH和FFH兩個兩個I/O端口地址端口地址(由譯碼器的連接邏輯來決定),而而2#DAC0832的兩個端口地址為FEH和FFH。其中,F(xiàn)DH和和FEH分別為1#和和2#DAC0832的數(shù)字量輸入控制端口地址,而FFH為動D/A轉(zhuǎn)換的端口地址。其余連接如圖圖11-7所示所示。n若把圖11-7中DAC輸出的模擬電壓模擬電壓Vx和和Vy來控制來控制X-Y繪圖儀繪圖儀,則應(yīng)把Vx和Vy分別加到X-Y繪圖儀的X通道通道和Y通道通

19、道,而X-Y繪圖儀由X、Y兩個方向的步進電機驅(qū)動,其中一個電機控制繪筆沿X方向運動;另一個電機控制繪筆沿Y方向運動。25CSn因此對X-Y繪圖儀的控制有一基本要求:就是兩路模擬信號要同步輸出同步輸出,使繪制的曲線光滑。如果不同步輸出如果不同步輸出,例如先輸出X通道通道的模擬電壓,再輸出Y通道通道的模擬電壓,則繪圖筆先向X方向移動,再向Y方向移動,此時繪制的曲線就是階梯狀的曲線就是階梯狀的。n通過本例,也就不難理解DAC設(shè)置雙緩沖方式的目的所在。26【例例11-2】設(shè)AT89S51內(nèi)部RAM中有兩個長度為20的數(shù)據(jù)塊,其起始地址起始地址為分別為addr1和addr2,根據(jù)圖11-7,編寫能把ad

20、dr1和addrr2中數(shù)據(jù)從1#和2#DAC0832同步輸出的程序。程序中addr1和addr2中的數(shù)據(jù),即為繪圖儀所繪制曲線的x、y坐標點。由圖11-7可知可知,DAC0832各端口地址各端口地址為為:FDH:1#DAC0832數(shù)字量輸入控制端口FEH:2#DAC0832數(shù)字量輸入控制端口FFH:1#和2#DAC0832啟動D/A轉(zhuǎn)換端口27n首先使工作寄存器0區(qū)的R1指向addr1;1區(qū)的區(qū)的R1指向指向addr2;0區(qū)工作寄存器的R2存放數(shù)據(jù)塊長度;0區(qū)和1區(qū)工作寄存器區(qū)的R0指向DAC端口地址。程序如下: ORG2000Haddr1DATA 20H;定義存儲單元addr2 DATA 4

21、0H;定義存儲單元DTOUT:MOVR1,#addr1;0區(qū)R1指向addr1MOVR2,#20;數(shù)據(jù)塊長度送0區(qū)R2SETBRS0 ;切換到工作寄存器1區(qū)MOVR1,#addr2;1區(qū)R1指向addr2CLRRS0;返回工作寄存器0區(qū)NEXT:MOVR0,#0FDH ;0區(qū)R0指向1#DAC數(shù)字量控制端口MOVA,R1;addr1中數(shù)據(jù)送A28MOVX R0,A;addr1中數(shù)據(jù)送1#DACINCR1;修改addr1指針0區(qū)R1SETBRS0;轉(zhuǎn)入1區(qū)MOVR0,#0FEH;1區(qū)R0指向2#DAC0832數(shù)字量控制端口MOVA,R1;addr2中數(shù)據(jù)送AMOVX R0,A;addr2中數(shù)據(jù)送

22、2#DAC0832INCR1;修改addr2指針1區(qū)R1INCR0;1區(qū)R0指向DAC的啟動D/A轉(zhuǎn)換端口MOVX R0,A;啟動DAC進行轉(zhuǎn)換CLRRS0;返回0區(qū)DJNZR2,NEXT;若未完, 則跳轉(zhuǎn)NEXTLJMPDTOUT;若送完, 則循環(huán)29n3DAC0832的雙極性的電壓輸出的雙極性的電壓輸出n有些場合則要求DAC0832雙極性模擬電壓輸出,下面介紹如何實現(xiàn)。n在雙極性電壓輸出的場合下,可以按照圖圖11-8所示接線。圖中,DAC0832的數(shù)字量由單片機送來,A1和A2均為運算放大器,vo通過2R電阻反饋到運算放大器A2輸入端,G點為虛擬地,其他電路如圖11-8所示。由基爾霍夫定律

23、列出的方程組可解得30REFo(128)128VvB由上式知,當單片機輸出單片機輸出給DAC0832的數(shù)字量數(shù)字量B128時,即數(shù)字量最高位b7為1 ,輸出的模擬電壓vo o為正為正;當單片機輸出給DAC0832的數(shù)字量B128時,即數(shù)字量最高位為0,則vo的輸出電壓為負的輸出電壓為負。 圖圖11-8 雙極性雙極性DAC的接法的接法3111.1.3 AT89S51與與12位位D/A轉(zhuǎn)換器轉(zhuǎn)換器AD667的接口設(shè)計的接口設(shè)計8位分辨率不夠時位分辨率不夠時,可以采用高于8位分辨率的DAC,例如,例如,10位、12位、14位、16位(例如AD669)的DAC。AD667是一種分辨率為分辨率為12位位

24、的并行輸入、電壓輸出型并行輸入、電壓輸出型D/A轉(zhuǎn)換器轉(zhuǎn)換器,建立時間建立時間3 s。輸入方式輸入方式為雙緩沖輸入雙緩沖輸入;輸出輸出方式方式為電壓輸出電壓輸出,通過硬件編程可輸出可輸出+5V、+10V、 2.5V、 5V和和 10V;內(nèi)含高穩(wěn)定的基準電壓源,可方便地與4位、8位或16位微處理器接口;雙電源工作電壓為12V15V。321引腳介紹引腳介紹AD667為28腳雙列直插式腳雙列直插式封裝,圖圖11-9所示為雙列直插式封裝引腳圖,表表11-1為其引腳說明。 圖圖11-9 AD667引腳圖引腳圖3334CSCS(1)內(nèi)部功能結(jié)構(gòu))內(nèi)部功能結(jié)構(gòu)圖圖11-10所示為AD667內(nèi)部功能結(jié)構(gòu)框圖。

25、35圖圖11-10 AD667內(nèi)部功能結(jié)構(gòu)框圖內(nèi)部功能結(jié)構(gòu)框圖(2)應(yīng)用特性)應(yīng)用特性 模擬電壓輸出范圍的配置模擬電壓輸出范圍的配置AD667通過片外引腳的不同電路連接不同電路連接,可獲得不同的輸出電壓量程范圍。單極性單極性工作時,可以獲得05V和和010V的電壓。雙極性工作時,可獲得 2.5V、 5.5V和和 10V的電壓。具體量程配置可由引腳1、2、3、9的不同連接實現(xiàn),見表表11-2。由于AD667內(nèi)置的量程電阻與其他元器件具有熱跟蹤性能,所以AD667的增益增益和偏置漂移非常小偏置漂移非常小。3637 單極性電壓輸出單極性電壓輸出圖圖11-11為010V單極性單極性電壓輸出電路原理圖。

26、38圖圖11-11 010V單極性電壓輸出的電路原理圖單極性電壓輸出的電路原理圖在電路運行之前,為保證轉(zhuǎn)換精度,首先要進行為保證轉(zhuǎn)換精度,首先要進行電路電路調(diào)零調(diào)零和和增益調(diào)節(jié)增益調(diào)節(jié)。n 電路調(diào)零電路調(diào)零 數(shù)字輸入量全為“0”時,調(diào)節(jié)50k電位器RP1,使其模擬電壓輸出端(VOUT)電壓為0.000V。在大多數(shù)情況下,并不需要調(diào)零,只要把腳4與腳5相連(接地)即可。n增益調(diào)節(jié)增益調(diào)節(jié) 數(shù)字輸入量全為“1”時,調(diào)節(jié)100電位器RP2 ,使其模擬電壓輸出為9.9976V,即滿量程的10.000V減去1LSB(約為2.44mV)所對應(yīng)的模擬輸出量。39 雙極性電壓輸出雙極性電壓輸出圖圖11-12為

27、-5V+5V雙極性電壓輸出雙極性電壓輸出的電路。在電路運行之前,為保證轉(zhuǎn)換精度,首先要進行偏置調(diào)節(jié)偏置調(diào)節(jié)和增益增益調(diào)節(jié)調(diào)節(jié)。n 偏置調(diào)節(jié)偏置調(diào)節(jié) 數(shù)字輸入量全為“0”時,調(diào)節(jié)100的電位器RP1 ,使其模擬電壓輸出端電壓為5.000V。n 增益調(diào)節(jié)增益調(diào)節(jié) 數(shù)字輸入量全為“1” ,調(diào)節(jié)電位器RP2 ,使其模擬輸出電壓值為4.9976V,即正滿量程電壓輸出5.000V減去1LSB(約為2.44mV)所對應(yīng)的模擬輸出量。4041圖圖11-12 5V雙極性電壓輸出電路原理圖雙極性電壓輸出電路原理圖 內(nèi)部內(nèi)部/外部基準電壓源的使用外部基準電壓源的使用AD667有內(nèi)置低噪聲基準電源內(nèi)置低噪聲基準電源,

28、其絕對精度和溫度系數(shù)都是通過激光修正,具有長期穩(wěn)定性。片內(nèi)基準電源片內(nèi)基準電源可提供片內(nèi)D/A轉(zhuǎn)換器所需的基準電流,還可通過緩沖電路驅(qū)動外部電路,一般可向外部負載提供0.1mA的驅(qū)動電流。 接地與動態(tài)電容的接法接地與動態(tài)電容的接法AD667把模擬地模擬地AGND與電源地與電源地PGND分開分開,可以減少器件的低頻噪聲和增強高速性能。把地回路分開的目的是為了盡量減少低電平信號路徑中的電流。42AGND是輸出放大器中的地端,應(yīng)與系統(tǒng)中的模擬輸出電壓基準地直接相連,任何由輸出放大器驅(qū)動的負載都應(yīng)該接在模擬地引腳上。電源地電源地PGND可以與模擬電源的接地點就近連接。最后AGND與PGND在一點上進行

29、連接,一般連接到電源地PGND上。另外,AD667的電源引腳到模擬地引腳間電源引腳到模擬地引腳間應(yīng)加上適當?shù)娜ヱ铍娙萑ヱ铍娙荨T谳敵龇糯笃鞣答侂娮鑳啥思右粋€20pF的小電容,可以明顯改善輸出放大器的動態(tài)性能。43 數(shù)字輸入控制與數(shù)據(jù)代碼數(shù)字輸入控制與數(shù)據(jù)代碼AD667的總線接口邏輯由4個獨立的可尋址鎖存器個獨立的可尋址鎖存器組成,其中有3個個4位的輸入數(shù)據(jù)鎖存器位的輸入數(shù)據(jù)鎖存器(第一級鎖存器)和1個個12位的位的DAC鎖存器鎖存器(第二級鎖存器)。利用3個4位鎖存器可以直接從4位、8位或16位微處理器總線分次或一次加載12位數(shù)字量;一旦數(shù)字量被裝入12位的輸入數(shù)據(jù)鎖存器,就可以把12位數(shù)據(jù)傳

30、入第二級的DAC鎖存器,這種雙緩沖結(jié)構(gòu)可以避免產(chǎn)生錯誤的模擬輸出。4個鎖存器個鎖存器由4個地址輸入個地址輸入A0A3和 控制,所有的控制都是低電平有效,對應(yīng)關(guān)系見表表11-3。44CS45CS所有鎖存器都是所有鎖存器都是電平觸發(fā)電平觸發(fā),也就是說,當對應(yīng)的控制信號都有效時,鎖存器輸出跟蹤輸入數(shù)據(jù);當任何一個控制信號無效時,數(shù)據(jù)就被鎖存。它允許一個以上的鎖存器被同時鎖存。建議建議任何未使用的數(shù)據(jù)和控制引腳任何未使用的數(shù)據(jù)和控制引腳最好與電源地相連,以改善抗噪聲干擾特性。AD667使用正邏輯的二進制輸入編碼,大于大于2.0V的輸入電壓表示邏輯“1”,而小于小于0.8V的輸入電壓表示邏輯“0”。46

31、單極性輸出時單極性輸出時,輸入編碼采用直接二進制編碼,全全“0”數(shù)據(jù)輸入數(shù)據(jù)輸入000H產(chǎn)生零模擬輸出;全全“1”數(shù)據(jù)輸入數(shù)據(jù)輸入FFFH產(chǎn)生比滿量程少1LSB的模擬輸出。雙極性輸出時雙極性輸出時,輸入編碼采用偏移二進制編碼,數(shù)據(jù)輸入為000H時,產(chǎn)生負的滿量程輸出;數(shù)據(jù)輸入為數(shù)據(jù)輸入為FFFH時,產(chǎn)生比滿量程少1LSB的模擬輸出;數(shù)據(jù)輸入為800H時,模擬輸出為0。其中1LSB為最低位對應(yīng)的模擬電壓。雙極性輸出時輸入與輸出關(guān)系如圖圖11-13所示,輸入數(shù)字輸入數(shù)字量量N與輸出模擬電壓與輸出模擬電壓VOUT的關(guān)系為的關(guān)系為:47式中,VR為輸出電壓量程。48OUTR1112NVV圖圖11-13

32、 雙極性輸出與輸入關(guān)系雙極性輸出與輸入關(guān)系 與單片機接口的數(shù)據(jù)格式與單片機接口的數(shù)據(jù)格式AD667與單片機接口的數(shù)據(jù)格式為左對齊左對齊或右對齊右對齊的數(shù)據(jù)格式。左對齊左對齊數(shù)據(jù)格式為:右對齊右對齊數(shù)據(jù)格式為:492AD667與與AT89S51單片機的接口單片機的接口圖圖11-14所示為AT89S51單片機與AD667的接口電路。 50圖圖11-14 AD667與與AT89S51單片機的接口電路單片機的接口電路單片機把AD667所占的所占的3個端口個端口地址視為外部數(shù)據(jù)存視為外部數(shù)據(jù)存儲器的儲器的3個單元個單元,對其進行選通,完成對AD667數(shù)據(jù)傳送鎖存及轉(zhuǎn)換的功能。假定低低8位數(shù)據(jù)位數(shù)據(jù)存20

33、H單元,高高4位位數(shù)據(jù)存21H的低4位,D/A轉(zhuǎn)換的程序如下程序如下:MOVA,20HMOVDPTR,#7FFEHMOVX DPTR,A;低8位進第一級鎖存器MOVA,21HMOVDPTR,#7FFDHMOVX DPTR,A;高4位進第一級鎖存器MOVDPTR,#7FFBHMOVX DPTR,A ;啟動第二級鎖存器RET5111.1.4 AT89S51與串行輸入的與串行輸入的12位位D/A轉(zhuǎn)換器轉(zhuǎn)換器AD7543的接口設(shè)計的接口設(shè)計1. AD7543簡介簡介美國AD公司為異步串行口設(shè)計的12位位價廉D/A轉(zhuǎn)換器。直接與AT89S51的串行口相連,結(jié)構(gòu)如圖圖11-15所示所示。AD7543片內(nèi)由

34、12位位串行輸入并行輸出移位寄存器串行輸入并行輸出移位寄存器(寄存器A)和12位位DAC輸入寄存器輸入寄存器(寄存器B)組成。在選通信號的前沿或后沿(可選擇)定時把SRI引腳上的串行數(shù)據(jù)裝入寄存器A,一旦寄存器A裝滿,在加載脈沖的控制下,寄存器A的數(shù)據(jù)便裝入寄存器B中。5253圖圖11-15 AD7543的片內(nèi)結(jié)構(gòu)的片內(nèi)結(jié)構(gòu)AD7543的引腳如圖圖11-16所示所示,功能如下:OUT1:AD7543的電流輸出引腳1。OUT2:AD7543的電流輸出引腳2。AGND:模擬地。STB1:寄存器A的選通控制信號。 :寄存器B加載1輸入。當 和 為低電平時,寄存器A的內(nèi)容送到寄存器B。SRI:單片機輸

35、入到寄存器A的串行數(shù)據(jù)輸入引腳。 :寄存器B加載2輸入。54LD1LD2LD1LD2 :寄存器A選通3輸入。STB4:寄存器A選通4輸入。DGND:數(shù)字地。 :寄存器B清除輸入,用于異步地將寄存器B復位至 000H。VDD:+5V電源。VREF:基準電壓輸入。Rfb:DAC反饋輸入引腳。55CLRSTB356圖圖11-16 AD7543的引腳的引腳2. AD7543與與AT89S51的接口的接口接口電路如圖圖11-17所示,圖中只給出與D/A轉(zhuǎn)換有關(guān)的電路。57圖圖11-17 AD7543與與AT89S51的接口電路的接口電路圖圖11-17中的單片機串行口直接與單片機串行口直接與AD7543相

36、連相連,串行口選用方式方式0,其TXD端移位脈沖的負跳變端移位脈沖的負跳變將RXD輸出輸出的串行位數(shù)據(jù)移入AD7543,利用地址譯碼器的輸出信號產(chǎn)生 ,從而將AD7543移位寄存器A中的內(nèi)容移入到寄存器B中,并啟動啟動D/A轉(zhuǎn)換轉(zhuǎn)換。由于AD7543的12位數(shù)據(jù)是高至低位數(shù)據(jù)是高至低逐位串行輸入的,而AT89S51的串行口方式串行口方式0是低至高是低至高逐位串行輸出的,因58此在數(shù)據(jù)傳輸?shù)紸D7543之前必須重新裝配。下面是單片單片機機的驅(qū)動程序的驅(qū)動程序,假設(shè)AD7543的端口地址為“addrH”,數(shù)據(jù)緩沖器單元地址為dbufh(高4位)和dbufl(低8位)。OUTDA:MOV A,#db

37、ufh;取高4位數(shù)據(jù)ACALL ASMB;調(diào)用裝配子程序MOVSBUF,A;串行口輸出MOV A,#dbufl;取低8位數(shù)據(jù)59ACALL ASMB;調(diào)用裝配子程序MOVSBUF,A;串行口輸出MOVDPTR,#addrH ;AD7543端口地址送數(shù)據(jù)指針MOVX DPTR,A ;將AD7543寄存器A送寄存器BRETASMB: MOVR6,#00H;裝配子程序MOVR7,#08HCLRC60AL0:RLCAXCHA,R6RRCAXCHA,R6DJNZR7,AL0XCHA,R6RET61n11.2 AT89S51單片機與單片機與ADC的接口的接口n11.2.1 A/D轉(zhuǎn)換器簡介轉(zhuǎn)換器簡介nA/

38、D轉(zhuǎn)換器把模擬量模擬量轉(zhuǎn)換轉(zhuǎn)換成數(shù)字量成數(shù)字量,以便于單片機進行數(shù)據(jù)處理。n隨著超大規(guī)模集成電路技術(shù)的飛速發(fā)展,A/D轉(zhuǎn)換器的新設(shè)計思想和制造技術(shù)層出不窮。為滿足各種不同的檢測及控制任務(wù)的需要,大量結(jié)構(gòu)不同、性能各異的A/D轉(zhuǎn)轉(zhuǎn)換芯片應(yīng)運而生換芯片應(yīng)運而生。62n1A/D轉(zhuǎn)換器概述轉(zhuǎn)換器概述n目前單片的ADC芯片較多,對設(shè)計者來說,只需合理的選擇芯片即可?,F(xiàn)在部分的單片機片內(nèi)集成了部分的單片機片內(nèi)集成了A/D轉(zhuǎn)換轉(zhuǎn)換器器,在片內(nèi)A/D轉(zhuǎn)換器不能滿足需要,還是需外擴。另外作為擴展A/D轉(zhuǎn)換器的基本方法,讀者還是應(yīng)當掌握。n盡管A/D轉(zhuǎn)換器的種類很多種類很多,但目前廣泛應(yīng)用在單片機應(yīng)用系統(tǒng)中的主要

39、有逐次比較型轉(zhuǎn)換器逐次比較型轉(zhuǎn)換器和雙積分型轉(zhuǎn)換雙積分型轉(zhuǎn)換器器,此外 -式轉(zhuǎn)換器式轉(zhuǎn)換器逐漸得到重視和較為廣泛的應(yīng)用。n逐次比較型逐次比較型A/D轉(zhuǎn)換器轉(zhuǎn)換器,在精度、速度和價格上都適中,是最常用的最常用的A/D轉(zhuǎn)換器轉(zhuǎn)換器。63n雙積分型雙積分型A/D轉(zhuǎn)換器轉(zhuǎn)換器,具有精度高、抗干擾性好、價格低廉等優(yōu)點,與逐次比較型A/D轉(zhuǎn)換器相比,轉(zhuǎn)換速度較慢,近年來在單片機應(yīng)用領(lǐng)域中也得到廣泛應(yīng)用得到廣泛應(yīng)用。n - 式式ADC具有積分式與逐次比較型ADC的雙重優(yōu)點。它對工業(yè)現(xiàn)場的串模干擾具有較強的抑制能力,不亞于雙積分ADC,它比雙積分ADC有較高的轉(zhuǎn)換速度,與逐次比較型ADC相比,有較高的信噪比,

40、分辨率高,線性度好,不需要采樣保持電路。由于上述優(yōu)點,式ADC得到了重視,已有多種已有多種 式式A/D芯片可供用戶選用芯片可供用戶選用。64nA/D轉(zhuǎn)換器按照輸出數(shù)字量的有效位數(shù)分為按照輸出數(shù)字量的有效位數(shù)分為4位、位、8位、位、10位、位、12位、位、14位、位、16位并行輸出位并行輸出以及BCD碼輸出碼輸出的 3位半、4位半、5位半等多種。n目前,除并行輸出A/D轉(zhuǎn)換器外,隨著單片機串行擴展方式的日益增多,帶有帶有同步同步SPI串行接口串行接口的的A/D轉(zhuǎn)換器轉(zhuǎn)換器的使用也逐漸增多的使用也逐漸增多。串行輸出的A/D轉(zhuǎn)換器具有占用端口占用端口線少、使用方便、接口簡單線少、使用方便、接口簡單等

41、優(yōu)點,因此,讀者要給予足夠重視。較為典型的串行較為典型的串行A/D轉(zhuǎn)換器為美國轉(zhuǎn)換器為美國TI公司公司的TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)。65n單片機與串行A/D轉(zhuǎn)換器接口設(shè)計,涉及同步串行口SPI的內(nèi)容,本章不做介紹,感興趣的讀者,請見第12章。本章僅介紹單片機與各種并行輸出單片機與各種并行輸出A/D轉(zhuǎn)換器轉(zhuǎn)換器的接口設(shè)計。nA/D轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為超高速超高速(轉(zhuǎn)換時間1ns)、高速高速(轉(zhuǎn)換時間1s)、中速中速(轉(zhuǎn)換時間1ms)、低速低速(轉(zhuǎn)換時間1s)等幾種不同轉(zhuǎn)換速度的芯片。為適

42、應(yīng)系統(tǒng)集成的需要,有些轉(zhuǎn)換器還將為適應(yīng)系統(tǒng)集成的需要,有些轉(zhuǎn)換器還將多路轉(zhuǎn)換開多路轉(zhuǎn)換開關(guān)、時鐘電路、基準電壓源、關(guān)、時鐘電路、基準電壓源、二十進制譯碼器進制譯碼器和和轉(zhuǎn)換電轉(zhuǎn)換電路路集成在一個芯片內(nèi)集成在一個芯片內(nèi),為用戶提供很多方便。66n2A/D轉(zhuǎn)換器的主要技術(shù)指標轉(zhuǎn)換器的主要技術(shù)指標n(1)轉(zhuǎn)換時間和轉(zhuǎn)換速率)轉(zhuǎn)換時間和轉(zhuǎn)換速率nA/D完成一次轉(zhuǎn)換所需要的時間所需要的時間。轉(zhuǎn)換時間的倒數(shù)為轉(zhuǎn)換速率。n(2)分辨率)分辨率n在A/D轉(zhuǎn)換器中,分辨率是衡量A/D轉(zhuǎn)換器能夠分辨出能夠分辨出輸入模擬量最小變化程度的技術(shù)指標輸入模擬量最小變化程度的技術(shù)指標。n分辨率取決于A/D轉(zhuǎn)換器的轉(zhuǎn)換器的位

43、數(shù)位數(shù),所以習慣上用輸出的二進制位數(shù)或BCD碼位數(shù)表示。67n例如,例如,A/D轉(zhuǎn)換器AD1674的滿量程輸入電壓為5V,可輸出12位二進制數(shù),即用212個數(shù)進行量化,n其分辨率分辨率為為1LSB,也即5V/212=1.22mV,其分辨率為分辨率為12位位,或A/D轉(zhuǎn)換器能分辨出輸入電壓分辨出輸入電壓1.22mV的變化。n量化過程引起的誤差稱為量化誤差量化誤差。是由于有限位數(shù)有限位數(shù)字量對模擬量進行量化字量對模擬量進行量化而引起的誤差。理論上規(guī)定為一個單位分辨率的-1/2 - +1/2LSB ,提高A/D位數(shù)既可以提高分辨率,又能夠減少量化誤差。n(3)轉(zhuǎn)換精度)轉(zhuǎn)換精度nA/D轉(zhuǎn)換器的轉(zhuǎn)換精

44、度定義為一個實際A/D轉(zhuǎn)換器與一個理想A/D轉(zhuǎn)換器在量化值上的差值,可用絕對誤差或相對誤差表示。68n11.2.2 AT89S51與逐次比較型與逐次比較型8位位A/D轉(zhuǎn)換器轉(zhuǎn)換器nADC0809的接口的接口n1ADC0809引腳及功能引腳及功能n逐次比較型8路模擬輸入、8位數(shù)字量輸出的A/D轉(zhuǎn)換器,其引腳如圖圖11-18所示所示。6970圖圖11-18 ADC0809的引腳圖的引腳圖 IN0IN7:8路模擬信號輸入端。D0D7:轉(zhuǎn)換完畢的8位數(shù)字量輸出端。nA、B、C與與ALE:控制8路模擬輸入通道的切換。A、B、C分別與單片機的三條地址線相連,三位編碼三位編碼對應(yīng)對應(yīng)8個通道地址端個通道地址

45、端口口。OE為輸出允許端,START為啟動信號輸入端CLK為時鐘信號輸入端VR(+)、)、VR():):基準電壓輸入端。轉(zhuǎn)換結(jié)束信號,高轉(zhuǎn)換結(jié)束信號,高電平有效電平有效n2ADC0809結(jié)構(gòu)及轉(zhuǎn)換原理結(jié)構(gòu)及轉(zhuǎn)換原理n結(jié)構(gòu)如圖圖11-19所示所示。n采用逐次比較法完成A/D轉(zhuǎn)換,單一的+5V電源供電。n片內(nèi)帶有鎖存功能的8選1模擬開關(guān),由C、B、A的編碼的編碼來決定所選的通道所選的通道。n完成一次轉(zhuǎn)換需100 s左右左右(轉(zhuǎn)換時間與CLK腳的時鐘頻率有關(guān)),具有輸出TTL三態(tài)鎖存緩沖器,可直接連到單片機數(shù)據(jù)總線上。n通過適當?shù)耐饨与娐罚珹DC0809可對05V的模擬信號進行轉(zhuǎn)換。7172圖圖11

46、-19 ADC0809結(jié)構(gòu)框圖結(jié)構(gòu)框圖n3AT89S51單片機與單片機與ADC0809的接口的接口n先了解單片機如何控制如何控制ADC開始轉(zhuǎn)換開始轉(zhuǎn)換,如何得知轉(zhuǎn)換如何得知轉(zhuǎn)換結(jié)束結(jié)束以及如何讀入轉(zhuǎn)換結(jié)果如何讀入轉(zhuǎn)換結(jié)果的問題。n控制ADC0809過程如下:先用指令選擇先用指令選擇ADC0809的的一個模擬輸入通道一個模擬輸入通道,當執(zhí)行“MOVX DPTR,A”時,單片機的 信號有效信號有效,從而產(chǎn)生一個啟動脈沖啟動脈沖。信號給ADC0809的START腳,開始對選中通道轉(zhuǎn)換對選中通道轉(zhuǎn)換。當轉(zhuǎn)換轉(zhuǎn)換結(jié)束后結(jié)束后,ADC0809發(fā)出轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束EOC(高電平)信號(高電平)信號,該信號可

47、供單片機查詢,也可反相后作為向單片機發(fā)出的中斷請求信號。73WRn當執(zhí)行指令執(zhí)行指令“MOVX A,DPTR”時,單片機發(fā)出讀控制 信號,通過邏輯電路控制OE端為高電平,把轉(zhuǎn)換完畢的數(shù)字量讀入到單片機的累加器轉(zhuǎn)換完畢的數(shù)字量讀入到單片機的累加器A中。中。n單片機讀取ADC的轉(zhuǎn)換結(jié)果時,可采用查詢查詢和中斷控中斷控制制兩種方式。n查詢方式查詢方式是在單片機把啟動信號送到ADC之后,執(zhí)行其他程序,同時對ADC0809的EOC腳不斷進行檢測,以查詢ADC變換是否已經(jīng)結(jié)束,如查詢到變換已經(jīng)結(jié)束,則讀入轉(zhuǎn)換完畢的數(shù)據(jù)。74RDn中斷控制方式中斷控制方式是在啟動信號送到ADC之后,單片機執(zhí)行其他程序。AD

48、C0809轉(zhuǎn)換結(jié)束并向單片機發(fā)出中斷請求信號時,單片機響應(yīng)此中斷請求,進入中斷服務(wù)程序,讀入轉(zhuǎn)換完畢的數(shù)據(jù)。n中斷控制方式效率高,所以特別適合于轉(zhuǎn)換時間較長的ADC。(1)查詢方式)查詢方式ADC0809與AT89S51的查詢式接口查詢式接口如圖圖11-20所示所示。7576圖圖11-20 ADC0809與與AT89S51查詢式接口查詢式接口n圖圖11-20所示所示的基準電壓基準電壓是提供給A/D轉(zhuǎn)換器在轉(zhuǎn)換時所需要的基準電壓,這是保證轉(zhuǎn)換精度的基本條件?;鶞驶鶞孰妷阂獑为氂酶呔确€(wěn)壓電源供給電壓要單獨用高精度穩(wěn)壓電源供給,其電壓的變化要小于電壓的變化要小于1LSB。否則當被變換的輸入電壓不變

49、,而基準電壓的變化大于1LSB,也會引起A/D轉(zhuǎn)換器輸出的數(shù)字量變化。n由于ADC0809片內(nèi)無時鐘,可利用單片機提供的地址鎖存允許信號ALE經(jīng)經(jīng)D觸發(fā)器二分頻后獲得觸發(fā)器二分頻后獲得,ALE引腳的頻率是AT89S51單片機時鐘頻率的1/6(但要注意,每當訪問外部數(shù)據(jù)存儲器時,將少一個ALE脈沖)。77n如果單片機時鐘頻率采用6MHz,則ALE引腳的輸出頻率為1MHz,再二分頻后為二分頻后為500kHz,符合ADC0809對時鐘頻率的要求。當然,也可采用獨立的時鐘源輸出獨立的時鐘源輸出,直接加到ADC的CLK腳。n由于ADC0809具有輸出三態(tài)鎖存器,其8位數(shù)據(jù)輸出引腳D0D7可直接與單片機的

50、P0口相連。地址譯碼引腳C、B、A分別與地址總線的低三位A2、A1、A0相連,以選通IN0IN7中的一個通道。78n在啟動啟動A/D轉(zhuǎn)換轉(zhuǎn)換時,由單片機的寫信號 和P2.7控制ADC的地址鎖存和轉(zhuǎn)換啟動,由于由于ALE和和START連在連在一起一起,因此ADC0809在鎖存通道地址的同時,啟動并進行轉(zhuǎn)換。n在讀取轉(zhuǎn)換結(jié)果在讀取轉(zhuǎn)換結(jié)果時,用低電平的讀信號 和P2.7引腳經(jīng)一級“或非門”后產(chǎn)生的正脈沖作為OE信號,用來打開三態(tài)輸出鎖存器。n下面的程序是采用軟件延時采用軟件延時的方式,分別對分別對8路模擬路模擬信號輪流采樣一次信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)儲到數(shù)據(jù)存儲區(qū)的轉(zhuǎn)換程序。79WRMAI

51、N:MOVR1,#data;置數(shù)據(jù)區(qū)首地址MOVDPTR,#7FF8H;端口地址送DPTR, ;P2.7=0, 且指向通道IN0MOVR7,#08H;置通道個數(shù)LOOP: MOVX DPTR,A;啟動A/D轉(zhuǎn)換MOVR6,#0AH;軟件延時, 等待轉(zhuǎn)換結(jié)束DELAY: NOPNOPNOPDJNZR6,DELAYMOVX A,DPTR;讀取轉(zhuǎn)換結(jié)果MOVR1,A;存儲轉(zhuǎn)換結(jié)果INCDPTR;指向下一個通道INCR1;修改數(shù)據(jù)區(qū)指針DJNZR7,LOOP;8個通道全采樣完;否?未完則繼續(xù)80n(2)中斷方式)中斷方式nADC0809與AT89S51單片機的中斷方式接口電路只需要將圖將圖11-20所

52、示的所示的EOC引腳經(jīng)過一引腳經(jīng)過一“反門反門”連接到連接到AT89S51單片機的外中斷輸入引腳單片機的外中斷輸入引腳 即可。n采用中斷方式可大大節(jié)省單片機的時間。當轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束時,發(fā)出時,發(fā)出EOC脈沖脈沖向單片機提出中斷申請?zhí)岢鲋袛嗌暾?,單片機響應(yīng)中斷請求,由外部中斷外部中斷1的中斷服務(wù)程序讀的中斷服務(wù)程序讀A/D結(jié)果結(jié)果,并啟動ADC0809的下一次轉(zhuǎn)換,外部中斷外部中斷1采用跳沿觸發(fā)跳沿觸發(fā)方式。81參考程序:參考程序:INIT1:SETB IT1;選擇外部中斷1為跳沿觸發(fā)方式SETB EA;總中斷允許SETB EX1;允許外部中斷1中斷MOV DPTR,#7FF8H ;端口地址送

53、DPTRMOVA,#00HMOVXDPTR,A;啟動ADC0809對IN0通道轉(zhuǎn)換;完成其他的工作中斷服務(wù)程序:中斷服務(wù)程序: PINT1: MOVDPTR,#7FF8H;讀取結(jié)果送內(nèi)部RAM30HMOVX A,DPTRMOV30H,AMOVA,#00H;啟動ADC0809對IN0的轉(zhuǎn)換MOVX DPTR,ARETI8211.2.3 AT89S51與逐次比較型與逐次比較型12位位A/D轉(zhuǎn)換器轉(zhuǎn)換器AD1674的接口的接口某些應(yīng)用中,8位位ADC常常不夠常常不夠,必須選擇分辨率大選擇分辨率大于于8位位的芯片,如10位、位、12位、位、16位位A/D轉(zhuǎn)換器,由于10位、16位接口與12位類似,因此

54、僅以常用的12位A/D轉(zhuǎn)換器AD1674為例介紹。 1AD1674簡介簡介美國AD公司12位逐次比較型位逐次比較型A/D轉(zhuǎn)換器轉(zhuǎn)換器。轉(zhuǎn)換時間為轉(zhuǎn)換時間為10 s,單通道最大采集速率最大采集速率100kHz。為28引腳雙列直插引腳雙列直插式封裝式封裝,其引腳如圖圖11-21所示所示。8384 圖圖11-21 AD1674的引腳的引腳由于芯片內(nèi)有三態(tài)輸出緩沖電路,因而可直接與各種典型的8位或16位的單片機相連,AD1674片內(nèi)集成有高精度的基準電壓源和時鐘電路,從而使該芯片在不需要任何外加電路和時鐘信號的情況下完成A/D轉(zhuǎn)換,使用非常方便。AD1674是AD574A/674A的更新?lián)Q代產(chǎn)品。它們

55、的內(nèi)部結(jié)構(gòu)和外部應(yīng)用特性基本相同,引腳功能與AD574A/674A完全兼容,可以直接替換AD574、AD674使用,但最大轉(zhuǎn)換時間由25s提高到10s。85與AD574A/674A相比相比,AD1674的內(nèi)部結(jié)構(gòu)更加緊湊的內(nèi)部結(jié)構(gòu)更加緊湊,集成度更高,工作性能(尤其是高低溫穩(wěn)定性)更好集成度更高,工作性能(尤其是高低溫穩(wěn)定性)更好,而且可以使設(shè)計板面積大大減小,因而可以降低成本并提高系統(tǒng)的可靠性。目前,片內(nèi)帶有采樣保持器的AD1674正以其優(yōu)良的性能價格比,取代AD574A和AD674A。AD1674共有6個控制引腳個控制引腳,功能如下。 :芯片選擇。 =0時,芯片被選中。86CSCSCE:片

56、啟動信號。當CE=1時,究竟是啟動轉(zhuǎn)換還是讀取結(jié)果與R/ 有關(guān),見表表11-4。R/ :讀出/轉(zhuǎn)換控制信號。12/ :數(shù)據(jù)輸出格式選擇信號引腳。當12/ =1時,12條數(shù)據(jù)線并行輸出轉(zhuǎn)換結(jié)果;當12/ =0 時,與A0配合,轉(zhuǎn)換結(jié)果分兩次輸出,即只有高8位或低4位有效。注意:注意:12/ 端與TTL電平不兼容,故只能直接接至+5V或0V上。87CC8888A0:字節(jié)選擇控制。在轉(zhuǎn)換期間在轉(zhuǎn)換期間:當A0=0時,AD1674進行全12位轉(zhuǎn)換。當A0=1時,僅進行8位轉(zhuǎn)換。在讀出期間在讀出期間,與12/ =0配合:當A0=0時,高8位數(shù)據(jù)有效;當A0=1時,低4位數(shù)據(jù)有效,中間4位為0,高4位為高

57、阻態(tài)。888當采用兩次讀出的采用兩次讀出的12位數(shù)據(jù)位數(shù)據(jù)遵循左對齊左對齊格式,如下所示:AD1674的上述5個控制信號組合的真值表個控制信號組合的真值表如表表11-4。STS:輸出狀態(tài)信號引腳。 轉(zhuǎn)換開始時轉(zhuǎn)換開始時,STS為高電平,轉(zhuǎn)換過程中轉(zhuǎn)換過程中保持高電平。 轉(zhuǎn)換完成時轉(zhuǎn)換完成時,為低電平。STS可以作為狀態(tài)信息被CPU查詢,也可用它的下跳沿向單片機發(fā)出中斷申請,通知單片機A/D轉(zhuǎn)換已完成,可讀取轉(zhuǎn)換結(jié)果。8990CSC 8除上述6個控制引腳外,其他引腳的功能如下:REFOUT:+10V基準電壓輸出。REFIN:基準電壓輸入。只有由此腳把從“REFOUT”腳輸出的基準電壓引入到AD1

58、674內(nèi)部的12位DAC,才能進行正常的A/D轉(zhuǎn)換。BIPOFF:雙極性補償。對此引腳進行適當?shù)倪B接,可實現(xiàn)單極性或雙極性的輸入。10VIN:10V或5+5V模擬信號輸入端。9120VIN:20V或10+10V模擬信號輸入端。DGND:數(shù)字地。各數(shù)字電路器件及“+5V”電源的地。AGND:模擬地。各模擬電路器件及“+15V”、“15V”電源地。VCC:正電源端,為+12+15V。VEE:負電源端,為1215V。2AD1674的工作特性的工作特性AD1674的工作狀態(tài)由5個控制信號個控制信號CE、 、R/ 、12/ 、A0決定,見表表11-4。92CS8C由表11-4知:當CE=1, = 0同時

59、滿足時,AD1674才能處于工作處于工作狀態(tài)狀態(tài)。當AD1674處于工作狀態(tài)時,R/ = 0時啟動A/D轉(zhuǎn)換;R/ =1時讀出轉(zhuǎn)換結(jié)果。12/ 和和A0端用來控制轉(zhuǎn)換字長和數(shù)據(jù)格式。A0=0時啟動轉(zhuǎn)換,按完整的12位A/D轉(zhuǎn)換方式工作; A0=1啟動轉(zhuǎn)換,則按8位A/D轉(zhuǎn)換方式工作。當當AD1674處于數(shù)據(jù)讀出工作狀態(tài)處于數(shù)據(jù)讀出工作狀態(tài)(R/ = 1)時,A0和12/ 成為數(shù)據(jù)輸出格式控制端。93CS8CC8C12/ =1時,對應(yīng)12位并行輸出;12/ =0時,則對應(yīng)8位雙字節(jié)輸出。其中A0=0時輸出高8位,A0 = 1時輸出低4位,并以4個0補足尾隨的4位。注意注意,A0在轉(zhuǎn)換結(jié)果數(shù)據(jù)輸出

60、期間不能變化。如要求AD1674以獨立方式獨立方式工作,只要將CE、12/ 端接入+5V, 和A0接至0V,將R/ 作為數(shù)據(jù)讀出和啟動轉(zhuǎn)換控制。R/ =1時,數(shù)據(jù)輸出端出現(xiàn)被轉(zhuǎn)換后的數(shù)據(jù); R/ =0時,即啟動一次A/D轉(zhuǎn)換。在延時0.5s后,STS = 1表示轉(zhuǎn)換正在進行。經(jīng)過一個轉(zhuǎn)換周期后,STS跳回低電平,表示A/D轉(zhuǎn)換完畢,可讀取新的轉(zhuǎn)換數(shù)據(jù)。94888CCCCS注意,注意,只有在CE = 1且 = 0時才啟動轉(zhuǎn)換,在啟動信號有效前,R/ 必須為低電平,否則將產(chǎn)生讀取數(shù)據(jù)的操作。3AD1674的單極性和雙極性輸入的電路的單極性和雙極性輸入的電路通過改變AD1674引腳8、10、12的外

溫馨提示

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

評論

0/150

提交評論