ADC(模數轉換器)是許多單片機開發中非常重要的一部分,本文是關于將ADC連接到8051單片機。ADC0804是此處使用的ADC,在進行接口程序之前,我們必須清楚地了解ADC0804的工作原理。
一、ADC0804
ADC0804是一顆8位、單通道的A/D轉換器。ADC0804的特點是差分模擬電壓輸入,0-5V輸入電壓范圍,無調零,內置時鐘發生器,可以外部調節參考電壓以將較小的模擬電壓跨度轉換為8位分辨率等。ADC0804引腳圖如下圖所示:
ADC0804的Vref/2(引腳9)處的電壓可以在外部進行調節,以將較小的輸入電壓跨度轉換為全8位分辨率。Vref/2(pin9)左開表示輸入電壓跨度為0-5V,步長為5/255=19.6V。查看下表,了解不同的Vref/2電壓和相應的模擬輸入電壓范圍:
轉換模擬輸入和讀取ADC0804輸出的步驟:
(1)使CS=0并向WR引腳發送一個低到高的脈沖以啟動轉換。
(2)現在繼續檢查INTR引腳。如果轉換未完成,INTR將為1,如果轉換完成,INTR將為0。
(3)如果轉換未完成(INTR=1),則輪詢直到完成。
(4)如果轉換完成(INTR=0),則進入下一步。
(5)使CS=0并向RD引腳發送一個從高到低的脈沖以從ADC讀取數據。
二、原理圖
上圖顯示了ADC0804與8051的接口原理圖。電路啟動ADC以轉換給定的模擬輸入,然后接受相應的數字數據并將其顯示在連接在P0的LED陣列上。例如,如果模擬輸入電壓Vin為5V,則所有LED都會發光,以二進制表示11111111,相當于十進制的255。AT89s51是這里使用的單片機。ADC0804的數據輸出引腳(D0至D7)分別連接到端口引腳P1.0至P1.7。LEDD1至D8分別連接到端口引腳P0.0至P0.7。電阻器R1至R8是限流電阻器。簡單來說,單片機的P1是輸入端口,P0是輸出端口。ADC的控制信號(INTR、WR、RD和CS)分別在端口引腳P3.4至P3.7處可用。電阻器R9和電容器C1與ADC的內部時鐘電路相關聯。預設電阻R10形成一個分壓器,可用于將特定輸入模擬電壓施加到ADC。按鈕S1、電阻器R11和電容器C4形成去抖動復位機制。晶體X1和電容器C2、C3與單片機的時鐘電路相關。
四、程序
ORG00H MOVP1,#11111111B MAIN:CLRP3.7 SETBP3.6 CLRP3.5 SETBP3.5 WAIT:JBP3.4,WAIT CLRP3.7 CLRP3.6 MOVA,P1 CPLA MOVP0,A SJMPMAIN END
以上就是英銳恩單片機開發工程師分享的8051單片機如何連接ADC。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機。