第10章 AD和DA轉(zhuǎn)換接口_第1頁
第10章 AD和DA轉(zhuǎn)換接口_第2頁
第10章 AD和DA轉(zhuǎn)換接口_第3頁
第10章 AD和DA轉(zhuǎn)換接口_第4頁
第10章 AD和DA轉(zhuǎn)換接口_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

A/D轉(zhuǎn)換接口D/A轉(zhuǎn)換接口第

A/D和D/A轉(zhuǎn)換接口本章內(nèi)容SingleChipMicrocomputer1010.1A/D轉(zhuǎn)換器接口A/D轉(zhuǎn)換器的作用典型芯片ADC0809ADC0809的應(yīng)用A/D轉(zhuǎn)換器的作用將模擬量轉(zhuǎn)換為數(shù)字量,以便計(jì)算機(jī)接收處理傳感器單片機(jī)A/D轉(zhuǎn)換雙積分式A/D轉(zhuǎn)換器逐次逼近式A/D轉(zhuǎn)換器計(jì)數(shù)式A/D轉(zhuǎn)換器并行式A/D轉(zhuǎn)化器調(diào)理電路A/D轉(zhuǎn)換器概述逐次逼近式典型A/D轉(zhuǎn)換器芯片有:(1)ADC0801~ADC0805型8位MOS型A/D轉(zhuǎn)換器(2)ADC0808/0809型8位MOS型A/D轉(zhuǎn)換器(3)ADC0816/0817典型芯片—ADC0809介紹ADC0809是一個8位8通道的AD轉(zhuǎn)換器。ADC0809功能分析CLK:時鐘信號,可由單片機(jī)ALE信號分頻得到。轉(zhuǎn)換有以下幾步:ALE信號上升沿有效,鎖存地址并選中相應(yīng)通道。ST信號有效,上升沿復(fù)位0809,下降沿開始轉(zhuǎn)換。A/D轉(zhuǎn)換期間ST為低電平。EOC信號輸出高電平,表示轉(zhuǎn)換結(jié)束。OE輸出允許,高電平時,允許輸出轉(zhuǎn)換結(jié)果。ADC0809和單片機(jī)的連接一、采用單片機(jī)的I/O端口直接控制ADC0809例1:采用ADC0809采集0~5V連續(xù)可變的模擬電壓信號,將其轉(zhuǎn)換為8位數(shù)字信號00~FFH后,送單片機(jī)處理,并在最右端三位數(shù)碼管上顯示出十進(jìn)制值(顯示格式:000~255)。0~5V的模擬電壓信號通過調(diào)節(jié)器來獲得。程序:#include<reg51.h>voiddelay10ms();voiddisplay();sbitSTART=P3^2;sbitEOC=P3^1;sbitOE=P3^0;sbitADDA=P3^4;sbitADDB=P3^5;sbitADDC=P3^6;unsignedcharresult;unsignedcharcodedispcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰段碼表八段LED數(shù)碼管共陰字型編碼(段代碼編碼表)字形0123456789黑共陰3F065B4F666D7D077F6F00voidmain(){while(1){ADDA=1;//選擇通道3ADDB=1;ADDC=0;START=0;START=1;//上升沿,內(nèi)部寄存器清零,鎖存地址

START=0;//下降沿,啟動A/D轉(zhuǎn)換

while(EOC==0);//查詢等待轉(zhuǎn)換結(jié)束

OE=1;//輸出轉(zhuǎn)換得到的數(shù)據(jù)

result=P1;OE=0;display();}}voiddelay10ms(){unsignedinti;

for(i=0;i<1200;i++);}voiddisplay(){P2=0x0d;P0=dispcode[result/100];delay10ms();P2=0x0b;P0=dispcode[(result%100)/10];delay10ms();P2=0x07;P0=dispcode[result%10];delay10ms();}采用ADC0809采集0~5V連續(xù)可變的模擬電壓信號,將其轉(zhuǎn)換為8位數(shù)字信號00~FFH后,送單片機(jī)處理,并在最右端兩位數(shù)碼管上顯示出電壓值(顯示格式:0.0~5.0)。同時最左端數(shù)碼管顯示采集的通道數(shù)。0~5V的模擬電壓信號通過調(diào)節(jié)器來獲得。要求采集轉(zhuǎn)換結(jié)果采用查詢和中斷兩種方式實(shí)現(xiàn)。練習(xí)ADC0809和單片機(jī)的連接寫信號、P2.0有效時,啟動AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,輸出高電平,向CPU發(fā)出中斷請求讀信號、P2.0有效時,允許輸出AD轉(zhuǎn)換結(jié)果。轉(zhuǎn)換時鐘由ALE分頻得到(6MHz晶振)。805174LS373ADC0809÷2CLKD0-D7≥1≥1111GEOCSTALEOERDP2.0WRINT1ALEP0A0-A7A0A1A2ABCVR(+)VR(-)+5VGNDIN0IN7IN6IN5IN4IN3IN2IN1轉(zhuǎn)換結(jié)果由此輸出二、采用單片機(jī)系統(tǒng)擴(kuò)展方式控制ADC0809通道選擇表

選擇的通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7CBA8051A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00809×××××××ST×××××CBAIN0

×××××××0×××××000

IN1

0

001

IN7×××××××0×××××1111.首先分析各個通道的地址。(IN0到IN7的地址為0000H到0007H)#include<absacc.h>#include<reg51.h>#defineIN0XBYTE[0xfef8]//設(shè)置AD0809的通道0地址sbitINT1=P3^3;voidad0809(unsignedchar*x){unsignedchari;unsignedcharxdata*ad_adr;//存放通道地址

ad_adr=&IN0;//通道0地址送ad_adr

for(i=0;i<8;i++)//處理8通道

{*

ad_adr=0;//寫操作啟動A/D轉(zhuǎn)換

i=i;//延時等待

while(INT1==1);//查詢等待轉(zhuǎn)換結(jié)束

x[i]=*ad_adr;//存轉(zhuǎn)換結(jié)果

ad_adr++;//指向下一通道

}}編程—查詢方式voidmain(void){unsignedcharad[10];ad0809(ad);//采樣AD0809通道的值}#include<absacc.h>#include<reg51.h>#defineIN0XBYTE[0xfef8]//設(shè)置AD0809的通道0地址unsignedchari,x[8];unsignedcharxdata*ad_adr;//存放通道地址voidint1_adresult()interrupt2{

x[i]=*ad_adr;//存轉(zhuǎn)換結(jié)果

ad_adr++;//下一通道

i++;

while(i==8)EA=0;//8個通道轉(zhuǎn)換完畢,關(guān)中斷}編程—中斷方式voidmain(void){EA=1;//開總中斷

EX1=1;//開外中斷1IT1=1;//設(shè)置邊沿觸發(fā)方式

i=0;//初始化i為第0通道

ad_adr=&IN0;//通道0地址送ad_adr

*

ad_adr=0;//寫操作啟動A/D轉(zhuǎn)換

while(1);//等待中斷}10.2D/A轉(zhuǎn)換器接口D/A轉(zhuǎn)換器的作用典型芯片DAC0832DAC0832的應(yīng)用D/A轉(zhuǎn)換器的作用單片機(jī)控制對象D/A轉(zhuǎn)換將數(shù)字量轉(zhuǎn)換為模擬量,以便操縱控制對象。D/A轉(zhuǎn)換器的主要指標(biāo)

轉(zhuǎn)換速度:一般幾十微秒到幾百微秒,快速的可達(dá)1微秒。轉(zhuǎn)換精度(分辨率):決定于輸入數(shù)字量的位數(shù),位數(shù)越多,精度越高。典型芯片-DAC0832介紹DAC0832是一個八位D/A轉(zhuǎn)換器,轉(zhuǎn)換時間1微秒,結(jié)構(gòu)如下:輸出為模擬電流,可轉(zhuǎn)換為電壓。LE1或LE2=1,當(dāng)前寄存器的輸出跟隨輸入LE1或LE2=0,鎖存數(shù)據(jù)DAC0832功能分析DI0-DI7:轉(zhuǎn)換數(shù)據(jù)輸入CS:片選信號ILE,WR1:控制輸入寄存器

ILE=1,WR1=0時:直通

ILE=1,WR1=1時:鎖存因此,DAC0832可以有三種工作形式:直通、單級鎖存、兩級鎖存。XFER,WR2:控制DAC寄存器

XFER=0,WR2=0時:直通

XFER=1orWR2=1時:鎖存單緩沖方式的接口(1)

譯碼器輸出——一個處于直通方式,另一個處于受控的鎖存方式

“同時”做何解釋?單緩沖方式的接口(2)

——兩個輸入寄存器同時受控的方式

單緩沖方式的應(yīng)用

——產(chǎn)生鋸齒波假定采用接口(1)方式,即輸入寄存器受控,而DAC寄存器直通,輸入寄存器地址為E000H,產(chǎn)生鋸齒波。#include<absacc.h>//絕對地址訪問頭文件#include<reg51.h>#defineDA0832XBYTE[0xE000]voiddelay_1ms();voidmain(){unsignedchari;

while(1){

for(i=0;i<=255;i++)//形成三角波輸出值,最大為255{DA0832=i;//DA轉(zhuǎn)換輸出

delay_1ms();}

for(i=255;i>=0;i--){DA0832=i;//形成三角波輸出值,最小為0delay_1ms();//DA轉(zhuǎn)換輸出

}}}1/282/283/28254/28255/280產(chǎn)生的鋸齒波的過程D/A轉(zhuǎn)換產(chǎn)生的鋸齒波

用同樣的方法也可以產(chǎn)生三角波、矩形波、梯形波?!獌蓚€鎖存器都接成受控鎖存方式。雙緩沖方式的接口和應(yīng)用輸入寄存器地址:00E0HDAC寄存器地址:00C0H你知道它與第二種單緩沖方式的區(qū)別嗎?Y7A7

A6A574LS138Y6C

B

AY7Y6雙緩沖方式的應(yīng)用

——產(chǎn)生鋸齒波假定采用接口(1)方式,即輸入寄存器受控,而DAC寄存器直通,輸入寄存器地址為E000H,產(chǎn)生鋸齒波。#include<absacc.h>//絕對地址訪問頭文件#include<reg51.h>#defineDA0832XBYTE[0x00E0]#defineDA0832_1XBYTE[0x00C0]voiddelay_1ms();voidmain(){unsignedchari;

對一個數(shù)字量的轉(zhuǎn)換,需兩步完成。

while(1){

for(i=0;i<=255;i++)//形成三角波輸出值,最大為255{DA0832=i;//輸入寄存器選通

DA0832_1=i;//DAC寄存器

溫馨提示

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

最新文檔

評論

0/150

提交評論