《單片機(jī)應(yīng)用技術(shù) 》課件-第7章_第1頁
《單片機(jī)應(yīng)用技術(shù) 》課件-第7章_第2頁
《單片機(jī)應(yīng)用技術(shù) 》課件-第7章_第3頁
《單片機(jī)應(yīng)用技術(shù) 》課件-第7章_第4頁
《單片機(jī)應(yīng)用技術(shù) 》課件-第7章_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章A/D與D/A轉(zhuǎn)換接口項(xiàng)目7簡易數(shù)字電壓表的制作7.1A/D轉(zhuǎn)換器接口7.2D/A轉(zhuǎn)換器接口本章小結(jié)習(xí)題7項(xiàng)目7簡易數(shù)字電壓表的制作

1.實(shí)訓(xùn)目的

(1)了解A/D芯片ADC0809的工作原理及編程。

(2)掌握單片機(jī)與ADC0809的接口技術(shù)。

(3)通過實(shí)訓(xùn)了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集。

(4)進(jìn)一步掌握LED數(shù)碼管動態(tài)顯示的工作原理。

2.實(shí)訓(xùn)設(shè)備與器件

(1)實(shí)訓(xùn)設(shè)備:單片機(jī)開發(fā)系統(tǒng)、微機(jī)。

(2)實(shí)訓(xùn)器件與電路:參見圖7.1。

3.實(shí)訓(xùn)步驟及要求

(1)要求:根據(jù)實(shí)訓(xùn)電路板,分析ADC0809和單片機(jī)的接口方法并編寫程序,要求當(dāng)調(diào)節(jié)電位器使輸入模擬電壓發(fā)生變化(0~5V)時,最后兩個數(shù)碼管顯示相應(yīng)的變化(顯示內(nèi)容為00H~FFH的十六進(jìn)制數(shù))。

(2)實(shí)訓(xùn)電路:圖7.1所示的簡易數(shù)字電壓測量電路由三部分組成:A/D轉(zhuǎn)換、單片機(jī)處理及顯示控制。A/D轉(zhuǎn)換由集成電路芯片ADC0809完成。ADC0809具有8路模擬輸入通道IN0~I(xiàn)N7。由于在電路板的連接中,通道0外接有模擬電壓輸入,因此在編寫本實(shí)訓(xùn)程序時對通道0進(jìn)行了轉(zhuǎn)換。

(3)軟件設(shè)計:①資源分配。本實(shí)訓(xùn)程序主要包括3個部分:主程序、拆字子程序以及顯示子程序。主程序完成顯示緩沖區(qū)清0、啟動ADC0809進(jìn)行轉(zhuǎn)換并取轉(zhuǎn)換結(jié)果等功能。轉(zhuǎn)換結(jié)果為一個8位二進(jìn)制數(shù)。拆字子程序?qū)⑥D(zhuǎn)換結(jié)果的高四位和低四位進(jìn)行拆分,分別存入顯示緩沖區(qū)的20H、21H單元。顯示子程序?yàn)閯討B(tài)顯示,根據(jù)顯示緩沖區(qū)的內(nèi)容,在最右邊的兩個LED上顯示相應(yīng)的數(shù)字,即顯示00~FF。圖7.1簡易數(shù)字電壓測量電路②軟件流程圖如圖7.2所示。圖7.2A/D轉(zhuǎn)換與數(shù)碼管顯示程序流程圖③源程序如下:

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN:MOV SP,#30H

LP:SETB P3.2

CLR P3.2

SETB P3.2 ;A/D開始轉(zhuǎn)換

JB P3.3,$ ;等待轉(zhuǎn)換結(jié)束

CLR P3.2 ;允許讀數(shù)

MOV P1,#0FFH ;P1口置位

MOV A,P1 ;取樣(讀外引腳)

LCALL SEPR

LCALL DISP

AJMP LP ;返回

SEPR:MOV B,A

ANL A,#0FH

MOV 20H,A

MOV A,B

SWAP A

ANL A,#0FH

MOV 21H,A

RET

DISP:MOV R2,#02H

MOV R3,#01H

MOV R0,#20H

DISP1:MOV DPTR,#TAB

MOV A,@R0

MOVC A,@A+DPTR

MOV P0,A

MOV A,R3

MOV P2,A

LCALL DELAY

RL A

MOV R3,A

INC R0

DJNZ R2,DISP1

RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,

82H,0F8H;共陽極碼

DB 80H,90H,88H,83H,0C6H,0A1H,86H,

08EH

DELAY:MOV R6,#10

DEL2:MOV R7,#125

DEL1:NOP

NOP

DJNZ R7,DEL1

DJNZ R6,DEL2

RET

END

4.實(shí)訓(xùn)分析與總結(jié)

(1)實(shí)訓(xùn)結(jié)果是:當(dāng)調(diào)節(jié)電位器使輸入模擬電壓發(fā)生變化(0~5V)時,兩個數(shù)碼管顯示相應(yīng)的變化(顯示內(nèi)容為00H~FFH)。

(2)本實(shí)訓(xùn)電路所涉及的ADC0809芯片為8通道A/D轉(zhuǎn)換器,可以將由IN0~I(xiàn)N7這8個通道輸入的模擬電壓轉(zhuǎn)換為8位二進(jìn)制數(shù)。有關(guān)該芯片的介紹見7.1.1小節(jié)。在本實(shí)訓(xùn)程序中,我們對由通道0輸入的模擬電壓進(jìn)行了轉(zhuǎn)換,并采用了查詢方式進(jìn)行數(shù)據(jù)的傳送。當(dāng)然也可以采用中斷方式,請讀者自行編寫程序完成。

(3)從實(shí)訓(xùn)中可以看到,ADC0809進(jìn)行轉(zhuǎn)換的主要步驟是先選中0809的一個通道,然后啟動A/D轉(zhuǎn)換,再用查詢指令或中斷方式判斷轉(zhuǎn)換是否結(jié)束,待轉(zhuǎn)換結(jié)束后取轉(zhuǎn)換結(jié)果到累加器A中,最后送到LED數(shù)碼管顯示。

(4)本程序最后將轉(zhuǎn)換結(jié)果以十六進(jìn)制數(shù)形式表示,也可以用三個數(shù)碼管以十進(jìn)制數(shù)的形式顯示,即顯示為000~255。還可以用數(shù)碼管顯示實(shí)際的電壓值,請讀者思考如何編寫相應(yīng)的程序。7.1A/D轉(zhuǎn)換器接口7.1.1典型A/D轉(zhuǎn)換器芯片ADC0809

ADC0809是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,采用CMOS工藝制造。

1.ADC0809的內(nèi)部邏輯結(jié)構(gòu)

ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖7.3所示。圖7.3ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖7.3中的多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。地址鎖存與譯碼電路完成對A、B、C三個地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,如表7.1所示。

8位A/D轉(zhuǎn)換器是逐次逼近式A/D轉(zhuǎn)換器,由控制與時序電路、逐次逼近寄存器、樹狀開關(guān)以及256R電阻階梯網(wǎng)絡(luò)等組成。三態(tài)輸出鎖存器用于存放和輸出轉(zhuǎn)換得到的數(shù)字量。圖7.4ADC0809引腳圖

2.信號引腳

ADC0809芯片為28引腳雙列直插式封裝,其引腳排列見圖7.4。對ADC0809主要信號引腳的功能說明如下:

(1)?IN7~I(xiàn)N0:模擬量輸入通道。ADC0809對輸入模擬量的要求主要有:信號單極性,電壓范圍為0~5V,若信號過小,則還需進(jìn)行放大。另外,輸入模擬量在A/D轉(zhuǎn)換過程中其值不應(yīng)變化太快,因此對變化速度快的模擬量,在輸入前應(yīng)增加采樣保持電路。

(2)?ADDA、ADDB、ADDC:地址線。ADDA為低位地址,ADDC為高位地址,用于對模擬通道進(jìn)行選擇。ADDA、ADDB和ADDC分別對應(yīng)表7.1中的A、B和C,其地址狀態(tài)與通道的對應(yīng)關(guān)系見表7.1。

(3)?ALE:地址鎖存允許信號。對應(yīng)ALE上跳沿,ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。

(4)?START:轉(zhuǎn)換啟動信號。在START上跳沿,所有內(nèi)部寄存器清0;在START下跳沿,開始進(jìn)行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。

(5)?D7~D0:數(shù)據(jù)輸出線,為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。

(6)OE:輸出允許信號,用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。當(dāng)OE=0時,輸出數(shù)據(jù)線呈高電阻;當(dāng)OE=1時,輸出轉(zhuǎn)換得到的數(shù)據(jù)。

(7)CLK:時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500kHz的時鐘信號。

(8)EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號。EOC=0表示正在進(jìn)行轉(zhuǎn)換;EOC=1表示轉(zhuǎn)換結(jié)束。該狀態(tài)信號既可作為查詢狀態(tài)標(biāo)志使用,又可作為中斷請求信號使用。

(9)?Vcc:+5V電源。

(10)Vref:參考電壓。參考電壓用來與輸入的模擬信號進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V,Vref(-)=0V)。7.1.2MCS-51單片機(jī)與ADC0809接口

ADC0809與8031單片機(jī)的另一種常用連接方式如圖7.5所示。該電路連接主要涉及兩個問題,一是8路模擬信號通道的選擇,二是A/D轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。圖7.5ADC0809與8031單片機(jī)的連接

1.8路模擬通道的選擇

ADDA、ADDB、ADDC分別接地址鎖存器74LS373提供的低3位地址,只要把3位地址寫入ADC0809中的地址鎖存器,就實(shí)現(xiàn)了模擬通道的選擇。對系統(tǒng)來說,地址鎖存器是一個輸出口,為了把3位地址寫入,還要提供口地址。圖7.5中使用的是線選法,口地址由P2.0確定,同時和相或取反后作為開始轉(zhuǎn)換的選通信號。因此該ADC0809的通道地址確定如下:若無關(guān)位都取0,則8路通道IN0~I(xiàn)N7的地址分別為0000H~0007H。從圖7.5中可以看到,ADC0809的ALE信號與START信號連接在一起了,這樣使得在ALE信號的前沿寫入地址信號后,緊接著在其后沿就啟動轉(zhuǎn)換。因此啟動圖7.5中的ADC0809進(jìn)行轉(zhuǎn)換只需要下面的指令(以通道0為例):

MOV

DPTR,#0000H ;選中通道0

MOVX@DPTR,A ;信號有效,啟動轉(zhuǎn)換

2.轉(zhuǎn)換數(shù)據(jù)的傳送

A/D轉(zhuǎn)換后得到的是數(shù)字量的數(shù)據(jù),這些數(shù)據(jù)應(yīng)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換完成,因?yàn)橹挥写_認(rèn)數(shù)據(jù)轉(zhuǎn)換完成后,才能進(jìn)行傳送,為此可采用下述三種方式:

(1)定時傳送方式。對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809的轉(zhuǎn)換時間為128μs,相當(dāng)于6MHz的MCS-51單片機(jī)的64個機(jī)器周期。可據(jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用這個延時子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。

(2)查詢方式。A/D轉(zhuǎn)換芯片有表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,用軟件測試EOC的狀態(tài),即可確知轉(zhuǎn)換是否完成,然后進(jìn)行數(shù)據(jù)傳送。

(3)中斷方式。該方式可把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。在圖7.5中,EOC信號經(jīng)過反相器后送到單片機(jī)的,因此可以采用查詢該引腳或中斷的方式進(jìn)行轉(zhuǎn)換后數(shù)據(jù)的傳送。不管使用上述哪種方式,只要一旦確認(rèn)轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以作選通信號,當(dāng)信號有效時,OE信號有效,即可把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接收,指令是:

MOV

DPTR,#0000H ;選中通道0

MOVXA,@DPTR,;信號有效,輸出轉(zhuǎn)換后的數(shù);據(jù)到A累加器7.1.3應(yīng)用舉例例7-1

某冷凍廠需對8個冷凍室進(jìn)行溫度巡回檢測。要求設(shè)計一個用單片機(jī)控制的巡回檢測系統(tǒng),使其能對各冷凍室的溫度巡回檢測并加以處理。溫度傳感器可選用熱敏電阻或集成溫度傳感器DS18B20等芯片。將采樣數(shù)據(jù)依次存放在片內(nèi)RAM的78H~7FH單元中,其數(shù)據(jù)采樣的初始化程序、主程序和中斷服務(wù)程序如下:初始化程序:

ORG0000H ;主程序入口地址

AJMPMAIN ;跳轉(zhuǎn)主程序

ORG0013H ;中斷入口地址

AJMPINT1 ;跳轉(zhuǎn)中斷服務(wù)程序主程序:

MAIN:MOV R0,#78H ;數(shù)據(jù)暫存區(qū)首地址

MOV R2,#08H ;8路計數(shù)初值

SETB IT1 ;邊沿觸發(fā)

SETB EA ;開中斷

SETB EX1 ;允許中斷

MOV DPTR,#6000H;指向0809IN0通道地址

MOV A,#00H ;此指令可省,A可為任意值

LOOP:MOVX @DPTR,A;啟動A/D轉(zhuǎn)換

HERE:SJMP HERE ;等待中斷中斷服務(wù)程序:

INT1:MOVX A,@DPTR;讀A/D轉(zhuǎn)換結(jié)果

MOV @R0,A ;存數(shù)

INC DPTR ;更新通道

INC R0 ;更新暫存單元

DJNZ R2,DONE

RETI ;返回

DONE:MOVX @DPTR,A

RETI上述程序是用中斷方式來完成轉(zhuǎn)換后數(shù)據(jù)的傳送的,也可以用查詢的方式實(shí)現(xiàn),源程序如下:

ORG 0000H;主程序入口地址

AJMP MAIN ;跳轉(zhuǎn)主程序

ORG 1000H

MAIN: MOV R0,#78H

MOV R2,#08H

MOV DPTR,#6000H

MOV A,#00H

L0:MOVX @DPTR,A

L1:JB P3.3,L1;查詢是否為0

MOVX A,@DPTR;若為0,則轉(zhuǎn)換結(jié)束,;讀出數(shù)據(jù)

MOV @R0,A

INC R0

INC DPTR

DJNZ R2,L0

$:SJMP $參考實(shí)訓(xùn)電路圖7.1和圖7.5,請讀者分析下面實(shí)用程序的功能:

ORG

0000H

AJMP

MAIN

ORG

0100H

MAIN: MOV

SP,#30H

MOV

20H,#00H

MOV

21H,#00H

MOV

22H,#00H

START:MOV

DPTR,#0000H

MOV

A,#00H

MOVX@DPTR,A

L1: JB

P3.3,L1

MOVX

A,@DPTR

LCALL

SEPR

LCALL

DISP

SJMP

START

SEPR: MOV

B,#100

DIV

AB

MOV

22H,A

MOV

A,#10

XCH

A,B

DIV

AB

MOV

21H,A

MOV

20H,B

RET

DISP: MOV

R2,#03H

MOV

R3,#01H

MOV

R0,#20H

DISP1: MOV

DPTR,#TAB

MOV

A,@R0

MOVC

A,@A+DPTR

MOV

P0,A

MOV

A,R3

MOV

P2,A

LCALL

DELAY

RL

A

MOV

R3,A

INC

R0

DJNZ

R2,DISP1

RET

TAB: DB

0C0H,0F9H,0A4H,0B0H,

99H,92H,82H,0F8H

DB

80H,90H,88H,83H,C6H,

A1H,86H,8EH

DELAY: MOV

R5,#20

DEL3: MOV

R6,#50

DEL2: MOV

R7,#250

DEL1: NOP

NOP

DJNZ

R7,DEL1

DJNZ

R6,DEL2

DJNZ

R5,DEL3

RET7.2D/A轉(zhuǎn)換器接口

D/A轉(zhuǎn)換器輸入的是數(shù)字量,經(jīng)轉(zhuǎn)換后輸出的是模擬量。下面介紹幾個與接口有關(guān)的技術(shù)性能指標(biāo)。

(1)分辯率。分辨率是D/A轉(zhuǎn)換器對輸入量變化敏感程度的描述,與輸入數(shù)字量的位數(shù)有關(guān)。如果數(shù)字量的位數(shù)為n,則D/A轉(zhuǎn)換器的分辨率為2-n。這就意味著數(shù)/模轉(zhuǎn)換器能對滿刻度的2-n輸入量作出反應(yīng)。例如8位數(shù)的分辨率為1/256,10位數(shù)分辨率為1/1024等。因此數(shù)字量位數(shù)越多,分辨率也就越高,即轉(zhuǎn)換器對輸入量變化的敏感程度也就越高。使用時,應(yīng)根據(jù)分辨率的需要來選定轉(zhuǎn)換器的位數(shù)。DAC常可分為8位、10位、12位三種。

(2)建立時間。建立時間是描述D/A轉(zhuǎn)換速度快慢的一個參數(shù),指從輸入數(shù)字量變化到輸出達(dá)到終值誤差±(1/2)LSB(最低有效位)時所需的時間。通常以建立時間來表示轉(zhuǎn)換速度。轉(zhuǎn)換器的輸出形式為電流時建立時間較短;而當(dāng)輸出形式為電壓時,由于還要加上運(yùn)算放大器的延遲時間,因此建立時間要長一點(diǎn)。但總的來說,D/A轉(zhuǎn)換速度遠(yuǎn)高于A/D轉(zhuǎn)換速度,例如快速的D/A轉(zhuǎn)換器的建立時間只需1μs。7.2.1典型D/A轉(zhuǎn)換器芯片DAC0832

DAC0832是一個8位D/A轉(zhuǎn)換器,單電源供電,在+5~+15V范圍均可正常工作。基準(zhǔn)電壓的范圍為±10V;電流建立時間為1μs;CMOS工藝,低功耗(僅為20mW)。

DAC0832轉(zhuǎn)換器芯片為20引腳、雙列直插式封裝,其引腳排列如圖7.6所示。DAC0832的內(nèi)部結(jié)構(gòu)框圖如圖7.7所示。圖7.6DAC0832引腳圖圖7.7DAC0832的內(nèi)部結(jié)構(gòu)框圖該轉(zhuǎn)換器由輸入寄存器和DAC寄存器構(gòu)成兩級數(shù)據(jù)輸入鎖存。使用時數(shù)據(jù)輸入可以采用兩級鎖存(雙鎖存)形式,或單級鎖存(一級鎖存,一級直通)形式,或直接輸入(兩級直通)形式。此外,由3個與門電路可組成寄存器輸出控制邏輯電路,該邏輯電路的功能是進(jìn)行數(shù)據(jù)鎖存控制。當(dāng)=0時,輸入數(shù)據(jù)被鎖存;當(dāng)=1時,鎖存器的輸出跟隨輸入的數(shù)據(jù)。

D/A轉(zhuǎn)換電路是一個R-2RT型電阻網(wǎng)絡(luò),可實(shí)現(xiàn)8位數(shù)據(jù)的轉(zhuǎn)換。對DAC0832各引腳信號說明如下:

(1)?DI7~DI0:轉(zhuǎn)換數(shù)據(jù)輸入。

(2):片選信號(輸入),低電平有效。

(3)?ILE:數(shù)據(jù)鎖存允許信號(輸入),高電平有效。

(4):第1寫信號(輸入),低電平有效。

ILE和信號控制輸入寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng)ILE=1且=0時,為輸入寄存器直通方式;當(dāng)ILE=1且=1時,為輸入寄存器鎖存方式。

(5):第2寫信號(輸入),低電平有效。

(6):數(shù)據(jù)傳送控制信號(輸入),低電平有效。和信號控制DAC寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng)=0且=0時,為DAC寄存器直通方式;當(dāng)=1或=1時,為DAC寄存器鎖存方式。

(7)?Iout1:電流輸出1。

(8)?Iout2:電流輸出2。

DAC轉(zhuǎn)換器的特性之一是:Iout1+Iout2=常數(shù)。

(9)?Rfb:反饋電阻端。

DAC0832是電流輸出,為了取得電壓輸出,需在電壓輸出端接運(yùn)算放大器,Rfb即為運(yùn)算放大器的反饋電阻端。運(yùn)算放大器的接法如圖7.8所示。

(10)?Vref:基準(zhǔn)電壓,其電壓可正可負(fù),范圍為-10~+10V。

(11)?DGND:數(shù)字地。

(12)?AGND:模擬地。圖7.8運(yùn)算放大器的接法7.2.2DAC0832單緩沖方式的接口與應(yīng)用

1.單緩沖方式連接所謂單緩沖方式,就是使0832的兩個輸入寄存器中有一個處于直通方式,而另一個處于受控的鎖存方式,或者說是使兩個輸入寄存器同時受控的方式。在實(shí)際應(yīng)用中,如果只有一路模擬量輸出或雖有幾路模擬量但并不要求同步輸出的情況,就可采用單緩沖方式。單緩沖方式的兩種連接電路如圖7.9和圖7.10所示。圖7.9DAC0832單緩沖方式接口一圖7.10DAC0832單緩沖方式接口二(用DAC產(chǎn)生鋸齒波)圖7.9為兩個輸入寄存器同時受控的連接方法,和一起接8051的,和共同接8051的P2.7,因此兩個寄存器的地址相同。在圖7.10中,=0且=0,因此DAC寄存器處于直通方式。而輸入寄存器處于受控鎖存方式,接8051的,ILE接高電平,此外還應(yīng)把接高位地址或譯碼輸出,以便為輸入寄存器確定地址。

2.單緩沖方式應(yīng)用舉例——產(chǎn)生鋸齒波在許多控制應(yīng)用中,要求有一個線性增長的電壓(鋸齒波)通過移動記錄筆或移動電子束等方式來控制檢測過程。對此可通過在DAC0832的輸出端接運(yùn)算放大器,由運(yùn)算放大器產(chǎn)生鋸齒波來實(shí)現(xiàn),電路連接如圖7.10所示。圖中的DAC8032工作于單緩沖方式,其中輸入寄存器受控,而DAC寄存器直通。假定P2.7接,則輸入寄存器地址為7FFFH,產(chǎn)生鋸齒波的源程序清單如下:

ORG

0000H

DASAW:MOV

DPTR,#7FFFH;輸入寄存器地址

MOV

A,#00H ;轉(zhuǎn)換初值

WW: MOVX@DPTR,A ;D/A轉(zhuǎn)換

INC

A

NOP ;延時

NOP

AJMPWW執(zhí)行上述程序后,在運(yùn)算放大器的輸出端就能得到如圖7.11所示的鋸齒波。圖7.11D/A轉(zhuǎn)換產(chǎn)生的鋸齒波對鋸齒波的產(chǎn)生作如下幾點(diǎn)說明:

(1)程序每循環(huán)一次,A加1,因此實(shí)際上鋸齒波的上升邊是由256個小階梯構(gòu)成的。但因?yàn)殡A梯很小,所以宏觀上看就如同圖7.11中所表示的線性增長鋸齒波一樣。

(2)可通過循環(huán)程序段的機(jī)器周期數(shù),計算出鋸齒波的周期。并可根據(jù)需要,通過延時的辦法來改變波形周期。當(dāng)延遲時間較短時,可用NOP指令來實(shí)現(xiàn)(本程序就是如此);當(dāng)需要延遲時間較長時,可以使用一個延時子程序。延遲時間不同,波形周期不同,鋸齒波的斜率就不同。

(3)通過A加1,可得到正向的鋸齒波。如要得到負(fù)向的鋸齒波,改為減1指令即可實(shí)現(xiàn)。

(4)程序中A的變化范圍是0~255,因此得到的鋸齒波是滿幅度的。如要求得到非滿幅鋸齒波,可通過計算求得數(shù)字量的初值和終值,然后在程序中通過置初值判終值的辦法即可實(shí)現(xiàn)。用同樣的方法也可以產(chǎn)生三角波、矩形波、梯形波,請讀者自行編寫程序。7.2.3DAC0832雙緩沖方式的接口與應(yīng)用

1.雙緩沖方式連接所謂雙緩沖方式,就是把DAC0832的兩個鎖存器都接成受控鎖存方式。雙緩沖DAC0832的連接如圖7.12所示。圖7.12DAC0832的雙緩沖方式連接為了實(shí)現(xiàn)寄存器的可控,應(yīng)當(dāng)給寄存器分配一個地址,以便能按地址進(jìn)行操作。圖7.12是采用地址譯碼輸出分別接和來實(shí)現(xiàn)的,然后再給和提供寫選通信號。這樣就完成了兩個鎖存器都可控的雙緩沖接口方式。由于兩個鎖存器分別占據(jù)兩個地址,因此在程序中需要使用兩條傳送指令,才能完成一個數(shù)字量的模擬轉(zhuǎn)換。假定輸入寄存器地址為FEH,DAC寄存器地址為FFH,則完成一次數(shù)/模轉(zhuǎn)換的程序段如下:

MOV R0,#0FEH ;裝入輸入寄存器地址

MOVX @R0,A ;轉(zhuǎn)換數(shù)據(jù)送輸入寄存器

INC R0 ;產(chǎn)生DAC寄存器地址

MOVX @R0,A ;數(shù)據(jù)通過DAC寄存器最后一條指令從表面上看來是把A中的數(shù)據(jù)送DAC寄存器,實(shí)際上這種數(shù)據(jù)傳送并不真正進(jìn)行,該指令只是起到打開DAC寄存器使輸入寄存器中數(shù)據(jù)通過的作用,數(shù)據(jù)通過后就去進(jìn)行D/A轉(zhuǎn)換。

2.雙緩沖方式應(yīng)用舉例雙緩沖方式用于多路D/A轉(zhuǎn)換系統(tǒng),可實(shí)現(xiàn)多路模擬信號同步輸出的目的。例如使用單片機(jī)控制X-Y繪圖儀。X-Y繪圖儀由X、Y兩個方向的步進(jìn)電機(jī)驅(qū)動,其中一個電機(jī)控制繪圖筆沿X方向運(yùn)動,另一個電機(jī)控制繪圖筆沿Y方向運(yùn)動,從而繪出圖形。因此對X-Y繪圖儀的控制有兩點(diǎn)基本要求:一是需要兩路D/A轉(zhuǎn)換器分別給X通道和Y通道提供模擬信號,二是兩路模擬量要同步輸出。兩路模擬量輸出是為了使繪圖筆能沿X-Y軸作平面運(yùn)動,而模擬量同步輸出則是為了使繪制的曲線光滑,否則繪制出的曲線就是臺階狀的,如圖7.13所示。圖7.13單片機(jī)控制X-Y繪圖儀(a)同步輸出;(b)先X后Y;(c)先Y后X為實(shí)現(xiàn)對X-Y繪圖儀的控制,要使用兩片DAC0832,并采用雙緩沖方式連接,如圖7.14所示。電路中以譯碼法產(chǎn)生地址,兩片DAC0832共占據(jù)3個單元地址,其中兩個輸入寄存器各占一個地址,而兩個DAC寄存器則合用一個地址。圖7.14控制X-Y繪圖儀的雙片DAC0832接口編程時,先用一條傳送指令把X坐標(biāo)數(shù)據(jù)送到X向轉(zhuǎn)換器的輸入寄存器,再用一條傳送指令把Y坐標(biāo)數(shù)據(jù)送到Y(jié)向轉(zhuǎn)換器的輸入寄存器,最后用一條傳送指令同時打開兩個轉(zhuǎn)換器的DAC寄存器,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,即可實(shí)現(xiàn)X、Y兩個方向坐標(biāo)量的同步輸出。假定X方向的0832輸入寄存器地址為F0H,Y方向的0832輸入寄存器地址為F1H,兩個DAC的寄存器公用地址為F2H。X坐標(biāo)數(shù)據(jù)存于DATA單元中,Y坐標(biāo)數(shù)據(jù)存于DATA+1單元中。繪圖儀的驅(qū)動程序?yàn)椋?/p>

MOV R1,#DATA ;X坐標(biāo)數(shù)據(jù)單元地址

MOV R0,#0F0H ;X向輸入寄存器地址

MOV A,@R1 ;X坐標(biāo)數(shù)據(jù)送A

MOVX @R0,A ;X坐標(biāo)數(shù)據(jù)送輸入寄存器

INC R1 ;指向Y坐標(biāo)數(shù)據(jù)單元地址

INC R0 ;指向Y向輸入寄存器地址

MOV A,@R1 ;Y坐標(biāo)數(shù)據(jù)送A

MOVX @R0,A ;Y坐標(biāo)數(shù)據(jù)送輸入寄存器

INC R0 ;指向兩個DAC寄存器地址

MOVX @R0,A ;X、Y轉(zhuǎn)換數(shù)據(jù)同步輸出本章小結(jié)

A/D和D/A轉(zhuǎn)換器是計算機(jī)與外界聯(lián)系的重要途徑,由于計算機(jī)只能處理數(shù)字信號,因此當(dāng)計算機(jī)系統(tǒng)中需要控制和處理溫度、速度、電壓、電流、壓力等模擬量時,就需要采用A/D和D/A轉(zhuǎn)換器。

A/D轉(zhuǎn)換器按轉(zhuǎn)換原理可分為計數(shù)式A/D轉(zhuǎn)換器,并行式A/D轉(zhuǎn)換器、雙積分式A/D轉(zhuǎn)換器和逐次逼近式A/D轉(zhuǎn)換器,后兩種較為常用。雙積分式A/D轉(zhuǎn)換器的轉(zhuǎn)換精度高、抗干擾性能好、價格便宜,但轉(zhuǎn)換速度慢,適用于速度要求不高的場合。逐次逼近式A/D轉(zhuǎn)換器的轉(zhuǎn)換速度快、精度高,使用較多。本章重點(diǎn)介紹了常用的A/D轉(zhuǎn)換芯片ADC0809與MCS-8051的接口電路,敘述了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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論