單片機(jī)原理與接口技術(shù)教學(xué)課件作者于斌單片機(jī)原理與接口技術(shù)(第14章節(jié))_第1頁(yè)
單片機(jī)原理與接口技術(shù)教學(xué)課件作者于斌單片機(jī)原理與接口技術(shù)(第14章節(jié))_第2頁(yè)
單片機(jī)原理與接口技術(shù)教學(xué)課件作者于斌單片機(jī)原理與接口技術(shù)(第14章節(jié))_第3頁(yè)
單片機(jī)原理與接口技術(shù)教學(xué)課件作者于斌單片機(jī)原理與接口技術(shù)(第14章節(jié))_第4頁(yè)
單片機(jī)原理與接口技術(shù)教學(xué)課件作者于斌單片機(jī)原理與接口技術(shù)(第14章節(jié))_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理與接口技術(shù)/第14章 A/D與?D/A轉(zhuǎn)在單片換機(jī)應(yīng)技用系統(tǒng)術(shù)中,輸出控制是單片機(jī)實(shí)現(xiàn)控制運(yùn)算處理后,對(duì)控制對(duì)象的輸出通道接口。單片機(jī)主要輸出三種形態(tài)的信號(hào):數(shù)字量,開(kāi)關(guān)量和頻率量。單片機(jī)對(duì)模擬信號(hào) 被控制的對(duì)象處的信理號(hào)除上述三種可以直接由單片機(jī)直接產(chǎn)生的信號(hào)外,還有模擬量控制信號(hào),該信號(hào)通過(guò)D/A轉(zhuǎn)換產(chǎn)生。也就是說(shuō)把單片機(jī)發(fā)出的數(shù)字信號(hào)轉(zhuǎn)換成為模擬信號(hào)用來(lái)控制外部的設(shè)備,單片機(jī)僅能產(chǎn)生和處理數(shù)字信號(hào),對(duì)于模擬信號(hào)只能借助D/A或者A/D轉(zhuǎn)換芯片來(lái)完成。14.1D/A.A/D轉(zhuǎn)換在單?片14機(jī).1.系1統(tǒng)A/中D-D的/A應(yīng)轉(zhuǎn)換用的數(shù)據(jù)通道 在一般的系統(tǒng)中通過(guò)傳感器采集現(xiàn)場(chǎng)的信息也就是模擬量,模擬量經(jīng)過(guò)前期電路處理再經(jīng)過(guò)A/D轉(zhuǎn)換進(jìn)入到單片機(jī)中14.1.1A/D-D/A轉(zhuǎn)換的數(shù)據(jù)通道單片機(jī)經(jīng)過(guò)D/A轉(zhuǎn)換對(duì)現(xiàn)場(chǎng)物理量進(jìn)行控制由于單片機(jī)的工作速度很快物理量的變化速度相對(duì)比較慢故一個(gè)A/D轉(zhuǎn)換器可以通用于各現(xiàn)場(chǎng)監(jiān)測(cè)點(diǎn)經(jīng)過(guò)多路開(kāi)關(guān)的定時(shí)循環(huán)接通,各路信號(hào)依次及時(shí)可靠進(jìn)入到單片機(jī)14.1.1A/D-D/A轉(zhuǎn)換的數(shù)據(jù)通道多路開(kāi)關(guān)循環(huán)接通電路,而現(xiàn)場(chǎng)信號(hào)通過(guò)采樣保持器進(jìn)行保存,以此來(lái)保證轉(zhuǎn)換的通暢性。另外采樣頻率必須是現(xiàn)場(chǎng)被測(cè)信號(hào)頻譜中最高頻率的兩倍以上14.1.1A/D-D/A轉(zhuǎn)換的數(shù)據(jù)通道D/A轉(zhuǎn)換示意圖:14.1.2

D/A轉(zhuǎn)換工作原理 D/A轉(zhuǎn)換是一種將數(shù)字信號(hào)轉(zhuǎn)換成連續(xù)模擬信號(hào)的操作,它作為單片機(jī)系統(tǒng)的數(shù)字信號(hào)和模擬環(huán)境的連續(xù)信號(hào)之間提供了一種接口,它工作的原理就是輸入數(shù)字信號(hào)輸出模擬信號(hào)。A/D轉(zhuǎn)換原理圖14.1.2

D/A轉(zhuǎn)換工作原理 D/A轉(zhuǎn)換器的輸入信號(hào)主要有兩種分別為:數(shù)字信號(hào)和基準(zhǔn)電壓。 D/A轉(zhuǎn)換器的輸出信號(hào)是模擬量,大部分的輸出是電流,也有的輸出電壓。14.1.2

D/A轉(zhuǎn)換工作原理D/A轉(zhuǎn)換器內(nèi)置運(yùn)算放大器以低阻抗輸出電壓,稱(chēng)之為電壓輸出型D/A轉(zhuǎn)換器D/A轉(zhuǎn)換器如果采用電流開(kāi)關(guān)型電路,電流開(kāi)關(guān)形電路如果直接輸出生成的電流,則為電流輸出型D/A轉(zhuǎn)換器。14.1.2

D/A轉(zhuǎn)換工作原理D/A轉(zhuǎn)換器的輸入數(shù)據(jù)是在不斷變換的,為了保持輸出的穩(wěn)定,須在其內(nèi)部處理器與輸入口之間增加鎖存數(shù)據(jù)的功能。一些D/A轉(zhuǎn)換器甚至具有雙重或者多重的數(shù)據(jù)緩沖結(jié)構(gòu),并具有數(shù)據(jù)鎖存和地址譯碼電路。這樣的轉(zhuǎn)換器多見(jiàn)于12位甚至更高的D/A轉(zhuǎn)換器。14.1.3如何選擇參考指D標(biāo)/:A轉(zhuǎn)換器分辨率:則最小輸出模擬量與最大輸出模擬量之比轉(zhuǎn)換時(shí)間:將一個(gè)數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬量所需要的時(shí)間叫轉(zhuǎn)換時(shí)間。一般情況下電流輸出的D/A轉(zhuǎn)換時(shí)間比較短,電壓輸出的D/A轉(zhuǎn)換時(shí)間比較長(zhǎng)線(xiàn)性度:考慮輸出的線(xiàn)形關(guān)系轉(zhuǎn)換精度:相對(duì)實(shí)際物理量的誤差14.1.3如何選擇D/A轉(zhuǎn)D換/器A的轉(zhuǎn)類(lèi)型:換器根據(jù)輸出端口是并口還是串口,可分為串型輸出和并行輸出器件根據(jù)輸出是電流還是電壓,可分為電壓輸出型和電流輸出型器件根據(jù)能否進(jìn)行乘法運(yùn)算,可分為乘法運(yùn)算型和非乘法運(yùn)算型根據(jù)內(nèi)部是否有鎖存器,可分為鎖存型器件和非鎖存型器件14.1.3如何選?擇D在D//AA轉(zhuǎn)換轉(zhuǎn)器中換有在器基準(zhǔn)電壓上加交流信號(hào)的,這樣就可以得到數(shù)字輸入和交流信號(hào)輸入相乘的結(jié)果所以稱(chēng)為乘法型D/A轉(zhuǎn)換器,這種轉(zhuǎn)換器不僅可以進(jìn)行乘法運(yùn)算,還可以使輸入信號(hào)衰減,也可以做調(diào)制器對(duì)輸入信號(hào)進(jìn)行調(diào)制。14.2

8位D/A芯片DAC0DA8C038322是由8位輸入寄存器,8 位DAC寄存器和8位D/A轉(zhuǎn)換器組成。 DAC0832中有兩級(jí)鎖存器,第一級(jí)即輸入 寄存器,第二級(jí)為DAC寄存器。除了能工作在單緩沖方式,通過(guò)這兩級(jí)鎖存器DAC0832可以工作在雙緩沖方式下,在輸出模擬信號(hào)的同時(shí)可以采集下一個(gè)數(shù)字量,提高了轉(zhuǎn)換速度。14.2

8位D/A芯片DAC利0用8兩級(jí)3轉(zhuǎn)2換器的作用可以讓多個(gè) D/A轉(zhuǎn)換器同時(shí)工作,再通過(guò)第二級(jí)鎖存 信號(hào)實(shí)現(xiàn)多路D/A轉(zhuǎn)換的同時(shí)輸出。只要數(shù)據(jù)一進(jìn)入DAC寄存器便啟動(dòng)D/A轉(zhuǎn)換。14.2.1?DDAAC0C8302的8引3腳2如的下:引腳DI0~DI7:8為數(shù)據(jù)輸入端ILE:輸入寄存器的數(shù)據(jù)允許鎖存信號(hào)?DAC0832的引腳:輸入寄存器選擇信號(hào):輸入寄存器的數(shù)據(jù)寫(xiě)信號(hào):DAC寄存器寫(xiě)信號(hào),并啟動(dòng)轉(zhuǎn)換:數(shù)據(jù)向DAC寄存器傳送信號(hào),傳送后即啟動(dòng)轉(zhuǎn)換14.2.1

DAC0832的引腳VREF:參考電壓輸入端IOUT1,IOUT2:電流輸出端Rfb:反饋信號(hào)輸入端AGND:模擬電路地(第三腳)DGND:數(shù)字電路地(第十腳)VCC:芯片供電電壓14.2.1

DAC0832的引腳注意:當(dāng)時(shí),輸入數(shù)據(jù);當(dāng)時(shí),數(shù)據(jù)被鎖定。14.2.2單片機(jī)與

DAC0832的接口電路14.2.2單片機(jī)與

DAC0832的接口電路?DAC0832帶有數(shù)據(jù)輸入寄存器,是總線(xiàn)兼容型的,可以將D/A芯片直接與數(shù)據(jù)總線(xiàn)相連,作為一個(gè)拓展的I/O口。?單緩沖接口方式?在單緩沖接口方式下,ILE接+5V。寫(xiě)信號(hào)控制數(shù)據(jù)的鎖存,和相連,接單片機(jī)的,即數(shù)據(jù)同時(shí)寫(xiě)入兩個(gè)寄存器;傳送允許信號(hào)與片選相連,即選中本片DAC0832后,寫(xiě)入數(shù)據(jù)立刻啟動(dòng)轉(zhuǎn)換。本例子DAC0832的地址為FFFEH。這種單緩沖方式適用于只有一路模擬信號(hào)輸出的場(chǎng)合。14.2.2單片機(jī)與

DAC0832的接口電路 本例子在運(yùn)放輸出端輸出一個(gè)鋸齒波電壓信號(hào),程序設(shè)計(jì)如下:#include<absacc.h>#include<reg51.h>#defineDAC0832XBYTE[0xfffe]#defineucharunsignedchar#defineunitunsignedintvoidstar(void){ uchari;while(1) {for(i=0;i<=255;i++) /*形成鋸齒波輸出值,最大255*/{DAC0832=i} /*D/A轉(zhuǎn)換輸出*/}}14.3 基于MAX536的串行D/A轉(zhuǎn)換器?MAX536是一款具有4路12位電壓輸出的D/A轉(zhuǎn)換器,它包括一個(gè)16位輸入/輸出的移位寄存器,4個(gè)輸入寄存器,4個(gè)DAC寄存器和4個(gè)輸出放大器。D/A轉(zhuǎn)換器采用倒T型R-2R電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器。14.3 基于MAX536的串行D/A轉(zhuǎn)換器?通過(guò)對(duì)輸入?yún)⒖茧妷悍謮韩@得模擬電壓輸出。其中,D/A轉(zhuǎn)換器A和B共享REFAB參考電壓,D/A轉(zhuǎn)換器C和D共享REFCD參考電壓。參考電壓范圍為0V到VDD-4V。14.3基于MAX536的串行D/A轉(zhuǎn)換器 在單片機(jī)系統(tǒng)中,可分為硬件部分和軟件部分。其中硬件部分是整個(gè)系統(tǒng)的實(shí)體構(gòu)成,是軟件系統(tǒng)的平臺(tái)和基礎(chǔ),沒(méi)有硬件做支撐設(shè)計(jì)出的軟件就無(wú)法調(diào)試也不能得到驗(yàn)證。下面就是動(dòng)態(tài)顯示硬件設(shè)計(jì)例子,我們給出了完整的電路圖。536的內(nèi)部結(jié)構(gòu)536的外部引MAX536引腳功能OUTB:DACB電壓輸出OUTA:DACA電壓輸出VSS:負(fù)電壓輸入AGND:模擬地REFAB:DACA和B參考電壓輸出DGND:數(shù)字地:DAC加載輸入(低電平有效,將輸入寄存器內(nèi)容傳送到DAC寄存器)MAX536引腳功能–SDI:串行數(shù)據(jù)輸入– :片選信號(hào),低電平有效–SCK:移位寄存器輸入時(shí)鐘–SDO:串行數(shù)據(jù)輸出–REFCD:DACC和D的參考電壓輸出MAX536引腳功能TP:測(cè)試引腳,正常使用時(shí)連接VDDVDD正電壓輸入(12~15V)OUTD:DACD電壓輸出OUTC:DACC電壓輸出14.3.2工作原理和時(shí)序?MAX536的串行接口的最高時(shí)鐘為10MHz。工作期間引腳的低電平必須保持20微秒以上。它可以使用3線(xiàn)接口或4線(xiàn)接口的接口方式。在3線(xiàn)接口時(shí),它的時(shí)序如下:MAX536的時(shí)序14.3.2工作原理和時(shí)◆序引腳接地或者接VDD。在為低電平期間,SDI引腳的串行輸入數(shù)據(jù)由串行時(shí)鐘SCLK的上升沿逐位送入移位寄存器,轉(zhuǎn)換成并行數(shù)據(jù)。輸入數(shù)據(jù)全部進(jìn)入移位寄存器后,置為高電平,利用的上升沿執(zhí)行命令字,對(duì)MAX536內(nèi)部寄存器進(jìn)行相應(yīng)控制。14.3.3

MAX536的編程方式?MAX接收的是16位的串行數(shù)據(jù),高位在前,低位在后。在串行數(shù)據(jù)中包括兩個(gè)地址位(A1.A0),兩個(gè)控制位(C1.C0)和待轉(zhuǎn)換的12位數(shù)據(jù)(D11~D0)。從高到低依次排列 這16位數(shù)據(jù)從高到低依次排列為:A1,A0,C1,C0,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0。這些命令字與引腳的狀態(tài)來(lái)共同控制MAX536的轉(zhuǎn)換。14.3.3

MAX536的編程方式16位串行字功能A1

A0 C1

C0D11~D0000112位數(shù)據(jù)1加載DAC

A輸入寄存器,DAC輸出不變010112位數(shù)據(jù)1加載DAC

B輸入寄存器,DAC輸出不變100112位數(shù)據(jù)1加載DAC

C輸入寄存器,DAC輸出不變110112位數(shù)據(jù)1加載DAC

D輸入寄存器,DAC輸出不變001112位數(shù)據(jù)1加載DAC

A輸入寄存器,所有DAC寄存器改變011112位數(shù)據(jù)1加載DAC

B輸入寄存器,所有DAC寄存器改變101112位數(shù)據(jù)1加載DAC

C輸入寄存器,所有DAC寄存器改變111112位數(shù)據(jù)1加載DAC

D輸入寄存器,所有DAC寄存器改變x00012位數(shù)據(jù)x從移位寄存器加載所有數(shù)據(jù)到DAC14.3.3

MAX536的編程方式14.3.3

MAX536的應(yīng)用14.3.3

MAX536的應(yīng)用單片機(jī)的P2.1、P2.2.P2.3分別接MAX536的 、SCK、SDI。MAX536采用3線(xiàn)接口方式, 引腳接數(shù)字地,轉(zhuǎn)換器A、B、C.D都使用+5V的參考電壓,輸出電壓范圍為(0~5V)。單片機(jī)對(duì)MAX536的控制?本電路主要實(shí)現(xiàn)單片機(jī)對(duì)MAX536的控制,并使用MAX536進(jìn)行D/A轉(zhuǎn)換。四個(gè)通道都可以輸出數(shù)據(jù),實(shí)際應(yīng)用中根據(jù)具體情況可以減少通道。主程序#include<absacc.h>#include<reg51.h>sbit

cs=p2^1//定義的控制接口sbit

sck=p2^2//定義SCK的控制接口sbit

sdi=p2^3//定義SDI的控制接口 voiddata_out(unsignedcharnumer,unsignedintvalue) //定義MAX536的輸出函數(shù),通道號(hào)和輸出量 {switch(numer) //numer在實(shí)際應(yīng)用中可根據(jù)情況賦值 {case1: cs=0;//置低電平,低電平有效,開(kāi)啟MAX536,可以輸入數(shù)據(jù)?? w536(value|0x1000);//定義DACA輸出,由編程方式可以知道A通道輸出的數(shù)字編碼是0x1000,通過(guò)“或”把命令加到輸出數(shù)據(jù)中。cs=1;//置高電平,利用的上升沿執(zhí)行命令字,對(duì)MAX536內(nèi)部寄存器進(jìn)行相應(yīng)的控制。break; //程序返回 case2:cs=0;//置低電平,低電平有效,開(kāi)啟MAX536,可以輸入數(shù)據(jù) w536(value|0x5000);//定義DACB輸出,由編程方式可以知道B通道輸出的數(shù)字編碼是0x5000,通過(guò)“或”把命令加到輸出數(shù)據(jù)中? cs=1;//置高電平,利用的上升沿執(zhí)行命令字,對(duì)MAX536內(nèi)部寄存器進(jìn)行相應(yīng)的控制。break;case3://程序返回cs=0; //置低電平,低電平有效,開(kāi)啟MAX536,可以輸入數(shù)據(jù)? w536(value|0x9000);//定義DACC輸出,由編程方式可以知道C通道輸出的數(shù)字編碼是0x9000,通過(guò)“或”把命令加到輸出數(shù)據(jù)中cs=1;//置高電平,利用的上升沿執(zhí)行命令字,對(duì)MAX536內(nèi)部寄存器進(jìn)行相應(yīng)的控制。break;//程序返回? case4: cs=0; //置低電平,低電平有效,開(kāi)啟MAX536,可以輸入數(shù)據(jù)w536(value|0xD000);//定義DACD輸出,編程方式可以知道D通道輸出的數(shù)字編碼是0xD000,通過(guò)“或”把命令加到輸出數(shù)據(jù)中? cs=1;//置高電平,利用的上升沿執(zhí)行命令字,對(duì)MAX536內(nèi)部寄存器進(jìn)行相應(yīng)的控制。break; //程序返回}}子程序

void

w536(unsigned

int

indata) //indata為準(zhǔn)備輸出的數(shù)據(jù)包含了命令字{ char

n,i,j;unsigned

int

in_on;//定義數(shù)據(jù)邏輯in_on=ox0001;

//初始化數(shù)據(jù)邏輯,預(yù)備輸出數(shù)據(jù),從最低位開(kāi)始輸出 for(n=0;n<16;n++)據(jù)//預(yù)備輸出16位數(shù)?{

sck=0;//設(shè)置SCK為低電平for(i=0,i<10;i++);

//延時(shí)

j=indata&in_on;

//使用“與”取出準(zhǔn)備輸出那一位的值?if(j==0001)//判斷輸出位//輸出sdi=1;elsesdi=0;?//輸出for(i=0,i<10;i++); //延時(shí) sck=1; //設(shè)置SCK為高電平,在SCK的上升沿由SDI輸入的一位數(shù)據(jù)進(jìn)入移位寄存器。

indata=indata>>1;MAX536輸入下一位數(shù)據(jù)}//數(shù)字邏輯右移,}14.4

A/D轉(zhuǎn)換工作原理在單片機(jī)系統(tǒng)中,單片機(jī)所能處理的都是離散的數(shù)字信號(hào)。但是外部受控制的有關(guān)設(shè)備所產(chǎn)生的和接收的往往是模擬量。例如:溫度,速度,亮度等。所以必須將外部設(shè)備產(chǎn)生的模擬信號(hào)轉(zhuǎn)換成為數(shù)字信號(hào)才能使這些信號(hào)為單片機(jī)所識(shí)別,并在單片機(jī)中進(jìn)行處理。而將模擬信號(hào)轉(zhuǎn)換成為數(shù)字信號(hào)的過(guò)程我們稱(chēng)之為模擬/數(shù)字(A/D)轉(zhuǎn)換,所使用的器件我們就稱(chēng)之為模擬/數(shù)字(A/D)轉(zhuǎn)換器。14.4

A/D轉(zhuǎn)換工作原理?A/D轉(zhuǎn)換是一種將連續(xù)的模擬信號(hào)轉(zhuǎn)換成適合在單片機(jī)中處理并運(yùn)行的二進(jìn)制數(shù),也就是把連續(xù)信號(hào)變成離散的信號(hào)。A/D轉(zhuǎn)換的工作原理如圖所示14.4.1

如何選擇A/DA/轉(zhuǎn)D轉(zhuǎn)換換器的器種類(lèi)很多,性能也有很 大的不同,在A/D轉(zhuǎn)換器的選擇上不僅要 考慮它的性能還要考慮具體的應(yīng)用要求。 下面我們來(lái)看看選擇A/D轉(zhuǎn)換器的一些參 考性能指標(biāo)。14.4.1

如何選擇A/D轉(zhuǎn)換器1.A/D轉(zhuǎn)換器的位數(shù)A/D轉(zhuǎn)換器位數(shù)的確定,主要的考慮因素是轉(zhuǎn)換的誤差,位數(shù)越多所產(chǎn)生的誤差和失真就越小 為了減低硬件的消耗減少成本在一般的系統(tǒng)中我們都選用中分辨率的A/D轉(zhuǎn)換器,而其中以10位和11位是最合適的。14.4.1

如何選擇?A2./AD/D轉(zhuǎn)轉(zhuǎn)換器換的轉(zhuǎn)器換頻率 A/D轉(zhuǎn)換器從啟動(dòng)到結(jié)束總需要一定的時(shí)間,而每秒鐘所完成的轉(zhuǎn)換次數(shù)就是A/D轉(zhuǎn)換器的轉(zhuǎn)換頻率。在確定A/D轉(zhuǎn)換器的轉(zhuǎn)換頻率的時(shí)候還要考慮到系統(tǒng)的采樣頻率。例如:A/D轉(zhuǎn)換器的轉(zhuǎn)換頻率為10KHz,而模擬信號(hào)一個(gè)周期的信號(hào)需要10個(gè)采樣點(diǎn),根據(jù)采樣定理這個(gè)A/D轉(zhuǎn)換器所能處理的最高頻率的模擬信號(hào)僅為1KHz當(dāng)然通過(guò)提高A/D轉(zhuǎn)換器的轉(zhuǎn)換頻率可以提高處理的頻率,但是由于單片機(jī)的處理速度有限所以在單片機(jī)系統(tǒng)中始終有一個(gè)瓶頸無(wú)法突破。14.4.1

如何選擇A3./滿(mǎn)D量程轉(zhuǎn)誤差換器 這個(gè)指標(biāo)指的是滿(mǎn)量程輸出的時(shí)候?qū)?yīng)的輸入信號(hào)和理想輸入信號(hào)的差別4.線(xiàn)性度 本指標(biāo)指的是A/D轉(zhuǎn)換器的轉(zhuǎn)移函數(shù)與理想直線(xiàn)的最大偏移。5.采樣/保持器 對(duì)于高頻信號(hào)來(lái)說(shuō)是必須加采樣/保持器的。如果是低頻信號(hào)并采用高速的A/D轉(zhuǎn)換器的時(shí)候是可以不用采樣/保持器的。而直流信號(hào)和變化很慢的信號(hào)也可以不使用采樣/保持器。14.4.1

如何選擇A6./A/DD轉(zhuǎn)轉(zhuǎn)換器的換量程 器部分A/D轉(zhuǎn)換器提供了不同量程的引腳,必須使用正確才能保證信號(hào)盡量不失真。這樣的A/D轉(zhuǎn)換器不同的量程的輸入電壓可以從不同的引腳輸入。7.偏置極性 部分A/D轉(zhuǎn)換器提供了雙極性偏置控制。當(dāng)該引腳接地時(shí),信號(hào)為單極性輸入方式;當(dāng)該引腳接基準(zhǔn)電壓時(shí),信號(hào)為雙極性輸入方式。11.7

LED動(dòng)態(tài)顯?示2.分及析:實(shí)驗(yàn) MAX7221在使用之前必須進(jìn)行初始化,即設(shè)置MAX7221的顯示模式、譯碼方式、亮度控制、掃描范圍(掃描LED個(gè)數(shù))。當(dāng)采用CodeB譯碼方式時(shí),我們只要向數(shù)碼管0(digit0)~數(shù)碼管7(digit7)送出0x0~0x7即可。14.4.2 8位A/D轉(zhuǎn)換芯片ADC0809?ADC0809是8位逐次逼近型A/D轉(zhuǎn)換器,帶有8個(gè)模擬量輸入通道,芯片內(nèi)帶通道地址譯碼鎖存器,輸出帶三態(tài)數(shù)據(jù)鎖存器,啟動(dòng)信號(hào)為脈沖啟動(dòng)方式,每一通道的轉(zhuǎn)換大概需要100微秒。14.4.2 8位A/D轉(zhuǎn)換芯片ADC0809?ADC0809由三個(gè)部分組成,第一個(gè)部分是輸入部分,包括8位模擬開(kāi)關(guān),3條地址線(xiàn)的通道地址鎖存器和譯碼器,第四條為ALE,這三個(gè)地址引腳通過(guò)編碼可以用來(lái)實(shí)現(xiàn)8路模擬信號(hào)輸入通道的選擇;第二部分是轉(zhuǎn)換部分,里面是一個(gè)逐次逼近型的A/D轉(zhuǎn)換器;第三個(gè)部分是輸出部分,該部分是一個(gè)三態(tài)輸出數(shù)據(jù)鎖存器,有8位數(shù)據(jù)輸出最上為L(zhǎng)SB最下為MSB。8位A/D轉(zhuǎn)換芯片

ADC0809內(nèi)部結(jié)構(gòu)圖ADC0809的外部引腳圖ADC0809的引腳功√能IN0~IN8:8個(gè)模擬通道輸入端?!?START:啟動(dòng)轉(zhuǎn)換信號(hào)√ EOC:轉(zhuǎn)換結(jié)束信號(hào)√ OE:輸出允許信號(hào)。信號(hào)由CPU讀信號(hào)和片選信號(hào)組合產(chǎn)生?!?CLOCK:外部時(shí)鐘脈沖輸入端,典型值為640KHz√ ALE:地址鎖存允許信號(hào)√ A,B,C:通道地址線(xiàn)。CBA的8種組合狀態(tài)000~111對(duì)應(yīng)了8個(gè)通道的選擇√ VREF(+),VREF(—):參考電壓輸入端√ VCC:+5V電源√ GND:地√ D0~D7:D7為最高位MSB,D0為最低位LSB。D7~D0組成8位數(shù)據(jù)輸出。ADC0809的地址編碼地址碼選通的模擬通道C

B

A000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ADC0809的應(yīng)用?C,B,A輸入的地址在ALE有效的時(shí)候被鎖存。啟動(dòng)信號(hào)START上升沿到來(lái)時(shí)開(kāi)始啟動(dòng)轉(zhuǎn)換,EOC信號(hào)是在START下降沿到的10微秒后才變成低電平,表示轉(zhuǎn)換已經(jīng)結(jié)束。當(dāng)單片機(jī)接收到轉(zhuǎn)換結(jié)束的信號(hào)后,發(fā)送一個(gè)讀的信號(hào)給OE,然后開(kāi)始從ADC0809輸入信號(hào)。14.3.2

ADC0809與單片機(jī)的接口14.3.2

ADC0809與單片本例機(jī)子數(shù)的據(jù)輸接出端口口D7~D0接單片機(jī)的P0^7~P0^0。啟動(dòng)信號(hào)START由P3^0產(chǎn)生,ALE和START相連,即按輸入的通道地址接通模擬量并啟動(dòng)轉(zhuǎn)換。地址選通信號(hào)C,B,A分別由P2^2,P2^1,P2^0產(chǎn)生。輸出允許信號(hào)由P3^7產(chǎn)生,即通過(guò)讀信號(hào)使得數(shù)據(jù)從P0口直接輸入單片機(jī)。轉(zhuǎn)換結(jié)束信號(hào)EOC與p3^2即外部中斷0相連。主程序sfr

p0=0x80;sfr

p2=0xA0;sfr

p3=0xB0;//定義P0的地址//定義P2的地址//定義P3的地址sbitad_ch=p3^2;//定義查詢(xún)引腳,當(dāng)0809轉(zhuǎn)換結(jié)束的時(shí)候EOC為低電平sbitread=p3^7;//定義讀信號(hào)sbitstar=p3^0//定義啟動(dòng)轉(zhuǎn)換信號(hào)voidmain(void){ataticucharidataa[10];a0809(a); //啟動(dòng)轉(zhuǎn)換并采樣AD0809通道的值}voida0809(ucharidata*x) //轉(zhuǎn)換函數(shù){uchari;ucharxdata*a_adr;//設(shè)置AD0809通道0的地址//把通道地址值賦給a_adr//處理8個(gè)通道的數(shù)據(jù)//啟動(dòng)轉(zhuǎn)換p2=0xf8;a_adr=&p2;for(i=0;i<8;i++){

star=1;*a_adr=0;i=i;i=i;i=i;//延時(shí)等待EOC變?yōu)榈碗娖絯hile(ad_ch==0);//查詢(xún)是否轉(zhuǎn)換已經(jīng)結(jié)束,若轉(zhuǎn)換結(jié)束則讀取數(shù)據(jù)read=1; //讀數(shù)據(jù)信號(hào)有效,使OE為高電平開(kāi)始讀取數(shù)據(jù)x[i]=*a_adr; //存儲(chǔ)轉(zhuǎn)換的結(jié)果//進(jìn)入下一通道的轉(zhuǎn)換#include<absacc.h>#include<reg51.h>#define

uchar

unsigned

char????????????????????????a_adr++;}}14.5 12位A/D轉(zhuǎn)換芯片ADS7804與8位和16位的A/D轉(zhuǎn)換器相比,12位A/D轉(zhuǎn)換器以其較高的性能價(jià)格比而在各類(lèi)系統(tǒng)中中得到廣泛的應(yīng)用。下面就以ADS7804為例子詳細(xì)介紹12位A/D轉(zhuǎn)換器的應(yīng)用。ADS7804為12位的A/D轉(zhuǎn)換器,它不僅分辨率高、轉(zhuǎn)換速度快,而且接口方便,電路簡(jiǎn)單、應(yīng)用靈活,因而具有廣泛的應(yīng)用前景。14.5.1

ADS7804的內(nèi)部結(jié)構(gòu)14.5.1

ADS7804的內(nèi)部結(jié)構(gòu)ADS7804芯片采用28腳0.3英寸PDIP(塑料雙列直插式)封裝,兩列管腳間距為0.3英寸,比一般DIP28封裝窄一倍,所以俗稱(chēng)瘦型DIP;ADS7804采用單5V電源供電;芯片內(nèi)部含有采樣保持、電壓基準(zhǔn)和時(shí)鐘等電路,可極大簡(jiǎn)化用戶(hù)的電路設(shè)計(jì)和硬件開(kāi)鎖,并可提高系統(tǒng)的穩(wěn)定性。ADS7804采用CMOS工藝制造,轉(zhuǎn)換速度快、功耗低(最大功耗為100mW)。另外ADS7804采用逐次逼近式工作原理,單通道輸入,模擬輸入電壓的范圍為±10V,采樣速率為100kHz。ADS7804的外部引腳圖ADS7804的引腳?功VDIG數(shù)能字電源,和模擬電源VANA通常一起接到5V電源上VANA模擬電源,和數(shù)字電源VDIG通常一起接到5V電源上DGND數(shù)字地,通常與模擬地共地AGND1.AGND2模擬地,通常與數(shù)字地共地REF為參考電壓端,通常對(duì)地接2.2μF電容,芯片內(nèi)部可產(chǎn)生2.5V基準(zhǔn)電壓。CAP為參考電壓所需電容,對(duì)地接2.2μF電容VIN模擬信號(hào)輸入端D11~D0為數(shù)字量并行輸出口DZ(19~22腳)是為了使管腳與16位A/D轉(zhuǎn)換器ADS7805兼容而設(shè)的,可懸空 片選信號(hào),與結(jié)合在下降沿有效,并持續(xù)40ns~6μs可啟動(dòng)A/D轉(zhuǎn)換,第二個(gè)下降沿輸出數(shù)據(jù)。讀取模數(shù)轉(zhuǎn)換結(jié)果的控制信號(hào)轉(zhuǎn)換結(jié)束信號(hào),高電平表示轉(zhuǎn)換結(jié)束,低電平表示轉(zhuǎn)換進(jìn)行中 BYTE控制從總線(xiàn)讀出的數(shù)據(jù)是轉(zhuǎn)換結(jié)果的高字節(jié)還是低字節(jié)。它為低電平的時(shí)候選擇低字節(jié),為高電平的時(shí)候選擇高字節(jié)。14.5.2

ADS7804如何啟動(dòng)?轉(zhuǎn)換和首讀先將取腳電轉(zhuǎn)平換變低結(jié);然果后在腳輸入一個(gè)脈沖并在其下降沿啟動(dòng)A/D轉(zhuǎn)換,此脈沖的寬度要求在40ns~6μs之間;這時(shí)BUSY腳電平拉低表示正在進(jìn)行轉(zhuǎn)換;在經(jīng)過(guò)大約8μs以后,轉(zhuǎn)換完成,BUSY腳電平相應(yīng)變高;再把R/C腳電平拉高,這樣,腳脈沖的下降沿即把轉(zhuǎn)換結(jié)果輸出到數(shù)據(jù)總線(xiàn)上。ADS7804啟動(dòng)轉(zhuǎn)換和讀取轉(zhuǎn)換結(jié)果的時(shí)序圖模擬電壓和數(shù)字輸出的關(guān)系模擬輸入 初碼形式的數(shù)字輸出二進(jìn)制十六進(jìn)制9.99512V0111

1111

11117FF4.88mV0000

0000

00010010V0000

0000

0000000-4.88mV1111

1111

1111FFF-10V1000

0000

0000800ADS7804的輸出 因?yàn)锳DS7804為12位A/D轉(zhuǎn)換器所以它的轉(zhuǎn)換結(jié)果為12位,對(duì)8位單片機(jī)而言,就必須分兩次讀入,而這個(gè)功能是由BYTE引腳來(lái)實(shí)現(xiàn)的。當(dāng)BYTE腳為高電平時(shí),數(shù)據(jù)總線(xiàn)上輸出高字節(jié),當(dāng)BYTE腳為低電平時(shí),輸出低字節(jié)。14.5.3

ADS7804與單片 因?yàn)锳機(jī)DS7的804接的信口號(hào)脈沖寬度要求為40ns~6μs之間,而對(duì)于單片機(jī)而言,如采用12MHz的晶振,單周期指令和雙周期指令分別為1μs和2μs,而一個(gè)對(duì)位操作的指令為1μs所以我們把它和單片的P2.1端口相連,而 、 和BYTE信號(hào),則分別與P2.0,P2.2,P2.3相連ADS7804與單片機(jī)的接口電路程序分析本數(shù)據(jù)采集系統(tǒng)程序如下: 單點(diǎn)采樣子程序SPS():用來(lái)返回一個(gè)有符號(hào)整數(shù)形式的轉(zhuǎn)換結(jié)果。 定長(zhǎng)采樣子程序DLS():根據(jù)入口參數(shù)fixedtime(單位為μs)給定的采樣間隔采樣N點(diǎn),并采用查詢(xún)單片機(jī)內(nèi)置定時(shí)器的方式來(lái)控制采樣時(shí)序,N點(diǎn)采樣結(jié)果存儲(chǔ)在外部存儲(chǔ)器數(shù)組array中。主程序1sfr

p2=0xA0; //定義P2的地址sbit

CS=p2^1;//定義片選地址sbit

BYTE=p2^3;//定義數(shù)據(jù)選擇地址sbit

RC=P2^2;//定義讀取結(jié)果地址sbit

BUSY=P2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論