關鍵詞:單片機 A/D轉換器 TLC0834
單片機控制系統(tǒng)通常要用到A/D轉換。根據(jù)輸出的信號格式,比較常用的A/D轉換方式可分為并行A/D和串行A/D。并行方式一般在轉換后可直接接收,但芯片的引腳比較多;串行方式所用芯片引腳少,封裝小,在PCB板上占用的空間也小,但需要軟件處理才能得到所需要的數(shù)據(jù)。
圖1 TLC0834的工作時序圖
1?。裕蹋茫埃福常春喗?/B>
1.1 TLC0834的主要特點
TLC0834是TI公司生產的8位逐次逼近模數(shù)轉換器?具有輸入可配置的多通道多路器和串形輸入輸出方式。其多路器可由軟件配置為單端或差分輸入,也可以配置為偽差分輸入。另外,其輸入基準電壓大小可以調整。在全8位分辨率下,它允許任意小的模擬電壓編碼間隔。由于TLC0834采用的是串行輸入結構,因此封裝體積小,可節(jié)省51系列單片機I/O資源,價格也較適中。其主要特點如下:
● 8位分辨率;
● 易于和微處理器接口或獨立使用;
● 可滿量程工作;
● 可用地址邏輯多路器選通4輸入通道;
● 單5V供電,輸入范圍為0~5V;
● 輸入和輸出與TTL、CMOS電平兼容;
● 時鐘頻率為250kHz時,其轉換時間為32μs;
● 可以和美國國家半導體公司的ADC0834和ADC0838進行替換,但它內部不帶齊納穩(wěn)壓器網(wǎng)絡;
● 總調整誤差為±1LSB。
1.2 工作特點
TLC0834可通過和控制處理器相連的串行數(shù)據(jù)鏈路來傳送控制命令,因而?可用軟件對通道進行選擇和輸入端進行配置,其控制邏輯表如表1所列。
表1 TLC0834多路器的控制邏輯表
多路器地址 | 通 道 號 | ||
SGL/DIF | ODD/EVEN | SELECT BIT1 |
CH0 CH1 CH2 CH3 |
L L H H |
L H L H |
L H L H |
+ - + - + - - + |
H H H H |
L L H H |
L H L H |
+ + + + |
輸入配置可在多路器尋址時序中進行。多路器地址可通過DI端移入轉換器。多路器地址選擇模擬輸入通道可決定輸入是單端輸入還是差分輸入。當輸入是差分時,應分配輸入通道的極性,并應將差分輸入分配到相鄰的輸入通道對中。例如通道0和通道1可被選為一對差分輸入。另外,在選擇差分輸入方式時,極性也可以選擇。一對輸入通道的兩個輸入端的任何一個都可以作為正極或負極。
通常TLC0834在輸出以最高位(MSB)開頭的數(shù)據(jù)流后,會以最低位(LSB)開頭重輸出一遍(前面的數(shù)據(jù)流)。其工作時序如圖1所示。
1.3 引腳功能
TLC0834的引腳排列如圖2所示,其中CH0~CH3為模擬輸入端; CS 為片選端;DI為串行數(shù)據(jù)輸入,該端僅在多路器尋址時(MUX Settling Time)才被檢測;DO為A/D轉換結果的三態(tài)串行輸出端;CLK為時鐘;SARS為轉換狀態(tài)輸出端,該端為高電平時,表示轉換正在進行,為低電平則表示轉換完成;REF為參考電壓輸入端;VCC為電源;DGTL GND為數(shù)字地,ANGL GND為模擬地。
2 與單片機的接口電路設計
TLC0834與89C51單片機的硬件接口電路的電路原理如圖3所示。圖中,單片機的P1.7接TLC0834的片選信號, P1.6用于產生A/D轉換的時鐘, P1.5為一個雙向I/O口位,可用于對模擬輸入進行配置及輸出轉換所得的數(shù)據(jù)。在這里,模擬信號以單端方式輸入,參考電壓為5V,即A/D模擬量的輸入范圍為0~5V。
3 單片機的軟件設計
該系統(tǒng)在工作時,單片機將通過編程產生串行時鐘,并按時序發(fā)送與接收數(shù)據(jù)位,以完成通道方式/通道數(shù)據(jù)的寫入和轉換結果的讀出。篇幅有限,現(xiàn)以通道0單端輸入模擬信號為例,給出A/D轉換的程序:
CLR P1.6 ;清時鐘
CLR P1.5
SETB P1.7 ;置片選為高
CLR P1.7 ;置片選為低
SETB P1.5 ?1 Start Bit
SETB P1.6
CLR P1.6
SETB P1.5 ?1
SETB P1.6
CLR P1.6
CLR P1.5 ?0
SETB P1.6
CLR P1.6
CLR P1.5 ?0 CH0
SETB P1.6
CLR P1.6 ?通道0,單端輸入
SETB P1.6
CLR P1.6
SETB P1.5 ?P1.5由輸出狀態(tài)改
為輸入狀態(tài)
LCALL ADCONV
···
···
···
ADCONV: MOV R0?#08H
ADLOP0: MOV C?P1.5 ;讀轉換結果
RLC A ;累加器A左移,將結果
逐位移入A中
STEB P1.6
CLR P1.6
DJNZ R0?ADLOP0
MOV R0?#07H
ADLOP1: SETB P1.6
CLR P1.6
DJNZ R0?ADLOP1
SETB P1.6
CLR P1.6
SETB P1.6
CLR P1.6
SETB P1.7 ;置片選信號為高,
結束一次轉換
RET
轉換結果經換算后可轉換為十進制數(shù)顯示出來。如在精度要求較高的場合,可以選用位數(shù)更多的串行A/D并取高位數(shù)據(jù)。限于篇幅,該部分程序本文不作介紹。
4 結論
本文給出的硬件和軟件均經實踐檢驗,并已在某公司的產品上應用,其性價比較高,可大大降低生產成本。