ADC0809是CMOS工藝8通道,8位逐次逼近式A/D模數轉換器。其內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼後的信號,隻選通8路模擬輸入信號中的一個進行A/D轉換。目前僅在單片機初學應用設計中較為常見。因此本文介紹了一種數字電壓表,其采用了ADC0809來進行電壓的采集及模數轉換,用AT89S52單片機來做控製單元,進行電壓的測量和顯示。
1.係統硬件設計
1.1係統構成
該係統主要包括幾大模塊:數據采集模塊、A/D轉換模塊、控製模塊、顯示模塊、按鍵模塊等。采用AT89S52作為控製模塊,ADC0809作為A/D轉換模塊的核心,ADC0809本身具有8路模擬量輸入端口,通過C、B、A,3位地址輸入端,能從8路中選擇一路進行轉換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8路輸入電壓進行測量。LED數碼管的顯示采用軟件譯碼動態顯示,通過按鍵模塊的操作可以選擇8路循環顯示,也可以選擇某條單路顯示。
1.2數據采集電路
數據采集電路是係統的主要組成部分,ADC0809具有8路模擬量輸入通道IN0~IN7,通過3位地址輸入端C、B、A(引腳23~25)進行選擇。引腳22為地址鎖存控製端ALE,當輸入為高電平時,C、B、A引腳輸入的地址鎖存於ADC0809內部鎖存器中,經內部譯碼電路譯碼選中相應的模擬通道。引腳6為啟動轉換控製端START,當輸入一個2 μs寬的高電平脈衝時,就啟動ADC0809開始對輸入通道的模擬量進行轉換。引腳7為A/D轉換器,當開始轉換時,EOC信號為低電平,經過一段時間,轉換結束,轉換結束信號EOC輸出高電平,轉換結果存放於ADC0809內部的輸出數據寄存器中。引腳9腳為A/D轉換數據輸出允許控製端OE,當OE為高電平時,存放於輸出數據鎖存器中的數據通過ADC0809的數據線D0~D7輸出。引腳10為ADC0809的時鍾信號輸入端CLOCK.在連接時,ADC0809的數據線D0~ D7與AT89S52的P1口相連接,ADC0809的地址引腳、地址鎖存端ALE、啟動信號START、數據輸出允許控製端OE分別與AT89S51的P3口相連接,轉換結束信號EOC與AT89S52的P3.2相連接。時鍾信號輸入端CLOCK信號,由單片機的地址鎖存信號ALE得到,采集電路如圖1所示。

圖1 數據采集電路
2.軟件設計
2.1主程序
主程序包含初始化部分,調用A/D轉換子程序和調用顯示子程序,如圖2所示。

圖2 主程序流程圖
初始化部分包含存通道數據緩衝區初始化和顯示緩衝區初始化。另外,對於單路顯示和循環顯示,係統設置了一個初始標誌位。
初始化時標誌位設置為0,默認為循環顯示,當它為1時,則單路顯示,標誌位通過外部按鍵控製。
2.2數據處理子程序
ADC0809轉換之後輸出的結果是8位二進製數。由公式(1)可知,當ADC0809輸出為(111111111)時,輸入電壓值VI=5.00V;當ADC0809輸出為(00000000)時,輸入電壓值為VI=0.00V;當ADC0809輸出為(10000000)時,輸入電壓值VI=2.50V.由於單片機進行數學運算時結果隻取整數部分,因此當輸出為(10000000)時計算出的電壓值VI=2.00V,很不準確。為了提高精確度,必須把小數部分保留,具體方法是:如果小數點後保留兩位,在運算的時候分子乘以100,保留三位就乘以1000;本設計是在小數點後保留兩位,運算方式如公式(2)。
VI=Dout /255×5 (1)
VI=Dout/255×5×100=Dout×100/51 (2)
由式(2)可知當ADC0809輸出為(10000000)時,單片機運算結果為250;然後由單片機將250除以10得到商為25,餘數為0,再將25除以10得到商為2,餘數為5;由此得到較為精確的數值。
結語
本文總結了基於ADC0809設計的數字電壓表,實現了采集8路數據,並將結果在四位一體數碼管上進行滾動顯示或單獨顯示的功能,測量的最小分辨率為0.019V;該數字電壓表具有電路簡單,成本低等優點,可以方便地進8路A/D轉換量的測量,並可選擇在數碼管上滾動顯示或單路顯示的不同工作模式。
電話:18923864027(同微信)
QQ:709211280
〈烜芯微/XXW〉專業製造麻豆国产一区,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產企業選用,專業的工程師幫您穩定好每一批產品,如果您有遇到什麽需要幫助解決的,可以直接聯係下方的聯係號碼或加QQ/微信,由日韩国产成人的銷售經理給您精準的報價以及產品介紹