ADC0832

ADC0832

ADC0832 是美國國家半導體公司生產的一種8 位解析度、雙通道A/D轉換晶片。由於它體積小,兼容性,性價比高而深受單片機愛好者及企業歡迎,其目前已經有很高的普及率。學習並使用ADC0832 可使我們了解A/D轉換器的原理,有助於我們單片機技術水平的提高。

基本介紹

  • 中文名:ADC0832
  • 解析度:8
  • A/D轉換器:逐次逼近式
  • A/D轉換:雙通道
特點,控制原理,簡單套用,

特點

· 輸入輸出電平與TTL/CMOS相兼容;
· 5V電源供電時輸入電壓在0~5V之間;
· 工作頻率為250KHZ,轉換時間為32μS;
· 一般功耗僅為15mW;
· 8P、14P—DIP(雙列直插)、PICC 多種封裝;
· 商用級晶片溫寬為0°C to +70°C,工業級晶片溫寬為−40°C to +85°C;
晶片接口說明:
· CS_片選使能,低電平晶片使能。
· CH0 模擬輸入通道0,或作為IN+/-使用。
· CH1 模擬輸入通道1,或作為IN+/-使用。
· GND 晶片參考0 電位(地)。
· DI 數據信號輸入,選擇通道控制。
· DO 數據信號輸出,轉換數據輸出
· CLK 晶片時鐘輸入。
· Vcc/REF 電源輸入及參考電壓輸入(復用)。
ADC0832 為8位解析度A/D轉換晶片,其最高分辨可達256級,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得晶片的模擬電壓輸入在0~5V之間。晶片轉換時間僅為32μS,具有雙數據輸出可作為數據校驗,以減少數據誤差,轉換速度快且穩定性能強。獨立的晶片使能輸入,使多器件掛接和處理器控制變的更加方便。通過DI 數據輸入端,可以輕易的實現通道功能的選擇。

控制原理

單片機對ADC0832 的控制原理
正常情況下ADC0832 與單片機的接口應為4條數據線,分別是CS、CLK、DO、DI。但由於DO端與DI端在通信時並未同時有效並與單片機的接口是雙向的,所以電路設計時可以將DO和DI 並聯在一根數據線上使用。當ADC0832未工作時其CS輸入端應為高電平,此時晶片禁用,CLK 和DO/DI 的電平可任意。當要進行A/D轉換時,須先將CS使能端置於低電平並且保持低電平直到轉換完全結束。此時晶片開始轉換工作,同時由處理器向晶片時鐘輸入端CLK 輸入時鐘脈衝,DO/DI端則使用DI端輸入通道功能選擇的數據信號。在第1 個時鐘脈衝的下沉之前DI端必須是高電平,表示起始信號。在第2、3個脈衝下沉之前DI端應輸入2 位數據用於選擇通道功能,其功能詳見官方資料。
如資料 所示,當此2 位數據為“1”、“0”時,只對CH0 進行單通道轉換。當2位數據為“1”、“1”時,只對CH1進行單通道轉換。當2 位數據為“0”、“0”時,將CH0作為正輸入端IN+,CH1作為負輸入端IN-進行輸入。當2 位數據為“0”、“1”時,將CH0作為負輸入端IN-,CH1 作為正輸入端IN+進行輸入。到第3 個脈衝的下沉之後DI端的輸入電平就失去輸入作用,此後DO/DI端則開始利用數據輸出DO進行轉換數據的讀取。從第4個脈衝下沉開始由DO端輸出轉換數據最高位DATA7,隨後每一個脈衝下沉DO端輸出下一位數據。直到第11個脈衝時發出最低位數據DATA0,一個位元組的數據輸出完成。也正是從此位開始輸出下一個相反位元組的數據,即從第11個位元組的下沉輸出DATA0。隨後輸出8位數據,到第19 個脈衝時數據輸出完成,也標誌著一次A/D轉換的結束。最後將CS置高電平禁用晶片,直接將轉換後的數據進行處理就可以了。
DC0832封裝以及各端子DC0832封裝以及各端子
作為單通道模擬信號輸入時ADC0832的輸入電壓是0~5V且8位解析度時的電壓精度為19.53mV。如果作為由IN+與IN-輸入的輸入時,可是將電壓值設定在某一個較大範圍之內,從而提高轉換的寬度。但值得注意的是,在進行IN+與IN-的輸入時,如果IN-的電壓大於IN+的電壓則轉換後的數據結果始終為00H。

簡單套用

圖1
ADC0832
上圖中說明了,ADC0832的封裝以及工作模式的選取...
圖2
ADC0832
此圖說明了ADC0832的工作時序..時鐘與DI,DO輸入,輸出的關係..
下面是測試程式,選擇CH1,單片機晶振為,18.432MHz
;ADC0832簡單測試(改)
A_0832_CS EQU P1.0 ;CS
A_0832_CLK EQU P1.1 ;CLK
A_0832_DI EQU P1.2 ;DI
A_0832_D EQU P1.3 ;DO
A_0832_T EQU 40H ;讀取時的脈衝計數
A_0832_DA EQU 41H ;數據所存位置
ORG 0
LJMP MAIN
ORG 30H
MAIN: LCALL ADC_RD
MOV A,A_0832_DA
AJMP $
ADC_RD:
MOV A_0832_T,#8
CLR A_0832_CLK
CLR A_0832_CS
SETB A_0832_DI ;START
SETB A_0832_CLK ;第一個上升沿
NOP
NOP
NOP
CLR A_0832_CLK
NOP
NOP
SETB A_0832_DI ;選擇CH1,通過組合選取通道(SGL/DIF)
NOP
SETB A_0832_CLK ;第二個上升沿
NOP
NOP
NOP
CLR A_0832_CLK
NOP
NOP
SETB A_0832_DI ;選擇CH1,通過組合選取通道(ODD/SIGN)
NOP
SETB A_0832_CLK ;第三個上升沿
NOP
NOP
NOP
CLR A_0832_CLK ;首個下降沿
NOP
NOP
NOP
SETB A_0832_CLK
NOP
NOP
A_0832_RD: ;讀取前,8位
CLR A_0832_CLK
NOP
NOP
NOP
SETB A_0832_CLK
MOV C,A_0832_D
RLC A
DJNZ A_0832_T,A_0832_RD
MOV A_0832_DA,A
RR A
MOV A_0832_T,#7
A_0832_RD1: ;讀後7位,+前1位
CLR A_0832_CLK
NOP
NOP
NOP
SETB A_0832_CLK
MOV C,A_0832_D
RRC A
DJNZ A_0832_T,A_0832_RD1
CJNE A,A_0832_DA,ADC_RD
SETB A_0832_CS
RET
END

相關詞條

熱門詞條

聯絡我們