九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

教學(xué)PPT AT89S51匯編語言程序設(shè)計(7)

  • 資源ID:29911004       資源大?。?span id="24d9guoke414" class="font-tahoma">2.69MB        全文頁數(shù):100頁
  • 資源格式: PPT        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

教學(xué)PPT AT89S51匯編語言程序設(shè)計(7)

第第1111章章 AT89S51AT89S51單片機(jī)與單片機(jī)與D/AD/A、 A/D A/D 轉(zhuǎn)換器接口轉(zhuǎn)換器接口11.1 AT89S51單片機(jī)與單片機(jī)與DAC接口接口11.1.1 D/A轉(zhuǎn)換器簡介轉(zhuǎn)換器簡介1概述概述購買和使用D/A轉(zhuǎn)換器要注意幾個問題。(1)D/A轉(zhuǎn)換器輸出形式轉(zhuǎn)換器輸出形式 有兩種輸出形式兩種輸出形式。一種是電壓輸出電壓輸出,即給D/A轉(zhuǎn)換器輸入是數(shù)字量,而輸出為電壓。另一種是電流輸出電流輸出。對電流輸出D/A轉(zhuǎn)換器,如需要模擬電壓輸出,可在其輸出端加一個由運(yùn)算放大器構(gòu)成I-V轉(zhuǎn)換轉(zhuǎn)換電路,將電流輸出轉(zhuǎn)換為電壓輸出。(2)D/A轉(zhuǎn)換器與轉(zhuǎn)換器與單片機(jī)接口單片機(jī)接口形式形式單片機(jī)與D/A轉(zhuǎn)換器連接,早期多采用8位數(shù)字量并行傳輸并行接口,現(xiàn)在除并行接口外除并行接口外,帶有串行口串行口D/A轉(zhuǎn)換器品種也不斷增多轉(zhuǎn)換器品種也不斷增多。除了通用UART串行口串行口外,目前較為流行還有I2C串行口串行口和SPI串行口串行口等。所以在選擇單片D/A轉(zhuǎn)換器時,要考慮單片機(jī)與考慮單片機(jī)與D/A轉(zhuǎn)換器轉(zhuǎn)換器接口接口形式形式。2主要技術(shù)指標(biāo)主要技術(shù)指標(biāo)(1)分辨率)分辨率指單片機(jī)輸入給輸入給D/A轉(zhuǎn)換器轉(zhuǎn)換器單位數(shù)字量變化單位數(shù)字量變化,所引起,所引起模擬量輸出變模擬量輸出變化化,通常定義為定義為輸出滿刻度值與2n之比(n為D/A轉(zhuǎn)換器二進(jìn)制位數(shù))。習(xí)慣上用輸入數(shù)字量二進(jìn)制位數(shù)表示習(xí)慣上用輸入數(shù)字量二進(jìn)制位數(shù)表示。位數(shù)越多,分辨率越高,即D/A轉(zhuǎn)換器對輸入量變化敏感程度越高。例如,例如,8位D/A轉(zhuǎn)換器,若滿量程輸出為10V,根據(jù)分辨率定義,則則分辨率為分辨率為10V/2n,分辨率為,分辨率為:10V/256=39.1mV ,即輸入二進(jìn)制數(shù)最低位變化可引起輸出模擬電壓變化39.1mV,該值占滿量程0.391%,常用符號1LSB表示。同理:10位D/A轉(zhuǎn)換1 LSB = 9.77mV = 0.1%滿量程12位D/A轉(zhuǎn)換1 LSB = 2.44mV = 0.024%滿量程16位D/A轉(zhuǎn)換1 LSB = 0.076mV = 0.00076%滿量程使用時,應(yīng)根據(jù)對根據(jù)對D/A轉(zhuǎn)換器轉(zhuǎn)換器分辨率分辨率需要來選定選定D/A轉(zhuǎn)換器轉(zhuǎn)換器位數(shù)位數(shù)。(2)建立時間)建立時間 描述D/A轉(zhuǎn)換器轉(zhuǎn)換快慢轉(zhuǎn)換快慢一個參數(shù),用于表明轉(zhuǎn)換時間或轉(zhuǎn)換速表明轉(zhuǎn)換時間或轉(zhuǎn)換速度度。其值為從其值為從輸入數(shù)字量到輸出達(dá)到終值誤差輸入數(shù)字量到輸出達(dá)到終值誤差 (1/2)LSB時時所需時間所需時間。電流輸出電流輸出轉(zhuǎn)換時間較短較短,而電壓輸出電壓輸出轉(zhuǎn)換器,由于要加上完成I-V轉(zhuǎn)換運(yùn)算放大器延遲時間,因此轉(zhuǎn)換時間要長一些轉(zhuǎn)換時間要長一些。快速D/A轉(zhuǎn)換器轉(zhuǎn)換時間可控制在1s以下。(3)轉(zhuǎn)換精度)轉(zhuǎn)換精度理想情況下,轉(zhuǎn)換精度與分辨率基本一致,位數(shù)越多精度越高。但由于電源電壓、基準(zhǔn)電壓、電阻、制造工藝等各種因素存在著誤差。嚴(yán)格講,嚴(yán)格講,轉(zhuǎn)換轉(zhuǎn)換精度與分辨率并不完全一致精度與分辨率并不完全一致。只要位數(shù)相同,分位數(shù)相同,分辨率則相同,但相同辨率則相同,但相同位數(shù)不同位數(shù)不同轉(zhuǎn)換器轉(zhuǎn)換器轉(zhuǎn)換精度轉(zhuǎn)換精度會有所不同會有所不同。例如,例如,某種型號8位DAC精度為0.19%,而另一種型號8位DAC精度為0.05%。11.1.2 AT89S51與與8位位D/A轉(zhuǎn)換器轉(zhuǎn)換器0832接口設(shè)計接口設(shè)計1DAC0832芯片介紹芯片介紹(1)DAC0832特性特性美國國家半導(dǎo)體公司DAC0832芯片是具有兩個輸入數(shù)據(jù)寄存器8位DAC,它能直接與AT89S51單片機(jī)連接,主要特性如下主要特性如下。 分辨率為分辨率為8位。位。 電流輸出,建立時間為電流輸出,建立時間為1 s。 可雙緩沖輸入、單緩沖輸入或直接數(shù)字輸入??呻p緩沖輸入、單緩沖輸入或直接數(shù)字輸入。 單一電源供電(單一電源供電(+5V+15V)。)。 低功耗,低功耗,20mW。(2)DAC0832引腳引腳及邏輯結(jié)構(gòu)及邏輯結(jié)構(gòu)引腳引腳如圖圖11-1所示,DAC0832邏輯邏輯結(jié)構(gòu)結(jié)構(gòu)如圖圖11-2所示。圖圖11-1 DAC0832引腳圖引腳圖圖圖11-2 DAC0832邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)引腳功能:引腳功能:DI0DI7:8位數(shù)字信號輸入端,位數(shù)字信號輸入端,與單片機(jī)數(shù)據(jù)總線與單片機(jī)數(shù)據(jù)總線P0口相連口相連,用,用于接收單片機(jī)送來待轉(zhuǎn)換為模擬量數(shù)字量,于接收單片機(jī)送來待轉(zhuǎn)換為模擬量數(shù)字量,DI7為最高位。為最高位。 :片選端,當(dāng)片選端,當(dāng) 為低電平時,本芯片被選中。為低電平時,本芯片被選中。ILE :數(shù)據(jù)鎖存允許控制端,高電平有效。數(shù)據(jù)鎖存允許控制端,高電平有效。 :第一級輸入寄存器寫選通控制,低電平有效。當(dāng)?shù)谝患壿斎爰拇嫫鲗戇x通控制,低電平有效。當(dāng) =0,ILE=1, =0時,待轉(zhuǎn)換數(shù)據(jù)信號被鎖存到第一級時,待轉(zhuǎn)換數(shù)據(jù)信號被鎖存到第一級8位輸入位輸入寄存器中。寄存器中。 :數(shù)據(jù)傳送控制,低電平有效。 :DAC寄存器寫選通控制端,低電平有效。當(dāng) =0, =0時,輸入寄存器中待轉(zhuǎn)換數(shù)據(jù)傳入8位DAC寄存器中。IOUT1:D/A轉(zhuǎn)換器電流輸出1端,輸入數(shù)字量全為“1”時,IOUT1最大,輸入數(shù)字量全為“0”時,IOUT1最小。CSWR1CSWR1XFER2WR2WRXFERIOUT2:D/A轉(zhuǎn)換器電流輸出2端,IOUT2 + IOUT1 = 常數(shù)。Rfb:外部反饋信號輸入端,內(nèi)部已有反饋電阻Rfb,根據(jù)需要也可外接反饋電阻。VCC:電源輸入端,在+5V+15V范圍內(nèi)。DGND:數(shù)字信號地。AGND:模擬信號地,最好與基準(zhǔn)電壓共地?!?位輸入寄存器位輸入寄存器”用于存放單片機(jī)送來數(shù)字量,使輸入數(shù)字量得到緩沖和鎖存,由 加以控制; “8位位DAC寄存器寄存器”用于存放待轉(zhuǎn)換數(shù)字量,由 控制; “8位位D/A轉(zhuǎn)換電路轉(zhuǎn)換電路”受“8位DAC寄存器”輸出數(shù)字量控制,輸出和數(shù)字量成正比模擬電流。因此,需外接I-V轉(zhuǎn)換轉(zhuǎn)換運(yùn)算放大器電路,才能得到模擬輸出電壓模擬輸出電壓。LE12LE2AT89S51單片機(jī)與單片機(jī)與DAC0832接口電路設(shè)計接口電路設(shè)計設(shè)計接口電路時,常用單緩沖方式單緩沖方式或雙緩沖方式雙緩沖方式單極性輸出。(1)單緩沖方式)單緩沖方式 指DAC0832內(nèi)部兩個數(shù)據(jù)緩沖器兩個數(shù)據(jù)緩沖器有一個有一個處于處于直通直通方式方式,另一另一個個處于受AT89S51單片機(jī)控制鎖存方式鎖存方式。在實際應(yīng)用中,如果只有一路模擬量輸出,或雖是多路模擬量輸出但并不要求多路輸出同步情況下,可采用單緩沖方式。圖圖11-3所示是單極性模擬電壓輸出電路,由于DAC0832是8位(28=256)D/A轉(zhuǎn)換器,由基爾霍夫定律列出方程組可解得0832輸出電壓輸出電壓vo與輸入數(shù)字量輸入數(shù)字量B關(guān)系為REFo256VvB 圖圖11-3 單緩沖方式下單片機(jī)與單緩沖方式下單片機(jī)與DAC0832接口電路接口電路 輸出模擬輸出模擬電壓電壓vo和和輸入數(shù)字輸入數(shù)字量量B以及基準(zhǔn)電壓以及基準(zhǔn)電壓VREF成正比成正比,且B為0時,vo也為0,輸入數(shù)字量為255時,vo為最大絕對值輸出,且不會大于VREF。圖圖11-3中,中, 和和 接地,接地,故DAC0832“8位DAC寄存器” 工作于直通方式工作于直通方式?!?位輸入寄存器”受 和 端控制,而且 由譯碼器輸出端FEH送來。單片機(jī)執(zhí)行如下兩條指令就可在 和 上產(chǎn)生低電平信號,使DAC0832接收AT89S51送來數(shù)字量。MOVR0,#0FEH;DAC端口地址端口地址FEHR0MOVXR0,A ;單片機(jī)的;單片機(jī)的 WR和和譯碼器譯碼器FEH輸出端有效輸出端有效XFERWR2WR1CSWR1CS【例例11-1】DAC0832用作波形發(fā)生器波形發(fā)生器。根據(jù)圖11-3,分別寫出產(chǎn)生鋸齒波鋸齒波、三角波三角波和矩形波矩形波程序。在圖11-3中,運(yùn)算放大器A輸出端Vout直接反饋到Rfb,故這種接線產(chǎ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 LOOP 當(dāng)輸入數(shù)字量從輸入數(shù)字量從0開始,逐次加開始,逐次加1進(jìn)行進(jìn)行D/A轉(zhuǎn)換轉(zhuǎn)換,模擬量與其成正比輸出。當(dāng)A = FFH時,再加1則溢出清0,模擬輸出又為0,然后又重新重復(fù)上述過程,如此循環(huán),輸出波形就是鋸齒波。 實際上,每一上升斜邊要分成256個小臺階個小臺階,每個小臺階暫小臺階暫留時間留時間為執(zhí)行后三條指令所需要時間后三條指令所需要時間。因此 “INC A”指令后插入NOP指令或延時程序,則可改變鋸齒波頻率。圖圖11-4 DAC0832產(chǎn)生鋸齒波輸出產(chǎn)生鋸齒波輸出 三角波產(chǎn)生三角波產(chǎn)生 ORG 2000HSTART:MOV R0,#0FEH MOV A,#00HUP: MOVX R0,A ;產(chǎn)生三角波上升邊 INCA JNZUPDOWN:DECA ;A=0時減1為FFH, 產(chǎn)生三角波下降邊 MOVX R0,A JNZ DOWN SJMP UP輸出三輸出三角波角波如圖圖11-5所示所示。 圖圖11-5 DAC0832產(chǎn)生三產(chǎn)生三角波角波輸出輸出 矩形波產(chǎn)生矩形波產(chǎn)生 ORG2000HSTART: MOV R0,#0FEHLOOP:MOV A,#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)用低電平延時程序SJMP LOOP ;重復(fù)進(jìn)行下一個周期 輸出矩形波如矩形波如圖圖11-6所示所示。 DELAY1、DELAY2為兩個延時程序,分別決定輸出矩形波高、低電平時持續(xù)寬度。矩形波頻率也可用延時方法改變。 圖圖11-6 DAC0832產(chǎn)生矩形波輸出產(chǎn)生矩形波輸出(2)雙緩沖方式)雙緩沖方式多多路路D/A轉(zhuǎn)換轉(zhuǎn)換要求同步輸出同步輸出時,必須采用雙緩沖同步方式必須采用雙緩沖同步方式。此方式工作時,數(shù)字量輸入鎖存和D/A轉(zhuǎn)換輸出是分兩步分兩步完成。單片機(jī)必須通過 來鎖存待轉(zhuǎn)換數(shù)字量,通過 來啟動D/A轉(zhuǎn)換(見圖圖11-2)。因此,雙緩沖方式下,DAC0832應(yīng)該為單片機(jī)提供兩個I/O端口。LE2LE1 AT89S51單片機(jī)和DAC0832在雙緩沖方式雙緩沖方式下連接如圖圖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中DAC輸出模擬電壓模擬電壓Vx和和Vy來控制來控制X-Y繪圖儀繪圖儀,則應(yīng)把Vx和Vy分別加到X-Y繪圖儀X通道通道和Y通道通道,而X-Y繪圖儀由X、Y兩個方向步進(jìn)電機(jī)驅(qū)動,其中一個電機(jī)控制繪筆沿X方向運(yùn)動;另一個電機(jī)控制繪筆沿Y方向運(yùn)動。 因此對X-Y繪圖儀控制有一基本要求:就是兩路模擬信號要同步輸出同步輸出,使繪制曲線光滑。如果不同步輸出如果不同步輸出,例如先輸出X通道通道模擬電壓,再輸出Y通道通道模擬電壓,則繪圖筆先向X方向移動,再向Y方向移動,此時繪制曲線曲線就是階梯狀的就是階梯狀的。通過本例,也就不難理解DAC設(shè)置雙緩沖方式目的所在。CS19 圖11-7 單片機(jī)和兩片DAC0832雙緩沖方式接口電路【例例11-2】設(shè)AT89S51內(nèi)部內(nèi)部RAM中有兩個長度為中有兩個長度為20數(shù)據(jù)塊數(shù)據(jù)塊,其起起始地址始地址為分別為addr1和addr2,根據(jù)圖11-7,編寫能把a(bǔ)ddr1和addrr2中數(shù)據(jù)從1#和2#DAC0832同步輸出程序。程序中addr1和addr2中數(shù)據(jù),即為繪圖儀所繪制曲線x、y坐標(biāo)點。由圖11-7可知可知,DAC0832各端口地址各端口地址為為:FDH:1#DAC0832數(shù)字量輸入控制端口FEH:2#DAC0832數(shù)字量輸入控制端口FFH:1#和2#DAC0832啟動D/A轉(zhuǎn)換端口 首先使工作寄存器0區(qū)區(qū)R1指向指向addr1;1區(qū)區(qū)R1指向指向addr2;0區(qū)工作寄存器R2存放數(shù)據(jù)塊長度;0區(qū)和1區(qū)工作寄存器區(qū)R0指向DAC端口地址。程序如下: ORG2000Haddr1DATA 20H;定義存儲單元addr2 DATA 40H;定義存儲單元 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ù)送A MOVX R0,A;addr1中數(shù)據(jù)送1#DAC INCR1;修改addr1指針0區(qū)R1 SETBRS0;轉(zhuǎn)入1區(qū) MOVR0,#0FEH ;1區(qū)R0指向2#DAC0832數(shù)字量控制端口 MOVA,R1;addr2中數(shù)據(jù)送AMOVX R0,A ;addr2中數(shù)據(jù)送2#DAC0832 INCR1 ;修改addr2指針1區(qū)R1 INCR0 ;1區(qū)R0指向DAC啟動D/A轉(zhuǎn)換端口 MOVX R0,A ;啟動DAC進(jìn)行轉(zhuǎn)換 CLRRS0 ;返回0區(qū) DJNZR2,NEXT ;若未完, 則跳轉(zhuǎn)NEXT LJMPDTOUT ;若送完, 則循環(huán)3DAC0832雙極性電壓輸出雙極性電壓輸出在雙極性電壓輸出場合下,可以按照圖圖11-8所示接線。圖中,DAC0832數(shù)字量由單片機(jī)送來,A1和A2均為運(yùn)算放大器,vo通過2R電阻反饋到運(yùn)算放大器A2輸入端,G點為虛擬地,其他電路如圖11-8所示。由基爾霍夫定律列出的方程組可解得REFo(128)128VvB由上式知,當(dāng)單片機(jī)輸出單片機(jī)輸出給DAC0832數(shù)字量數(shù)字量B128時,即數(shù)字量最高位b7為1 ,輸出模擬電壓vo o為正為正;當(dāng)單片機(jī)輸出給DAC0832數(shù)字量B128時,即數(shù)字量最高位為0,則vo輸出電壓為負(fù)輸出電壓為負(fù)。 圖圖11-8 雙極性雙極性DAC接法接法11.1.3 AT89S51與與12位位D/A轉(zhuǎn)換器轉(zhuǎn)換器AD667接口設(shè)計接口設(shè)計8位分辨率不夠時位分辨率不夠時,可以采用高于8位分辨率DAC,例如,例如,10位、12位、14位、16位(例如AD669)DAC。AD667是一種分辨率分辨率為為12位位并行輸入、電壓輸出型并行輸入、電壓輸出型D/A轉(zhuǎn)換器轉(zhuǎn)換器,建立時間建立時間3 s。輸入輸入方式方式為雙緩沖輸入雙緩沖輸入;輸出方式輸出方式為電壓輸出電壓輸出,通過硬件編程可可輸出輸出+5V、+10V、 2.5V、 5V和和 10V;內(nèi)含高穩(wěn)定基準(zhǔn)電壓源,可方便地與4位、8位或16位微處理器接口;雙電源工作電壓為12V15V。1引腳引腳介紹介紹 圖圖11-9 AD667引腳圖引腳圖 AD667為28腳雙列直插式腳雙列直插式封裝,圖圖11-9所示為雙列直插式封裝引腳圖,表表11-1為其引腳說明。(1)內(nèi)部功能結(jié)構(gòu))內(nèi)部功能結(jié)構(gòu)圖圖11-10所示為AD667內(nèi)部功能結(jié)構(gòu)框圖。圖圖11-10 AD667內(nèi)部功能結(jié)構(gòu)框圖內(nèi)部功能結(jié)構(gòu)框圖(2)應(yīng)用特性)應(yīng)用特性 模擬電壓輸出范圍配置模擬電壓輸出范圍配置AD667通過片外引腳不同電路連接不同電路連接,可獲得不同輸出電壓量獲得不同輸出電壓量程范圍程范圍。單極性單極性工作時,可以獲得05V和和010V電壓。雙極性工作時,可獲得 2.5V、 5.0V和和 10V電壓。具體量程配置可由引腳1、2、3、9不同連接實現(xiàn),見表表11-2。由于AD667內(nèi)置量程電阻與其他元器件具有熱跟蹤性能,所以AD667增益增益和偏置漂移非常小偏置漂移非常小。 在電路運(yùn)行之前,為保證轉(zhuǎn)換精度,首先要進(jìn)行為保證轉(zhuǎn)換精度,首先要進(jì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)模擬輸出量。 單極性電壓輸出單極性電壓輸出圖圖11-11為010V單極性單極性電壓輸出電路原理圖。圖圖11-11 010V單極性電壓輸出電路原理圖單極性電壓輸出電路原理圖 雙極性電壓輸出雙極性電壓輸出圖圖11-12為-5V+5V雙極性電壓輸出雙極性電壓輸出電路。在電路運(yùn)行之前,為保證轉(zhuǎn)換精度,首先要進(jì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)模擬輸出量。 內(nèi)部內(nèi)部/外部基準(zhǔn)電壓源使用外部基準(zhǔn)電壓源使用AD667有內(nèi)置低噪聲基準(zhǔn)電源內(nèi)置低噪聲基準(zhǔn)電源,其絕對精度和溫度系數(shù)都是通過激光修正,具有長期穩(wěn)定性。片內(nèi)基準(zhǔn)電源片內(nèi)基準(zhǔn)電源可提供片內(nèi)D/A轉(zhuǎn)換器所需基準(zhǔn)電流,還可通過緩沖電路驅(qū)動外部電路,一般可向外部負(fù)載提供0.1mA驅(qū)動電流。圖圖11-12 5V雙極性電壓輸出電路原理圖雙極性電壓輸出電路原理圖 接地與動態(tài)電容接法接地與動態(tài)電容接法AD667把模擬地模擬地AGND與電源地與電源地PGND分開分開,可以減少器件低頻噪聲和增強(qiáng)高速性能。把地回路分開目的是為了盡量減少低電平信號路徑中電流。AGND是輸出放大器地端,應(yīng)與系統(tǒng)中模擬輸出電壓基準(zhǔn)地直接相連,任何由輸出放大器驅(qū)動負(fù)載都應(yīng)該接在模擬地引腳上。電源地電源地PGND可以與模擬電源接地點就近連接。最后AGND與PGND在一點上進(jìn)行連接,一般連接到電源地PGND上。另外,AD667電源引腳到模擬地引腳間電源引腳到模擬地引腳間應(yīng)加上適當(dāng)去耦電容去耦電容。在輸出放大器反饋電阻兩端加一個20pF小電容,可以明顯改善輸出放大器動態(tài)性能。 數(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ù)傳入第二級DAC鎖存器,這種雙緩沖結(jié)構(gòu)可以避免產(chǎn)生錯誤模擬輸出。 4個鎖存器個鎖存器由4個地址輸入個地址輸入A0A3和 控制,所有控制都是低電平有效,對應(yīng)關(guān)系見表表11-3。 所有所有鎖存器都是鎖存器都是電平觸發(fā)電平觸發(fā),也就是說,當(dāng)對應(yīng)控制信號都有效時,鎖存器輸出跟蹤輸入數(shù)據(jù);當(dāng)任何一個控制信號無效時,數(shù)據(jù)就被鎖存。它允許一個以上鎖存器被同時鎖存。CS建議建議任何未使用數(shù)據(jù)和控制引腳任何未使用數(shù)據(jù)和控制引腳最好與電源地相連,以改善抗噪聲干擾特性。AD667使用正邏輯二進(jìn)制輸入編碼,大于大于2.0V輸入電壓表示邏輯“1”,而小于小于0.8V輸入電壓表示邏輯“0”。 單極性輸出時單極性輸出時,輸入編碼采用直接二進(jìn)制編碼,全全“0”數(shù)數(shù)據(jù)輸入據(jù)輸入000H產(chǎn)生零模擬輸出;全全“1”數(shù)據(jù)輸入數(shù)據(jù)輸入FFFH產(chǎn)生比滿量程少1LSB模擬輸出。雙極性輸出時雙極性輸出時,輸入編碼采用偏移二進(jìn)制編碼,數(shù)據(jù)輸入為000H時,產(chǎn)生負(fù)滿量程輸出;數(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)系為:式中,VR為輸出電壓量程。 與單片機(jī)接口數(shù)據(jù)格式與單片機(jī)接口數(shù)據(jù)格式AD667與單片機(jī)接口數(shù)據(jù)格式為左對齊左對齊或右對齊右對齊數(shù)據(jù)格式。左對齊左對齊數(shù)據(jù)格式為:右對齊右對齊數(shù)據(jù)格式為:OUTR1112NVV圖圖11-13 雙極性輸出與輸入關(guān)系雙極性輸出與輸入關(guān)系2AD667與與AT89S51單片機(jī)接口單片機(jī)接口 圖圖11-14 AD667與與AT89S51單片機(jī)接口電路單片機(jī)接口電路 單片機(jī)把AD667所占所占3個端口個端口地址視為外部數(shù)據(jù)存儲器視為外部數(shù)據(jù)存儲器3個單個單元元,對其進(jìn)行選通,完成對AD667數(shù)據(jù)傳送鎖存及轉(zhuǎn)換功能。假定低低8位數(shù)據(jù)位數(shù)據(jù)存20H單元,高高4位位數(shù)據(jù)存21H低4位,D/A轉(zhuǎn)換程序程序如下如下:MOVA,20HMOVDPTR,#7FFEHMOVX DPTR,A ;低8位進(jìn)第一級鎖存器MOVA,21HMOVDPTR,#7FFDHMOVX DPTR,A ;高4位進(jìn)第一級鎖存器MOVDPTR,#7FFBHMOVX DPTR,A ;啟動第二級鎖存器RET11.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)由12位位串行輸入并行輸出移位寄存器串行輸入并行輸出移位寄存器(寄存器A)和12位位DAC輸入寄存器輸入寄存器(寄存器B)組成。在選通信號前沿或后沿(可選擇)定時把SRI引腳上串行數(shù)據(jù)裝入寄存器A,一旦寄存器A裝滿,在加載脈沖控制下,寄存器A數(shù)據(jù)便裝入寄存器B中。AD7543引腳如圖圖11-16所示所示,功能如下:OUT1:AD7543電流輸出引腳1。OUT2:AD7543電流輸出引腳2。AGND:模擬地。圖圖11-15 AD7543片內(nèi)結(jié)構(gòu)片內(nèi)結(jié)構(gòu)STB1:寄存器A選通控制信號。 :寄存器B加載1輸入。當(dāng) 和 為低電平時,寄存器A內(nèi)容送到寄存器B。 SRI:單片機(jī)輸入到寄存器A串行數(shù)據(jù)輸入引腳。 :寄存器B加載2輸入。 :寄存器A選通3輸入。STB4:寄存器A選通4輸入。DGND:數(shù)字地。 :寄存器B清除輸入,用于異步地將寄存器B復(fù)位至000H。VDD:+5V電源。VREF:基準(zhǔn)電壓輸入。Rfb:DAC反饋輸入引腳。LD1LD2LD1LD2CLRSTB3圖圖11-16 AD7543引腳引腳2. AD7543與與AT89S51接口接口接口電路如圖圖11-17所示,圖中只給出與D/A轉(zhuǎn)換有關(guān)電路。圖圖11-17 AD7543與與AT89S51接口電路接口電路圖圖11-17中單片機(jī)串行口直接與單片機(jī)串行口直接與AD7543相連相連,串行口選用方方式式0,其TXD端移位脈沖負(fù)跳變端移位脈沖負(fù)跳變將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是低至高是低至高逐位串行輸出的,因此在數(shù)據(jù)傳輸?shù)紸D7543之前必須重新裝配。下面是單片機(jī)驅(qū)動程序單片機(jī)驅(qū)動程序,假設(shè)AD7543端口地址為“addrH”,數(shù)據(jù)緩沖器單元地址為dbufh(高4位)和dbufl(低8位)。OUTDA:MOV A,#dbufh;取高4位數(shù)據(jù)ACALL ASMB;調(diào)用裝配子程序MOVSBUF,A;串行口輸出MOV A,#dbufl;取低8位數(shù)據(jù)ACALLASMB;調(diào)用裝配子程序MOVSBUF,A;串行口輸出MOVDPTR,#addrH;AD7543端口地址送數(shù)據(jù)指針MOVXDPTR,A ;將AD7543寄存器A送寄存器BRETASMB:MOVR6,#00H;裝配子程序MOVR7,#08HCLRCAL0:RLCAXCHA,R6RRCAXCHA,R6DJNZR7,AL0XCHA,R6RET11.2 AT89S51單片機(jī)與單片機(jī)與ADC接口接口11.2.1 A/D轉(zhuǎn)換器簡介轉(zhuǎn)換器簡介1A/D轉(zhuǎn)換器概述轉(zhuǎn)換器概述目前部分單片機(jī)片內(nèi)集成了部分單片機(jī)片內(nèi)集成了A/D轉(zhuǎn)換器轉(zhuǎn)換器,在片內(nèi)A/D轉(zhuǎn)換器不能滿足需要,還是需外擴(kuò)。另外作為擴(kuò)展A/D轉(zhuǎn)換器基本方法,讀者還是應(yīng)當(dāng)掌握。盡管A/D轉(zhuǎn)換器種類很多種類很多,但目前廣泛應(yīng)用在單片機(jī)應(yīng)用系統(tǒng)中的主要有逐次比較型轉(zhuǎn)換器逐次比較型轉(zhuǎn)換器和雙積分型轉(zhuǎn)換器雙積分型轉(zhuǎn)換器,此外 -式式轉(zhuǎn)換器轉(zhuǎn)換器逐漸得到重視和較為廣泛應(yīng)用。 逐次比較型逐次比較型A/D轉(zhuǎn)換器轉(zhuǎn)換器,在精度、速度和價格上都適中,是最常用最常用A/D轉(zhuǎn)換器轉(zhuǎn)換器。雙積分型雙積分型A/D轉(zhuǎn)換器轉(zhuǎn)換器,具有精度高、抗干擾性好、價格低廉等優(yōu)點,與逐次比較型A/D轉(zhuǎn)換器相比,轉(zhuǎn)換速度較慢,近年來在單片機(jī)應(yīng)用領(lǐng)域中也得到廣泛應(yīng)用得到廣泛應(yīng)用。 - 式式ADC具有積分式與逐次比較型ADC雙重優(yōu)點。它對工業(yè)現(xiàn)場串模干擾具有較強(qiáng)抑制能力,不亞于雙積分ADC,它比雙積分ADC有較高轉(zhuǎn)換速度,與逐次比較型ADC相比,有較高信噪比,分辨率高,線性度好,不需要采樣保持電路。由于上述優(yōu)點,式ADC得到了重視,已有多種已有多種 式式A/D芯片可供用戶選用芯片可供用戶選用。 A/D轉(zhuǎn)換器按照輸出數(shù)字量有效位數(shù)分為按照輸出數(shù)字量有效位數(shù)分為4位、位、8位、位、10位、位、12位、位、14位、位、16位并行輸出位并行輸出以及BCD碼輸出碼輸出 3位半、位半、4位半、位半、5位位半半等多種。目前,除并行輸出A/D轉(zhuǎn)換器外,隨著單片機(jī)串行擴(kuò)展方式的日益增多,帶有帶有同步同步SPI串行接口串行接口A/D轉(zhuǎn)換器使用也逐漸增多轉(zhuǎn)換器使用也逐漸增多。串行輸出A/D轉(zhuǎn)換器具有占用端口線少、使用方便、接口簡單占用端口線少、使用方便、接口簡單等優(yōu)點,因此,讀者要給予足夠重視。較為典型串行較為典型串行A/D轉(zhuǎn)換器為美國轉(zhuǎn)換器為美國TI公司公司TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)。 單片機(jī)與串行A/D轉(zhuǎn)換器接口設(shè)計,涉及同步串行口SPI內(nèi)容,本章不做介紹,感興趣讀者,請見第12章。本章僅介紹單片機(jī)與各種并行單片機(jī)與各種并行輸出輸出A/D轉(zhuǎn)換器轉(zhuǎn)換器接口設(shè)計。A/D轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為超高速超高速(轉(zhuǎn)換時間1ns)、高高速速(轉(zhuǎn)換時間1s)、中速中速(轉(zhuǎn)換時間1ms)、低速低速(轉(zhuǎn)換時間1s)等幾種不同轉(zhuǎn)換速度芯片。為適應(yīng)系統(tǒng)為適應(yīng)系統(tǒng)集成需要集成需要,有些轉(zhuǎn)換器還將,有些轉(zhuǎn)換器還將多多路轉(zhuǎn)換開關(guān)、時鐘電路、基準(zhǔn)電壓源、路轉(zhuǎn)換開關(guān)、時鐘電路、基準(zhǔn)電壓源、二十進(jìn)制譯碼器進(jìn)制譯碼器和和轉(zhuǎn)換電路轉(zhuǎn)換電路集集成在一個芯片內(nèi)成在一個芯片內(nèi),為用戶提供很多方便。2A/D轉(zhuǎn)換器主要技術(shù)指標(biāo)轉(zhuǎn)換器主要技術(shù)指標(biāo)(1)轉(zhuǎn)換時間和轉(zhuǎn)換速率)轉(zhuǎn)換時間和轉(zhuǎn)換速率A/D完成一次轉(zhuǎn)換所需要時間所需要時間。轉(zhuǎn)換時間倒數(shù)為轉(zhuǎn)換速率。(2)分辨率)分辨率在A/D轉(zhuǎn)換器中,分辨率是衡量A/D轉(zhuǎn)換器能夠分辨出輸入模擬量能夠分辨出輸入模擬量最小變化程度技術(shù)指標(biāo)最小變化程度技術(shù)指標(biāo)。分辨率取決于A/D轉(zhuǎn)換器轉(zhuǎn)換器位數(shù)位數(shù),習(xí)慣上用輸出二進(jìn)制位數(shù)或BCD碼位數(shù)表示。例如,例如,A/D轉(zhuǎn)換器AD1674滿量程輸入電壓為5V,輸出12位二進(jìn)制數(shù),即用212個數(shù)進(jìn)行量化,其分辨率分辨率為為1LSB,也即5V/212=1.22mV,其分辨率為分辨率為12位位,或A/D轉(zhuǎn)換器能分辨出輸入電分辨出輸入電壓壓1.22mV變化。又如,雙積分型輸出BCD 碼A/D轉(zhuǎn)換器MC14433,其滿量程輸入電壓為2V,其輸出最大十進(jìn)制數(shù)為1999,分辨率為三位半三位半(BCD 碼),碼),如果換算成二進(jìn)制位數(shù)表示,其分辨率約為分辨率約為11位位,因為1999最接近于211=2048。 量化過程引起的誤差稱為量化誤差量化誤差。是由于有限位數(shù)字量對有限位數(shù)字量對模擬量進(jìn)行量化模擬量進(jìn)行量化而引起誤差。理論上規(guī)定為一個單位分辨率-1/2+1/2LSB ,提高A/D位數(shù)既可以提高分辨率,又能夠減少量化誤差。(3)轉(zhuǎn)換精度)轉(zhuǎn)換精度A/D轉(zhuǎn)換器轉(zhuǎn)換精度定義為一個實際A/D轉(zhuǎn)換器與一個理想A/D轉(zhuǎn)換器在量化值上差值,可用絕對誤差或相對誤差表示。11.2.2 AT89S51與逐次比較型與逐次比較型8位位A/D轉(zhuǎn)換器轉(zhuǎn)換器ADC0809接口接口1ADC0809引腳及功能引腳及功能逐次比較型8路模擬輸入、8位數(shù)字量輸出A/D轉(zhuǎn)換器,其引腳如圖圖11-18所示所示。圖圖11-18 ADC0809引腳圖引腳圖 圖圖11-19 ADC0809結(jié)構(gòu)框圖結(jié)構(gòu)框圖共共28引腳,雙列直插式封裝引腳,雙列直插式封裝。引腳功能如下:n IN0IN7:8路模擬信號輸入端。n D0D7:轉(zhuǎn)換完畢8位數(shù)字量輸出端。n A、B、C與與ALE:控制8路模擬輸入通道切換。A、B、C分別與單片機(jī)的三條地址線相連,三位編碼對應(yīng)三位編碼對應(yīng)8個通道地址端口個通道地址端口。C、B、A = 000111分別對應(yīng)IN0IN7通道地址。各路模擬輸入之間切換由軟件改變C、B、A引腳編碼來實現(xiàn)。n OE、START、CLK:OE為輸出允許端,START為啟動信號輸入端,CLK為時鐘信號輸入端。n VR(+)、)、VR():):基準(zhǔn)電壓輸入端。2ADC0809結(jié)構(gòu)及轉(zhuǎn)換原理結(jié)構(gòu)及轉(zhuǎn)換原理 結(jié)構(gòu)如圖圖11-19所示所示。采用逐次比較法完成A/D轉(zhuǎn)換,單一+5V電源供電。片內(nèi)帶有鎖存功能8選1模擬開關(guān),由C、B、A編編碼碼來決定所選通道所選通道。完成一次轉(zhuǎn)換需100 s左右左右(轉(zhuǎn)換時間與CLK腳時鐘頻率有關(guān)),具有輸出TTL三態(tài)鎖存緩沖器,可直接連到單片機(jī)數(shù)據(jù)總線上。通過適當(dāng)外接電路,ADC0809可對05V模擬信號進(jìn)行轉(zhuǎn)換。3AT89S51單片機(jī)與單片機(jī)與ADC0809接口接口控制ADC0809過程如下:先用指令選擇先用指令選擇ADC0809一個模擬輸一個模擬輸入通道入通道,當(dāng)執(zhí)行“MOVX DPTR,A”時,單片機(jī) 信號有效信號有效,從而產(chǎn)生一個啟動脈沖啟動脈沖。信號給ADC0809的START腳,開始對選對選中通道轉(zhuǎn)換中通道轉(zhuǎn)換。當(dāng)轉(zhuǎn)換結(jié)束后轉(zhuǎn)換結(jié)束后,ADC0809發(fā)出轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束EOC(高電(高電平)信號平)信號,該信號可供單片機(jī)查詢,也可反相后作為向單片機(jī)發(fā)出中斷請求信號。WR當(dāng)執(zhí)行指令執(zhí)行指令“MOVX A,DPTR”時,單片機(jī)發(fā)出讀控制 信號,通過邏輯電路控制OE端為高電平,把轉(zhuǎn)換完畢數(shù)字量讀入轉(zhuǎn)換完畢數(shù)字量讀入到單片機(jī)累加器到單片機(jī)累加器A中。中。 單片機(jī)讀取ADC轉(zhuǎn)換結(jié)果時,可采用查詢查詢和中斷控制中斷控制兩種方式。 查詢方式查詢方式是在單片機(jī)把啟動信號送到ADC之后,執(zhí)行其他程序,同時對ADC0809的EOC腳不斷進(jìn)行檢測,以查詢ADC變換是否已經(jīng)結(jié)束,如查詢到變換已經(jīng)結(jié)束,則讀入轉(zhuǎn)換完畢數(shù)據(jù)。 中斷中斷控制方式控制方式是在啟動信號送到ADC之后,單片機(jī)執(zhí)行其他程序。ADC0809轉(zhuǎn)換結(jié)束并向單片機(jī)發(fā)出中斷請求信號時,單片機(jī)響應(yīng)此中斷請求,進(jìn)入中斷服務(wù)程序,讀入轉(zhuǎn)換完畢數(shù)據(jù)。中斷控制方式效率高,所以特別適合于轉(zhuǎn)換時間較長ADC。RD圖圖11-20 ADC0809與與AT89S51查詢式接口查詢式接口圖圖11-20所示所示基準(zhǔn)電壓基準(zhǔn)電壓是提供給A/D轉(zhuǎn)換器在轉(zhuǎn)換時所需要基準(zhǔn)電壓,這是保證轉(zhuǎn)換精度基本條件。基準(zhǔn)電壓要單獨用高精度基準(zhǔn)電壓要單獨用高精度穩(wěn)壓電源供給穩(wěn)壓電源供給,其電壓變化要小于電壓變化要小于1LSB。否則當(dāng)被變換輸入電壓不變,而基準(zhǔn)電壓變化大于1LSB,也會引起A/D轉(zhuǎn)換器輸出數(shù)字量變化。由于ADC0809片內(nèi)無時鐘,可利用單片機(jī)提供地址鎖存允許信號ALE經(jīng)經(jīng)D觸發(fā)器二分頻后獲得觸發(fā)器二分頻后獲得,ALE引腳頻率是AT89S51單片機(jī)時鐘頻率1/6(但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將少一個ALE脈沖)。如果單片機(jī)時鐘頻率采用6MHz,則ALE引腳輸出頻率為1MHz,再二分頻后為二分頻后為500kHz,符合ADC0809對時鐘頻率要求。當(dāng)然,也可采用獨立時鐘源輸出獨立時鐘源輸出,直接加到ADC的CLK腳。 由于ADC0809具有輸出三態(tài)鎖存器,其8位數(shù)據(jù)輸出引腳D0D7可直接與單片機(jī)P0口相連。地址譯碼引腳C、B、A分別與地址總線低三位A2、A1、A0相連,以選通IN0IN7中一個通道。 在啟動啟動A/D轉(zhuǎn)換轉(zhuǎn)換時,由單片機(jī)寫信號 和P2.7控制ADC地址鎖存和轉(zhuǎn)換啟動,由于由于ALE和和START連在一起連在一起,因此ADC0809在鎖存通道地址同時,啟動并進(jìn)行轉(zhuǎn)換。在讀取轉(zhuǎn)換結(jié)果在讀取轉(zhuǎn)換結(jié)果時,用低電平讀信號 和P2.7引腳經(jīng)一級“或非門”后產(chǎn)生正脈沖作為OE信號,用來打開三態(tài)輸出鎖存器。下面程序是采用軟件延時采用軟件延時方式,分別對分別對8路模擬信號輪流采路模擬信號輪流采樣一次樣一次,并依次把結(jié)果轉(zhuǎn)儲到數(shù)據(jù)存儲區(qū)轉(zhuǎn)換程序。WRMAIN: 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ù)(2)中斷方式)中斷方式ADC0809與AT89S51單片機(jī)中斷方式接口電路只需要將將圖圖11-20所示所示EOC引腳經(jīng)過一引腳經(jīng)過一“反門反門”連接到連接到AT89S51單片機(jī)外中斷輸單片機(jī)外中斷輸入引腳入引腳 即可。采用中斷方式可大大節(jié)省單片機(jī)時間。當(dāng)轉(zhuǎn)換結(jié)束時,發(fā)出轉(zhuǎn)換結(jié)束時,發(fā)出EOC脈沖脈沖向單片機(jī)提出中斷申請?zhí)岢鲋袛嗌暾垼瑔纹瑱C(jī)響應(yīng)中斷請求,由外部外部中斷中斷1中斷服務(wù)程序讀中斷服務(wù)程序讀A/D結(jié)果結(jié)果,并啟動ADC0809下一次轉(zhuǎn)換,外外部中斷部中斷1采用跳沿觸發(fā)跳沿觸發(fā)方式。參考程序:參考程序:INIT1:SETB IT1 ;選擇外部中斷1為跳沿觸發(fā)方式SETB EA ;總中斷允許SETB EX1 ;允許外部中斷1中斷MOV DPTR,#7FF8H ;端口地址送DPTRMOVA,#00H MOVX DPTR,A ;啟動ADC0809對IN0通道轉(zhuǎn)換 ;完成其他工作中斷服務(wù)程序:中斷服務(wù)程序: PINT1: MOVDPTR,#7FF8H ;讀取結(jié)果送內(nèi)部RAM30HMOVX A,DPTR MOV30H,AMOVA,#00H ;啟動ADC0809對IN0轉(zhuǎn)換MOVX DPTR,ARETI11.2.3 AT89S51與逐次比較型與逐次比較型12位位A/D轉(zhuǎn)換器轉(zhuǎn)換器AD1674接口接口1AD1674簡介簡介美國AD公司12位逐次比較型位逐次比較型A/D轉(zhuǎn)換器轉(zhuǎn)換器。轉(zhuǎn)換時間轉(zhuǎn)換時間10 s,單通道最大采集速率最大采集速率100kHz。為28引腳雙列直插式封裝引腳雙列直插式封裝,其引腳如圖圖11-21所示所示。 由于芯片內(nèi)有三態(tài)輸出緩沖電路,因而可直接與各種典型8位或16位單片機(jī)相連,AD1674片內(nèi)集成有高精度基準(zhǔn)電壓源和時鐘電路,從而使該芯片在不需要任何外加電路和時鐘信號情況下完成A/D轉(zhuǎn)換,使用非常方便。AD1674是AD574A/674A更新?lián)Q代產(chǎn)品。它們內(nèi)部結(jié)構(gòu)和外部應(yīng)用特性基本相同,引腳功能與AD574A/674A完全兼容,可以直接替換AD574、AD674使用,但最大轉(zhuǎn)換時間由25s提高到10s。63 圖圖11-21 AD1674引腳引腳AD1674共有6個控制引腳個控制引腳,功能如下。 :芯片選擇。 =0時,芯片被選中。CE:片啟動信號。當(dāng)CE=1時,是啟動轉(zhuǎn)換還是讀取結(jié)果與R/ 有關(guān),見表表11-4。R/ :讀出/轉(zhuǎn)換控制信號。12/ :數(shù)據(jù)輸出格式選擇信號引腳。 當(dāng)12/ =1時,12條數(shù)據(jù)線并行輸出轉(zhuǎn)換結(jié)果;當(dāng)12/ =0 時,與A0配合,轉(zhuǎn)換結(jié)果分兩次輸出,即只有高8位或低4位有效。注意:注意:12/ 端與TTL電平不兼容,故只能直接接至+5V或0V上。A0:字節(jié)選擇控制。在轉(zhuǎn)換期間在轉(zhuǎn)換期間:當(dāng)A0=0時,AD1674進(jìn)行全12位轉(zhuǎn)換。當(dāng)A0=1時,僅進(jìn)行8位轉(zhuǎn)換。CSCSCC8888在讀出期間在讀出期間,與12/ =0配合:當(dāng)A0=0時,高8位數(shù)據(jù)有效;當(dāng)A0=1時,低4位數(shù)據(jù)有效,中間4位為0,高4位為高阻態(tài)。當(dāng)采用兩次讀出采用兩次讀出12位數(shù)據(jù)位數(shù)據(jù)遵循左對齊左對齊格式,如下所示:STS:輸出狀態(tài)信號引腳。 轉(zhuǎn)換開始時轉(zhuǎn)換開始時,STS為高電平,轉(zhuǎn)換過程中轉(zhuǎn)換過程中保持高電平。 轉(zhuǎn)換完成時轉(zhuǎn)換完成時,為低電平。STS可以作為狀態(tài)信息被CPU查詢,也可用它下跳沿向單片機(jī)發(fā)出中斷申請,通知單片機(jī)A/D轉(zhuǎn)換已完成,可讀取轉(zhuǎn)換結(jié)果。8除上述6個控制引腳外,其他引腳功能如下:REFOUT:+10V基準(zhǔn)電壓輸出。REFIN:基準(zhǔn)電壓輸入。只有由此腳把從“REFOUT”腳輸出基準(zhǔn)電壓引入到AD1674內(nèi)部12位DAC,才能進(jìn)行正常A/D轉(zhuǎn)換。BIPOFF:雙極性補(bǔ)償。對此引腳進(jìn)行適當(dāng)連接,可實現(xiàn)單極性或雙極性輸入。10VIN:10V或5+5V模擬信號輸入端。20VIN:20V或10+10V模擬信號輸入端。DGND:數(shù)字地。各數(shù)字電路器件及“+5V”電源地。AGND:模擬地。各模擬電路器件及“+15V”、“15V”電源地。VCC:正電源端,為+12+15V。VEE:負(fù)電源端,為1215V。2AD1674工作特性工作特性AD1674工作狀態(tài)由5個控制信號個控制信號CE、 、R/ 、12/ 、A0決定,見表表11-4。當(dāng)CE=1, = 0時,AD1674處于工作狀態(tài)處于工作狀態(tài)。當(dāng)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)換方式工作; CSC8CSCC8A0=1啟動轉(zhuǎn)換,則按8位A/D轉(zhuǎn)換方式工作。當(dāng)當(dāng)AD1674處于數(shù)據(jù)讀出工作狀態(tài)處于數(shù)據(jù)讀出工作狀態(tài)(R/ = 1)時,A0和12/ 成為數(shù)據(jù)輸出格式控制端。12/ =1時,對應(yīng)12位并行輸出;12/ =0時,則對應(yīng)8位雙字節(jié)輸出。其中A0=0時輸出高8位, A0 = 1時輸出低4位,并以4個0補(bǔ)足尾隨4位。注意注意,A0在轉(zhuǎn)換結(jié)果數(shù)據(jù)輸出期間不能變化。如要求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ìn)行。經(jīng)過一個轉(zhuǎn)換周期后,STS跳回低電平,表示A/D轉(zhuǎn)換完畢,可讀取新轉(zhuǎn)換數(shù)據(jù)。C8888CCC3AD1674單極性和雙極性輸入電路單極性和雙極性輸入電路通過改變AD1674引腳8、10、12外接電路,可使AD1674實現(xiàn)單極性輸入和雙極性輸入模擬信號轉(zhuǎn)換。(1)單極性輸入電路)單極性輸入電路圖圖11-22(a)為單極性輸入電路,可實現(xiàn)輸入信號010V或020V轉(zhuǎn)換。當(dāng)輸入信號為輸入信號為010V時,應(yīng)從10VIN引腳輸入(引腳13);輸入信號為輸入信號為020V時,應(yīng)從20VIN引腳輸入(引腳14)。輸出轉(zhuǎn)換結(jié)果D計算公式計算公式為: D=4096VIN / VFS或或VIN= DVFS /4096式中VIN為模擬輸入電壓,VFS為滿量程電壓。若從若從10VIN腳輸入腳輸入,VFS=10V,LSB=10/409624mV;若從若從20VIN腳輸入腳輸入;VFS=20V,1LSB=20/409649mV。71圖圖11-22 AD1674模擬輸入電路外部接法模擬輸入電路外部接法圖中電位器RP2用于調(diào)零,即當(dāng)VIN=0時,輸出數(shù)字量D為全0。單片機(jī)系統(tǒng)模擬信號地線應(yīng)與9腳AGND相連,使其地線接觸電阻盡可能小。(2)雙極性輸入電路)雙極性輸入電路圖圖11-22(b)為雙極性轉(zhuǎn)換電路雙極性轉(zhuǎn)換電路,可實現(xiàn)輸入信號10+10V或0+20V轉(zhuǎn)換。圖中電位器RP1用于調(diào)零。雙極性輸入時,輸出轉(zhuǎn)換結(jié)果D與模擬輸入電壓VIN之間關(guān)系為: D=2048(1+VIN / VFS) 或或VIN=(D / 20481)VFS /2式中VFS為滿量程電壓。上式求出D為12位偏移二進(jìn)制碼,把D最高位求反便得到補(bǔ)碼。補(bǔ)碼對應(yīng)輸入模擬量符號和大小。同樣,從AD1674讀出的或代入到上式中數(shù)字量D也是偏移二進(jìn)制碼。例如,例如,當(dāng)模擬信號從10VIN引腳輸入,則VFS= 10V,若讀得D=FFFH,即111111111111B=4095,代入式中,可求得VIN=4.9976V。4AT89S51單片機(jī)與單片機(jī)與AD1674接口接口圖圖11-23所示AD1674與與AT89S51單片機(jī)接口電路單片機(jī)接口電路。由于AD1674片內(nèi)含有高精度基準(zhǔn)電壓源和時鐘電路,從而使AD1674無需任何外加電路和時鐘信號的情況下即可完成A/D轉(zhuǎn)換。電路采用雙極性輸入接法采用雙極性輸入接法,可對5V+5V或10V+10V模擬信號進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換結(jié)果高轉(zhuǎn)換結(jié)果高8位位從DB11DB4輸出,低低4位位從DB3DB0輸出,即A0=0時,讀取結(jié)果高8位;當(dāng)A0=1時,讀取結(jié)果低4位。若遵循左對齊若遵循左對齊原則,DB3DB0應(yīng)接單片機(jī)P0.7P0.4。圖圖11-23 AD1674與與AT89S51單片機(jī)接口電路單片機(jī)接口電路STS引腳引腳接單片機(jī)接單片機(jī)P1.0引腳引腳,采用查詢方式讀取轉(zhuǎn)換結(jié)果。當(dāng)單片機(jī)執(zhí)行對外部數(shù)據(jù)存儲器寫指令,使CE=1, =0,R/ =0,A0=0時,啟動A/D轉(zhuǎn)換。當(dāng)單片機(jī)查詢到P1.0引腳為低電平時,轉(zhuǎn)換結(jié)束,單片機(jī)使CE=1, = 0, R/ =1,A0=0,讀取結(jié)果高8位;CE=1, = 0, R/ =1,A0=1,讀取結(jié)果低4位。該接口電路完成一次該接口電路完成一次A/D轉(zhuǎn)換查詢方式的程序如下轉(zhuǎn)換查詢方式的程序如下(高8位轉(zhuǎn)換結(jié)果存入R2中,低4位存入R3中,遵循左對齊原則):CSCCSCCCSAD1674:MOV R0,0F8H;端口地址送R0MOVX R0,A ;啟動AD1674進(jìn)行轉(zhuǎn)換SETBP1.0;置P1.0為輸入LOOP: NOPJBP1.0,LOOP;查詢轉(zhuǎn)換是否結(jié)束INCR0;使R/ =1,準(zhǔn)備讀取結(jié)果MOVX A,R0;讀取高8位轉(zhuǎn)換結(jié)果 MOVR2,A;高8位轉(zhuǎn)換結(jié)果存入R2中INCR0;使R/ =1, A0=1INCR0MOVX A,R0 ;讀取低4位轉(zhuǎn)換結(jié)果MOVR3,A;低4位轉(zhuǎn)換結(jié)果存入R3中 上述程序是按查詢方式設(shè)計的,圖圖11-23的STS引腳引腳也可接接單片機(jī)單片機(jī)外中斷外中斷輸入引腳輸入引腳,即采用中斷方式讀取轉(zhuǎn)換結(jié)果。讀者可自行編制采用中斷方式讀取轉(zhuǎn)換結(jié)果程序。CCAD1674接口電路全部連接完畢后,在模擬輸入端輸入一穩(wěn)定接口電路全部連接完畢后,在模擬輸入端輸入一穩(wěn)定標(biāo)準(zhǔn)電壓,啟動標(biāo)準(zhǔn)電壓,啟動A/D轉(zhuǎn)換,轉(zhuǎn)換,12位數(shù)據(jù)亦應(yīng)穩(wěn)定位數(shù)據(jù)亦應(yīng)穩(wěn)定。如果變化較大,說明電路穩(wěn)定性差,則要從電源及接地布線等方面查找原因。AD1674電源電壓要有較好穩(wěn)定性和較小噪聲電源電壓要有較好穩(wěn)定性和較小噪聲,噪聲大電源會產(chǎn)生不穩(wěn)定輸出代碼,所以在設(shè)計印制電路板時,要注意電源去耦、布線以及地線布置。這些問題對于位數(shù)較多這些問題對于位數(shù)較多ADC與單片機(jī)接口,要給予重視。與單片機(jī)接口,要給予重視。電源要很好濾波,還要避開高頻噪聲源。所有電源引腳都要用去耦電容所有電源引腳都要用去耦電容。對+5V電源,去耦電容直接接在腳1和腳15之間;且VCC和VEE要通過電容耦合到腳9,去耦電容是一個4.7F鉭電容再并聯(lián)一個0.1F陶瓷電容。5更更高分辨率高分辨率A/D轉(zhuǎn)換器選用轉(zhuǎn)換器選用如果需要更高分辨率ADC,可采用14位位A/D轉(zhuǎn)換器轉(zhuǎn)換器AD7685或16位位A/D轉(zhuǎn)換器轉(zhuǎn)換器AD7656。AD7656是6通道、逐次逼近型ADC,每通道可達(dá)250kSPS采樣率,可對模擬輸入電壓10+10V或0+20V進(jìn)行A/D轉(zhuǎn)換。片內(nèi)包含一個片內(nèi)包含一個2.5V內(nèi)部基準(zhǔn)電壓源和基準(zhǔn)緩沖器內(nèi)部基準(zhǔn)電壓源和基準(zhǔn)緩沖器。該器件僅有160mW功耗,比同類雙極性輸入ADC功耗降低了60。AD7656包含一個低噪聲、寬帶采樣保持放大器包含一個低噪聲、寬帶采樣保持放大器,以便處理輸入頻率高達(dá)8MHz信號。還具有高速并行和串行接口高速并行和串行接口,可以與各種微控制器或數(shù)字信號處理器(DSP)連接。在串行接口方式下在串行接口方式下,能提供一個菊花鏈連接方式,以便把多個ADC連接到一個串行接口上。AD7656采用具有ADI公司專利技術(shù)iCMOS(工業(yè)CMOS)工藝。iCMOS器件能承受高電源電壓,同時提高性能、顯著降低功耗和縮小封裝尺寸,所以非常適合在非常適合在繼電保護(hù)、電機(jī)控制等工業(yè)領(lǐng)域使用繼電保護(hù)、電機(jī)控制等工業(yè)領(lǐng)域使用,有望成為電力繼電保護(hù)新一代產(chǎn)品。讀者如對AD7656應(yīng)用感興趣,可查閱相關(guān)技術(shù)資料。 11.2.4 AT89S51與雙積分型與雙積分型A/D轉(zhuǎn)換器轉(zhuǎn)換器MC14433接口接口雙積分型雙積分型ADC由于兩次積分時間比較長,所以由于兩次積分時間比較長,所以A/D轉(zhuǎn)換速度轉(zhuǎn)換速度慢,慢,但精度可以做得比較高精度可以做得比較高;對周期變化干擾信號積分為零周期變化干擾信號積分為零,抗干擾性能也較好。 雙積分型雙積分型A/D轉(zhuǎn)換器集成電路芯片很多轉(zhuǎn)換器集成電路芯片很多,常見有3 3位半位半A/D轉(zhuǎn)換器MC14433和 4位半位半A/D轉(zhuǎn)換器ICL7135。具有精度高、抗干擾性能好等優(yōu)點,其缺點為轉(zhuǎn)換速度慢,約110次/秒。在不要求高速轉(zhuǎn)換數(shù)據(jù)采集系統(tǒng)中,得到了廣泛應(yīng)用。1MC14433 A/D轉(zhuǎn)換器簡介轉(zhuǎn)換器簡介被轉(zhuǎn)換電壓量程轉(zhuǎn)換電壓量程為199.9mV或1.999V兩檔。轉(zhuǎn)換完數(shù)據(jù)以BCD碼形式分碼形式分4次次送出送出(最高位輸出內(nèi)容特殊,詳見表11-5)。引腳如圖圖11-24所示所示。下面介紹各引腳功能。圖圖11-24 MC14433引腳圖引腳圖(1)電源及共地端)電源及共地端VDD:主工作電源,+5V。VEE:模擬部分負(fù)電源端,接-5V。VAG:模擬地端。VSS:數(shù)字地端。VR:基準(zhǔn)電壓輸入端。(2)外接電阻及電容端)外接電阻及電容端R1:積分電阻輸入端,轉(zhuǎn)換電壓轉(zhuǎn)換電壓VX = 2V時, R1 = 470;VX = 200mV時,R1 = 27k。C1:積分電容輸入端,C1一般取0.1F。R1/C1:R1與C1公共端CLKI、CLKO:外接振蕩器時鐘調(diào)節(jié)電阻RC,RC一般取470左右。(3)轉(zhuǎn)換啟動)轉(zhuǎn)換啟動/結(jié)束信號端結(jié)束信號端EOC:轉(zhuǎn)換結(jié)束信號輸出端,正脈沖有效。DU:啟動新轉(zhuǎn)換,若DU與EOC相連,每當(dāng)A/D轉(zhuǎn)換結(jié)束后,自動啟動新轉(zhuǎn)換。(4)過量程信號輸出端)過量程信號輸出端 :當(dāng)|VX|VR時,過量程 輸出低電平。(5)位選通控制端)位選通控制端 DS4DS1:分別為個、十、百、千位輸出選通脈沖個、十、百、千位輸出選通脈沖,正脈沖有效。DS1對應(yīng)千位,DS4對應(yīng)個位。每個選通脈沖寬度為18個時鐘周期,兩個相應(yīng)脈沖之間間隔為2個時鐘周期,如圖圖11-25所示所示。OR圖圖11-25 MC14433選通脈沖時序圖選通脈沖時序圖(6)BCD碼輸出端碼輸出端Q3Q0:BCD碼數(shù)據(jù)輸出線。其中,Q3為最高位,Q0為最低位。當(dāng)DS2、DS3和DS4選通期間,輸出3位完整BCD碼數(shù),但在DS1(千位)選通期間,即DS1=1期間,輸出端Q3Q0除了表示個位個位0或或1外,還表示被轉(zhuǎn)換電壓正負(fù)極性正負(fù)極性(Q2 = 1為正)和欠量程或過量程,其具體含義見表表11-5。由由表表11-5可知:可知:(1)Q3表示最高位千位千位(1/2位)。Q3 = 0對應(yīng)“1”,反之對應(yīng)“0”。(2)Q2表示極性。Q2=1為正極性,Q2=0為負(fù)極性。(3)Q0=1表示過量程過量程或欠量程欠量程。當(dāng)Q3=0時,表示過量程;當(dāng) Q3 = 1時,表示欠量程。2MC14433與與AT

注意事項

本文(教學(xué)PPT AT89S51匯編語言程序設(shè)計(7))為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!