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