计算机控制系统课程设计ad转换,计算机a/d转换器与系统的连接及举例
1.輸入模擬電壓的連接
a/d轉(zhuǎn)換器的輸入模擬電壓可以是單端輸入也可以是雙端輸入。如單通道8位a/d轉(zhuǎn)換器adc0804的兩個(gè)輸入端為vin(-)、vin(+),如果用單端輸入的正向信號(hào),則把vin(-)接地,信號(hào)加到vin(+)端;如果用單端輸入的負(fù)向信號(hào),則把vin(+)接地,信號(hào)加到vin(-)端;如果用雙端輸入,則模擬信號(hào)加在vin(-)端和vin(+)端之間。
adc0808/0809可以從in0~in7接8路模擬電壓輸入,通常接成單端、單極性輸入,這時(shí)uref(+)=5v、uref(-)=0v,也可以接成雙極性輸入,這時(shí)uref(+)和uref(-)應(yīng)分別接+、-極性的參考電壓。ad574是單端輸入模擬電壓,在10vin和20vin中任一端和agnd之間,可輸入單極性電壓或雙極性電壓,輸入模擬電壓的極性不同,其輸入電路也不同(可參閱圖5-54、圖5-55)。
2.數(shù)據(jù)輸出和系統(tǒng)總線的連接
a/d轉(zhuǎn)換器的數(shù)據(jù)輸出有兩種方式。一種是a/d芯片內(nèi)部帶有三態(tài)輸出門,其數(shù)據(jù)輸出線可以直接掛到系統(tǒng)數(shù)據(jù)總線上去。另一種是a/d芯片內(nèi)部不帶三態(tài)輸出門,或雖有三態(tài)輸出門,但它不受外部信號(hào)控制,而是當(dāng)轉(zhuǎn)換結(jié)束時(shí)自動(dòng)開門,如ad570就是這種芯片。
3.a/d轉(zhuǎn)換啟動(dòng)信號(hào)
a/d轉(zhuǎn)換器是由cpu發(fā)出啟動(dòng)轉(zhuǎn)換信號(hào)的。啟動(dòng)信號(hào)有電平啟動(dòng)和脈沖啟動(dòng)兩種方式。如ad570、ad571、ad572等要求用電平啟動(dòng)信號(hào),在整個(gè)a/d轉(zhuǎn)換期間,啟動(dòng)電平信號(hào)不能撤消。cpu一般要通過并行接口輸出端或用d觸發(fā)器發(fā)出和保持有效的電平啟動(dòng)信號(hào)。adc0804、adc0808/0809和ad574都要求用脈沖啟動(dòng)信號(hào)。通過讀/寫信號(hào)或程序控制得到足夠?qū)挾鹊拿}沖信號(hào)。
4.轉(zhuǎn)換結(jié)束信號(hào)及轉(zhuǎn)換數(shù)據(jù)的讀取
a/d轉(zhuǎn)換結(jié)束時(shí),a/d轉(zhuǎn)換芯片輸出轉(zhuǎn)換結(jié)束信號(hào)。轉(zhuǎn)換結(jié)束信號(hào)也有兩種:電平信號(hào)和脈沖信號(hào)。cpu檢測(cè)到轉(zhuǎn)換結(jié)束信號(hào)后,即可讀取轉(zhuǎn)換后的數(shù)據(jù)。cpu一般可以采用以下3種方式和a/d轉(zhuǎn)換器進(jìn)行聯(lián)絡(luò)來實(shí)現(xiàn)對(duì)轉(zhuǎn)換數(shù)據(jù)的讀取:
(1)程序查詢方式
(2)中斷方式
(3)固定的延遲程序方式
可畫出adc0808/0809和8086cpu的連接原理圖如圖1所示。
圖1 adc0808/0809與8086cpu的連接原理圖
由于adc0808/0809的數(shù)據(jù)輸出帶三態(tài)輸出門,故可直接接到cpu數(shù)據(jù)總線上。按圖5-56所示接線,74ls138譯碼出的地址范圍正好是78h~7fh。低3位地址線a2~a0分別直接接到adc0808/0809的采樣地址輸入端c、b、a上,用于選通8路輸入通路中的其中一路。那么用一條輸出指令即可啟動(dòng)某一通路開始轉(zhuǎn)換(使adc0808/0809的start端和ale端得到一個(gè)啟動(dòng)正脈沖信號(hào)):
contv1:moval,00h;可以是不為00h的其他數(shù)字
out78h,al;選通in0通路并開始轉(zhuǎn)換
…contv7:moval,00h;
out7fh,al;選通in7通路并開始轉(zhuǎn)換
…
轉(zhuǎn)換結(jié)束,adc0808/0809從eoc端發(fā)出一個(gè)正脈沖信號(hào),通過中斷控制器8259a向cpu發(fā)出中斷請(qǐng)求,cpu響應(yīng)中斷后,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,執(zhí)行一條輸入指令,即可讀取轉(zhuǎn)換后的數(shù)據(jù)。
例 ad574與8031的連接。
圖2為ad574與8031的接口電路。
圖2 ad574與8031的接口電路
利用該接口電路完成一次a/d轉(zhuǎn)換,并把轉(zhuǎn)換結(jié)果的高8位放入r2中,低8位放入r3中的
工作程序如下:
main:movr0,#7ch;選擇ad574,并令a0=0
movx@r0,a;啟動(dòng)a/d轉(zhuǎn)換,全12位
loop:nop
jbp3.2,loop;查詢轉(zhuǎn)換是否結(jié)束
movxa,@r0;讀取高8位
movr2,a;存入r2中
movr0,#7dh;令a0=1
movxa,@r0;讀取低4位,尾隨4個(gè)0
movr3,a;存入r3中
…
例 位a/d轉(zhuǎn)換器ad574與外部的連接。
圖3是ad574與外部的連接電路。
圖3 ad574與外部的連接電路
設(shè)轉(zhuǎn)換結(jié)束信號(hào)sts接8255a的pa,8255a初始化設(shè)定為a口輸入。用查詢法啟動(dòng)和
讀取ad574的轉(zhuǎn)換數(shù)據(jù)的接口程序如下:
outadport,al;
啟動(dòng)a/d按12位轉(zhuǎn)換,adport是ad574的一個(gè)偶地址
wait1:inal,pa;
讀取轉(zhuǎn)換結(jié)束信號(hào),pa是8255a的a端口地址
movcl,03;
rcral,cl;右移三次
jcwait1;如為高電平,則等待
inal,adport;讀取轉(zhuǎn)換后的高8位數(shù)據(jù)
movah,al;高8位數(shù)據(jù)傳送到ah
inal,adport+1;
讀取轉(zhuǎn)換后的低4位數(shù)據(jù)(后跟4個(gè)0)
…
總結(jié)
以上是生活随笔為你收集整理的计算机控制系统课程设计ad转换,计算机a/d转换器与系统的连接及举例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LabVIEW编程LabVIEW开发 研
- 下一篇: 维修RC-DS10K东芝IH电饭煲-温度