專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
ADC(模數(shù)轉(zhuǎn)換器)是許多單片機開發(fā)中非常重要的一部分,本文是關(guān)于將ADC連接到8051單片機。ADC0804是此處使用的ADC,在進(jìn)行接口程序之前,我們必須清楚地了解ADC0804的工作原理。
一、ADC0804
ADC0804是一顆8位、單通道的A/D轉(zhuǎn)換器。ADC0804的特點是差分模擬電壓輸入,0-5V輸入電壓范圍,無調(diào)零,內(nèi)置時鐘發(fā)生器,可以外部調(diào)節(jié)參考電壓以將較小的模擬電壓跨度轉(zhuǎn)換為8位分辨率等。ADC0804引腳圖如下圖所示:
ADC0804的Vref/2(引腳9)處的電壓可以在外部進(jìn)行調(diào)節(jié),以將較小的輸入電壓跨度轉(zhuǎn)換為全8位分辨率。Vref/2(pin9)左開表示輸入電壓跨度為0-5V,步長為5/255=19.6V。查看下表,了解不同的Vref/2電壓和相應(yīng)的模擬輸入電壓范圍:
轉(zhuǎn)換模擬輸入和讀取ADC0804輸出的步驟:
(1)使CS=0并向WR引腳發(fā)送一個低到高的脈沖以啟動轉(zhuǎn)換。
(2)現(xiàn)在繼續(xù)檢查INTR引腳。如果轉(zhuǎn)換未完成,INTR將為1,如果轉(zhuǎn)換完成,INTR將為0。
(3)如果轉(zhuǎn)換未完成(INTR=1),則輪詢直到完成。
(4)如果轉(zhuǎn)換完成(INTR=0),則進(jìn)入下一步。
(5)使CS=0并向RD引腳發(fā)送一個從高到低的脈沖以從ADC讀取數(shù)據(jù)。
二、原理圖
上圖顯示了ADC0804與8051的接口原理圖。電路啟動ADC以轉(zhuǎn)換給定的模擬輸入,然后接受相應(yīng)的數(shù)字?jǐn)?shù)據(jù)并將其顯示在連接在P0的LED陣列上。例如,如果模擬輸入電壓Vin為5V,則所有LED都會發(fā)光,以二進(jìn)制表示11111111,相當(dāng)于十進(jìn)制的255。AT89s51是這里使用的單片機。ADC0804的數(shù)據(jù)輸出引腳(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的內(nèi)部時鐘電路相關(guān)聯(lián)。預(yù)設(shè)電阻R10形成一個分壓器,可用于將特定輸入模擬電壓施加到ADC。按鈕S1、電阻器R11和電容器C4形成去抖動復(fù)位機制。晶體X1和電容器C2、C3與單片機的時鐘電路相關(guān)。
四、程序
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
以上就是英銳恩單片機開發(fā)工程師分享的8051單片機如何連接ADC。英銳恩專注單片機應(yīng)用方案設(shè)計與開發(fā),提供8位單片機、16位單片機、32位單片機。