單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程(C語言版)課件項(xiàng)目六模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程(C語言版)課件項(xiàng)目六模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程(C語言版)課件項(xiàng)目六模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程(C語言版)課件項(xiàng)目六模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程(C語言版)課件項(xiàng)目六模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

教學(xué)目的掌握A/D、D/A轉(zhuǎn)換的概念;掌握ADC0808/ADC0809、DAC0832的功能和應(yīng)用;掌握ADC0808/ADC0809、DAC0832與單片機(jī)的連接及編程;掌握結(jié)構(gòu)體數(shù)組的應(yīng)用。一、模/數(shù)(A/D

)、數(shù)/模(D/A

)轉(zhuǎn)換在單片機(jī)實(shí)時(shí)控制系統(tǒng)中,外界的物理量和執(zhí)行機(jī)構(gòu)的控制量通常是模擬量。例如:電壓、電流、壓力、溫度、位移、流量。在單片機(jī)內(nèi)部是離散的數(shù)字量。因此單片機(jī)的輸入輸出端需要模數(shù)和數(shù)模轉(zhuǎn)換。工業(yè)生產(chǎn)過程的閉環(huán)控制模擬量D/A傳感器執(zhí)行元件A/D數(shù)字量數(shù)字量模擬量模擬量輸入(數(shù)據(jù)采集)模擬量輸出(過程控制)單片機(jī)簡(jiǎn)稱ADC。按照轉(zhuǎn)換原理分為:計(jì)數(shù)式ADC、雙積分式ADC、逐次逼近式ADC和并行式ADC。常用的是雙積分式ADC、逐次逼近式ADC。雙積分式ADC的特點(diǎn):轉(zhuǎn)換精度高、抗干擾性能好、價(jià)格便宜,轉(zhuǎn)換速度慢,一般用于速度要求不高的場(chǎng)合。逐次逼近式ADC的特點(diǎn):轉(zhuǎn)換精度高、轉(zhuǎn)換速度快(幾微秒到幾百微秒)。目前最常用。芯片主要有ADC0801~0805(8位,單輸入通道)、ADC0808~0809(8位,8輸入通道)、ADC0816~0817(8位,16輸入通道)等。應(yīng)用最廣泛的是ADC0808~0809。二、認(rèn)識(shí)ADC0808/0809模數(shù)轉(zhuǎn)換器

三、ADC0809模數(shù)轉(zhuǎn)換器的結(jié)構(gòu)ADC0809是8通道8位的,以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件;內(nèi)部有一個(gè)8通道模擬多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換;A/D轉(zhuǎn)換后的數(shù)據(jù)由三態(tài)鎖存器輸出;片內(nèi)沒有時(shí)鐘,需外接時(shí)鐘信號(hào)。通道選擇表

地址碼CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7四、ADC0809主要特性8路8位A/D轉(zhuǎn)換器,即分辨率8位;具有轉(zhuǎn)換起停控制端;轉(zhuǎn)換時(shí)間為100μs;單個(gè)+5V電源供電;模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn);工作溫度范圍為-40~+85攝氏度;低功耗,約15mW。五、ADC0809的引腳功能ADC0809芯片有28條引腳,采用雙列直插式封裝IN0~I(xiàn)N7:8路模擬量輸入端;D0~D7:8位數(shù)字量輸出端;直接接Px.7~Px.0ADDC、ADDB、ADDA:3位地址輸入線,用于選通8路模擬輸入中的一路;CLK:時(shí)鐘脈沖輸入端;內(nèi)部無時(shí)鐘,需外部提供。單片機(jī)的ALE(Fosc的1/6或1/12)加分頻電路提供。CLK的時(shí)鐘信號(hào)頻率范圍是10k~1280khz,通常使用500khz。REF(+)、REF(-):基準(zhǔn)電壓;Vcc:電源,單一+5V;GND:地;ALE:地址鎖存允許信號(hào),上升沿時(shí)CBA的狀態(tài)讀入鎖存器。START:A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。EOC:A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。六、ADC0809工作過程首先根據(jù)輸入的3位地址碼,ALE=1,將地址存入地址鎖存器中;此地址碼經(jīng)譯碼選通8路模擬輸入之一到比較器;START上升沿將逐次逼近寄存器復(fù)位;下降沿啟動(dòng)A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行;直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng);當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。對(duì)應(yīng)程序的編寫步驟:START=0;START=1;//復(fù)位轉(zhuǎn)換器,讀地址碼選通輸入START=0;//啟動(dòng)A/D轉(zhuǎn)換while(EOC==0); //等待A/D轉(zhuǎn)換結(jié)束OE=1; //數(shù)據(jù)輸出允許temp=P0;七、確認(rèn)轉(zhuǎn)換完成的編程方法A/D轉(zhuǎn)換結(jié)束后結(jié)果傳送給單片機(jī)處理,關(guān)鍵問題是如何判斷A/D轉(zhuǎn)換結(jié)束,方法有三:定時(shí)傳送方式。轉(zhuǎn)換時(shí)間固定的,設(shè)計(jì)延時(shí)子程序。查詢方式。軟件判斷EOC的狀態(tài),轉(zhuǎn)換時(shí)低電平,結(jié)束變高電平。while(EOC==0); 中斷方式。把EOC作為中斷請(qǐng)求信號(hào),經(jīng)反相器后送到外部中斷0或1引腳。工作模塊15模數(shù)轉(zhuǎn)換LED顯示

模擬量由電位器模擬產(chǎn)生;使用ADC0808/ADC0809模數(shù)轉(zhuǎn)換器,將電位器上的模擬量(模擬電壓)轉(zhuǎn)換為數(shù)字量;把轉(zhuǎn)換結(jié)果送到8個(gè)LED進(jìn)行顯示(既二進(jìn)制顯示)。模數(shù)轉(zhuǎn)換顯示電路255/5=二極管狀態(tài)/電壓模數(shù)轉(zhuǎn)換顯示程序模數(shù)轉(zhuǎn)換顯示流程圖模數(shù)轉(zhuǎn)換顯示程序開始初始化啟動(dòng)A/D轉(zhuǎn)換A/D轉(zhuǎn)換完成?數(shù)據(jù)輸出延時(shí)結(jié)束技能訓(xùn)練6-1

采用中斷方式完成模數(shù)轉(zhuǎn)換設(shè)計(jì)要求工作模塊15是采用查詢方式完成模數(shù)轉(zhuǎn)換LED顯示的,如何采用中斷方式實(shí)現(xiàn)模數(shù)轉(zhuǎn)換LED顯示。中斷方式模數(shù)轉(zhuǎn)換電路設(shè)計(jì)

中斷方式模數(shù)轉(zhuǎn)換程序設(shè)計(jì)

中斷方式模數(shù)轉(zhuǎn)換電路設(shè)計(jì)

把轉(zhuǎn)換完成的狀態(tài)信號(hào)(EOC)作為中斷請(qǐng)求信號(hào),經(jīng)過反相器后送到單片機(jī)的INT0引腳,電路其它部分與工作模塊15一樣。工作模塊16數(shù)字電壓表設(shè)計(jì)與實(shí)現(xiàn)

使用AT89S52單片機(jī),采用動(dòng)態(tài)顯示的方式,把8通道模數(shù)轉(zhuǎn)換器ADC0808采樣的電壓值的大小經(jīng)單片機(jī)處理后由數(shù)碼管顯示出來,量程為0-5V,顯示格式:X.XXX。數(shù)字電壓表電路設(shè)計(jì)

由于需要顯示多位,因此數(shù)碼管采用了較節(jié)省I/O口線的動(dòng)態(tài)顯示方式。數(shù)字電壓表程序設(shè)計(jì)

數(shù)碼管顯示電壓值實(shí)現(xiàn)分析模數(shù)轉(zhuǎn)換采用的是8位的ADC0808,因此其分辨力為5*1/2^8V,即19.6mV。為了得到各位待顯示的數(shù)字的大小,采取了除法和取余相結(jié)合的方式:dat[3]=tmp/10000; /最高位dat[2]=tmp/1000%10;dat[1]=tmp/100%10;dat[0]=tmp/10%10; /最低位

數(shù)字電壓表控制C語言程序思考:XX.XX顯示?技能拓展直流電機(jī)轉(zhuǎn)速控制概述:調(diào)節(jié)直流電機(jī)轉(zhuǎn)速最方便有效的調(diào)速方法是對(duì)電樞(轉(zhuǎn)子線圈)電壓進(jìn)行控制(正比關(guān)系)。所以可以通過改變一個(gè)周期內(nèi)接通和斷開轉(zhuǎn)子線圈上供電電壓的時(shí)間,從而改變平均電壓,達(dá)到控制電機(jī)轉(zhuǎn)速的目的。怎樣實(shí)現(xiàn)?采用PWM(脈沖寬度調(diào)制)的方法可以實(shí)現(xiàn)平滑調(diào)速,轉(zhuǎn)速由脈沖的占空比決定。概念:1、占空比:在一串理想的脈沖周期序列中(如方波),正脈沖的持續(xù)時(shí)間與脈沖總周期的比值。例如:脈沖寬度1μs,信號(hào)周期4μs的脈沖序列占空比為0.25。2、PWM:利用半導(dǎo)體器件的導(dǎo)通與關(guān)斷,把直流電壓變成電壓脈沖序列加在電樞上,通過控制電壓脈沖寬度或周期已達(dá)到變壓的目的。優(yōu)點(diǎn):無極調(diào)速系統(tǒng),啟停時(shí)對(duì)直流系統(tǒng)無沖擊,啟動(dòng)功耗低、運(yùn)行穩(wěn)定。直流電機(jī)轉(zhuǎn)速控制電路設(shè)計(jì)

直流電機(jī)轉(zhuǎn)速控制程序設(shè)計(jì):程序演示八、數(shù)模轉(zhuǎn)換器概述:數(shù)模轉(zhuǎn)換器,又稱D/A轉(zhuǎn)換器,簡(jiǎn)稱DAC,它是把數(shù)字量轉(zhuǎn)變成模擬量的器件。下面以常用的DAC0832為例講解。特性:價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),應(yīng)用廣泛。主要特性如下:*分辨率為8位;*電流穩(wěn)定時(shí)間1us;*可單緩沖、雙緩沖或直接數(shù)字輸入;*只需在滿量程下調(diào)整其線性度;*單一電源供電(+5V~+15V);*低功耗,20mW。

1.DAC0832結(jié)構(gòu)框圖8位輸入寄存器8位DAC寄存器8位D/A轉(zhuǎn)換器UREFIOUT2RfbAGNDVCCDGNDDI7~DI0CSWR1WR2XFERILELE1LE2IOUT1&&&RFB

它由一個(gè)8位輸入寄存器、一個(gè)8位DAC寄存器和一個(gè)8位D/A轉(zhuǎn)換器三大部分組成。數(shù)據(jù)輸入可以采用兩級(jí)鎖存或單級(jí)鎖存或直接輸入。由數(shù)據(jù)鎖存端控制。數(shù)據(jù)鎖存控制LE=1,跟隨=0,鎖存2.DAC0832引腳功能DI7~DI0:8位輸入數(shù)據(jù)信號(hào)。IOUT1:DAC輸出電流1。當(dāng)DAC鎖存器中為全1時(shí),IOUT1最大(滿量程輸出);為全0時(shí),IOUT1為0。IOUT2:DAC輸出電流2。它作為運(yùn)算放大器的另一個(gè)差分輸入信號(hào)(一般接地)。滿足IOUT1+IOUT2=滿量程輸出電流。Rfb:反饋電阻(內(nèi)已含一個(gè)反饋電阻)接線端。DAC0832中無運(yùn)放,且為電流輸出,使用時(shí)須外接運(yùn)放。芯片中已設(shè)置了Rfb,只要將此引腳接到運(yùn)放的輸出端即可。ILE:輸入鎖存允許信號(hào),高電平有效。

CS:片選信號(hào),低電平有效。WR1:輸入數(shù)據(jù)選通信號(hào),低電平有效。(上升沿鎖存)XFER:數(shù)據(jù)傳送選通信號(hào),低電平有效。WR2:DAC寄存器選通信號(hào),低電平有效。(上升沿鎖存)通常兩條地線連接一起。

DGND:數(shù)字量地線,是控制電路中各種數(shù)字電路的零電位。AGND:模擬量地線,是放大器、A/D和D/A轉(zhuǎn)換器中模擬電路的零電位。UREF:參考電壓輸入。一般此端外接一個(gè)精確、穩(wěn)定的電壓基準(zhǔn)源。UREF可在-10V至+10V范圍內(nèi)選擇。(-5v)UCC:電源輸入端(一般取+5V~+15V)。3.DAC0832工作方式當(dāng)ILE、CS和WR1同時(shí)有效時(shí),輸入數(shù)據(jù)DI7~DI0進(jìn)入輸入寄存器;并在WR1的上升沿實(shí)現(xiàn)數(shù)據(jù)鎖存。當(dāng)WR2和XFER同時(shí)有效時(shí),輸入寄存器的數(shù)據(jù)進(jìn)入DAC寄存器;并在WR2的上升沿實(shí)現(xiàn)數(shù)據(jù)鎖存。八位D/A轉(zhuǎn)換電路隨時(shí)將DAC寄存器的數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào)(IOUT1+IOUT2)輸出。

DAC0832的使用有雙緩沖型、單緩沖型和直通型三種工作方式。(b)單緩沖方式:適合在不要求多片D/A同時(shí)輸出時(shí)。此時(shí)只需一次寫操作,就開始轉(zhuǎn)換,提高了D/A的數(shù)據(jù)吞吐量。(a)雙緩沖方式:采用二次緩沖方式,可在輸出的同時(shí),采集下一個(gè)數(shù)據(jù),提高了轉(zhuǎn)換速度;也可在多個(gè)轉(zhuǎn)換器同時(shí)工作時(shí),實(shí)現(xiàn)多通道D/A的同步轉(zhuǎn)換輸出。(c)直通方式:輸出隨輸入的變化隨時(shí)轉(zhuǎn)換。工作模塊17信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)工作任務(wù):利用單片機(jī)和DAC0832設(shè)計(jì)信號(hào)發(fā)生器,實(shí)現(xiàn)鋸齒波模擬量的輸出。電路設(shè)計(jì):程序設(shè)計(jì):1、產(chǎn)生原理2、定義擴(kuò)展的I/O地址及片外RAM地址3、延時(shí)時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。時(shí)間越長(zhǎng),斜率越小,周期長(zhǎng)。4、演示、擴(kuò)展C語言結(jié)構(gòu)體類型

結(jié)構(gòu)體與前面介紹過的數(shù)組一樣,是一種構(gòu)造類型的數(shù)據(jù),它是將若干個(gè)不同類型的數(shù)據(jù)變量有序地組合在一起而形成的一種數(shù)據(jù)的集合體。組成該集合體的各個(gè)數(shù)據(jù)變量稱為結(jié)構(gòu)成員。整個(gè)集合體使用一個(gè)單獨(dú)的結(jié)構(gòu)變量名。一般來說結(jié)構(gòu)中的各個(gè)變量之間是存在某些關(guān)系的,如時(shí)間數(shù)據(jù)中的時(shí)、分、秒等。結(jié)構(gòu)體類型的定義

定義一個(gè)結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{成員項(xiàng)列表};其中“struct”是關(guān)鍵字,作為定義結(jié)構(gòu)體類型的標(biāo)志;“結(jié)構(gòu)體名”由用戶自行定義;“成員列表”為該結(jié)構(gòu)體中的各個(gè)成員,由于結(jié)構(gòu)體可以由不同類型的數(shù)據(jù)組成,因此對(duì)結(jié)構(gòu)體中各成員都要進(jìn)行數(shù)據(jù)類型的說明。結(jié)構(gòu)體類型變量的定義

結(jié)構(gòu)體定義好以后,就可以指明該結(jié)構(gòu)體的具體對(duì)象,即定義該種類型的變量,結(jié)構(gòu)體類型變量的定義主要有如下三種方式:先定義結(jié)構(gòu)體類型,再定義變量名在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量名直接定義結(jié)構(gòu)體變量先定義結(jié)構(gòu)體類型,再定義變量名定義一個(gè)表示時(shí)間的結(jié)構(gòu)體類型。structtime{

unsignedcharhour;

unsignedcharminute;

unsignedcharsecond;};定義好一個(gè)結(jié)構(gòu)體后,就可以用它來定義結(jié)構(gòu)體變量。一般格式為:struct結(jié)構(gòu)體名結(jié)構(gòu)體變量名1,結(jié)構(gòu)體變量名2,...結(jié)構(gòu)體變量名n;用結(jié)構(gòu)體time來定義時(shí)間的結(jié)構(gòu)體變量:structtimetime1;結(jié)構(gòu)體變量time1具有structtime類型的結(jié)構(gòu),可以使用該結(jié)構(gòu)體中的數(shù)據(jù)。定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量名一般格式為:struct結(jié)構(gòu)體名{成員列表}結(jié)構(gòu)體變量名1,結(jié)構(gòu)體變量名2,...結(jié)構(gòu)體變量名n;

直接定義結(jié)構(gòu)體變量

一般格式如下:struct{成員列表}結(jié)構(gòu)體變量名1,結(jié)構(gòu)體變量名2,...結(jié)構(gòu)體變量名n;第三種方法直接省略了結(jié)構(gòu)體名,一般不提倡。結(jié)構(gòu)體變量的引用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論