第8章 AD和DA轉(zhuǎn)換模塊設(shè)計(jì)_第1頁(yè)
第8章 AD和DA轉(zhuǎn)換模塊設(shè)計(jì)_第2頁(yè)
第8章 AD和DA轉(zhuǎn)換模塊設(shè)計(jì)_第3頁(yè)
第8章 AD和DA轉(zhuǎn)換模塊設(shè)計(jì)_第4頁(yè)
第8章 AD和DA轉(zhuǎn)換模塊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)應(yīng)用系統(tǒng)中,外部設(shè)備不一定都是數(shù)字式的,也經(jīng)常會(huì)和模擬式的設(shè)備連接。例如,當(dāng)用單片機(jī)來(lái)控制溫度、壓力時(shí),溫度和壓力都是連續(xù)變化的,都是模擬量,在單片機(jī)與這類外部環(huán)境通信的時(shí)候,就需要有一種轉(zhuǎn)換器來(lái)把模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以便能夠輸入單片機(jī)進(jìn)行處理。而單片機(jī)傳出的控制信號(hào),也必須經(jīng)過(guò)變換變成模擬信號(hào),才能被模擬電路接受。這種變換器就成為模數(shù)(AD)、數(shù)模(DA)轉(zhuǎn)換器。本章將重點(diǎn)介紹A/D、D/A轉(zhuǎn)換器接口,以及相關(guān)應(yīng)用。8.1 串行A/DTLC1543接口電路設(shè)計(jì) 本節(jié)將介紹一種多通道串行A/D轉(zhuǎn)換器TLC1543的功能特點(diǎn)和工作過(guò)程,討論了器件工作方式的選擇,以及器件的工作時(shí)序,并

2、給出了TLC1543的實(shí)際應(yīng)用接口電路及軟件設(shè)計(jì)。8.1.1 概述 TLC1543是由TI公司開(kāi)發(fā)的開(kāi)關(guān)電容式AD轉(zhuǎn)換器,該芯片具有如下的一些特點(diǎn):10位精度、11通道、三種內(nèi)建的自測(cè)模式、提供EOC(轉(zhuǎn)換完成)信號(hào)等。該芯片與單片機(jī)的接口采用串行接口方式,引線很少,與單片機(jī)連接簡(jiǎn)單。 TLC1543的引腳如圖8-1所示。 A0A10是11路輸入; Vcc和GND分別是電源引腳; REF+和REF-分別是參考電源的正負(fù)引腳,使用時(shí)一般將REF-接到系統(tǒng)的地,達(dá)到一點(diǎn)接地的要求,以減少干擾; CS為片選端,如不需選片,可直接接地; I/O Clock是芯片的時(shí)鐘端; Adress是地址選擇端;

3、Data Out是數(shù)據(jù)輸出端,這三根引腳分別接到CPU的三個(gè)I/O 端即可; EOC用于指示一次AD轉(zhuǎn)換已完成,CPU可以讀取數(shù)據(jù),該引腳是低電平有效,根據(jù)需要,該引腳可接入CPU的中斷引腳,一旦數(shù)據(jù)轉(zhuǎn)換完成,向CPU提出中斷請(qǐng)求;此外,也可將該引腳接入一個(gè)普通的I/O引腳,CPU通過(guò)查詢?cè)撘_的狀態(tài)來(lái)了解當(dāng)前的狀態(tài),甚至該引腳也可以不接,在CPU向TLC154發(fā)出轉(zhuǎn)換命令后,過(guò)一段固定的時(shí)間去讀取數(shù)據(jù)即可。8.1.2 工作過(guò)程 TLC1543的工作過(guò)程分為兩個(gè)周期:I/O周期和實(shí)際轉(zhuǎn)換周期。 1.I/O周期 一開(kāi)始,CS為高,I/O CLOCK和ADRESS被禁止以及為DATAOUT高阻狀態(tài)

4、。當(dāng)串行口使CS變低,開(kāi)始轉(zhuǎn)換過(guò)程,I/O CLOCK和ADRESS使能,并使DATAOUT端脫離高阻狀態(tài)。在I/O CLOCK的前4個(gè)脈沖上升沿,以MSB前導(dǎo)方式從ADRESS口輸入4位數(shù)據(jù)流到地址寄存器。這4位為模擬通道地址,控制14通道模擬多路器從11個(gè)模擬輸入和3個(gè)內(nèi)部自測(cè)電壓中(其選擇格式見(jiàn)表8-1),選通一路送到采樣保持電路,該電路從第4個(gè)I/O CLOCK的下降沿開(kāi)始對(duì)所選模擬輸入進(jìn)行采樣,采樣一直持續(xù)6個(gè)I/O CLOCK周期,保持到第10個(gè)I/O CLOCK的下降沿。同時(shí),串口也從DATAOUT端接收前一次轉(zhuǎn)換的結(jié)果。它以MSD前導(dǎo)方式DATAOUT輸出,但MSB出現(xiàn)在DAT

5、AOUT端的時(shí)刻取決于串行接口時(shí)序。TLC1543可以用6種基本串行接口時(shí)序方式,這些方式取決于I/0 CLOCK的速度與CS的工作,如表8-2所示。表 8- 1 工作方式 方式 CS 時(shí)鐘數(shù) DATEOUT 端的 MSB 快 速 方 式 方式 1 轉(zhuǎn)換周期時(shí)為高 10 CS 下降沿 方式 2 連續(xù)低 10 EOC 上升沿 方式 3 轉(zhuǎn)換周期時(shí)為高 1116 CS 下降沿 方式 4 連續(xù)低 16 EOC 上升沿 慢方 速式 方式 5 轉(zhuǎn)換周期時(shí)為高 1116 CS 下降沿 方式 6 連續(xù)低 16 第 16 個(gè)時(shí)鐘下降沿 所用串行時(shí)鐘脈沖的數(shù)目也取決于工作的方式,從10個(gè)到16個(gè)不等,但要開(kāi)始進(jìn)

6、行轉(zhuǎn)換,至少需要10個(gè)時(shí)鐘脈沖。在第10個(gè)時(shí)鐘的下降沿EOC輸出變低,而當(dāng)轉(zhuǎn)換完成時(shí)回到邏輯高電平。需要說(shuō)明的是:如果I/0 CLOCK的傳送多于10個(gè)時(shí)鐘,在第10個(gè)時(shí)鐘的下降沿內(nèi)部邏輯也將DATAOUT變低以保證剩下的各位的值是零。2.轉(zhuǎn)換周期見(jiàn)前所述,轉(zhuǎn)換開(kāi)始于第4個(gè)I/O CLOCK的下降沿之后,片內(nèi)轉(zhuǎn)換器對(duì)采樣值進(jìn)行逐次逼近式A/D轉(zhuǎn)換,其工作由I/O CLOCK同步了的內(nèi)部時(shí)鐘控制。轉(zhuǎn)換結(jié)果鎖存在輸出數(shù)據(jù)寄存器中,待下一個(gè)I/O CLOCK周期輸出。8.1.3 工作時(shí)序其工作過(guò)程分為兩個(gè)周期:訪問(wèn)周期和采樣周期。工作狀態(tài)由CS使能或禁止,工作時(shí) CS必須置低電平。CS為高電平時(shí),I

7、/O CLOCK、ADDRESS被禁止,同時(shí)DATAOUT為高阻狀態(tài)。當(dāng)CPU使CS變低時(shí),TLC1543開(kāi)始數(shù)據(jù)轉(zhuǎn)換,I/O CLOCK、ADDRESS使能,DATAOUT脫離高阻狀態(tài)。隨后,CPU向ADDRESS端提供4位通道地址,控制14個(gè)模擬通道選擇器從11個(gè)外部模擬輸入和3個(gè)內(nèi)部自測(cè)電壓中選通1路送 到采樣保持電路。同時(shí),I/O CLOCK端輸入時(shí)鐘時(shí)序,CPU從DATAOUT端接收前一次A/D轉(zhuǎn)換結(jié)果。I/O CLOCK從CPU接受10個(gè)時(shí)鐘長(zhǎng)度的時(shí)鐘序列。前4個(gè)時(shí)鐘用4位地址從 ADDRESS端裝載地址寄存器,選擇所需的模擬通道,后6個(gè)時(shí)鐘對(duì)模擬輸入的采樣提供控制時(shí)序。 模擬輸入

8、的采樣起始于第4個(gè)I/O CLOCK的下降沿,而采樣一直持續(xù)6個(gè)I/O CLOCK周期,并一直保持到第10個(gè)I/O CLOCK的下降沿。轉(zhuǎn)換過(guò)程中,CS的下降沿使DATAOUT引腳脫離高阻狀態(tài)并 起動(dòng)一次I/O CLOCK的工作過(guò)程。CS的上升沿終止這個(gè)過(guò)程并在規(guī)定的延遲時(shí)間內(nèi)使DATAOUT引腳返回到高阻狀態(tài),經(jīng)過(guò)兩個(gè)系統(tǒng)時(shí)鐘周期后禁止I/O CLOCK和ADDRESS端。圖8- 2 TLC1543時(shí)序圖 【例8-1】 利用開(kāi)發(fā)板,模數(shù)轉(zhuǎn)換芯片采用TLC1543,試編寫(xiě)程序,將設(shè)定數(shù)字量轉(zhuǎn)換成模擬量,從數(shù)模轉(zhuǎn)換端口可測(cè)得電壓值。原理圖如圖8-3所示。 圖8- 3 例8-1原理圖完整源程序如下

9、:/*實(shí)驗(yàn)名稱:數(shù)模轉(zhuǎn)換實(shí)驗(yàn)現(xiàn)象:從數(shù)模轉(zhuǎn)換端口可測(cè)得電壓值*/#include#include /移位函數(shù)頭文件unsigned int a,b; /定義變量sbit di=P37; /定義串行輸入口 sbit clock=P36; /定義時(shí)鐘位sbit cs=P35; /定義片選位/*/ /* 延時(shí)子程序 */ /*/ void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-) for(y=114;y0;y-);void _nop_(); /空操作 較短延時(shí) /*/ /* 主程序 */ /*/ void main()while(1)u

10、nsigned char i;cs=1; /初始化clock=0;cs=0;di=1;for(i=12;i0;) /送數(shù)i-;if(a&0 x8000) /取第一位di=1;elsedi=0;clock=1;_nop_(); /調(diào)用延時(shí)_nop_();clock=0;_nop_();_nop_();a=a1;cs=1; /送數(shù)完成b=b+1000; /送入的數(shù)字量加1a=b;delay(500); /*實(shí)驗(yàn)名稱:數(shù)模轉(zhuǎn)換實(shí)驗(yàn)現(xiàn)象:從數(shù)模轉(zhuǎn)換端口可測(cè)得電壓值*/#include#include /移位函數(shù)頭文件unsigned int a,b; /定義變量sbit di=P37; /定義串行輸入

11、口 sbit clock=P36; /定義時(shí)鐘位sbit cs=P35; /定義片選位/*/ /* 延時(shí)子程序 */ /*/ void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-) for(y=114;y0;y-);void _nop_(); /空操作 較短延時(shí) /*/ /* 主程序 */ /*/ void main()while(1)unsigned char i;cs=1; /初始化clock=0;cs=0;di=1;for(i=12;i0;) /送數(shù)i-;if(a&0 x8000) /取第一位di=1;elsedi=0;cloc

12、k=1;_nop_(); /調(diào)用延時(shí)_nop_();clock=0;_nop_();_nop_();a=a1;cs=1; /送數(shù)完成b=b+1000; /送入的數(shù)字量加1a=b;delay(500); 實(shí)驗(yàn)現(xiàn)象如圖8-4所示。8.2 TLC5615接口電路設(shè)計(jì)目前,數(shù)模轉(zhuǎn)換器從接口上可分為兩大類:并行接口數(shù)模轉(zhuǎn)換器和串行數(shù)模轉(zhuǎn)換器并行接口數(shù)模轉(zhuǎn)換器的引腳多、體積大,占用單片機(jī)的口線多;而串行數(shù)模轉(zhuǎn)換器可采用TLC5615串行模擬轉(zhuǎn)換器產(chǎn)生可變基準(zhǔn)電壓來(lái)解決問(wèn)題。8.2.1 概述TLC5615是一個(gè)串行10位DAC芯片, 性能比早期電流型輸出的DAC要好。只需要通過(guò)3根串行總線就可以完成10位數(shù)

13、據(jù)的串行輸入,易于和工業(yè)標(biāo)準(zhǔn)的微處理器或微控制器(單片機(jī)) 接口, 適用于電池供電的測(cè)試儀表、移動(dòng)電話,也適用于數(shù)字失調(diào)與增益調(diào)整以及工業(yè)控制場(chǎng)合。8腳直插式TLC5615的引腳分布如圖8-5所示,各引腳功能如下:DIN ,串行二進(jìn)制數(shù)輸入端;SCLK ,串行時(shí)鐘輸入端;CS ,芯片選擇,低有效;DOUT ,用于級(jí)聯(lián)的串行數(shù)據(jù)輸出;AGND ,模擬地;REFIN ,基準(zhǔn)電壓輸入端;OUT ,DAC 模擬電壓輸出端;VDD ,正電源電壓端。圖8- 5 引腳排列 TLC5615 的工作原理的工作原理TLC5615 的時(shí)序TLC5615工作時(shí)序如圖8-6所示??梢钥闯?只有當(dāng)片選CS為低電平時(shí), 串

14、行輸入數(shù)據(jù)才能被移入16位移位寄存器。當(dāng)CS為低電平時(shí),在每一個(gè)SCLK時(shí)鐘的上升沿將DIN的一位數(shù)據(jù)移入16位移寄存器。注意, 二進(jìn)制最高有效位被導(dǎo)前移入。接著,CS的上升沿將16位移位寄存器的10位有效數(shù)據(jù)鎖存于10位DAC寄存器, 供DAC電路進(jìn)行轉(zhuǎn)換; 當(dāng)片選CS為高電平時(shí),串行輸入數(shù)據(jù)不能被移入16位移位寄存器。注意, CS的上升和下降都必須發(fā)生在SCLK為低電平期間。當(dāng)片選CS為高電平時(shí),串行輸入數(shù)據(jù)DIN不能由時(shí)鐘同步送入移位寄存器;輸出數(shù)據(jù)DOUT保持最近的數(shù)值不變而不進(jìn)入高阻狀態(tài)。由此要想串行輸入數(shù)據(jù)和輸出數(shù)據(jù)必須滿足兩個(gè)條件:第一時(shí)鐘SCLK的有效跳變;第二片選CS為低電平

15、。這里,為了使時(shí)鐘的內(nèi)部饋通最小,當(dāng)片選CS為高電平時(shí),輸入時(shí)鐘SCLK應(yīng)當(dāng)為低電平。從圖中可以看出,最大串行時(shí)鐘速率為:f( sclk ) max =1/ tw( CH ) + tw( CS )14MHz圖8- 6 TLC5615 的時(shí)序圖 2.兩種工作方式 從內(nèi)部功能分析,16 位移位寄存器分為高4位虛擬位、低2位填充位以及10位有效位。在單片TLC5615工作時(shí), 只需要向16位移位寄存器按先后輸入10位有效位和低2位填充位, 2位填充位數(shù)據(jù)任意,這是第一種方式,即12位數(shù)據(jù)序列。第二種方式為級(jí)聯(lián)方式, 即16位數(shù)據(jù)序列, 可以將本片的DOUT接到下一片的DIN , 需要向16位移位寄存

16、器按先后輸入高4位虛擬位、10位有效位和低2位填充位, 由于增加了高4位虛擬位, 所以需要16個(gè)時(shí)鐘脈沖。 無(wú)論工作在哪一種方式,輸出電壓為: VOUT = VREFIN N / 1024 其中, VREFIN是參考電壓, N為輸入的二進(jìn)制數(shù)。 3.TLC5615 與AT89C52 單片機(jī)接口 硬件連接: AT89C52單片機(jī)的最大優(yōu)點(diǎn)是內(nèi)部具有電擦除的8kB EPROM , 易于通過(guò)ALL 03等編程與擦除,而且具有低功耗等特點(diǎn)。利用AT89C52 單片機(jī)的通用I/ O口( P1 口)TLC5615 構(gòu)成的DAC電路如圖8-7所示。分別用P1. 0 、P1. 2模擬時(shí)鐘SCLK和片選CS ,

17、 待轉(zhuǎn)換的二進(jìn)制數(shù)從P1. 1輸出到TLC5615的數(shù)據(jù)輸入端DIN 。圖8- 7 硬件連接圖【例8-2】利用開(kāi)發(fā)板,模數(shù)轉(zhuǎn)換芯片采用TLC5615,編寫(xiě)程序,用數(shù)碼管顯示A/D轉(zhuǎn)換電壓值,可通過(guò)對(duì)數(shù)據(jù)輸入端賦不同值改變模擬量的不同輸入方法。原理圖如圖8-8所示。圖8- 8 例8-2原理圖完整源程序如下:/*實(shí)驗(yàn)名稱:模數(shù)轉(zhuǎn)換程序說(shuō)明:把J4,J29,J30用短路帽短接,J1要短接左端,用數(shù)碼管顯示AD轉(zhuǎn)換電壓值, 擰動(dòng)電位器R17可以得到不同的電壓值 可通過(guò)對(duì)數(shù)據(jù)輸入端賦不同值改變模擬量的不同輸入方法*/ #include#include unsigned char led=0 xc0,0

18、xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8, 0 x80,0 x90,0 x88,0 x83, 0 xa7,0 xa1,0 x82,0 x8e;/數(shù)碼管的字符數(shù)組sbit P2_0=P20;/數(shù)碼管的位選sbit P2_1=P21;/數(shù)碼管的位選sbit P2_2=P22;/數(shù)碼管的位選sbit P2_3=P23;/數(shù)碼管的位選sbit P0_7=P07;/小數(shù)點(diǎn)顯示位sbit cs=P13; /片選sbit dout=P14; /數(shù)據(jù)輸出端sbit adin=P15; /數(shù)據(jù)輸入端sbit clock=P16; /時(shí)鐘端sbit eoc=P17; /檢測(cè)端

19、sfr16 DPTR=0 x82; /定義16位特殊功能寄存器 便于調(diào)用數(shù)據(jù)來(lái)數(shù)碼管顯示unsigned char i; /定義變量unsigned int a,b,r,s,n,m; /*/ /* 延時(shí)子程序 */ /*/ void delay(unsigned int z) /1ms的延時(shí)程序unsigned int x,y;for(x=z;x0;x-) for(y=114;y0;y-); /*/ /* 延時(shí)子程序 */ /*/ void delay_2()/較短的延時(shí)程序 unsigned int y=300,x; while(y) for(x=2;x0;x-); y-; void _no

20、p_(); /*/ /* 模數(shù)轉(zhuǎn)換子程序 */ /*/ zcx() /有返回值子程序 cs=1; /初始化clock=0;dout=1;adin=0; /模擬量輸入端選擇的第1位cs=0;while(!eoc); /檢測(cè)是否完成_nop_();_nop_();a=0;for(i=0;i10;) /開(kāi)始讀數(shù)據(jù)i+;if(dout=0) /判斷數(shù)據(jù)輸出為0時(shí)存入寄存器a 并左移1位 if(i!=10)a=a1;if(dout=1) /判斷數(shù)據(jù)輸出為1時(shí) 取出該位數(shù)據(jù)存入寄存器a 并左移1位 a=a|0 x0001;/取出最低位的1if(i!=10)a=a1;clock=1;_nop_();cloc

21、k=0; /數(shù)據(jù)讀取完成,a中為讀取的有效10位數(shù)字,且在低位b=a; b=b6; /讀取的數(shù)右移6位,為取其高8位作準(zhǔn)備DPTR=b;if(i=1)adin=0; /模擬量輸入端選擇的第2位if(i=2)adin=0; /模擬量輸入端選擇的第3位if(i=3)adin=1; /模擬量輸入端選擇的第4位 return(b); /*/ /* 顯示子程序 */ /*/ void display() cs=1;_nop_(); delay(12); P2_1=0; /以下為數(shù)碼管顯示程序r=DPH*50;r=r/255;r=r/10; P0=ledr;P0_7=0;delay_2();P0=0 xf

22、f;P2_1=1; P2_0=0;s=DPH*50;s=s/255;s=s%10;P0=leds;delay_2();P0=0 xff;P2_0=1; /*/ /* 主函數(shù) */ /*/ void main()zcx(); /調(diào)用模數(shù)轉(zhuǎn)換子程序display(); /調(diào)用顯示子程序8.2.3 并行數(shù)模轉(zhuǎn)換DAC0832模擬 DAC0832是采用CMOS工藝制成的單片直流輸出型8位數(shù)/模轉(zhuǎn)換器。由于其片內(nèi)有輸入數(shù)據(jù)寄存器,故可以直接與單片機(jī)接口。如圖8-9所示,它由倒T型R-2R電阻網(wǎng)絡(luò)、模擬開(kāi)關(guān)、運(yùn)算放大器和參考電壓VREF四大部分組成。運(yùn)算放大器輸出的模擬量V0為:圖8- 9 型電阻網(wǎng)絡(luò)D/

23、A轉(zhuǎn)換器DAC0832以電流形式輸出,當(dāng)需要轉(zhuǎn)換為電壓輸出時(shí),可外接運(yùn)算放大器。屬于該系列的芯片還有DAC0830、DAC0831,它們可以相互代換。DAC0832主要特性:分辨率位;電流建立時(shí)間S;數(shù)據(jù)輸入可采用雙緩沖、單緩沖或直通方式;輸出電流線性度可在滿量程下調(diào)節(jié);邏輯電平輸入與TTL電平兼容;單一電源供電(5V15V);低功耗,20m。DAC0832引腳如圖8-10所示,各引腳功能:DI0DI7,數(shù)據(jù)輸入線,TLL電平;ILE,數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;CS,片選信號(hào)輸入線,低電平有效;WR1,輸入寄存器的寫(xiě)選通信號(hào);XFER,數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效;WR2,

24、DAC寄存器寫(xiě)選通輸入線;Iout1,電流輸出線,當(dāng)輸入全為1時(shí)Iout1最大;Iout2,電流輸出線,其值與Iout1之和為一常數(shù);Rfb,反饋信號(hào)輸入線,芯片內(nèi)部有反饋電阻;Vcc,電源輸入線(+5V+15V);Vref,基準(zhǔn)電壓輸入線(-10V+10V);AGND,模擬地,模擬信號(hào)和基準(zhǔn)電源的參考地。1.DAC0832時(shí)序D0-D7數(shù)據(jù)加入后,在ILE=1,CS=0,WR1由低電平向高電平轉(zhuǎn)換時(shí),數(shù)據(jù)被鎖存在8位輸入寄存器中。XFER和WR2同時(shí)為0時(shí),數(shù)據(jù)被加到變換寄存器上,開(kāi)始產(chǎn)生模擬輸出。若XFER和WR2均接地,第二級(jí)鎖存器總是導(dǎo)通的,而ILE接高電平時(shí),只要D0-D7寫(xiě)入一個(gè)數(shù)

25、據(jù),同時(shí)給CS和WR2送一個(gè)選通脈沖,即可完成一次新的變換。如果系統(tǒng)中接有多片DAC0832,且要求各片的輸出模擬量,在一次新的變換中同時(shí)發(fā)生變化,即各片的輸出量在同一時(shí)刻發(fā)生變化,則可以分別利用CS、WR1和ILE信號(hào)將各路要變換的數(shù)據(jù)送入各自的第一級(jí)輸入寄存器中,然后在所有芯片的WR2和XFER端同時(shí)加一個(gè)負(fù)脈沖,這樣在WR2的上升沿,數(shù)據(jù)將由各輸入寄存器鎖存到DAC寄存器中,從而實(shí)現(xiàn)多片的同時(shí)變換輸出。DAC0832時(shí)序如圖8-11所示。圖8- 11 DAC0832時(shí)序圖2.DAC0832與80C52單片機(jī)的接口常用DAC0832與單片機(jī)有三種基本的接口方法:即直通方式、單級(jí)緩沖器連接方

26、式和雙級(jí)緩沖器連接方式。(1)直通方式當(dāng)DAC0832芯片的片選信號(hào)、寫(xiě)信號(hào)、及傳送控制信號(hào)的引腳全部接地,允許輸入鎖存信號(hào)ILE引腳接5V時(shí),DAC0832芯片就處于直通工作方式,數(shù)字量一旦輸入,就直接進(jìn)入DAC寄存器,進(jìn)行D/A轉(zhuǎn)換。連接圖如8-12所示。圖8- 12 直通方式(2)單緩沖工作方式單緩沖工作方式適用于只有一路模擬量輸出,或有幾路模擬量輸出但并不要求同步的系統(tǒng)。 與單片機(jī)連接圖如8-13所示。(3)雙緩沖工作方式多路D/A轉(zhuǎn)換輸出,如果要求同步進(jìn)行,就應(yīng)該采用雙緩沖器同步方式 。與單片機(jī)連接圖如8-14所示。圖8- 14 雙緩沖工作方式【例8-3】電路如圖8-15所示,單片機(jī)

27、采用AT89C52,編寫(xiě)程序,模擬并行數(shù)模轉(zhuǎn)換,實(shí)現(xiàn)輸出的模擬量不同可使小燈亮度不同,電壓表數(shù)值不斷變化。圖8- 15 數(shù)模轉(zhuǎn)換模擬電路圖完整源程序如下:/*實(shí)驗(yàn)名稱:仿真并行口 數(shù)模轉(zhuǎn)換實(shí)驗(yàn)現(xiàn)象:輸出的模擬量不同可使小燈亮度不同 電壓表數(shù)值不斷變化*/ #includesbit wr=P36; /寫(xiě)入端位定義sbit csda=P32; /片選端位定義unsigned char code tab=0 xff,0 xf8,0 xf0,0 xe8,0 xe0,0 xd8,0 xd0,0 xc8,0 xc0,0 xb8; /定義輸入數(shù)字量數(shù)組unsigned int aa,i; /變量定義 /*

28、賦初值子程序*/void init() TMOD=0 x01; /設(shè)置定時(shí)器0模式 TH0=(65536-50000)/256; /賦初值 TL0=(65536-50000)%256; EA=1; /開(kāi)總中斷 ET0=1; /開(kāi)定時(shí)器0中斷 TR0=1; /開(kāi)啟定時(shí)器0 /* 主程序*/void main() init(); /調(diào)用賦初值子程序while(1) csda=0; /片選選定 wr=0; /寫(xiě)入條件 P0=tabi; /轉(zhuǎn)換后的模擬量給P0口 /* 定時(shí)器0子程序*/void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(6553

29、6-50000)%256; aa+; if(aa=20) /定時(shí)器計(jì)時(shí)1s aa=0; i=i+1; if(i=10) /掃描10次 i=0; /清零循環(huán)8.2.4 ADC0804轉(zhuǎn)換芯片ADC0804是用CMOS集成工藝制成的逐次比較型摸數(shù)轉(zhuǎn)換芯片。分辨率8位,轉(zhuǎn)換時(shí)間100s,輸入電壓范圍為05V,增加某些外部電路后,輸入模擬電壓可為 5V。該芯片內(nèi)有輸出數(shù)據(jù)鎖存器,當(dāng)與計(jì)算機(jī)連接時(shí),轉(zhuǎn)換電路的輸出可以直接連接在CPU數(shù)據(jù)總線上,無(wú)須附加邏輯接口電路。ADC0804芯片外引腳圖如8-16所示。引腳名稱及意義如下:AGND:模擬信號(hào)地。DGND:數(shù)字信號(hào)地。CLKIN:外電路提供時(shí)鐘脈沖輸入

30、端CLKR:內(nèi)部時(shí)鐘發(fā)生器外接電阻端,與CLKIN端配合可由芯片自身產(chǎn)生時(shí)鐘脈沖,其頻率為1/1.1RC。CS:片選信號(hào)輸入端,低電平有效,一旦CS有效,表明A/D轉(zhuǎn)換器被選中,可啟動(dòng)工作。WR:寫(xiě)信號(hào)輸入,接受微機(jī)系統(tǒng)或其它數(shù)字系統(tǒng)控制芯片的啟動(dòng)輸入端,低電平有效,當(dāng)CS、WR同時(shí)為低電平時(shí),啟動(dòng)轉(zhuǎn)換。RD:讀信號(hào)輸入,低電平有效,當(dāng)CS、RD同時(shí)為低電平時(shí),可讀取轉(zhuǎn)換輸出數(shù)據(jù)。INTR:轉(zhuǎn)換結(jié)束輸出信號(hào),低電平有效。輸出低電平表示本次轉(zhuǎn)換已完成。該信號(hào)常作為向微機(jī)系統(tǒng)發(fā)出的中斷請(qǐng)求信號(hào)。ADC0804時(shí)序當(dāng)CS與WR同為低電平時(shí),A/D轉(zhuǎn)換被啟動(dòng)而在WR上升沿后100s模數(shù)完成轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入數(shù)據(jù)鎖存器,同時(shí)INTR自動(dòng)變?yōu)榈碗娖?,表示本次轉(zhuǎn)換已結(jié)束。如CS、RD同時(shí)來(lái)低電平,則數(shù)據(jù)鎖存

溫馨提示

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

評(píng)論

0/150

提交評(píng)論