在日常實驗中,經常使用單片機系統實現數據采集功能,即實現實驗數據連續精確的數模轉換。ADC0809是該類單片機數據采集系統中使用最為頻繁的數模轉換芯片之一。但是,在許多介紹ADC0809芯片的文獻中,該數模轉換芯片使用時往往還需要較多的輔助芯片,硬件電路和軟件編寫都比較復雜,相應成本偏高。因此本文給出一種方法,只需2片ADC0809數模轉換芯片、1片741s74觸發器芯片,就能實現簡潔、快捷、精確的16通道實時數據采集。
1.硬件介紹
ADC0809是一個典型的8位8通道逐次逼近式數模轉換芯片,可實現8路模擬信號的分時采集,外接時鐘頻率一般不高于640KHz,一次數據轉換時間大約為100us。ADC0809數據采集方式有3種:延時,查詢,中斷。它們在電路連接和程序編寫中都有所不同。在實驗中可以選擇其中的一種或多種,本文中的電路連接和程序都采用查詢方式。ADC0809為一種輸出型芯片,管腳A,B,C為地址,用于選通IN0~IN7上的一路模擬量輸入。通常單片機通過A,B,C將二進制的3位地址數據輸入到ADC0809中,ADC0809采集相應通道的數據并通過8位數據線傳回到單片機中。引腳A,B,C選擇通道的二進制地址數據如表1所示。
741s74是一種上升沿觸發的邊沿觸發器,該芯片中包含2個相同的、相互獨立的邊沿觸發D觸發器電路。每一個D觸發器的輸出信號的頻率為輸入信號的頻率的1/2,如果將2個D觸發器串聯,就可以形成一個四分頻的延時器。
2.系統設計
2.1ADC0809與51單片機
在大多數文獻中,ADC0809與51單片機連接方式分為3種,如圖1~圖3所示。
圖1連接方式1
圖2連接方式2
圖3連接方式3
3種連接方式都為連接1片ADC0809的數據采集電路圖,除需要分頻芯片外,還需要外加1片~2片其他的芯片,其中,圖3只能適合使用1片ADC0809。如要連接多片ADC0809,則外加芯片更多。
圖4為本次實驗所設計的簡單的連接方式,把第1片ADC0809的8位數據線與51單片機的一組I/O直接相連,取該組I/O的低3位為ADC0809采集通道的地址線。同理,第2片ADC0809的8位數據線與地址線同接在另一組I/O13中。這種連接方式可以省去外加的芯片,簡化電路,減少了電路板的空間,節省成本。
圖4ADC0809與51單片機的簡單連接
2.2采樣保持濾波電路
ADC0809對輸入模擬量要求如下:信號單極性,電壓范圍為0~5;若信號太小,則必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持;為避免通道之間的信號相互干擾,在模擬電壓信號進入ADC0809之前,先進行濾波處理。圖5為在信號進入ADC0809之前進行的放大采樣保持濾波處理,IN端接待采集的電流信號,OUT端接ADC0809的8個模擬電壓信號輸入口之一。如果待采集信號為電壓信號,電阻R1要略去。
6
圖5采樣保持濾波電路
2.3時鐘電路
ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,其正常工作頻率為500kHz-640kHz。通常為ADC0809提供外部時鐘信號有2種方式:(1)可以利用外部晶振頻率為其單獨提供;(2)可以借助單片機的時鐘信號。很明顯,第2種方式更為簡單方便。51系列單片機的ALE腳在不訪問片外程序存儲器時,可作為對外輸出的時鐘信號,其提供時鐘頻率為2MHz。該時鐘頻率在經由741s74的2個D觸發器進行四分頻之后,轉換為500kHz,符合ADC0809正常工作允許的頻率范圍。
3.程序設計
在圖4的連接方式下,程序設計比較簡單,只需按照“選通道一啟動采集一等待轉換結束一讀數據”4個步驟循環進行,就可以依次讀取到16個通道采集的數據。以下是以C語言為基礎編寫的采集程序的核心語句。
for(i=0;i《8;i++)
{
P2=0xf8+i;//通道地址
ST2=0;//啟動采集
ST2=I;
ST2=0;
whiIe(EOc2==0);//等待轉換完畢
OE2=l;
addata[i]=P2;//ADC0809的l通道~8通道的數據
OE2=0;
}
for(i=8;i《16;i++)
{
P0=0xf8+i;
STI=0;
STI=I;
ST1=0:
while(EOC1==O):
OE1=1;
ad_data[i]=P1;
P2=ad_data[i];//ADC0809的9通道~1O通道的數據
}
上述程序并沒有設置采集頻率,ADC0809的時鐘頻率是500kHz,轉換一次需要64個時鐘脈沖,即進行一次模數轉換需要時間0.128ms。命令語句一行用時約2us,與轉換時間相比可以忽略不計。由計算可知,1s內約可采集7812個數據。利用定時器或軟件延時可以靈活控制數據采集的頻率,理論上采樣頻率的范圍可以控制在lHz~78l2Hz。在實際測試時,由于各方面的原因往往達不到理論結果,一般采用的范圍為1Hz~50Hz時,采集結果最佳。
4.實驗結果與分析
把一個可變電阻的電壓輸出端接在ADC0809的模擬通道上。在0~5V范圍內調節可變電阻的電壓輸出值,檢測采集系統的各個通道的采集結果,16個通道均能正常工作,誤差范圍為0-4%。根據分析,產生誤差的原因有以下幾方面:
(1)電源電壓輸入不穩定,導致ADC0809的供電電壓不穩定,即ADC0809數模轉換的參考電壓值不穩定,影響了轉換結果;
(2)電壓表測試精度低,存在測試誤差;
(3)雖然進行了濾波處理,但是不能完全消除待采集電壓信號的干擾。
改進上述問題只能在最大程度上減小誤差,不可能根本消除。例如,可以采取在電源輸入端、輸入電壓端增加高精度濾波電路或用軟件濾波等方法減小誤差。
如果在實際中要用到多片ADC0809,還有一種電路連接方法,如把每一片ADC0809的數據輸出線都連接在單片機的同一組I/O口上,并將ADC0809的引腳ST,EOC,OE連接在單片機相同的引腳上,但是每一片ADC0809的地址線A,B,C要分開連接在單片機不同的引腳上。
結束語
該系統采用ADC0809與單片機之間電路相連接的方法,與現有方法相比,其具有電路簡單、制作成本低、程序編寫簡易、信號穩定等優點,可以實現16通道及更多通道的實時數據采集。實驗結果表明,該系統采集精度較高,采集頻率范圍廣,采集速度較快。由于采用的芯片等級較低,因此該系統的采集速率有限,這也是下一步需要改進的地方。
責任編輯人:CC
-
51單片機
+關注
關注
274文章
5702瀏覽量
123492 -
ADC0809
+關注
關注
4文章
144瀏覽量
38814 -
數據采集系統
+關注
關注
4文章
254瀏覽量
30897
發布評論請先 登錄
相關推薦
評論