版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目四單片機的A/D和D/A電路
4.1單片機的A/D電路4.2常用ADC簡介4.3單片機的D/A電路4.4常用DAC簡介制作指南4A/D和D/A電路制作指南本章知識總結學習目標
了解A/D、D/A的基本概念和主要參數(shù);
掌握ADC0804、DAC0832的功能及應用;
掌握ADC0804、DAC0832與單片機之間的硬件電路的連接和程序編寫;
掌握查看芯片數(shù)據(jù)手冊的方法;
熟練掌握ADC0804、DAC0832的典型應用方法。
能力目標
能夠根據(jù)實際需求,選擇相應的AD、DA芯片,并能根據(jù)相關資料,設計出與單片機連接的電路;掌握用單片機控制AD、DA芯片的控制方法。
4.1單片機的A/D電路
單片機本身只能處理數(shù)字信號,但在實際應用中,很多情況下都需要對模擬信號進行處理,如果想要測量模擬信號,則需要將模擬信號轉換成數(shù)字信號,再送單片機進行處理,這就是A/D電路。如果是想要用單片機輸出一個模擬量,則需要將單片機輸出的數(shù)字量轉換成模擬量,這就是D/A電路。
4.1.1A/D轉換的基本概念
A/D轉換就是模/數(shù)轉換,即把模擬信號轉換成數(shù)字信號。能完成A/D轉換的電路,叫做模/數(shù)轉換器,簡稱ADC(AnalogtoDigitalConverter)。
1.?A/D轉換的步驟
A/D轉換的一般步驟是將連續(xù)的模擬信號轉換為離散的數(shù)字信號,通常的轉換過程為取樣、保持、量化和編碼。
1)取樣與保持
取樣是將時間上連續(xù)變化的信號轉換為時間上離散的信號,即將時間上連續(xù)變化的模擬信號轉換為一系列等間隔的脈沖,脈沖的幅度取決于輸入模擬信號,波形如圖4.1所示。圖4.1采樣波形圖由于采樣脈沖的寬度很小,需要在取樣之后加一個保持電路,保持電路實際上就是一個存儲電路,所以通常利用電容器C的存儲電荷(電壓)的作用以保持樣值脈沖,如圖4.2
所示。圖4.2采樣保持電路
2)量化與編碼
將采樣電壓轉化為數(shù)字量最小數(shù)量單位的整數(shù)倍,這個轉化過程叫量化,所規(guī)定的最小數(shù)量單位叫作量化單位,用S表示。將量化的數(shù)值用二進制代碼表示,稱為編碼。這個二進制代碼便是A/D轉換器的輸出信號。
量化的方法有兩種,一種是最小數(shù)量單位為1/8?V,另外一種是最小數(shù)量單位為2/15?V,如圖4.3所示。圖4.31/8?V和2/15?V量化4.1.2ADC的分類
ADC有積分型、逐次比較型、并行比較型/串并行比較型、Σ-Δ調制型等類型。
積分型的ADC工作原理是將輸入電壓轉換成時間(脈沖寬度信號)或頻率(脈沖頻率),然后由定時器/計數(shù)器獲得數(shù)字值。
逐次比較型ADC由一個比較器和DAC通過逐次比較邏輯構成,從MSB(最高有效位)開始,順序地對每一位將輸入電壓與內置DAC輸出進行比較,經n次比較而輸出數(shù)字值。
并行比較型ADC采用多個比較器,僅作一次比較而實行轉換,又稱FLash(快速)型。由于其轉換速率極高,n位的轉換需要2n?-?1個比較器,因此電路規(guī)模大,價格高,只適用于視頻ADC等速度特別高的領域。串并行比較型ADC結構上介于并行型和逐次比較型之間,最典型的是由2個n/2位的并行型ADC配合DAC組成,用兩次比較實行轉換,所以稱為Halfflash(半快速)型。并行比較型ADC采用多個比較器,僅作一次比較而實行轉換,又稱Flash(快速)型。
Σ-Δ型ADC由積分器、比較器、1位DAC和數(shù)字濾波器等組成。其原理上跟積分型相似,將輸入電壓轉換成時間(脈沖寬度)信號,用數(shù)字濾波器處理后得到數(shù)字值。4.1.3ADC的主要參數(shù)
ADC的主要參數(shù)說明如下:
(1)分辨率:數(shù)字量變化一個最小量時模擬信號的變化量,定義為滿刻度與2n的比值。分辨率又稱精度,通常以數(shù)字信號的位數(shù)來表示。
(2)轉換速率(ConversionRate):完成一次從模擬轉換到數(shù)字的A/D轉換所需的時間的倒數(shù)。積分型ADC的轉換時間是毫秒級屬低速A/D轉換,逐次比較型ADC是微秒級屬中速A/D轉換,并行比較型/串并行比較型ADC可達到納秒級。另外,采樣時間是指兩次轉換的時間間隔。為了保證轉換的正確完成,采樣速率(SampleRate)必須小于或等于轉換速率。因此有人習慣上將轉換速率在數(shù)值上等同于采樣速率也是可以接受的。常用單位是ks/s和Ms/s,分別表示千次采樣每秒和百萬次采樣每秒。
(3)量化誤差(QuantizingError):ADC的有限分辨率而引起的誤差,即有限分辨率ADC的階梯狀轉移特性曲線與無限分辨率ADC(理想ADC)的轉移特性曲線(直線)之間的最大偏差。通常是1個或半個最小數(shù)字量的模擬變化量,表示為1LSB、1/2LSB。
(4)偏移誤差(OffsetError):輸入信號為零時輸出信號不為零的值,可外接電位器調至最小。
(5)滿刻度誤差(FullScaleError):滿刻度輸出時對應的輸入信號與理想輸入信號值之差。
(6)線性度(Linearity):實際轉換器的轉移函數(shù)與理想直線的最大偏移。
4.2常用ADC簡介
4.2.1常用ADC
常用的ADC有積分型、逐次逼近型、并行比較型等,其中逐次逼近型ADC的轉換速度快,轉換精度高,價格適中,目前是最常用的ADC。如TLC0831、ADC0804、ADC0809。
4.2.2ADC0804的技術指標
ADC0804的主要技術指標如下:
(1)高阻抗狀態(tài)輸出;
(2)分辨率:8位(0~255);
(3)存取時間:135ms;
(4)轉換時間:100ms;
(5)總誤差:-1LSB~+1LSB;
(6)工作溫度:ADC0804C為0~70℃;ADC0804L為-40℃~85℃;
(7)模擬輸入電壓范圍:0~5?V;
(8)參考電壓:2.5?V;
(9)工作電壓:5?V;
(10)輸出為三態(tài)結構。4.2.3ADC0804的引腳
ADC0804一共有20個引腳,雙列直插式封裝,如圖4.4所示。
ADC0804各引腳功能如下:
:芯片片選信號,低電平有效,即=?0,該芯片才能正常工作。在外接多個ADC0804芯片時,該信號可以作為選擇地址使用,通過不同的地址信號使能不同的ADC0804芯片,從而可以實現(xiàn)多個ADC通道的分時復用。
:啟動ADC0804進行ADC采樣。該信號低電平有效,即信號由高電平變成低電平時,觸發(fā)一次A/C轉換。圖4.4ADC0804的引腳:低電平有效,即=?0時,可以通過數(shù)據(jù)端口DB0~DB7讀出本次的采樣結果。
VIN(+)和VIN(-):模擬電壓輸入接VIN(+)端,VIN(-)端接地。雙邊輸入時VIN(+)、VIN(-)分別接模擬電壓信號的正端和負端。當輸入的模擬電壓信號存在“零點漂移電壓”時,可在VIN(-)接一等值的零點補償電壓,變換時將自動從VIN(+)中減去這一電壓。
VREF/2:參考電壓接入引腳。該引腳可外接電壓,也可懸空,若接外界電壓,則ADC的參考電壓為該外界電壓的兩倍;若不外接,則VREF與VCC共用電源電壓,此時ADC的參考電壓即為電源電壓VCC的值。
CLKR和CLKIN:外接RC電路產生模數(shù)轉換器所需的時鐘信號,時鐘頻率CLK=,一般要求頻率范圍100?kHz~1.28?MHz。
AGND和DGND:分別接模擬地和數(shù)字地。
:中斷請求信號輸出引腳,該引腳低電平有效,當一次A/D轉換完成后,將引起=?0。實際應用時,該引腳應與微處理器的外部中斷輸入引腳相連(如51單片機的INT0,INT1腳),當產生信號有效時,還需等待
=?0才能正確讀出A/D轉換結果,若ADC0804單獨使用,則可以將引腳懸空。
DB0~DB7:輸出A/D轉換后的8位二進制結果。4.2.4ADC0804的典型應用電路與控制方法
通過查詢ADC0804數(shù)據(jù)手冊,可以找到ADC0804的典型應用電路(TypicalApplications),如圖4.5所示。
對ADC0804控制時,需要參考其操作時序圖,在ADC0804的數(shù)據(jù)手冊中,可以找到ADC0804的時序圖,如圖4.6所示。圖4.5ADC0804的典型應用電路圖4.6ADC0804時序圖從圖4.6中我們可以看出,在開始轉換時,先為低電平,然后置為低電平,低電平維持時間為tw(
)L后,置為高電平,A/D轉換啟動,經過1~8個時鐘周期+內部Tc的時間后,A/D轉換完成,轉換結果存入數(shù)據(jù)鎖存器,
變?yōu)榈碗娖?,其中tw(
)L的時間最低為100?ns,而Tc在fCLK?=?640?kHz的最短時間為103?μs,當VCC?=?5?V時,fCLK的典型值為640?kHz。
在讀取A/D轉換結果時,要參考圖4.7中的時序。圖4.7ADC0804讀取結果時序圖
A/D轉換結束后,變?yōu)榈碗娖?,然后我們需要?/p>
置為低電平,接著再將置為低電平,在經過tACC時間后,就可以讀取轉換后的數(shù)據(jù),待讀取結束后,需要將
再置為高電平,然后再將置為高電平。從時序圖中我們可以看出,在置低電平tR1(300?ns)后,會自動變?yōu)楦唠娖健?/p>
在實際應用中,只需要參考這兩個時序圖,就可以寫出相應的程序代碼,如果需要連續(xù)轉換,可以一直置為低電平。綜上所述,可以總結出ADC0804芯片操作流程:
(1)啟動A/D轉換;
(2)查詢引腳,當引腳由高電平變?yōu)榈碗娖綍r,表示A/D轉換結束;
(3)讀取轉換結果。4.2.5ADC0804應用舉例
【例4.1】采集電位器上模擬電壓值,將轉換結果送到P1口,并顯示在發(fā)光二極管上。
解析:
(1)硬件電路。根據(jù)ADC0804數(shù)據(jù)手冊,根據(jù)典型應用電路和題目要求,可以設計出電路原理圖,如圖4.8所示。
(2)程序代碼如下:
#include<reg52.h>
sbitCS=P0^0; //定義片選端
sbitINTR=P0^1;
voiddelay_ms(unsignedcharz) //ms級帶參數(shù)延時函數(shù)
{
unsignedcharx,y;
for(x=z;x>0;x--)
for(y=0;y<110;y++);
}
voidinit() //初始化函數(shù)CS=0
{
CS=0;
}
voidstart() //啟動A/D轉換函數(shù)
{
WR=1;
WR=0;
WR=1;
}
voidmain()
{
init(); //調用初始化函數(shù)
while(1)
{
start(); //調用啟動A/D轉換函數(shù)
RD=0;
delay_ms(1);
P1=P2;
//讀取轉換結果,將結果傳給P1口
RD=1;
}
}
【例4.2】采集電位器上模擬電壓值,將轉換結果以十進制的形式在數(shù)碼管上顯示。
解析:
(1)硬件電路。由例4.1可得到ADC0804與單片機連接硬件圖,再根據(jù)項目三中的數(shù)碼管顯示電路,就可以設計出滿足題目要求的電路,如圖4.9所示。
(2)程序代碼如下:
#include<reg52.h>
sbitCS=P0^4;
sbitINTR=P0^5;
sbitDK=P0^6;sbitWK=P0^7;
unsignedchartemp,bai,shi,ge;
unsignedcharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelay_ms(unsignedcharz) //ms級帶參數(shù)延時函數(shù)
{
unsignedcharx,y;
for(x=z;x>0;x--)
for(y=0;y<110;y++);
}voidinit() //初始化函數(shù)CS=0
{
CS=0;
}
voidstart() //啟動A/D轉換函數(shù)
{
WR=1;
WR=0;
WR=1;
}
voiddisplay(unsignedcharbai,shi,ge) //顯示函數(shù)
{
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
P2=table[bai]; //百位顯示
DK=1;
DK=0;
P2=0xfe;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
P2=table[shi]; //十位顯示
DK=1;
DK=0;
P2=0xfd;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
P2=table[ge]; //個位顯示
DK=1;
DK=0;
P2=0xfb;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
}
voidmain()
init(); //調用初始化
DK=0; //關閉段選鎖存端
WK=0; //關閉位選鎖存端
while(1)
{
start();//調用啟動A/D轉換函數(shù)
while(INTR!=0); //等待A/D轉換完成 RD=0;
delay_ms(1);
temp=P1;//讀取轉換結果,將結果賦值給變量temp
RD=1;
display(bai,shi,ge); //調用顯示函數(shù)
}
}
【例4.3】在例4.2電路的基礎上,將采集的電壓值顯示在數(shù)碼管上。
解析:
由于ADC0804是一個8位的A/D轉換器,因此分辨率為5?×?1/256?=?0.0196?V,所以在計算數(shù)值時,需要將轉換結果乘以分辨率,然后再進行計算,得出各位的數(shù)值,再顯示到數(shù)碼管上即可。
程序代碼如下:
#include<reg52.h>
sbitCS=P0^4;
sbitINTR=P0^5;
sbitDK=P0^6;
sbitWK=P0^7;
unsignedinttemp,qian,bai,shi,ge;
unsignedcharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelay_ms(unsignedcharz)
//ms級帶參數(shù)延時函數(shù)
{
unsignedcharx,y;
for(x=z;x>0;x--)
for(y=0;y<110;y++);
}
voidinit() //初始化函數(shù)CS=0
{
CS=0;
}
voidstart() //啟動A/D轉換函數(shù)
{
WR=1;
WR=0;
WR=1;
}
voiddisplay(unsignedcharqian,bai,shi,ge) //顯示函數(shù)
{
P2=table[qian]+0x80; //整數(shù)位顯示,加0x80讓整數(shù)位顯示小數(shù)點
DK=1;
DK=0;
P2=0xfe;
WK=1;
delay_ms(2);
P2=0xff;
WK=0; P2=table[bai]; //小數(shù)點后第一位顯示
DK=1;
DK=0;
P2=0xfd;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
P2=table[shi]; //小數(shù)點后第二位顯示
DK=1;
DK=0;
P2=0xfb;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
P2=table[ge]; //小數(shù)點后第三位顯示
DK=1;
DK=0;
P2=0xf7;
WK=1;
delay_ms(2);
P2=0xff;
WK=0;
}
voidmain()
{
init(); //調用初始化
DK=0; //關閉段選鎖存端
WK=0; //關閉位選鎖存端 while(1)
{
start(); //調用啟動A/D轉換函數(shù)
while(INTR!=0); //等待A/D轉換完成
RD=0;
delay_ms(1);
temp=P1; //讀取轉換結果,將結果賦值給變量temp
RD=1;
temp=temp*196; //乘以分辨率 temp=temp*196; //乘以分辨率
qian=temp/10000; //取整數(shù)位的數(shù)值
bai=temp/1000%10; //取小數(shù)點后第一位數(shù)值
shi=temp/100%10; //取小數(shù)點后第二位數(shù)值
ge=temp/10%10; //取小數(shù)點后第三位數(shù)值
display(qian,bai,shi,ge); //調用顯示函數(shù)
}
}4.2.6ADC0809芯片簡介
ADC0809是8通道8位逐次比較原理進行模/數(shù)轉換的器件,其內部有一個8通道模擬多路開關,可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉換,轉換后的數(shù)據(jù)由三態(tài)鎖存器輸出。ADC0809片內沒有時鐘,需外接時鐘信號;模擬輸入電壓范圍為單極性0~5?V,雙極性±5?V、±10?V,但是需要外加輔助電路。ADC0809的啟動轉換控制為脈沖方式,上升沿將內部寄存器復位(清零),下降沿開始轉換。在使用時,ADC0809不需要進行零點和滿刻度調節(jié)。
ADC0809的其他主要特性如下:
轉換時間為100?μs;
單個+5?V電源供電;
模擬輸入電壓范圍0~+5?V,不需零點和滿刻度校準;
工作溫度范圍為-40℃~+85;
低功耗,約15?mW。
1.?ADC0809的引腳
ADC0809芯片有28條引腳,采用雙列直插式封裝,引腳如圖4.10所示。圖4.10ADC0809的引腳
IN0~IN7:8路模擬量輸入端。
D0~D7:8位數(shù)字量輸出端。
ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。
CLK:時鐘脈沖輸入端。
VREF(+)、VREF(-):基準電壓。
VCC:電源,單一+5?V。
GND:地。
ALE:地址鎖存允許信號,輸入高電平有效。
START:A/D轉換啟動脈沖輸入端,輸入一個正脈沖(至少100?ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉換)。
EOC:輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。
OE:數(shù)據(jù)輸出允許信號,輸入高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。
ADC0809一共有8個通道,通道選擇如表4-1所示。表4-1ADC0809通道選擇表
2.?ADC0809的工作過程
ADC0809的時序如圖4.11所示。
從時序圖中,可以得出ADC0809的工作過程如下:
(1)首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,地址經譯碼選通8路模擬輸入的其中1路到比較器;
(2)?START上升沿將內部寄存器復位;
(3)?START下降沿啟動A/D轉換,之后EOC輸出信號由高電平變?yōu)榈碗娖?,指示轉換正在進行;圖4.11ADC0809工作時序圖
(4)直到A/D轉換完成,EOC將變?yōu)楦唠娖?,表示A/D轉換結束,結果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請;
(5)當OE輸入高電平時,輸出三態(tài)門打開,轉換結果的數(shù)字量輸出到數(shù)據(jù)總線上。
拓展練習:根據(jù)ADC0808的工作過程,利用ADC0809設計一個數(shù)字電壓表,完成程序的編寫,并在Proteus中仿真實現(xiàn)。
4.3單片機的D/A電路
4.3.1D/A轉換的基本概念
D/A轉換就是數(shù)/模轉換,就是把數(shù)字信號轉換成模擬信號,能完成D/A轉換的電路,叫做數(shù)/模轉換器,簡稱DAC(DigitaltoAnalogConverter)。
1.權電阻網絡
權電阻網絡DAC如圖4.12所示。圖4.12權電阻網絡DAC圖4.12中,D0~D3為4位輸入數(shù)字量;R、2R、4R、8R為加權電阻;S0~S3是電子模擬開關。當某位Di=1時,相應開關閉合,Di?=?0時,開關斷開。由理想運放的特性可知:設RF?=?R/2,則可得
2..倒T型電阻網絡DAC
倒T型電阻網絡如圖4.13所示。
由圖4.13可以看出,圖中網絡電阻只有兩種:即R和2R而且構成倒T形,故又稱為R-2R倒T型電阻網絡DAC。其中S0~S3為模擬開關,運算放大器A組成求和電路。圖4.13倒T型電阻網絡DAC模擬開關Si,由輸入數(shù)碼Di控制。當Di?=?1時Si接運算放大器反相端,電流Ii流入求和電路;當Di=0時,Si則將電阻2R接地。根據(jù)虛地的概念可知,無論模擬開關Si處于何種位置,與Si相連的2R電阻均將接地(地或虛地)。通過分析R-2R電阻網絡可以發(fā)現(xiàn),從每個節(jié)點向左看的二端網絡等效電阻均為R,流入每個2R電阻的電流從高位到低位按2的整數(shù)倍遞減。設基準電壓源電壓為VREF,則總電流為I=VREF/R,則流過各開關支路(從右到左)的電流分別為I/2、I/4、I/8和I/16。于是可得到各支路的總電流
I
?=?I0+I1+I2+I34.3.2DAC的分類
DAC可分為電壓輸出型和電流輸出型。
1.電壓輸出型
電壓輸出型DAC雖有直接從電阻陣列輸出電壓的,但一般采用內置輸出放大器以低阻抗輸出。直接輸出電壓的器件僅用于高阻抗負載,由于無輸出放大器部分的延遲,故常作為高速DAC使用。
2.電流輸出型
在實際應用中電流輸出型DAC很少直接利用電流輸出,大多外接電流/電壓轉換電路得到電壓輸出。將電流轉換成電壓有兩種方法:一是只在輸出引腳上接負載電阻而進行電流/電壓轉換,二是外接運算放大器將電流轉換成電壓。4.3.3DAC的主要參數(shù)
DAC的主要參數(shù)說明如下:
(1)分辨率:DAC模擬輸出電壓可能被分離的等級數(shù)。n位DAC最多有2n個模擬輸出電壓。位數(shù)越多DAC的分辨率越高。分辨率也可以用能分辨的最小輸出電壓與最大輸出電壓之比給出。n位DAC的分辨率可表示為
(2)轉換精度:對給定的數(shù)字量,DAC轉換器實際值與理論值之間的最大偏差。
(3)轉換速率:完成一次從模擬轉換到數(shù)字的A/D轉換所需的時間的倒數(shù)。
4.4常用DAC簡介
DAC0832是8位D/A轉換集成芯片,其價格低廉、接口簡單、轉換控制容易,在單片機應用系統(tǒng)中得到廣泛的應用。DAC0832是采用CMOS工藝制成的單片直流輸出型8位數(shù)/模轉換器,由倒T型R-2R電阻網絡、模擬開關、運算放大器和參考電壓VREF四大部分組成。4.4.1DAC0832的特性
DAC0832的特性如下:
(1)分辨率為8位;
(2)電流穩(wěn)定時間為1?μs;
(3)可單緩沖、雙緩沖或直接數(shù)字輸入;
(4)只需在滿量程下調整其線性度;
(5)單一電源供電(+5?V~+15?V);
(6)低功耗,20?mW。4.4.2DAC0832的引腳
DAC0832有20個引腳,采用雙列直插式封裝,如圖4.14所示。
DAC0832的引腳功能如下:
DI0~DI7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應大于90?ns(否則鎖存器的數(shù)據(jù)會出錯)。
ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。
:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效。
:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500?ns)有效。由ILE、CS、WR1的邏輯組合產生LE1,當LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負跳變時將輸入數(shù)據(jù)鎖存。圖4.14DAC0832的引腳:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于500?ns)有效。
:DAC寄存器選通輸入線,負脈沖(脈寬應大于500?ns)有效。WR2、XFER的邏輯組合可產生LE2,當LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2負跳變時將數(shù)據(jù)鎖存器的內容打入DAC寄存器并開始D/A轉換。
IOUT1:電流輸出端1,其值隨DAC寄存器的內容線性變化。
IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù)。
RFB:反饋信號輸入線,改變RFB端外接電阻值可調整轉換滿量程精度。
VCC:電源輸入端,范圍為+5?V~+15?V。
VREF:基準電壓輸入,范圍為-10?V~+10?V。
AGND:模擬信號地。
DGND:數(shù)字信號地。
DAC0832轉換結果采用電流形式輸出,如果需要相應的模擬電壓信號,可通過一個高輸入阻抗的線性運算放大器實現(xiàn)。運算放大器的反饋電阻可通過RFB端引用片內固有電阻,也可外接。DAC0832邏輯輸入滿足TTL電平,可直接與TTL電路連接。4.4.3DAC0832的工作方式
DAC0832進行D/A轉換時,可以采用兩種方法對數(shù)據(jù)進行鎖存。第一種方法是使輸入寄存器工作在鎖存狀態(tài),而DAC寄存器工作在直通狀態(tài);第二種方法是使輸入寄存器工作在直通狀態(tài),而DAC寄存器工作在鎖存狀態(tài)。
根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。
(1)直通方式:將、、和引腳都直接接數(shù)字地,ILE引腳接高電平,芯片處于直通狀態(tài)。此時,8位數(shù)字量輸入到D0~D7端,就立即進行D/A轉換。但需要注意的是,在此種方式下,DAC0832不能直接與單片機的數(shù)據(jù)總線相連接。
(2)單緩沖方式:使DAC0832的兩個輸入寄存器中有一個處于直通方式,而另一個處于受控的鎖存方式。
(3)雙緩沖方式:先使輸入寄存器接收資料,再控制輸入寄存器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個D/A轉換同步輸出的情節(jié)。4.4.4DAC0832的典型應用電路
查詢DAC0832數(shù)據(jù)手冊后,可以找到其典型應用電路,如圖4.15所示。
對DAC0832控制時,同樣需要參考其操作時序圖,在DAC0832數(shù)據(jù)手冊中,可以找到ADC0804的時序圖,如圖4.16所示。
圖4.15DAC0832的典型應用電路圖4.16DAC0832的工作時序圖從時序圖4.16可以看出,當為低電平,也置為低電平時,數(shù)據(jù)位(DATABITS)上的數(shù)據(jù)才有效,IOUT1、IOUT2有電流輸出,但此時輸出不穩(wěn)定,在置為低電平tS時間后(從手冊上可查得,tS為1μs),IOUT1、IOUT2輸出穩(wěn)定。如果只進行一次轉換的話,在程序中,需要對和置為高電平,如果進行連續(xù)轉換,只需改變數(shù)字量輸入數(shù)據(jù)即可。4.4.5DAC0832應用舉例
【例4.4】利用單片機P0口采用單緩沖方式控制DAC0832輸出,利用按鍵控制數(shù)字量增加,每按一次按鍵,使數(shù)字量加1,數(shù)字量從零開始,用電流表觀察輸出電流。
解析:
根據(jù)DAC0832單緩沖方式,只需將ILE接高電平、
和接地,接P2.6、接P3.6,這時只有和
可控,可以實現(xiàn)單緩沖方式,電路圖如圖4.17所示。圖4.17例4.4電路原理圖程序代碼如下:
#include<reg52.h>
sbitCS=P2^6;
sbitkey=P2^7;
voiddelay_10ms(unsignedintz)
{
unsignedintx,y;
for(x=z;x>0;x--)
for(y=1150;y>0;y--);
}
voidmain()
{
CS=0; //置低
WR=0; //置低
P0=0x0; //數(shù)據(jù)初始為0,DAC0832有輸出
while(1)
{
if(key==0) //判斷按鍵是否按下
{
delay_10ms(1);
if(key==0) {
P0=P0+0x01; //如果有按鍵按下,則數(shù)字量加1
}
while(!key); //按鍵釋放
delay_10ms(1);
while(!key);
}
}
}
【例4.5】用DAC0832輸出鋸齒波。
解析:
(1)硬件原理圖。由于DAC0832輸出為電流,作為波形輸出時,需要將電流信號轉換成電壓,因此需要加入運放電路將電流信號轉換成電壓信號,因此可得出電路圖如圖4.18所示。
(2)程序分析。由鋸齒波的特點可知,鋸齒波按照一定的斜率上升,當達到最大后,從零開始。因此在編寫程序時,我們只需要讓數(shù)字量按照一定的時間間隔加1,當達到最大后,再從零開始,如此反復既可以得到鋸齒波的波形。圖4.18例4.5原理圖程序代碼如下:
#include<reg52.h>
#include<absacc.h> //絕對地址頭文件
#defineDAC0832XBYTE[0xDFFF] //絕對地址
voiddelay() //1ms延時函數(shù)
{
TH0=(65536-1)/256;
TL0=(65536-1)%256;
TR0=1;
while(!TF0);
TF0=0;
}
voidmain()
{
unsignedchari;
TMOD=0x01; //設置定時0,工作方式1
P0=0; //數(shù)字量初始值0
while(1)
{
for(i=255;i>=0;i--)
{
DAC0832=i;
delay();
}
}
}
【例4.6】用DAC0832輸出三角波。
解析:
從例4.5中可知,想要得到三角波,只需使數(shù)字量在輸出時從0增加到最大,再從最大值減小到0,如此反復就可以得到周期性的三角波,原理圖同例4.5電路。
程序代碼如下:
#include<reg52.h>
#include<absacc.h> //絕對地址頭文件
#definedac0832XBYTE[0xDFFF] //絕對地址
voiddelay() //1ms延時函數(shù)
{
TH0=(65536
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職園藝技術(果樹修剪技術)試題及答案
- 2025年高職(藥品經營與管理)藥品銷售專項測試題及答案
- 2025年中職口腔技術(口腔修復材料選擇)試題及答案
- 2025年大學大一(農業(yè)電氣化與自動化)電力系統(tǒng)分析階段測試題及答案
- 2025年高職(物聯(lián)網應用技術)物聯(lián)網應用案例實務試題及答案
- 2025年中職(旅游管理專業(yè))旅游景區(qū)管理試題及答案
- 2025年高職水污染控制技術(治理技術)試題及答案
- 2025年中職(大數(shù)據(jù)與會計)出納實務操作試題及答案
- 2025年中職(水族科學與技術)水族養(yǎng)殖階段測試試題及答案
- 2026年網頁設計教學(網頁設計方法)試題及答案
- 車輛檢查登記表
- 平地機說明書
- 三方幕墻工程施工合同范本
- 人音版(五線譜)(北京)音樂一年級上冊小鼓響咚咚課件(共18張PPT內嵌音頻)
- 單自由度系統(tǒng)的自由振動
- 2023款 kawasaki 川崎Ninja 1000S 用戶使用手冊 說明書 摩托車
- 智能變電站一體化監(jiān)控系統(tǒng)功能規(guī)范
- 防水煤柱的留設
- s-舒更葡糖鈉注射液說明書
- 正等軸測圖課程學習
- GB/T 11322.1-2013射頻電纜第0部分:詳細規(guī)范設計指南第1篇同軸電纜
評論
0/150
提交評論