第8章MCS51與DA和AD的接口_第1頁
第8章MCS51與DA和AD的接口_第2頁
第8章MCS51與DA和AD的接口_第3頁
第8章MCS51與DA和AD的接口_第4頁
第8章MCS51與DA和AD的接口_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1單片機原理及其應(yīng)用第8章MCS-51與D/A、A/D接口主要內(nèi)容8.1MCS-51單片機與ADC的接口8.2MCS-51單片機與DAC的接口D/A轉(zhuǎn)換器D/A轉(zhuǎn)換器A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器8.1MCS-51單片機與ADC的接口單片機測控系統(tǒng)單片機各種現(xiàn)場被測量傳感器1傳感器2傳感器3放大器1放大器2放大器3多路模擬開關(guān)8.1MCS-51單片機與ADC的接口8.1.1A/D轉(zhuǎn)換器概述實現(xiàn)模擬量變換成數(shù)字量的器件稱A/D轉(zhuǎn)換器.常用的有逐次比較式A/D和雙積分式A/D.常用的逐次比較式A/D有ADC0809、ADC574、ADC1210等.常用的雙積分式A/D有MC14433(3位半)、ICL7135(4位半)、ICL7109(12位二進制)、ICL7104(16位二進制)等等8.1MCS-51單片機與ADC的接口2、A/D轉(zhuǎn)換器的主要性能指標①分辨率:指A/D轉(zhuǎn)換器可轉(zhuǎn)換成數(shù)字量的最小電壓,是反映A/D轉(zhuǎn)換器對最小模擬輸入值的敏感度.通常是用A/D的位數(shù)來表示,比如8位、10位、12位等,所以,A/D轉(zhuǎn)換器的輸出數(shù)字量越多。其分辨率越高。如:8位ADC滿量程為5V,則分辨率為5000mV/256=20mV,也就是說當模擬電壓小于20mV,ADC就不能轉(zhuǎn)換了

所以分辨率一般表示式為:分辨率=Vref/2位數(shù)(單極性)或分辨率=(V+ref-V-ref)/2位數(shù)(雙極性)8.1MCS-51單片機與ADC的接口②轉(zhuǎn)換時間:指從輸入啟動轉(zhuǎn)換信號到轉(zhuǎn)換結(jié)束,得到穩(wěn)定的數(shù)字量輸出的時間。一般轉(zhuǎn)換速度越快越好(特別是動態(tài)信號采集)。超高速(轉(zhuǎn)換時間<1ns)、高速(轉(zhuǎn)換時間<1μs)、中速(轉(zhuǎn)換時間<1ms)低速(轉(zhuǎn)換時間<1s)等。如果采集對象是動態(tài)連續(xù)信號,要求f采≥2f信,也就是說必須在信號的一個周期內(nèi)采集2個以上的數(shù)據(jù),才能保證信號形態(tài)被還原,這就是“最小采樣”原理。若f信=20kHz,則f采≥40kHz,其轉(zhuǎn)換時間要求≤25μs.8.1MCS-51單片機與ADC的接口③轉(zhuǎn)換精度:有絕對精度和相對精度絕對精度——指實際需要的模擬量與理論上的模擬量之差。相對精度——指當滿刻度值校準后,任意數(shù)字量對應(yīng)的實際模擬量與理論值之差。精度和分辨率不能混淆.8.1MCS-51單片機與ADC的接口④線性度:當模擬量變化時,A/D轉(zhuǎn)換器輸出的數(shù)字量,按比例變化的程度⑤量程:指能夠轉(zhuǎn)換的電壓的范圍0~5V0~10V⑥工作溫度范圍較好的A/D轉(zhuǎn)換器工作溫度范圍為-40--85℃較差的A/D轉(zhuǎn)換器工作溫度范圍為0--70℃8.1MCS-51單片機與ADC的接口8.1.2ADC0809與單片機接口1、ADC0809是一種常用的8位逐次比較式A/D.下圖是ADC0809的內(nèi)部結(jié)構(gòu)圖2、引腳圖8.1MCS-51單片機與ADC的接口

IN3

IN4

IN5

IN6

IN7

START

EOC

D3

OE

CLOCK

VCC

VREF+

GND

D1

IN2

IN1

IN0

ADDA

ADDB

ADDC

ALE

D7

D6

D5

D4

D0

VREF-

D2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

28

27

26

25

24

23

22

21

20

19

18

17

16

15

2

ADDCADDBADDA選擇通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN78.1MCS-51單片機與ADC的接口3ADC0809的工作流程

START/ALE

地址鎖存

ADDA/B/C

EOC

OE

D0~D7

轉(zhuǎn)換結(jié)束

讀取結(jié)果

DATA

啟動8.1MCS-51單片機與ADC的接口①

輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器譯碼從8路模擬通道中選通一路模擬量送到比較器。②

送START一高脈沖,START的上升沿使逐次逼近寄存器復(fù)位,下降沿啟動A/D轉(zhuǎn)換,并使EOC信號為低電平。③

當轉(zhuǎn)換結(jié)束時,轉(zhuǎn)換的結(jié)果送入到輸出三態(tài)鎖存器,并使EOC信號回到高電平,通知CPU已轉(zhuǎn)換結(jié)束。④

當CPU執(zhí)行一讀數(shù)據(jù)指令,使OE為高電平,則從輸出端D0~D7讀出數(shù)據(jù)。8.1MCS-51單片機與ADC的接口4、ADC0809與8051接口P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEWR

P2.7RDINTO+++5VGNDD0D1D2D3D4D5D6D7ADDAADDBADDCCLKALESTARTOEEOCIN0IN1IN2IN3IN4IN5IN6IN7

VREF+VREF-ADC08098051分頻器00011100110IN0:0000HIN1:0001HIN2:0002HIN3:0003HIN4:0004HIN5:0005HIN6:0006HIN7:0007H8.1MCS-51單片機與ADC的接口設(shè)接口電路用于一個8路模擬量輸入的巡回檢測系統(tǒng),使用中斷方式采樣數(shù)據(jù),把采樣轉(zhuǎn)換所得的數(shù)字量按序存于片內(nèi)RAM的30H~37H單元中。采樣完一遍后停止采集。匯編語言編程:ORG0000HLJMPMAINORG0003HLJMPINT0ORG0100H;主程序MAIN:MOVR0,#30H;設(shè)立數(shù)據(jù)存儲區(qū)指針MOVR2,#08H;設(shè)置8路采樣計數(shù)值SETBIT0;設(shè)置外部中斷0為邊沿觸發(fā)方式SETBEA;CPU開放中斷SETBEX0;允許外部中斷0中斷MOVDPTR,#0000H;送入口地址并指向IN08.1MCS-51單片機與ADC的接口LOOP:MOVX@DPTR,A;啟動A/D轉(zhuǎn)換,A的值無意義HERE:SJMPHERE;等待中斷ORG0200H;中斷服務(wù)程序INT0:MOVXA,@DPTR;讀取轉(zhuǎn)換后的數(shù)字量MOV@R0,A;存入片內(nèi)RAM單元INCDPTR;指向下一模擬通道INCR0;指向下一個數(shù)據(jù)存儲單元DJNZR2,NEXT;8路未轉(zhuǎn)換完,則繼續(xù)CLREA;已轉(zhuǎn)換完,則關(guān)中斷CLREX0;禁止外部中斷0中斷RETI;中斷返回NEXT:MOVX@DPTR,A;再次啟動A/D轉(zhuǎn)換RETI;中斷返回8.1MCS-51單片機與ADC的接口C語言編程:#include<reg51.h>#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineIN0XBYTE[0x0000]//定義IN0為通道0的地址staticuchardatax[8];//定義8個單元的數(shù)組,存放結(jié)果ucharxdata*ad_adr;//定義指向通道的指針uchari=0;8.1MCS-51單片機與ADC的接口voidmain(void){IT0=1;//初始化EX0=1;EA=1;i=0;ad_adr=&IN0;//指針指向通道0*ad_adr=i;//啟動通道0轉(zhuǎn)換for(;;){;}//等待中斷}8.1MCS-51單片機與ADC的接口voidint_adc(void)interrupt0//中斷函數(shù){x[i]=*ad_adr;//接收當前通道轉(zhuǎn)換結(jié)果i++;ad_adr++;//指向下一個通道if(i<8){*ad_adr=i;//8個通道未轉(zhuǎn)換完,啟動下一個通道返回}else{EA=0;EX0=0;//8個通道轉(zhuǎn)換完,關(guān)中斷返回}}8.2.1D/A轉(zhuǎn)換器概述一.D/A轉(zhuǎn)換器的性能指標1.分辨率2.精度3.線性度4.溫度靈敏度5.建立時間二.D/A轉(zhuǎn)換的分類按輸入數(shù)字量的位數(shù)分:8位、10位、12位和16位等;按輸入的數(shù)碼分:二進制方式和BCD碼方式;按傳送數(shù)字量的方式分:并行方式和串行方式;按輸出形式分:電流輸出型和電壓輸出型,電壓輸出型又有單極性和雙極性;按與單片機的接口分:帶輸入鎖存的和不帶輸入鎖存的。8.2MCS-51單片機與DAC的接口分辨率是指D/A轉(zhuǎn)換器所能產(chǎn)生的最小模擬量的增量,是數(shù)字量最低有效位(LSB)所對應(yīng)的模擬值。例:8位D/A轉(zhuǎn)換器的分辨率為滿量程信號值的1/256。建立時間是指從數(shù)字量輸入端發(fā)生變化開始,即從全0變?yōu)槿?,到模擬輸出穩(wěn)定在滿量程的±1/2LSB時所需要的時間,它是描述D/A轉(zhuǎn)換器轉(zhuǎn)換速率快慢的一個參數(shù)。三.D/A轉(zhuǎn)換器與單處機的連接1.數(shù)據(jù)線的連接

D/A轉(zhuǎn)換器與單片機的數(shù)據(jù)線的連接主要考慮兩個問題:①位數(shù):當高于8位的D/A轉(zhuǎn)換器與8位數(shù)據(jù)總線的MCS-51單片機接口時,MCS-51單片機的數(shù)據(jù)必須分時輸出,這時必須考慮數(shù)據(jù)分時傳送的格式和輸出電壓的“毛刺”問題;

②D/A轉(zhuǎn)換器有無輸入鎖存器:當D/A轉(zhuǎn)換器內(nèi)部沒有輸入鎖存器時,必須在單片機與D/A轉(zhuǎn)換器之間增設(shè)鎖存器或I/O接口。2.地址線的連接一般的D/A轉(zhuǎn)換器只有片選信號,而沒有地址線。這時單片機的地址線采用全譯碼或部分譯碼,經(jīng)譯碼器輸出來控制D/A轉(zhuǎn)換器的片選信號,也可由某一位I/O線來控制D/A轉(zhuǎn)換器的片選信號。3.控制線的連接

D/A轉(zhuǎn)換器主要有片選信號、寫信號及啟動轉(zhuǎn)換信號等,一般由單片機的有關(guān)引腳或譯碼器提供。8.2MCS-51單片機與DAC的接口8.2.2MCS-51與8位DAC0832的接口一.DAC0832芯片

DAC0832是一種電流型D/A轉(zhuǎn)換器,數(shù)字輸入端具有雙重緩沖功能,可以雙緩沖、單緩沖或直通方式輸入,它的內(nèi)部結(jié)構(gòu)如圖。8.2MCS-51單片機與DAC的接口與與與DI0~DI7ILECSWR1WR2XFER輸入寄存器DAC寄存器D/A轉(zhuǎn)換器LE1LE2VREFRfbIOUT1IOUT2AGNDVCCDGNDDAC0832二.DAC0832的引腳DAC0832有20引腳,采用雙列直插式封裝,如圖所示。CSWR1AGNDDI3DI2DI2DI0VREFRFBDGNDVCCILEWR2XFERDI4DI5DI6DI7IOUT1IOUT21234567891020191817161514131211其中:DI0~DI7(DI0為最低位):8位數(shù)字量輸入端。ILE:數(shù)據(jù)允許控制輸入線,高電平有效。片選信號。寫信號線1。8.2MCS-51單片機與DAC的接口:寫信號線2。:數(shù)據(jù)傳送控制信號輸入線,低電平有效。IOUT1:模擬電流輸出線1。它是數(shù)字量輸入為“1”的模擬電流輸出端。IOUT2:模擬電流輸出線2,它是數(shù)字量輸入為“0”的模擬電流輸出端,采用單極性輸出時,IOUT2常常接地。Rfb:片內(nèi)反饋電阻引出線,反饋電阻制作在芯片內(nèi)部,用作外接的運算放大器的反饋電阻。VREF:基準電壓輸入線。電壓范圍為-10V~+10V。VCC:工作電源輸入端,可接+5V~+15V電源。AGND:模擬地。DGND:數(shù)字地。三.DAC0832的工作方式DAC0832有三種方式:直通方式、單緩沖方式和雙緩沖方式。8.2MCS-51單片機與DAC的接口8.2MCS-51單片機與DAC的接口1.直通方式:Vout-VCCILECSWR1DI0~DI7WR2XFERDGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-P2.7WRP1.0~P1.780512.單緩沖方式:8.2MCS-51單片機與DAC的接口Vout-VCCILECSWR1DI0~DI7WR2XFERDGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-P2.7WRP0.0~P0.78051DA轉(zhuǎn)換器的地址:7FFFH3.雙緩沖方式:8.2MCS-51單片機與DAC的接口P2.7P2.6WRP0.0~P0.78051

Vout-VCCILECSXFERWR1WR2DI0~DI7DGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-單片機對DA轉(zhuǎn)換器的操作分兩步進行:①使8位輸入鎖存器導(dǎo)通地址:7FFFH②使8位DAC寄存器導(dǎo)通地址:BFFFH四.DAC0832的應(yīng)用

D/A轉(zhuǎn)換器在實際中經(jīng)常作為波形發(fā)生器使用,通過它可以產(chǎn)生各種各樣的波形。

基本原理如下:利用D/A轉(zhuǎn)換器輸出模擬量與輸入數(shù)字量成正比這一特點,通過程序控制CPU向D/A轉(zhuǎn)換器送出隨時間呈一定規(guī)律變化的數(shù)字,則D/A轉(zhuǎn)換器輸出端就可以輸出隨時間按一定規(guī)律變化的波形。8.2MCS-51單片機與DAC的接口例1:根據(jù)單緩沖的方式連接,編程從DAC0832輸出端分別產(chǎn)生鋸齒波、三角波和方波。DAC0832的口地址為7FFFH。鋸齒波MOVDPTR,#7FFFHCLRALOOP:MOVX@DPTR,AINCASJMPLOOP三角波MOVDPTR,#7FFFHCLRALOOP1:MOVX@DPTR,AINCACJNEA,#0FFH,LOOP1LOOP2:MOVX@DPTR,ADECAJNZLOOP2SJMPLOOP1方波MOVDPTR,#7FFFHLOOP:MOVA,#00HMOVX@DPTR,AACALLDELAYMOVA,#FFHMOVX@DPTR,AACALLDELAYSJMPLOOPDELAY:MOVR7,#0FFHDJNZR7,$RET8.2MCS-51單片機與DAC的接口C語言編程:鋸齒波:#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++)

{DAC0832=i;}}}8.2MCS-51單片機與DAC的接口#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++)

{DAC0832=i;}for(i=0xff;i>0;i--){DAC0832=i;}}}8.2MCS-51單片機與DAC的接口三角波:方波:#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voiddelay(void);voidmain(){uchari;while(1){8.2MCS-51單片機與DAC的接口DAC0832=0;//輸出低電平delay();//延時DAC0832=0xff;//輸出高電平delay();//延時}}voiddelay()//延時函數(shù){uchari;for(i=0;i<0xff;i++){;}}8.2MCS-51單片機與DAC的接口習(xí)題:利用DAC0832芯片,采用單緩沖方式,產(chǎn)生梯形波,分別用匯編語言和C語言編程實現(xiàn)。梯形波MOVDPTR,#7FFFHCLRALOOP1:MOVX@DPTR,AINCACJNEA,#0FFH,LOOP1MOVX@DPTR,AACALLDELAYLOOP2:MOVX@DPTR,ADECAJNZLOOP2ACALLDELAYSJMPLOOP1DELAY:MOVR7,#0FFHDJNZR7,$RET梯形波:#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voiddelay(void);voidmain(){uchari;while(1){

for(i=0;i<0xff;i++)

{DAC0832=i;}

delay();//延時

8.2MCS-51單片機與DAC的接口for(i=0xff;i>0;i--){DAC0832=i;

}delay();}}voiddelay()//延時函數(shù){uchari;for(i=0;i<0xff;i++){;}}設(shè)計實例多路數(shù)字電壓表的設(shè)計1多路數(shù)字電壓表的原理及功能①多路數(shù)字式電壓表應(yīng)用系統(tǒng)主要利用A/D轉(zhuǎn)換器②處理過程如下:先用A/D轉(zhuǎn)換器對各路電壓值進行采樣,得到相應(yīng)的數(shù)字量,再按數(shù)字量與模擬量成正比關(guān)系運算得到對應(yīng)的模擬電壓值,然后把模擬值通過顯示器顯示出來。③設(shè)計時假設(shè)待測的輸入電壓為8路,電壓值的范圍為0~5V,要求能在四位LED數(shù)碼管上輪流顯示或單路選擇顯示。測量的最小分辨率為0.019V,測量誤差為0.02V。

設(shè)計實例多路數(shù)字電壓表的設(shè)計

根據(jù)系統(tǒng)的功能要求,控制系統(tǒng)采用AT89C52單片機,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論