《微機(jī)原理與應(yīng)用》模數(shù)與數(shù)模轉(zhuǎn)換接口_第1頁
《微機(jī)原理與應(yīng)用》模數(shù)與數(shù)模轉(zhuǎn)換接口_第2頁
《微機(jī)原理與應(yīng)用》模數(shù)與數(shù)模轉(zhuǎn)換接口_第3頁
《微機(jī)原理與應(yīng)用》模數(shù)與數(shù)模轉(zhuǎn)換接口_第4頁
《微機(jī)原理與應(yīng)用》模數(shù)與數(shù)模轉(zhuǎn)換接口_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《微機(jī)原理與接口技術(shù)》

輔助教學(xué)電子課件

第八章

數(shù)/模與模/數(shù)轉(zhuǎn)換第八章D/A與A/D轉(zhuǎn)換

教學(xué)重點(diǎn)DAC0832及其與主機(jī)的連接ADC0809及其與主機(jī)的連接8.1數(shù)/模(D/A)轉(zhuǎn)換D/A(數(shù)/模)轉(zhuǎn)換把數(shù)字量轉(zhuǎn)換為模擬量A/D(模/數(shù))轉(zhuǎn)換將模擬量轉(zhuǎn)換成數(shù)字量模擬量與數(shù)字量模擬量——連續(xù)變化的物理量數(shù)字量——時(shí)間和數(shù)值上都離散的量模擬/數(shù)字轉(zhuǎn)換器ADCDAC數(shù)字/模擬轉(zhuǎn)換器數(shù)字信號(hào)模擬信號(hào)現(xiàn)場信號(hào)1現(xiàn)場信號(hào)2現(xiàn)場信號(hào)n微型計(jì)算機(jī)放大器放大器放大器多路開關(guān)低通濾波傳感器低通濾波傳感器低通濾波傳感器A/D轉(zhuǎn)換器采樣保持器數(shù)字信號(hào)受控對(duì)象控制信號(hào)模擬信號(hào)D/A轉(zhuǎn)換器放大驅(qū)動(dòng)電路…模擬輸入輸出系統(tǒng)傳感器將各種現(xiàn)場的物理量測(cè)量出來并轉(zhuǎn)換成電信號(hào)(模擬電壓或電流)

放大器把傳感器輸出的信號(hào)放大到ADC所需的量程范圍低通濾波器用于降低噪聲、濾去高頻干擾,以增加信噪比多路開關(guān)把多個(gè)現(xiàn)場信號(hào)分時(shí)地接通到A/D轉(zhuǎn)換器采樣保持器周期性地采樣連續(xù)信號(hào),并在A/D轉(zhuǎn)換期間保持不變8.1.1D/A轉(zhuǎn)換原理數(shù)字量→按權(quán)相加→模擬量1101B=1×23+1×22+0×21+1×20=13D/A轉(zhuǎn)換器的原理圖(1)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF電阻網(wǎng)絡(luò)基準(zhǔn)電壓電子開關(guān)圖示D/A轉(zhuǎn)換器的原理圖(2)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF阻抗=2R運(yùn)算放大器虛地D/A轉(zhuǎn)換器的原理圖(3)Va=VREFVb=VREF/2Vc=VREF/4Vd=VREF/8I0=Vd/2R=VREF/(8×2R)I1=Vc/2R=VREF/(4×2R)I2=Vb/2R=VREF/(2×2R)I3=Va/2R=VREF/(1×2R)D/A轉(zhuǎn)換器的原理圖(4)Iout1=I0+I(xiàn)1+I(xiàn)2+I(xiàn)3

=VREF/2R×(1/8+1/4+1/2+1)Rfb=RVout=-Iout1×Rfb

=-VREF×[(20+21+22+23)/24]Vout=-(D/2n)×VREF8.1.2D/A轉(zhuǎn)換器的主要參數(shù)分辨率:

D/A轉(zhuǎn)換器對(duì)數(shù)字輸入量變化的敏感程度的度量。例如:8位D/A轉(zhuǎn)換器,轉(zhuǎn)換后的電壓滿程量為5V,其最小分辨電壓:

5V/256=20mV10位D/A轉(zhuǎn)換器,對(duì)同樣的轉(zhuǎn)換電壓,它能分辨的最小電壓:5V/1024=5mV轉(zhuǎn)換時(shí)間:數(shù)字輸入到完成轉(zhuǎn)換,輸出達(dá)到最終的穩(wěn)定值所需的時(shí)間電流型D/A轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間在ns~μs之間,電壓型的D/A轉(zhuǎn)換器轉(zhuǎn)換較慢轉(zhuǎn)換精度

指D/A轉(zhuǎn)換器實(shí)際輸出電壓與理論值之間的誤差。與D/A轉(zhuǎn)換器參考電壓的精度、權(quán)電阻的精度有關(guān)。線性度:當(dāng)數(shù)字量變化時(shí),D/A轉(zhuǎn)換器輸出模擬量按比例關(guān)系變化的程度。D/A轉(zhuǎn)換器的輸入輸出特性輸入緩沖能力輸入數(shù)據(jù)的寬度電流型還是電壓型輸入的碼制是單極性輸出還是雙極性輸出8.1.3DAC0832芯片DAC0832是8位的D/A轉(zhuǎn)換芯片內(nèi)部有兩極輸入緩沖寄存器和一個(gè)T型電阻網(wǎng)絡(luò)電流輸出型芯片圖示1.DAC0832的內(nèi)部結(jié)構(gòu)LE2LE1RfbAGNDDAC0832VccILEVREF輸入寄存器DGNDDI0~DI7D/A轉(zhuǎn)換器DAC寄存器Iout2Iout1CSWR1WR2XFER2.DAC0832的數(shù)字接口8位數(shù)字輸入端

DI0~DI7(DI0為最低位)輸入寄存器(第1級(jí)鎖存)的控制端

ILE、CS*、WR1*DAC寄存器(第2級(jí)鎖存)的控制端

XFER*、WR2*LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉(zhuǎn)換器DAC寄存器Iout1直通鎖存器的工作方式3.DAC0832的工作方式直通鎖存器的工作方式兩級(jí)緩沖寄存器都是直通鎖存器LE=1,直通(輸出等于輸入)LE=0,鎖存(輸出保持不變)DAC0832的工作方式:直通方式LE1=LE2=1輸入的數(shù)字?jǐn)?shù)據(jù)直接進(jìn)入D/A轉(zhuǎn)換器LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉(zhuǎn)換器DAC寄存器Iout1直通方式的連接方法與使用ILE接+5VCS*,WR1*,WR2*,XREF*接地(數(shù)字信號(hào)地該方式數(shù)據(jù)輸入不使用緩沖寄存器,在輸入端DI7~DI0一旦出現(xiàn)數(shù)據(jù)就立即開始D/A轉(zhuǎn)換。DAC0832的工作方式:單緩沖方式LE1=1,或者LE2=1兩個(gè)寄存器之一始終處于直通狀態(tài)另一個(gè)寄存器處于受控狀態(tài)(緩沖狀態(tài))LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉(zhuǎn)換器DAC寄存器Iout1單緩沖方式的連接方法與使用ILE接+5VWR1*接CPU的IOW*WR2*,XFER*接地(數(shù)字信號(hào)地),使DAC寄存器處于直通狀態(tài);CS*接I/O口地址譯碼器該方式數(shù)據(jù)寫入只需一次,寫入后即開始D/A轉(zhuǎn)換。DAC0832的工作方式:雙緩沖方式兩個(gè)寄存器都處于受控(緩沖)狀態(tài)能夠?qū)σ粋€(gè)數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換的同時(shí);輸入另一個(gè)數(shù)據(jù)LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉(zhuǎn)換器DAC寄存器Iout1雙緩沖方式的連接方法與使用ILE固定接+5V;CPU的IOW信號(hào)復(fù)連到WR1*和WR2*端;用CS*作為輸入緩沖器的“片選”信號(hào);XFER*作為DAC寄存器的“片選”信號(hào),它們分別接到兩個(gè)I/O口地址譯碼輸出。數(shù)據(jù)寫入時(shí)要分兩次進(jìn)行:第一次輸入待轉(zhuǎn)換的數(shù)字量;第二次寫操作只是一次“虛擬寫操作”,寫的內(nèi)容無關(guān)緊要,目的是啟動(dòng)DAC寄存器的鎖存功能。雙緩沖方式的優(yōu)點(diǎn)是在D/A轉(zhuǎn)換的同時(shí),可接收下一個(gè)待轉(zhuǎn)換的數(shù)據(jù)。4.DAC0832的模擬輸出Iout1、Iout2:電流輸出端

滿足:Iout1+I(xiàn)out2=常量Rfb:反饋電阻引出端(電阻在芯片內(nèi))VREF:參考電壓輸入端

+10V~-10VAGND:模擬信號(hào)地VCC:電源電壓輸入端

+5V~+15VDGND:數(shù)字信號(hào)地單極性電壓輸出Vout=-Iout1×Rfb=-(D/28)×VREFRfbIout2Iout1Vout+_AGNDADIVREF單極性電壓輸出舉例設(shè)VREF=-5VD=FFH=255時(shí),最大輸出電壓:

Vmax=(255/256)×5V=4.98VD=00H時(shí),最小輸出電壓:

Vmin=(0/256)×5V=0VD=01H時(shí),一個(gè)最低有效位(LSB)電壓:

VLSB=(1/256)×5V=0.02VVout=-(D/2n)×VREF8.1.4DAC芯片與主機(jī)的連接DAC芯片相當(dāng)于一個(gè)“輸出設(shè)備”,至少需要一級(jí)鎖存器作為接口電路考慮到有些DAC芯片的數(shù)據(jù)位數(shù)大于主機(jī)數(shù)據(jù)總線寬度,所以分成兩種情況:1.主機(jī)位數(shù)等于或大于DAC芯片位數(shù)2.主機(jī)位數(shù)小于DAC芯片位數(shù)1.主機(jī)位數(shù)大于或等于DAC芯片的連接moval,bufmovdx,portdoutdx,al譯碼ABD0~D7CLKDACVout+_ALS273IOWDAC0832單緩沖方式連接WR1CSIOW5V+5VRfbIout2Iout1WR2XFERDGNDAGNDD0~D7DI0~D17VccILEVREFVout+_A譯碼AB2.主機(jī)位數(shù)小于DAC芯片的連接數(shù)字?jǐn)?shù)據(jù)需要多次輸出接口電路也需要多個(gè)(級(jí))鎖存器保存多次輸出的數(shù)據(jù)并需要同時(shí)將完整的數(shù)字量提供給DAC轉(zhuǎn)換器CPUDAC8位12位兩級(jí)鎖存電路模擬輸出12位DAC第2級(jí)12位鎖存控制第1級(jí)低8位鎖存控制第1級(jí)高4位鎖存控制D0~D74位鎖存器4位鎖存器8位鎖存器8位鎖存器由同一個(gè)信號(hào)控制關(guān)鍵的一級(jí)鎖存無需輸出數(shù)據(jù)簡化的兩級(jí)鎖存電路模擬輸出12位DAC第2級(jí)12位鎖存控制第1級(jí)低8位鎖存控制D0~D74位鎖存器8位鎖存器8位鎖存器由同一個(gè)信號(hào)控制關(guān)鍵的一級(jí)鎖存需要輸出高4位數(shù)據(jù)movdx,port1moval,bloutdx,almovdx,port2moval,bhoutdx,alDAC芯片的應(yīng)用舉例-鋸齒波發(fā)生器

mov

dx,portd

mov

al,0repeat: outdx,al

inc

al

jmp

repeat輸出正向鋸齒波2次數(shù)據(jù)輸出的時(shí)間間隔02LSB1LSB255LSB254LSB鋸齒波周期8.2A/D轉(zhuǎn)換器模擬量數(shù)字量模擬/數(shù)字轉(zhuǎn)換器ADC8.2.1A/D轉(zhuǎn)換的基本原理存在多種A/D轉(zhuǎn)換技術(shù),各有特點(diǎn),分別應(yīng)用于不同的場合4種常用的轉(zhuǎn)換技術(shù)計(jì)數(shù)器式逐次逼近式雙積分式并行式1.計(jì)數(shù)器式以最低位為增減量單位的逐步計(jì)數(shù)法時(shí)鐘復(fù)位數(shù)字輸出比較器模擬輸入計(jì)數(shù)器D/A轉(zhuǎn)換器轉(zhuǎn)換結(jié)束圖示啟動(dòng)信號(hào)將計(jì)數(shù)器清0,產(chǎn)生的8位數(shù)字量經(jīng)內(nèi)部的D/A轉(zhuǎn)換輸出0伏電壓;該電壓被送到比較器與輸入的模擬電壓進(jìn)行比較;計(jì)數(shù)式A/D轉(zhuǎn)換原理圖示當(dāng)比較結(jié)果小于輸入的模擬電壓時(shí),比較器輸出高電平,啟動(dòng)計(jì)數(shù)器開始計(jì)數(shù);計(jì)數(shù)器在CLK的驅(qū)動(dòng)下加1計(jì)數(shù),使得D/A轉(zhuǎn)換后的電壓不斷上升;當(dāng)D/A轉(zhuǎn)換的電壓等于輸入的模擬電壓時(shí),比較器輸出為0,使計(jì)數(shù)器停止計(jì)數(shù)。此時(shí),數(shù)據(jù)線D7~D0上的數(shù)字量就是A/D轉(zhuǎn)換的結(jié)果。2.逐次逼近式從最高位開始的逐位試探法時(shí)鐘復(fù)位數(shù)字輸出轉(zhuǎn)換結(jié)束比較器模擬輸入寄存器D/A轉(zhuǎn)換器圖示逐次逼近式A/D轉(zhuǎn)換原理當(dāng)轉(zhuǎn)換器收到啟動(dòng)信號(hào)后,逐次逼近寄存器被清“0”,通過內(nèi)部D/A轉(zhuǎn)換器使輸出電壓V0為0,轉(zhuǎn)換開始:圖示在第一個(gè)CLK周期控制電路使逐次逼近寄存器的D7位為1(1000,0000)。這組數(shù)字經(jīng)內(nèi)部D/A轉(zhuǎn)換后,輸出電壓V0與輸入模擬電壓Vi比較:若Vi>V0,比較器輸出為“高”,通過控制電路將D7置“1”

保留若Vi<V0,比較器輸出為“低”,通過控制電路將D7位清0在第二CLK周期使D6位為1(1100,0000),經(jīng)D/A轉(zhuǎn)換后對(duì)應(yīng)輸出電壓V0,并與Vi比較:若Vi>V0,比較器輸出為“高”,通過控制電路將D6位“1”保留;若Vi<V0,比較器輸出為“低”,通過控制電路將D6位清0;重復(fù)上述過程,到D0位試探完畢,轉(zhuǎn)換結(jié)束,逐次寄存器中的數(shù)值經(jīng)緩沖器輸出。3.雙積分式兩個(gè)積分階段實(shí)質(zhì)是電壓/時(shí)間變換IREFIinVinVREF積分器比較器V/IV/I時(shí)鐘啟動(dòng)計(jì)數(shù)計(jì)數(shù)器數(shù)字輸出T2T1Vc固定斜率時(shí)間可變固定時(shí)間斜率可變轉(zhuǎn)換結(jié)束4.并行式速度快成本高直接比較法編碼電路VinVREF數(shù)字輸出比較器RRRRRRR/2R/2二、主要技術(shù)指標(biāo)轉(zhuǎn)換精度量化誤差非線性誤差其它誤差總誤差=各誤差的均方根量化間隔一個(gè)最低有效位對(duì)應(yīng)的模擬量△=Vmax/2n例:某8位ADC的滿量程電壓為5V,則其分辨率為:5V/256=19.6mV絕對(duì)量化誤差=1/2△轉(zhuǎn)換時(shí)間實(shí)現(xiàn)一次轉(zhuǎn)換需要的時(shí)間。精度越高(字長越長),轉(zhuǎn)換速度越慢。逐次逼近式A/D轉(zhuǎn)換器每進(jìn)行一次比較,即決定數(shù)字碼中的一位碼的去/留操作,需要8個(gè)時(shí)鐘脈沖,這樣8位轉(zhuǎn)換器完成一次轉(zhuǎn)換需要8X8=64個(gè)時(shí)鐘脈沖。例如ADC0809均是8位逐次逼近式A/D轉(zhuǎn)換器,典型的工作時(shí)鐘頻率為640kHz,完成一次轉(zhuǎn)換的時(shí)間大約為:54輸入動(dòng)態(tài)范圍允許轉(zhuǎn)換的電壓的范圍。如0~5V、0~10V等。8.2.2ADC0809芯片具有A/D轉(zhuǎn)換的基本功能CMOS工藝制作8位逐次逼近式ADC轉(zhuǎn)換時(shí)間為100s包含擴(kuò)展部件多路開關(guān),可完成8路A/D轉(zhuǎn)換三態(tài)鎖存緩沖器,可以和微處理器的數(shù)據(jù)線直接相連圖示ADC0809的內(nèi)部結(jié)構(gòu)圖ADC0809地址鎖存和譯碼OE通道選擇開關(guān)ADDAADDBADDC1N0IN1IN2IN3IN4IN5IN6IN78位三態(tài)鎖存緩沖器DACVcc比較器CLOCKSTARTGNDVREF(+)VREF(-)ALE逐次逼近寄存器SAR定時(shí)和控制D0D1D2D3D4D5D6D7EOC1.ADC0809的內(nèi)部結(jié)構(gòu)和外部引腳CLK:時(shí)鐘輸入信號(hào),典型的時(shí)鐘頻率為640kHzIN7~IN0:8路模擬量輸入ADDC,ADDB,ADDA:模擬通道選擇信號(hào): ADDC,ADDB,ADDA=000選擇IN0 ADDC,ADDB,ADDA=001選擇IN1… ADDC,ADDB,ADDA=111選擇IN7圖示ALE:地址鎖存允許信號(hào) 有效時(shí)鎖存ADDC~ADDA的通道選擇信號(hào)START:A/D轉(zhuǎn)換啟動(dòng)信號(hào)高電平時(shí)使內(nèi)部的逐次逼近寄存器清0由高→低時(shí)開始轉(zhuǎn)換START常與ALE短接,以便同時(shí)鎖存通道選擇信號(hào),并開始A/D轉(zhuǎn)換START和ALE的信號(hào)寬度不小于100μsEOC:轉(zhuǎn)換結(jié)束信號(hào)EOC由低→高表示轉(zhuǎn)換結(jié)束EOC可作為CPU的中斷請(qǐng)求信號(hào)OE:輸出允許信號(hào)OE有效時(shí),打開輸出三態(tài)門,輸出轉(zhuǎn)換后的數(shù)字量D7~D0:輸出數(shù)據(jù)線。VREF(+),VREF(-):參考電壓。VCC:工作電壓+5V2.ADC0809的轉(zhuǎn)換時(shí)序D0~D7OEEOCSTART/ALEADDA/B/CDATA100s2s+8T(最大)200ns(最小)轉(zhuǎn)換啟動(dòng)信號(hào)轉(zhuǎn)換結(jié)束信號(hào)3.ADC0809的轉(zhuǎn)換公式輸入模擬電壓輸出數(shù)字量基準(zhǔn)電壓正極基準(zhǔn)電壓負(fù)極單極性轉(zhuǎn)換示例基準(zhǔn)電壓VREF(+)=5V,VREF(-)=0V輸入模擬電壓Vin=1.5V N=(1.5-0)÷(5-0)×256

=76.8≈77=4DH雙極性轉(zhuǎn)換示例基準(zhǔn)電壓VREF(+)=+5V,VREF(-)=-5V輸入模擬電壓Vin=-1.5V N=(-1.5+5)÷(5+5)×256

=89.6≈90=5AH8.2.3ADC芯片與主機(jī)的連接ADC芯片相當(dāng)于“輸入設(shè)備”,需要接口電路提供數(shù)據(jù)緩沖器主機(jī)需要控制轉(zhuǎn)換的啟動(dòng)主機(jī)還需要及時(shí)獲知轉(zhuǎn)換是否結(jié)束,并進(jìn)行數(shù)據(jù)輸入等處理芯片與系統(tǒng)的連接模擬輸入端Ini:單路輸入多路輸入多路輸入時(shí)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809輸入0輸入1輸入2輸入3輸入4CPU指定通道號(hào)單路輸入時(shí)ADDCADDBADDAIN4ADC0809輸入+5V66通道地址線ADDA-ADDC的連接多路輸入時(shí),地址線不能接死,要通過一個(gè)接口芯片與數(shù)據(jù)總線連接。接口芯片可以選用:簡單接口芯片74LS273,74LS373等(占用一個(gè)I/O地址)可編程并行接口8255(占用四個(gè)I/O地址)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809輸入DB74LS273Q2Q1Q0CP來自I/O譯碼D0-D7ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809DB8255PB2PB1PB0CS#來自I/O譯碼D0-D7A1A0A1A0數(shù)據(jù)輸出線的連接與主機(jī)的連接可分成兩種方式直接相連:用于輸出帶有三態(tài)鎖存器的ADC芯片通過三態(tài)鎖存器相連:適用于不帶三態(tài)鎖存器的ADC芯片,也適用帶有三態(tài)鎖存緩沖器的芯片ADC芯片的數(shù)字輸出位數(shù)大于系統(tǒng)數(shù)據(jù)總線位數(shù),需把數(shù)據(jù)分多次讀取69ALE和START端的連接獨(dú)立連接:用兩個(gè)信號(hào)分別進(jìn)行控制——需占用兩個(gè)I/O端口或兩個(gè)I/O線;統(tǒng)一連接:用一個(gè)脈沖信號(hào)的上升沿進(jìn)行地址鎖存,下降沿實(shí)現(xiàn)啟動(dòng)轉(zhuǎn)換——只需占用一個(gè)I/O端口或一個(gè)I/O線。ADC0809ALESTART獨(dú)立連接來自I/O譯碼1來自I/O譯碼2ADC0809ALESTART統(tǒng)一連接來自I/O譯碼ADC0809ALESTART獨(dú)立連接來自I/O譯碼1來自I/O譯碼2ADC0809ALESTART統(tǒng)一連接來自I/O譯碼A/D轉(zhuǎn)換的啟動(dòng)

主機(jī)產(chǎn)生啟動(dòng)信號(hào)有兩種方法編程啟動(dòng)軟件上,執(zhí)行一個(gè)輸出指令硬件上,利用輸出指令產(chǎn)生ADC啟動(dòng)脈沖,或產(chǎn)生一個(gè)啟動(dòng)有效電平定時(shí)啟動(dòng)啟動(dòng)信號(hào)來自定時(shí)器輸出72判斷轉(zhuǎn)換結(jié)束的方法軟件延時(shí)等待(比如延時(shí)1ms)此時(shí)不用EOC信號(hào),CPU效率最低軟件查詢EOC狀態(tài)。把EOC作為中斷申請(qǐng)信號(hào),接到8259的IN端。在中斷服務(wù)程序中讀入轉(zhuǎn)換結(jié)果,效率較高

轉(zhuǎn)換結(jié)束信號(hào)的處理

不同的處理方式對(duì)應(yīng)程序設(shè)計(jì)方法不同①查詢方式:把結(jié)束信號(hào)作為狀態(tài)信號(hào)②中斷方式:把結(jié)束信號(hào)作為中斷請(qǐng)求信號(hào)③延時(shí)方式:不使用轉(zhuǎn)換結(jié)束信號(hào)④DMA方式:把結(jié)束信號(hào)作為DMA請(qǐng)求信號(hào)例

用ADC0809實(shí)現(xiàn)對(duì)8路模擬輸入信號(hào)的循環(huán)數(shù)據(jù)采集,轉(zhuǎn)換結(jié)果放在DATA為首的內(nèi)存單元中。8255初始化

INIT_8255PROCNEARMOVDX,037BHMOVAL,91H

;A,B,C均為方式0,A入,B出,CL入OUTDX,ALRET

INIT_8255ENDPSTART:

MOVAX,SEGDATAMOVDS,AXMOVSI,OFFSETDATA

CALLINIT_8255;初始化8255MOVBL,0

;通道號(hào),初始指向第0路MOVCX,8

;共采集8次,每路采集一次AGAIN:

MOVAL,BLMOVDX,0379H

OUTDX,AL;送通道地址ORAL,10HOUTDX,AL;送ALE信號(hào)(上升沿)ANDAL,0EFHOUTDX,AL

;輸出START信號(hào)(下降沿)

NOP

;空操作等待轉(zhuǎn)換MOVDX,037AHWAIT1:INAL,DX;讀EOC狀態(tài)ANDAL,02H

JZWAIT1;若EOC為低電平則等待MOVDX,0379HMOVAL,BLORAL,20HOUTDX,AL;EOC端為高電平則輸出讀允許信號(hào)OE=1MOVDX,0378HINAL,DX;讀入變換結(jié)果MOV[SI],AL

;將轉(zhuǎn)換的數(shù)字量送存儲(chǔ)器

INCSI;修改指針I(yè)NCBL;修改通道地址值

LOOPAGAIN

;若未采集完則再采集下一路數(shù)據(jù)MOVDX,0379HMOVAL,0OUTDX,AL

;若8路數(shù)據(jù)已采集完則回到初始狀態(tài)

HLT例11.1中斷方式舉例D0~D7220hIRQ2A0~A9譯碼VccD0~D7EOCADDAADDBADDCALE模擬輸入(0~5V)500KHzCLOCKVREF(+)+5VIN0OESTARTGNDVREF(-)IORIOW主程序 ;數(shù)據(jù)段

adtempdb0 ;給定一個(gè)臨時(shí)變量

;代碼段

…… ;設(shè)置中斷向量等工作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論