新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ADC0809引腳圖與接口電路

        ADC0809引腳圖與接口電路

        作者: 時間:2016-11-18 來源:網絡 收藏
        A/D轉換器芯片ADC0809簡介8路模擬信號的分時采集,片內有8路模擬選通開關,以及相應的通道抵制鎖存用譯碼電路,其轉換時間為100μs左右。

        本文引用地址:http://www.104case.com/article/201611/315833.htm

        圖9.8 《ADC0809引腳圖

        1. ADC0809的內部結構

        ADC0809的內部邏輯結構圖如圖9-7所示。

        圖9.7 《ADC0809內部邏輯結構》

        圖中多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉換器進行轉換,這是一種經濟的多路數據采集方法。地址鎖存與譯碼電路完成對A、B、C 3個地址位進行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉換結果通過三態輸出鎖存器存放、輸出,因此可以直接與系統數據總線相連,表9-1為通道選擇表。

        表9-1 通道選擇表

        2.信號引腳

        ADC0809芯片為28引腳為雙列直插式封裝,其引腳排列見圖9.8。

        對ADC0809主要信號引腳的功能說明如下:

        IN7~IN0——模擬量輸入通道

        ALE——地址鎖存允許信號。對應ALE上跳沿,A、B、C地址狀態送入地址鎖存器中。

        START——轉換啟動信號。START上升沿時,復位ADC0809;START下降沿時啟動芯片,開始進行A/D轉換;在A/D轉換期間,START應保持 低電平。本信號有時簡寫為ST.

        A、B、C——地址線。 通道端口選擇線,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。其地址狀態與通道對應關系見表9-1。

        CLK——時鐘信號。ADC0809的內部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500KHz的時鐘信號

        EOC——轉換結束信號。EOC=0,正在進行轉換;EOC=1,轉換結束。使用中該狀態信號即可作為查詢的狀態標志,又可作為中斷請求信號使用。

        D7~D0——數據輸出線。為三態緩沖輸出形式,可以和單片機的數據線直接相連。D0為最低位,D7為最高

        OE——輸出允許信號。用于控制三態輸出鎖存器向單片機輸出轉換得到的數據。OE=0,輸出數據線呈高阻;OE=1,輸出轉換得到的數據。

        Vcc—— +5V電源

        Vref——參考電源參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型值為+5V(Vref(+)=+5V, Vref(-)=-5V).

        9.2.2MCS-51單片機與ADC0809的接口

        ADC0809與MCS-51單片機的連接如圖9.10所示。

        電路連接主要涉及兩個問題。一是8路模擬信號通道的選擇,二是A/D轉換完成后轉換數據的傳送。

        1. 8路模擬通道選擇

        圖9.10 ADC0809與MCS-51的連接

        如圖9.11所示模擬通道選擇信號A、B、C分別接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址鎖存允許信號ALE由P2.0控制,則8路模擬通道的地址為0FEF8H~0FEFFH.此外,通道地址選擇以作寫選通信號,這一部分電路連接如圖9.12所示。

        圖9.11 ADC0809的部分信號連接

        圖9.12 信號的時間配合

        從圖中可以看到,把ALE信號與START信號接在一起了,這樣連接使得在信號的前沿寫入(鎖存)通道地址,緊接著在其后沿就啟動轉換。圖9.19是有關信號的時間配合示意圖。

        啟動A/D轉換只需要一條MOVX指令。在此之前,要將P2.0清零并將最低三位與所選擇的通道好像對應的口地址送入數據指針DPTR中。例如要選擇IN0通道時,可采用如下兩條指令,即可啟動A/D轉換:

        MOV DPTR , #FE00H ;送入0809的口地址

        MOVX @DPTR , A ;啟動A/D轉換(IN0)

        注意:此處的A與A/D轉換無關,可為任意值。

        2. 轉換數據的傳送

        A/D轉換后得到的數據應及時傳送給單片機進行處理。數據傳送的關鍵問題是如何確認A/D轉換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。

        (1)定時傳送方式

        對于一種A/D轉換其來說,轉換時間作為一項技術指標是已知的和固定的。例如ADC0809轉換時間為128μs,相當于6MHz的MCS-51單片機共64個機器周期??蓳嗽O計一個延時子程序,A/D轉換啟動后即調用此子程序,延遲時間一到,轉換肯定已經完成了,接著就可進行數據傳送。

        (2)查詢方式

        A/D轉換芯片由表明轉換完成的狀態信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態,即可卻只轉換是否完成,并接著進行數據傳送。

        (3)中斷方式

        把表明轉換完成的狀態信號(EOC)作為中斷請求信號,以中斷方式進行數據傳送。

        不管使用上述那種方式,只要一旦確定轉換完成,即可通過指令進行數據傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉換數據送上數據總線,供單片機接受。

        不管使用上述那種方式,只要一旦確認轉換結束,便可通過指令進行數據傳送。所用的指令為MOVX 讀指令,仍以圖9-17所示為例,則有

        MOV DPTR , #FE00H

        MOVX A , @DPTR

        該指令在送出有效口地址的同時,發出有效信號,使0809的輸出允許信號OE有

        效,從而打開三態門輸出,是轉換后的數據通過數據總線送入A累加器中。

        這里需要說明的示,ADC0809的三個地址端A、B、C即可如前所述與地址線相連,也可與數據線相連,例如與D0~D2相連。這是啟動A/D轉換的指令與上述類似,只不過A的內容不能為任意數,而必須和所選輸入通道號IN0~IN7相一致。例如當A、B、C分別與D0、D1、D2相連時,啟動IN7的A/D轉換指令如下:

        MOV DPTR, #FE00H ;送入0809的口地址
        MOV A ,#07H ;D2D1D0=111選擇IN7通道
        MOVX @DPTR, A ;啟動A/D轉換

        9.2.3A/D轉換應用舉例

        設有一個8路模擬量輸入的巡回監測系統,采樣數據依次存放在外部RAM 0A0H~0A7H單元中,按圖9.10所示的接口電路,ADC0809的8個通道地址為0FEF8H~0FEFFH.其數據采樣的初始化程序和中斷服務程序(假定只采樣一次)如下:

        初始化程序:

        MOV

        R0, #0A0H

        ;數據存儲區首地址

        MOV

        R2, #08H

        ;8路計數器

        SETB

        IT1

        ;邊沿觸發方式

        SETB

        EA

        ;中斷允許

        SETB

        EX1

        ;允許外部中斷1中斷

        MOV

        DPTR, #0FEF8H

        ;D/A轉換器地址

        LOOP:

        MOVX

        @DPTR, A

        ;啟動A/D轉換

        HERE:

        SJMP

        HERE

        ;等待中斷

        中斷服務程序:

        DJNZ

        R2, ADEND

         

        MOVX

        A, @DPTR

        ;數據采樣

        MOVX

        @R0, A

        ;存數

        INC

        DPTR

        ;指向下一模擬通道

        INC

        R0

        ;指向數據存儲器下一單元

        MOVX

        @DPTR, A

         

        ADEND:

        RETI




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 石景山区| 灌南县| 长白| 盈江县| 邵东县| 乐陵市| 桦南县| 夏邑县| 尖扎县| 台北县| 禹城市| 甘洛县| 炎陵县| 贺州市| 那坡县| 蒙山县| 横峰县| 富阳市| 乌兰察布市| 喀喇沁旗| 凤城市| 白朗县| 华蓥市| 宁安市| 阿瓦提县| 电白县| 鄂尔多斯市| 军事| 永善县| 临武县| 阿拉善右旗| 拜泉县| 衡阳县| 屏东县| 颍上县| 桂东县| 大埔县| 文山县| 隆昌县| 贡觉县| 阆中市|