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

下載本文檔

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

文檔簡介

1、Tankertanker Design11.1 STC89C52與A/D轉(zhuǎn)換器的接口11.2 STC89C52與D/A轉(zhuǎn)換器的接口第十一章 STC89C52與A/D、D/A轉(zhuǎn)換器的接口Tankertanker DesignD/A轉(zhuǎn)換器轉(zhuǎn)換器(Digital to Analog Converter)能把數(shù)字量轉(zhuǎn)換為模擬量的電子器件(簡稱為DAC)。A/D轉(zhuǎn)換器轉(zhuǎn)換器(Analog to Digital Converter)能把模擬量轉(zhuǎn)換成相應數(shù)字量的電子器件(簡稱為ADC)。Tankertanker Design11.1 STC89C52與A/D轉(zhuǎn)換器的接口1.概述 A/D轉(zhuǎn)換器把模擬量轉(zhuǎn)換成數(shù)

2、字量,以便于單片機進行數(shù)據(jù)處理。A/D轉(zhuǎn)換一般要經(jīng)過采樣、保持、量化及編碼4個過程。在實際電路中,有些過程是合并進行的,如采樣和保持,量化和編碼在轉(zhuǎn)換過程中是同時實現(xiàn)的。 目前單片的ADC芯片較多,對設計者來說,只需合理的選擇芯片即可?,F(xiàn)在部分的單片機片內(nèi)集成了A/D轉(zhuǎn)換器,僅在片內(nèi)A/D轉(zhuǎn)換器不能滿足需要的情況下,需外擴。當然作為擴展A/D轉(zhuǎn)換器的基本方法,還是應該掌握。Tankertanker DesignAD轉(zhuǎn)換器的分類 盡管A/D轉(zhuǎn)換器的種類很多種類很多,但目前廣泛應用在單片機應用系統(tǒng)中的主要有逐次比較型轉(zhuǎn)換器逐次比較型轉(zhuǎn)換器和雙積分型轉(zhuǎn)換器雙積分型轉(zhuǎn)換器,此外 -式轉(zhuǎn)換器式轉(zhuǎn)換器逐漸

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

4、電路。 A/DA/D轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為轉(zhuǎn)換器按照轉(zhuǎn)換速度可大致分為超高速超高速(轉(zhuǎn)換時間1ns)、高速高速(轉(zhuǎn)換時間1s)、中速中速(轉(zhuǎn)換時間1ms)、低速低速(轉(zhuǎn)換時間1s)等幾種不同轉(zhuǎn)換速度的芯片。 按照輸出數(shù)字量的有效位數(shù)分為按照輸出數(shù)字量的有效位數(shù)分為4 4位、位、8 8位、位、1010位、位、1212位、位、1414位、位、1616位并行輸出位并行輸出以及BCDBCD碼輸出碼輸出的3位半、4位半、5位半等多種。Tankertanker Design 目前,除并行輸出A/D轉(zhuǎn)換器外,隨著單片機串行擴展方式的日益增多,帶有帶有同步同步SPISPI串行接口串行接口的的A/DA/D

5、轉(zhuǎn)換器的轉(zhuǎn)換器的使用也逐漸增多使用也逐漸增多。串行輸出的A/D轉(zhuǎn)換器具有占用端口線占用端口線少、使用方便、接口簡單少、使用方便、接口簡單等優(yōu)點。較為典型的串行較為典型的串行A/DA/D轉(zhuǎn)轉(zhuǎn)換器為美國換器為美國TITI公司公司的TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)。Tankertanker Design 2.ADC主要技術(shù)指標 (1 1)轉(zhuǎn)換時間和轉(zhuǎn)換速率)轉(zhuǎn)換時間和轉(zhuǎn)換速率 A/D完成一次轉(zhuǎn)換所需要的時間所需要的時間。轉(zhuǎn)換時間的倒數(shù)為轉(zhuǎn)換速率。 (2 2)分辨率)分辨率 分辨率是衡量A/D轉(zhuǎn)換器能夠分辨出能夠分辨出輸入模擬量最小變

6、輸入模擬量最小變化化程度的技術(shù)指標程度的技術(shù)指標。分辨率取決于A/DA/D轉(zhuǎn)換器的轉(zhuǎn)換器的位數(shù)位數(shù),習慣上用輸出的二進制位數(shù)或BCD碼位數(shù)表示。例如,例如,AD1674AD1674的滿量程輸入電壓為5V,可輸出12位二進制數(shù),即用212個數(shù)進行量化,其分辨率為分辨率為1212位位,或A/D轉(zhuǎn)換器能分辨出輸入電壓分辨出輸入電壓5V/25V/21212=1.22mV=1.22mV的變化。Tankertanker Design (3 3)量化誤差)量化誤差 量化過程引起的誤差稱為量化誤差量化誤差。是由于有限位數(shù)有限位數(shù)字量對模擬量進行量化字量對模擬量進行量化而引起的誤差。理論上規(guī)定為一個單位分辨率的

7、-1/2 - +1/2LSB ,提高A/D位數(shù)既可以提高分辨率,又能夠減少量化誤差。 (4 4)轉(zhuǎn)換精度)轉(zhuǎn)換精度 轉(zhuǎn)換精度定義為一個實際A/D轉(zhuǎn)換器與一個理想A/D轉(zhuǎn)換器在量化值上的差值,可用絕對誤差或相對誤差表示。Tankertanker Design3.逐次逼近式ADC的工作原理 轉(zhuǎn)換過程中的逐次逼近是按照對分比較或者對分搜索的轉(zhuǎn)換過程中的逐次逼近是按照對分比較或者對分搜索的原理進行。原理進行。工作原理:工作原理:在時鐘脈沖的同步下,控制邏輯先使N位寄存器的D7位置1(其余位為),此時該寄存器輸出的內(nèi)容為10000000,此值經(jīng)DAC轉(zhuǎn)換為模擬量輸出VN ,與待轉(zhuǎn)換的模擬輸入信號VIN

8、相比較,若VIN =VN ,則比較器輸出為1。于是在時鐘脈沖的同步下,保留最高位D7=1,并使下一位D6=1,所得新值(11000000B)再經(jīng)DAC轉(zhuǎn)換得到新的VN,與VIN比較,重復前述過程。反之,若使D7=1后,經(jīng)比較VIN =VN ,則使D7=0,D6=1,所得新值VN再與VIN比較,重復前述過程。依次類推,從D7到D0都比較完畢后,控制邏輯使EOC變?yōu)楦唠娖?,表示A/D轉(zhuǎn)換結(jié)束,此時的D7D0即為對應于模擬輸入信號VIN的數(shù)字量。Tankertanker Design11.1.2 STC89C52與并型8位A/D轉(zhuǎn)換器ADC0809的接口1.ADC0809芯片-逐次比較型ADC芯片分

9、辨率為位 轉(zhuǎn)換時間00S 工作量程為05V功耗為15m工作電壓為+5V具有鎖存控制的8路模擬開關輸出與TTL電平兼容 Tankertanker Design8路模擬輸入信號用三根地址線A,B,C選通IN0IN7;A、B、C分別與單片機的三條地址線相連,三位編碼對應三位編碼對應8 8個通道地址個通道地址端口端口。C C、B B、A = 000A = 000111111分別對應IN0IN0IN7IN7通道的地址。引腳START啟動AD轉(zhuǎn)換,CLOCK轉(zhuǎn)換時鐘,VR參考電壓,EOC轉(zhuǎn)換結(jié)束標志, OE輸出使能,ALE地址鎖存。ADC0809的結(jié)構(gòu)組成Tankertanker Design工作時序AL

10、EALE鎖存鎖存ADDAADDA、ADDBADDB、ADDCADDCSTARTSTART正脈沖正脈沖啟動啟動AD轉(zhuǎn)換轉(zhuǎn)換 EOCEOC由由高變低高變低(ADAD啟動后啟動后) 保持低電平保持低電平( (轉(zhuǎn)換期間轉(zhuǎn)換期間) ) 由低變高由低變高(轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束)OEOE正脈沖,打開三態(tài)門輸出正脈沖,打開三態(tài)門輸出Tankertanker Design2.STC89C52與ADC0809的接口 單片機讀取ADC的轉(zhuǎn)換結(jié)果時,可采用查詢和中斷控制兩種方式。 (1)查詢方式 查詢方式是在單片機把啟動信號送到ADC之后,執(zhí)行其他程序,同時對ADC0809的EOC腳不斷進行檢測,以查詢ADC變換是否已經(jīng)

11、結(jié)束,如查詢到變換已經(jīng)結(jié)束,則讀入轉(zhuǎn)換完畢的數(shù)據(jù)。Tankertanker Design由于ADC0809片內(nèi)無時鐘,可利用單片機提供的地址鎖存允許信號ALE經(jīng)D觸發(fā)器二分頻后獲得,ALE引腳的頻率是STC89C52單片機時鐘頻率的1/6。如果單片機時鐘頻率采用6MHz,則ALE引腳的輸出頻率為1MHz,再二分頻后為500kHz,符合ADC0809對時鐘頻率的要求。當然,也可采用獨立的時鐘源輸出,直接加到ADC的CLK腳。Tankertanker DesignADC0809具有輸出三態(tài)鎖存器,其8位數(shù)據(jù)輸出引腳D0D7可直接與單片機的P0口相連。Tankertanker Design單片機的寫

12、信號 和P2.7控制ADC的地址鎖存和轉(zhuǎn)換啟動由于ALE和START連在一起,因此ADC0809在鎖存通道地址的同時啟動并進行轉(zhuǎn)換。Tankertanker Design讀取轉(zhuǎn)換結(jié)果時,用低電平的讀信號 和P2.7引腳經(jīng)一級“或非門”后產(chǎn)生的正脈沖作為OE信號,用來打開三態(tài)輸出鎖存器。Tankertanker Design 【例11-1】采用ADC0809設計數(shù)據(jù)采集電路.該電路通過調(diào)節(jié)滑線變阻器,調(diào)節(jié)IN5的輸入電壓,A/D轉(zhuǎn)換結(jié)果存放至片內(nèi)數(shù)據(jù)存儲器50H單元,并通過兩個BCD數(shù)碼管顯示出來。Tankertanker Design IN0IN7的地址分別為0 x7FF80 x7FFF。AD

13、C0809的EOC引腳經(jīng)非門74HC14與單片機的外部中斷輸入引腳 相連,A/D轉(zhuǎn)換結(jié)束后變?yōu)榈碗娖?,單片機采用查詢或中斷方式讀取A/D轉(zhuǎn)換結(jié)果。(1)查詢方式)查詢方式#include #include #define AD_IN0 XBYTE0X7FF8 /IN0通道地址通道地址sbit ad_busy=P33; unsigned char data temp _at_ 0 x50;void main(void) while(1)AD_IN0= 0; /啟動啟動A/D信號信號,是一個是一個虛寫虛寫操作。操作。while(ad_busy=1);/等待等待A/D轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束temp=AD_

14、IN0;/轉(zhuǎn)換數(shù)據(jù)存到片內(nèi)轉(zhuǎn)換數(shù)據(jù)存到片內(nèi)50H單元單元P1=temp;/轉(zhuǎn)換數(shù)據(jù)顯示轉(zhuǎn)換數(shù)據(jù)顯示Keil uVision4Tankertanker Design(2)中斷方式 采用中斷方式完成對IN0通道的輸入模擬量信號的采集,當A/D轉(zhuǎn)換結(jié)束后,EOC發(fā)出一個脈沖向單片機提出中斷申請,單片機響應中斷請求后,由外部中斷1的中斷服務程序讀取A/D轉(zhuǎn)換結(jié)果,并啟動ADC0809的下一次轉(zhuǎn)換。外部中斷1采用邊沿觸發(fā)方式。中斷控制方式效率高,所以特別適合于轉(zhuǎn)換時間較長的ADC。#include #include #define AD_IN0XBYTE0 x7FF8/IN5通道地址通道地址unsign

15、ed char temp _at_ 0 x50;void main(void) IE=0 x84; /CPU開放中斷開放中斷,允許外部中斷允許外部中斷1中斷中斷IT1=1; /外部中斷外部中斷1采用邊沿觸發(fā)采用邊沿觸發(fā)AD_IN0 = 0; /啟動啟動A/D信號信號while(1) Tankertanker Designvoid data_acquisition(void) interrupt 2 EA=0; temp=AD_IN0; /轉(zhuǎn)換數(shù)據(jù)顯示轉(zhuǎn)換數(shù)據(jù)顯示 P1=temp;AD_IN0=0; /啟動啟動A/D信號信號EA=1; Keil uVision4Tankertanker Desi

16、gn11.1.3 STC89C52與并型12位A/D轉(zhuǎn)換器AD1674的接口 在某些應用中,8位ADC常常不夠,必須選擇分辨率大于8位的芯片,由于10位、16位接口與12位類似,因此僅以常用的12位A/D轉(zhuǎn)換器AD1674為例進行介紹。1AD1674簡介簡介 美國AD公司1212位逐次比較型位逐次比較型A/DA/D轉(zhuǎn)換器轉(zhuǎn)換器。轉(zhuǎn)換時間為轉(zhuǎn)換時間為1010 s s,單通道最大采集速率最大采集速率100kHz100kHz。Tankertanker Design28引腳雙列直插式封裝圖Tankertanker Design由于芯片內(nèi)有三態(tài)輸出緩沖電路,因而可直接與各種典型的8位或16位的單片機相連

17、,AD1674片內(nèi)集成有高精度的基準電壓源和時鐘電路,從而使該芯片在不需要任何外加電路和時鐘信號的情況下完成A/D轉(zhuǎn)換,使用非常方便。AD1674是AD574A/674A的更新?lián)Q代產(chǎn)品。它們的基本相同,引腳功能與AD574A/ 674A完全兼容,可以直接替換AD574、AD674使用,但最大轉(zhuǎn)換時間由25s提高到10s。Tankertanker Design與AD574A/674AAD574A/674A相比相比,AD1674AD1674的內(nèi)部結(jié)構(gòu)更加緊湊的內(nèi)部結(jié)構(gòu)更加緊湊,集成度更高,工作性能(尤其是高低溫穩(wěn)定性)更好集成度更高,工作性能(尤其是高低溫穩(wěn)定性)更好,而且可以使設計板面積大大減小

18、,因而可以降低成本并提高系統(tǒng)的可靠性。目前,片內(nèi)帶有采樣保持器的AD1674正以其優(yōu)良的性能價格比,取代AD574A和AD674A。AD1674共有6個控制引腳個控制引腳,功能如下: :芯片選擇。 CE:芯:芯片啟動信號。當CE=1時,究竟是啟動轉(zhuǎn)換還是讀取結(jié)果與R/ 有關。 R/ :讀出/轉(zhuǎn)換控制信號。CSCCTankertanker Design12/ :數(shù)據(jù)輸出格式選擇信號引腳。當12/ =1時,12條數(shù)據(jù)線并行輸出轉(zhuǎn)換結(jié)果;當12/ =0 時,與A0配合,轉(zhuǎn)換結(jié)果分兩次輸出,即只有高8位或低4位有效。注意:注意:12/ 端與TTL電平不兼容,故只能直接接至+5V或0V上。8888Tan

19、kertanker DesignA0:字節(jié)選擇控制。在轉(zhuǎn)換期間在轉(zhuǎn)換期間:當A0=0A0=0時,AD1674進行全12位轉(zhuǎn)換。當A0=1A0=1時,僅進行8位轉(zhuǎn)換。在讀出期間在讀出期間,與12/ 12/ =0配合:當A0=0A0=0時,高8位數(shù)據(jù)有效;當A0=1A0=1時,低4位數(shù)據(jù)有效,中間4位為0,高4位為高阻態(tài)。8Tankertanker Design上述5個控制信號組合的真值表如下:當采用兩次讀出的采用兩次讀出的12位數(shù)據(jù)位數(shù)據(jù)遵循左對齊左對齊格式,如下所示:Tankertanker DesignSTSSTS:輸出狀態(tài)信號引腳。 轉(zhuǎn)換開始時轉(zhuǎn)換開始時,STS為高電平,轉(zhuǎn)換過程中轉(zhuǎn)換過程

20、中保持高電平。 轉(zhuǎn)換完成時轉(zhuǎn)換完成時,為低電平。STS可以作為狀態(tài)信息被CPU查詢,也可用下跳沿向單片機發(fā)出中斷申請,通知單片機A/D轉(zhuǎn)換已完成,可讀取轉(zhuǎn)換結(jié)果。Tankertanker Design除上述6個控制引腳外,其他引腳的功能如下:REFOUTREFOUT:+10V基準電壓輸出。REFINREFIN:基準電壓輸入。只有由此腳把從“REFOUT”腳輸出的基準電壓引入到AD1674內(nèi)部的12位DAC,才能進行正常的A/D轉(zhuǎn)換。BIPOFFBIPOFF:雙極性補償。對此引腳進行適當?shù)倪B接,可實現(xiàn)單極性或雙極性的輸入。10V10VININ:10V或5+5V模擬信號輸入端。Tankertank

21、er Design20V20VININ:20V或10+10V模擬信號輸入端。DGNDDGND:數(shù)字地。各數(shù)字電路器件及“+5V”電源的地。AGNDAGND:模擬地。各模擬電路器件及“+15V”、“15V”電源地。V VCCCC:正電源端,為+12+15V。V VEEEE:負電源端,為1215V。Tankertanker Design當CE=1, = 0同時滿足時,AD1674才能處于工作狀處于工作狀態(tài)態(tài)。當AD1674處于工作狀態(tài)時,R/ = 0時啟動A/D轉(zhuǎn)換;R/ =1 =1時讀出轉(zhuǎn)換結(jié)果。12/ 和和A0端用來控制轉(zhuǎn)換字長和數(shù)據(jù)格式。A0=0A0=0時啟動轉(zhuǎn)換,按完整的12位A/D轉(zhuǎn)換方

22、式工作; A0=1A0=1啟動轉(zhuǎn)換,則按8位A/D轉(zhuǎn)換方式工作。當當AD1674AD1674處于數(shù)據(jù)讀出工作狀態(tài)處于數(shù)據(jù)讀出工作狀態(tài)(R/ = 1)時,A0和12/ 成為數(shù)據(jù)輸出格式控制端。CS8CC8C2 2AD1674AD1674的工作特性的工作特性Tankertanker Design12/ =1時,對應12位并行輸出;12/ =0時,則對應8位雙字節(jié)輸出。其中A0=0A0=0時輸出高8位,A0 = 1A0 = 1時輸出低4位,并以4個0補足尾隨的4位。注意注意,A0在轉(zhuǎn)換結(jié)果數(shù)據(jù)輸出期間不能變化。如要求AD1674以獨立方式獨立方式工作,只要將CECE、12/ 端接入+5V, 和A0A

23、0接至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ù)。888CCCCSTankertanker Design注意,注意,只有在CE = 1CE = 1且 = 0= 0時才啟動轉(zhuǎn)換,在啟動信號有效前,R/ R/ 必須為低電平,否則將產(chǎn)生讀取數(shù)據(jù)的操作。3 3AD1674AD1674的單極性和雙極性輸入的電路的單極性和雙極性輸入的電路通過改變AD1674引腳8、10、12的外接電路,可使AD167

24、4實現(xiàn)單極性輸入和雙極性輸入模擬信號的轉(zhuǎn)換。由于AD1674片內(nèi)含有高精度的基準電壓源和時鐘電路,因此AD1674無需任何外加電路和時鐘信號的情況下即可完成A/D轉(zhuǎn)換,使用非常方便。(1 1)單極性輸入電路)單極性輸入電路圖圖11-11-8 8(a a)為單極性輸入電路,可實現(xiàn)輸入信號0 010V10V或0 020V20V的轉(zhuǎn)換。當輸入信號為輸入信號為0 010V10V時,應從10VIN引腳輸入(引腳13);輸入信號為輸入信號為0 020V20V時,應從20VIN引腳輸入(引腳14)。CSCTankertanker Design AD1674模擬輸入電路的外部接法模擬輸入電路的外部接法注意注意

25、: :單片機系統(tǒng)模擬信號的地線應與單片機系統(tǒng)模擬信號的地線應與AGNDAGND相連,使其地線的接觸電阻盡可能小。相連,使其地線的接觸電阻盡可能小。Tankertanker Design輸出的轉(zhuǎn)換結(jié)果D的計算公式計算公式為: D D=4096=4096V VI IN N / V/ VFSFS或或 V VININ= = D DV VFSFS /4096 /4096其中V VININ為模擬輸入電壓,V VFSFS為滿量程電壓。若從若從10V10VININ腳輸入腳輸入,VFS=10V,LSB=10/409624mV;若從若從20V20VININ腳輸入腳輸入;VFS=20V,1LSB=20/409649

26、mV。圖中的電位器RP2用于調(diào)零,即當VIN=0時,輸出數(shù)字量D為全0。36Tankertanker Design(2 2)雙極性輸入電路)雙極性輸入電路圖圖11-11-8 8(b b)為雙極性轉(zhuǎn)換電路雙極性轉(zhuǎn)換電路,可實現(xiàn)輸入信號10+10V或0+20V的轉(zhuǎn)換。圖中電位器RP1用于調(diào)零。雙極性輸入時,輸出的轉(zhuǎn)換結(jié)果D與模擬輸入電壓VIN之間的關系為:D D=2048=2048(1+1+V VIN IN / V/ VFSFS)或或 V VININ= =(D D / / 2048120481)V VFSFS /2 /2例如,例如,當模擬信號從10VIN引腳輸入,則VFS=10V,若讀得D=FFF

27、H,即111111111111B=4095,代入式中,可求得VIN=4.9976V。Tankertanker Design 轉(zhuǎn)換結(jié)果的高轉(zhuǎn)換結(jié)果的高8 8位位從DB11DB4輸出,低低4 4位位從DB3DB0輸出,即A0=0時,讀取結(jié)果的高8位;當A0=1時,讀取結(jié)果的低4位。若遵循左對齊若遵循左對齊的原則,DB3DB0應接單片機的P0.7P0.4。Tankertanker Design4STC89C52單片機與AD1674的接口Tankertanker DesignSTSSTS引腳引腳接單片機的接單片機的P1.0P1.0引腳引腳,采用查詢方式讀取轉(zhuǎn)換結(jié)果。當單片機執(zhí)行對外部數(shù)據(jù)存儲器寫指令,

28、使CE=1, =0,R/ =0,A0=0時,啟動A/D轉(zhuǎn)換。當單片機查詢到P1.0引腳為低電平時,轉(zhuǎn)換結(jié)束,單片機使CE=1, =0,R/ =1,A0=0,讀取結(jié)果高8位;CE=1, = 0, R/ =1,A0=1,讀取結(jié)果的低4位。該接口電路完成一次A/D轉(zhuǎn)換的查詢方式查詢方式的程序如下(高8位轉(zhuǎn)換結(jié)果存入R2中,低4位存入R3中,遵循左對齊原則):CSCCSCCCSTankertanker DesignAD1674: MOV R0,0F8H;端口地址送R0MOVXR0,A;啟動AD1674進行轉(zhuǎn)換SETBP1.0;置P1.0為輸入LOOP: NOPJBP1.0,LOOP;查詢轉(zhuǎn)換是否結(jié)束I

29、NCR0;使R/ 1,準備讀取結(jié)果MOVXA,R0;讀取高8位轉(zhuǎn)換結(jié)果MOVR2,A;高8位轉(zhuǎn)換結(jié)果存入R2中INCR0;使R/ 1, A01INCR0MOVX A,R0;讀取低4位轉(zhuǎn)換結(jié)果MOVR3,A;低4位轉(zhuǎn)換結(jié)果存入R3中CCTankertanker Design AD1674AD1674接口電路全部連接完畢后,在模擬輸入端輸入接口電路全部連接完畢后,在模擬輸入端輸入一穩(wěn)定的標準電壓,啟動一穩(wěn)定的標準電壓,啟動A/DA/D轉(zhuǎn)換,轉(zhuǎn)換,1212位數(shù)據(jù)亦應穩(wěn)定位數(shù)據(jù)亦應穩(wěn)定。如果變化較大,說明電路穩(wěn)定性差,則要從電源及接地布線等方面查找原因。 AD1674AD1674的電源電壓要有較好的穩(wěn)

30、定性和較小的噪聲的電源電壓要有較好的穩(wěn)定性和較小的噪聲,噪聲大的電源會產(chǎn)生不穩(wěn)定的輸出代碼,所以在設計印制電路板時,要注意電源去耦、布線以及地線的布置。 這些問題對于位數(shù)較多的這些問題對于位數(shù)較多的ADCADC與單片機接口,要給予與單片機接口,要給予重視。重視。電源要很好濾波,還要避開高頻噪聲源。此外,所所有的電源引腳都要用去耦電容有的電源引腳都要用去耦電容。Tankertanker Design11.2 STC89C52與D/A轉(zhuǎn)換器的接口11.2.1 D/A轉(zhuǎn)換器簡介1.1.概述概述 模/數(shù)轉(zhuǎn)換器(DAC)是一種把數(shù)字信號轉(zhuǎn)換成模擬信號的器件。 按照二進制數(shù)字量的位數(shù)劃分,有8 位、10

31、位、12 位、16位D/A轉(zhuǎn)換器;按照數(shù)字量的數(shù)碼形式劃分,有二進制碼和BCD碼D/A轉(zhuǎn)換器;按照D/A轉(zhuǎn)換器輸出方式劃分,有電流輸出型和電壓輸出型D/A轉(zhuǎn)換器。在實際應用中,對于電流輸出的D/A轉(zhuǎn)換器,如需要模擬電壓輸出,可在其輸出端加一個由運算放大器構(gòu)成的I/V轉(zhuǎn)換電路,將電流輸出轉(zhuǎn)換為電壓輸出。Tankertanker Design 單片機與D/A轉(zhuǎn)換器的連接,早期多采用8位數(shù)字量并行傳輸?shù)牟⑿薪涌?,現(xiàn)在除并行接口外,帶有串行口的D/A轉(zhuǎn)換器品種也不斷增多。除了通除了通用的用的UARTUART串行口外,目前較為流行的還有串行口外,目前較為流行的還有IICIIC串行串行口和口和SPISPI

32、串行口串行口等。所以在選擇單片D/A轉(zhuǎn)換器時,要考慮單片機與D/A轉(zhuǎn)換器的接口形式。Tankertanker Design 目前部分單片機芯片中集成的D/A轉(zhuǎn)換器位數(shù)一般在10位左右,且轉(zhuǎn)換速度很快,所以單片的DAC開始向高位數(shù)和高轉(zhuǎn)換速度上轉(zhuǎn)變。低端的產(chǎn)品,如8位的D/A轉(zhuǎn)換器,開始面臨被淘汰的危險,但是在實驗室或涉及某些工業(yè)控制方面的應用,低端的8位DAC以其優(yōu)異性價比還是具有相當大的應用空間的。Tankertanker Design 2.D/A 2.D/A轉(zhuǎn)換器的主要技術(shù)指標轉(zhuǎn)換器的主要技術(shù)指標(1 1)分辨率)分辨率 分辨率是指輸入數(shù)字量的最低有效位(LSB)發(fā)生變化時,所對應的輸出模

33、擬量(常為電壓)的變化量。它反映了輸出模擬量的最小變化值。 分辨率與輸入數(shù)字量的位數(shù)有確定的關系,可以表示成FS/2n。FS表示滿量程輸入值,n為二進制位數(shù)。對于5V的滿量程,采用位的DAC 時,分辨率為5V/28=19.5mV;當采用12位的DAC時,分辨率則為5V/2121.22mV。顯然,位數(shù)越多,分辨率就越高。即D/A轉(zhuǎn)換器對輸入量變化的敏感程度越高。 使用時,應根據(jù)對使用時,應根據(jù)對D/AD/A轉(zhuǎn)換器分辨率的需要來選定轉(zhuǎn)換器分辨率的需要來選定D/AD/A轉(zhuǎn)換器的位數(shù)。轉(zhuǎn)換器的位數(shù)。Tankertanker Design(2 2)建立時間)建立時間 描述D/A轉(zhuǎn)換器轉(zhuǎn)換快慢轉(zhuǎn)換快慢的一

34、個參數(shù),用于表明轉(zhuǎn)換表明轉(zhuǎn)換時間或轉(zhuǎn)換速度時間或轉(zhuǎn)換速度。其值為從輸入數(shù)字量到輸出達到終值誤差(1/2)LSB時所需的時間。 電流輸出型電流輸出型DACDAC的轉(zhuǎn)換時間較短較短,而電壓輸出電壓輸出的轉(zhuǎn)換器,由于要加上完成I-V轉(zhuǎn)換的運算放大器的延遲時間,因此轉(zhuǎn)換時間要長一些轉(zhuǎn)換時間要長一些??焖貲/A轉(zhuǎn)換器的轉(zhuǎn)換時間可控制在1s以下。Tankertanker Design(3 3)轉(zhuǎn)換精度)轉(zhuǎn)換精度理想情況下,轉(zhuǎn)換精度與分辨率基本一致,位數(shù)越多精度越高。但由于電源電壓、基準電壓、電阻、制造工藝等各種因素存在著誤差。嚴格講,轉(zhuǎn)換精度與分辨率并不完全一轉(zhuǎn)換精度與分辨率并不完全一致致。只要位數(shù)相同,

35、分辨率則相同,但相同位數(shù)的不同轉(zhuǎn)但相同位數(shù)的不同轉(zhuǎn)換器換器轉(zhuǎn)換精度轉(zhuǎn)換精度會有所不同會有所不同。例如,例如,某種型號的8位DAC精度為0.19%,而另一種型號的8位DAC精度為0.05%。Tankertanker Design3.(電流輸出型)D/A轉(zhuǎn)換器的工作原理 目前常用的D/A轉(zhuǎn)換器是由型電阻網(wǎng)絡型電阻網(wǎng)絡構(gòu)成的。RVIREF 總電流總電流分支電流分支電流2iniIIRRVDDDDVIREFREFnininiiniiniiiDDIDI256)2222(001166771010100122轉(zhuǎn)換電流轉(zhuǎn)換電流I01轉(zhuǎn)換電流與“邏輯開關”為1的各支路電流的總和成正比,即與與D0D7口輸入口輸入的

36、二進制數(shù)成正比的二進制數(shù)成正比。 Tankertanker Design轉(zhuǎn)換電壓轉(zhuǎn)換電壓DAC0832外接放大器反饋電阻即,轉(zhuǎn)換電壓正比于待轉(zhuǎn)換的二進制數(shù)和參考電壓轉(zhuǎn)換電壓正比于待轉(zhuǎn)換的二進制數(shù)和參考電壓256256) 256)1222(222(006677006677VVDDDRVDDDRIVREFREFfbREFBRfbooTankertanker Design當輸入數(shù)據(jù)D7D0 為11111111B 時,有Tankertanker Design11.2.2 STC89C52與8位D/A轉(zhuǎn)換器DAC0832的接口設計1.DAC0832芯片-電流輸出型D/A轉(zhuǎn)換器8 8位并行輸入方式位并行輸

37、入方式分辨率分辨率19.5mV (VREF = 5V19.5mV (VREF = 5V) 電流建立時間電流建立時間S S 輸入與輸入與TTLTTL電平兼容電平兼容 單一電源供電(單一電源供電(5V5V15V15V) 低功耗,低功耗,20m20mw wTankertanker Design引腳功能:引腳功能:DI0DI0DI7DI7:8 8位數(shù)字信號輸入端,位數(shù)字信號輸入端,與單片機的數(shù)據(jù)總線與單片機的數(shù)據(jù)總線P0P0口相連口相連,用于接收單片機送來的待轉(zhuǎn)換為模擬量的數(shù)字量,用于接收單片機送來的待轉(zhuǎn)換為模擬量的數(shù)字量,DI7DI7為最高位。為最高位。 :片選端,為低電平時,本芯片被選中。片選端,

38、為低電平時,本芯片被選中。ILEILE:數(shù)據(jù)鎖存允許控制端,高電平有效。數(shù)據(jù)鎖存允許控制端,高電平有效。 : :第一級輸入寄存器寫選通控制,低電平有效。當?shù)谝患壿斎爰拇嫫鲗戇x通控制,低電平有效。當 =0 =0,ILE=1ILE=1, =0=0時,待轉(zhuǎn)換的數(shù)據(jù)信號被鎖存到時,待轉(zhuǎn)換的數(shù)據(jù)信號被鎖存到第一級第一級8 8位輸入寄存器中。位輸入寄存器中。CSWR1CSWR1Tankertanker Design :數(shù)據(jù)傳送控制,低電平有效。數(shù)據(jù)傳送控制,低電平有效。 :DACDAC寄存器寫選通控制端,低電平有效。當寄存器寫選通控制端,低電平有效。當 =0, =0=0時,輸入寄存器中待轉(zhuǎn)換的數(shù)據(jù)傳入時,

39、輸入寄存器中待轉(zhuǎn)換的數(shù)據(jù)傳入8 8位位DACDAC寄存器中。寄存器中。IOUT1:D/AD/A轉(zhuǎn)換器電流輸出轉(zhuǎn)換器電流輸出1 1端,輸入數(shù)字量全為端,輸入數(shù)字量全為“1 1”時,時,IOUT1最大,最大,輸入數(shù)字量全為輸入數(shù)字量全為“0 0”時,時,I IOUT1OUT1最小。最小。IOUT2:D/AD/A轉(zhuǎn)換器電流輸出轉(zhuǎn)換器電流輸出2 2端,端,I IOUT2OUT2+ I+ IOUT1OUT1 = = 常數(shù)。常數(shù)。Rfb:外部反饋信號輸入端,內(nèi)部已有反饋電阻外部反饋信號輸入端,內(nèi)部已有反饋電阻R Rfbfb,根據(jù)需要也可外,根據(jù)需要也可外接反饋電阻。接反饋電阻。VCC:電源輸入端,在電源輸

40、入端,在+5V+5V+15V+15V范圍內(nèi)。范圍內(nèi)。XFER2WRXFER2WRTankertanker DesignDAC0832的結(jié)構(gòu)內(nèi)部組成:內(nèi)部組成:1個個8位輸入鎖存器位輸入鎖存器1個個8位位DAC寄存器寄存器1個個8位位D/A轉(zhuǎn)換器轉(zhuǎn)換器5個控制邏輯(個控制邏輯(2級控制級控制)工作過程工作過程:8位數(shù)據(jù)并行送入鎖存器位數(shù)據(jù)并行送入鎖存器在在第第1級級控制信號作用下進入寄存器控制信號作用下進入寄存器在在第第2級級控制信號控制信號作用下進入轉(zhuǎn)換器作用下進入轉(zhuǎn)換器轉(zhuǎn)換結(jié)果由轉(zhuǎn)換結(jié)果由Iout1電流輸出。電流輸出。Tankertanker DesignDAC0832的3種控制方式直通方式

41、直通方式 兩個寄存器都處于直通狀態(tài)兩個寄存器都處于直通狀態(tài)直通方式不能直接與系統(tǒng)的數(shù)據(jù)總線相連,需另加鎖存器,故較少應直通方式不能直接與系統(tǒng)的數(shù)據(jù)總線相連,需另加鎖存器,故較少應用。用。單緩沖方式單緩沖方式 一個寄存器處于直通,另一個處于受控狀態(tài)一個寄存器處于直通,另一個處于受控狀態(tài)雙緩沖方式雙緩沖方式 兩個寄存器都分別處于受控狀態(tài)兩個寄存器都分別處于受控狀態(tài)Tankertanker Design電路采用I/O口方式接線,直通控制方式4個控制端都接低電平,ILE接高電平。數(shù)字量一旦輸入,就直接進入DAC寄存器,進行D/A轉(zhuǎn)換。直通控制方式直通控制方式-兩個寄存器都處于直通狀態(tài)兩個寄存器都處于直

42、通狀態(tài)2STC89C52與DAC0832的接口Tankertanker Design單緩沖方式單緩沖方式-內(nèi)部的兩個數(shù)據(jù)緩沖器有一個處于直通內(nèi)部的兩個數(shù)據(jù)緩沖器有一個處于直通方式,另一個處于受單片機控制的鎖存方式。方式,另一個處于受單片機控制的鎖存方式。在實際應用中,如果只有一路模擬量輸出,或雖是多路模擬量輸出但并不要求多路輸出同步的情況下,可采用單緩沖方式。 DAC0832單緩沖方式接口單極性輸出 的正負極性由VREF的極性確定。Tankertanker Design 圖中ILE接5V,IOUT2接地,IOUT1輸出電流經(jīng)運算放大器變換后輸出單極性電壓,范圍為05V。 DAC0832的“8位DAC寄存器”工作于直通方式。“8位輸入寄存器”處于受控狀態(tài),由P2.7來控制。當單片機執(zhí)行如下指令就可在 和 上產(chǎn)生低電平,使DAC0832接收STC89C52送來的數(shù)字量。 MOV DPTR,#7FFFH MOV A,#data MOVXDPTR,ACS1WRTankertanker Design【例11-2】 DAC0832用作波形發(fā)生器。寫出產(chǎn)生三角波和矩形波的程序。Tankerta

溫馨提示

  • 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

提交評論