單片機是一種數(shù)字器件,只能處理數(shù)字量,在工業(yè)生產(chǎn)和日常生活中,常用于電流、電壓、溫度、濕度和壓力等信號的監(jiān)測或處理。而這些信號都是連續(xù)變化的模擬量,被單片機處理之前必須轉成數(shù)字量,而單片機處理后得到的數(shù)字量也要根據(jù)需要轉換為對應的模擬量。
模擬量到數(shù)字量的轉換被稱為模-數(shù)轉換,或簡稱A-D轉換(Analog to Digital Convertion),實現(xiàn)A-D轉換的電路被稱為A-D轉換器,簡稱為ADC(Analog to Digital Converter)。類似地,數(shù)字量到模擬量的轉換被稱為數(shù)-模轉換,或簡稱D-A轉換(Digital to Analog Convertion),實現(xiàn)D-A轉換的電路被稱為D-A轉換器,簡稱為DAC(Digital to Analog Converter)。
圖5-41為一個典型單片機應用系統(tǒng)的結構框圖,其中:①傳感器可將溫度、濕度和壓力等非電信號轉換成電信號;②信號調(diào)理環(huán)節(jié)對信號進行放大和濾波等處理;③功率放大環(huán)節(jié)將D-A轉換后的信號進行功率放大,以滿足執(zhí)行機構對驅動能力的要求;④顯示器和鍵盤屬于人機交互環(huán)節(jié),可向用戶反饋系統(tǒng)工作狀態(tài)信息或接收用戶的指令;⑤開關量控制的執(zhí)行機構(如繼電器等)可以被單片機的數(shù)字量控制。
圖5-41單片機應用系統(tǒng)結構框圖
DAC0832內(nèi)部的8位輸入寄存器和8位DAC寄存器可以分別進行鎖存,使得DAC0832的使用更加靈活,具有三種擴展方式,即直通方式、單緩沖方式和雙緩沖方式。
(1)直通方式
直通方式的電路原理圖如圖5-44所示。該方式下,DAC0832內(nèi)部的ILE1和ILE2同時為高電平,DAC0832 DI7~DI0引腳上的數(shù)據(jù)可以直接到達8位D-A轉換器的輸入端,并被轉換。在這種方式下,D-A轉換不受單片機的控制,常用于不帶單片機等控制器的應用系統(tǒng)。
圖5-44 DAC0832直通方式的電路原理圖
(2)單緩沖方式
單緩沖方式是指DAC0832內(nèi)部的8位輸入寄存器和8位DAC寄存器中的一個工作于直通方式,另一個工作于受控方式。這里所說的直通方式是指:ILE1或ILE2為高電平,使得對應寄存器的輸出數(shù)據(jù)隨著輸入數(shù)據(jù)的變化而變化;而受控方式是指:ILE1或ILE2為低電平,使得對應的寄存器不接收新數(shù)據(jù),僅當需要接收新數(shù)據(jù)時,才使ILE1或ILE2為高電平。
圖5-45為DAC0832單緩沖方式單極性輸出的原理圖,這里所謂的單極性是指其輸出電壓的極性始終與參考電壓的極性相反。
下面以圖5-45為例,介紹單緩沖方式的工作原理。
由T形電阻網(wǎng)絡DAC的工作原理可知,若假設單片機通過DI7~DI0引腳送給
DAC0832的數(shù)字量是D,則Vout=?D×VREF/256。
在圖5-45中,由于WR2和XFER均為低電平,所以8位DAC寄存器處于直通方式;而CS和WR1引腳分別與8051單片機的P2.7和WR引腳相連,使得單片機可以通過指令控制8位輸入寄存器。
與訪問并行I/O接口8255A相同,單片機可以通過指令“MOVX@DPTR,A”和“MOVX@Ri,A”訪問和控制DAC0832。由圖5-13所示時序圖可知,這兩條指令執(zhí)行
時,WR引腳的低電平將與數(shù)據(jù)總線P0上的數(shù)據(jù)同時出現(xiàn),此時只要使地址總線的P2.7引腳為低電平,即可使DAC0832的8位輸入寄存器接收數(shù)據(jù)。因此,圖5-45中DAC0832的地址可以是7FFFH,確定地址的方法在簡單I/O擴展部分已經(jīng)提到過,此處不再贅述。另外,因為地址的低8位不影響DAC0832的工作,所以圖5-45中沒有用于低8位地址鎖存的鎖存器。
圖5-45 DAC0832單緩沖方式的單極性輸出電路原理圖
(3)雙緩沖方式
雙緩沖方式是指DAC0832內(nèi)部的8位輸入寄存器和8位DAC寄存器均工作于受控方式。在大部分時間中,ILE1或ILE2為低電平,僅當需要接收新數(shù)據(jù)時,才被單片機通過指令設置為高電平。如此可以控制多個不同的DAC0832同時完成D-A轉換,輸出達到同步。
圖5-48為DAC0832雙緩沖方式單極性輸出的原理圖,其中,3片DAC0832的8位DAC寄存器均由單片機的P2.7和WR引腳控制,而它們的8位輸入寄存器則由單片機的WR引腳和其他不同的引腳控制,即:1號P2.6引腳、2號P2.5引腳和3號P2.4引腳。因此,雙緩沖方式下,每個DAC0832都有兩個地址,一個是8位DAC寄存器的地址,另一個是8位輸入寄存器的地址。在圖5-48中,3個DAC0832的8位輸入寄存器地址相同,均為7FFFH(只要保證P2.7為0,且P2.6、P2.5和P2.4均不為0即可);它們的8位DAC寄存器地址各不相同,分別為1號0BFFFH(只有P2.6為0)、2號0DFFFH(只有P2.5為0)和3號0EFFFH(只有P2.4為0)。