AD574A是一種單片高速12位逐次比較型A/D轉換器,這里介紹ad574a中文資料,他內置雙極性電路構成的混合集成轉換顯片,具有外接元件少,功耗低,精度高等特點,并且具有自動校零和自動極性轉換功能,只需外接少量的阻容件即可構成一個完整的A/D轉換器,其主要功能特性如下: 分辨率:12位 非線性誤差:小于±1/2LBS或±1LBS 轉換速率:25us 模擬電壓輸入范圍:0—10V和0—20V,0—±5V和0—±10V兩檔四種 電源電壓:±15V和5V 數據輸出格式:12位/8位 芯片工作模式:全速工作模式和單一工作模式。
ad574a中文資料:
CS:片選信號,低電平有效。
CE:芯片允許信號,高電平有效。只有CS和CE同時有效,AD574A才能工 作。
R/C讀出或轉換控制信號,用于控制ADC574A是轉換還是讀出。當為低電 平時,啟動A/D轉換;當為高電平時,將轉換結果讀出。
12/8:數據輸出方式控制信號。當為高電平時,輸出數據為12位;當為 低電平時,數據是作為兩個8位字輸出。
A0轉換位數控制信號。當為高電平是,進行8位轉換,為低電平進行12位轉換。
CS:片選信號,低電平有效。
CE:芯片允許信號,高電平有效。只有CS和CE同時有效,AD574A才能工 作。
R/C讀出或轉換控制信號,用于控制ADC574A是轉換還是讀出。當為低電 平時,啟動A/D轉換;當為高電平時,將轉換結果讀出。
12/8:數據輸出方式控制信號。當為高電平時,輸出數據為12位;當為 低電平時,數據是作為兩個8位字輸出。
A0轉換位數控制信號。當為高電平是,進行8位轉換,為低電平進行12位轉換。
AD574A管腳功能參數說明
AD574A管腳功能說明:
[1]. Pin1(+V)——+5V電源輸入端。 [2]. Pin2( )——數據\ 模式選擇端,通過此引腳可選擇數據縱線是12位或8位輸出。
[3]. Pin3( )——片選端。 [4]. Pin4(A0)——字節地址短周期控制端。與 端用來控制啟動轉換的方式和數據輸出格式。須注意的是, 端TTL電平不能直接+5V或0V連接。 [5]. Pin5( )——讀轉換數據控制端。 |
[6]. Pin6(CE)——使能端。
現在我們來討論AD574A的CE和A0對其工作狀態的控制過程。在CE=1、 =0同時滿足時,AD574A才會正常工作,在AD574處于工作狀態時,當 =0時A/D轉換,當 =1是進行數據讀出。 和A0端用來控制啟動轉換的方式和數據輸出格式。A0-0時,啟動的是按完整12位數據方式進行的。當A0=1時,按8位A/D轉換方式進行。當 =1,也即當AD574A處于數據狀態時,A0和 控制數據輸出狀態的格式。當 =1時,數據以12位并行輸出,當 =0時,數據以8位分兩次輸出。而當A0=0時,輸出轉換數據的高8位,A0=1時輸出A/D轉換數據的低4位,這四位占一個字節的高半字節,低半字節補零。其控制邏輯真值表見表1。 |
[7]. Pin7(V+)——正電源輸入端,輸入+15V電源。
[8]. Pin8(REF OUT)——10V基準電源電壓輸出端。 [9]. Pin9(AGND)——模擬地端。 [10]. Pin10(REF IN)——基準電源電壓輸入端。 [11]. Pin(V-)——負電源輸入端,輸入-15V電源。 [12]. Pin1(V+)——正電源輸入端,輸入+15V電源。 [13]. Pin13(10V IN)——10V量程模擬電壓輸入端。 [14]. Pin14(20V IN)——20V量程模擬電壓輸入端。 |
|
[15]. Pin15(DGND)——數字地端。
[16]. Pin16—Pin27(DB0—DB11)——12條數據總線。通過這12條數據總線向外輸出A/D轉換數據。 |
[17]. Pin28(STS)——工作狀態指示信號端,STS=1時,表示轉換器正處于轉換狀態,當STS=0時,聲明A/D轉換結束,通過此信號可以判別A/D轉換器的工作狀態,作為單片機的中斷或查詢信號之用。
|
ad574a程序:
sbit ad_status = P3^3;
uchar xdata ad_convert _at_ 0x6000; //開始轉換
uchar xdata ad_read_hi _at_ 0x6002; //讀取高字節
uchar xdata ad_read_lo _at_ 0x6003; //讀取低字節
uchar xdata ad_read_hi _at_ 0x6002; //讀取高字節
uchar xdata ad_read_lo _at_ 0x6003; //讀取低字節
uint ad_1674 (void)
{
union adc
{
uint adcc;
uchar ad[2];
};
union adc add;
{
union adc
{
uint adcc;
uchar ad[2];
};
union adc add;
ad_convert=0xff;
while(ad_status);
add.ad[0]=ad_read_hi;
add.ad[1] =ad_read_lo;
add.adcc=add.adcc>>4;
return add.adcc;
}ORG 0000H
AJMP MAIN ;主程序
ORG 0013H
LJMP XAD ;中斷1 A/D采樣子程序
;*********************************************
;* 初始化 ad574a程序 *
;*********************************************
ORG 0030H
MAIN: MOV SP,#60H ;設置堆棧
;SETB EA
clr ie1
SETB IT1
START: LCALL MNLCJ
;*****************************************
;* A/D采樣子程序 初始化 *
;*****************************************
AD1: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#0C000H;打開 0 通道
MOV A,#08H
MOVX @DPTR,A
MOV DPTR,#9000H ;啟動A/D轉換
MOVX @DPTR,A
SETB EX1
POP ACC
POP DPL
POP DPH
RET
;*****************************
;* A/D 574的中斷子程序 *
;*****************************
XAD: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#9002H;讀入高8位結果放入50H
MOVX A,@DPTR
MOV 50H,A
INC DPTR
MOVX A,@DPTR ;讀入低4 位結果放入51H
MOV 51H,A
CLR EX1
POP ACC
POP DPL
POP DPH
RETI
;*********************************************
;模擬量采集 *
;*********************************************
MNLCJ: MOV R0,#40H
LCALL AD1 ;第一端口模擬量采集
ajmp $
; MOV A,50H
; MOV @R0,A
;INC R0
;MOV A,51H
;MOV @R0,A
END
NOP
NOP
LJMP main
LJMP main