<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 12位A/D轉(zhuǎn)換器ADS7804與51單片機(jī)的接口及程序設(shè)計

          12位A/D轉(zhuǎn)換器ADS7804與51單片機(jī)的接口及程序設(shè)計

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘要:是美國BURR-BROWN公司推出的一種新型12位A/D轉(zhuǎn)換器。文中介紹了它的特性與功能,給出了一種簡潔而新穎的與51方法,同時給出了用編寫的數(shù)據(jù)采集的應(yīng)用程序。

          1 基本特點

          在計算機(jī)控制系統(tǒng)及各類用(或微處理器)構(gòu)成的智能儀器儀表中,外部的各種模擬信號必須通過A/D轉(zhuǎn)換器變換為數(shù)字信號后才能送入計算機(jī)。與8位和16位的A/D轉(zhuǎn)換器相比,12位A/D轉(zhuǎn)換器以其較高的性能價格比而在儀器儀表中得到廣泛的應(yīng)用。

          芯片采用28腳0.3英寸PDIP(塑料雙列直插式)封裝,兩列管腳間距為0.3英寸,比一般DIP28封裝窄一倍,所以俗稱瘦型DIP;采用單5V電源供電;芯片內(nèi)部含有采樣保持、電壓基準(zhǔn)和時鐘等電路,可極大簡化用戶的電路設(shè)計和硬件開鎖,并可提高系統(tǒng)的穩(wěn)定性。

          ADS7804采用CMOS工藝制造,轉(zhuǎn)換速度快、功耗低(最大功耗為100mW)。

          該A/D轉(zhuǎn)換器采用逐次逼近式工作原理,單通道輸入,模擬輸入電壓的范圍為±10V,采樣速率為100kHz。

          2 引腳及功能

          ADS7804共有28個引腳,圖1為基引腳圖。這些引腳大體上可以劃分為3類。

          a.電源類

          數(shù)字電源VDIG和模擬電源VANA通常一起接到5V電源上。數(shù)字地DGND和模擬地AGND1、AGND2通常共地。REF為參考電壓端,通常對地接2.2μF鉭電容,芯片內(nèi)部可產(chǎn)生2.5V基準(zhǔn)電壓。CAP為參考電壓所需電容,對地接2.2μF鉭電容。

          b.模數(shù)信號類

          VIN為輸入的模擬信號。D11~D0為數(shù)字量并行輸出口,DZ(19~22腳)是為了使管腳與16位A/D轉(zhuǎn)換器ADS7805兼容而設(shè)的,可懸空。

          c.控制信號類

          CS(輸入)為片選信號,R/C(輸入)為讀取結(jié)果/模數(shù)轉(zhuǎn)換控制信號,BUSY(輸出)用于指示轉(zhuǎn)換是否完成,BYTE(輸入)信號用來控制從總線讀出的數(shù)據(jù)是轉(zhuǎn)換結(jié)果的高字節(jié)還是低字節(jié)。

          3 啟動A/D轉(zhuǎn)換和讀取轉(zhuǎn)換結(jié)果

          ADS7804啟動轉(zhuǎn)換和讀取轉(zhuǎn)換結(jié)果的時序比較特點,參見圖2。

          首先將R/C腳電平變低;然后在CS腳輸入一個脈沖并在其下降沿啟動A/D轉(zhuǎn)換,此脈沖的寬度要求在40ns~6μs之間;這時BUSY腳電平拉低表示正在進(jìn)行轉(zhuǎn)換;在經(jīng)過大約8μs以后,轉(zhuǎn)換完成,BUSY腳電平相應(yīng)變高;再把R/C腳電平拉高,這樣,CS腳脈沖的下降沿即把轉(zhuǎn)換結(jié)果輸出到數(shù)據(jù)總線上。

          因為轉(zhuǎn)換結(jié)果為12位,所以對8位而言,必須分兩次讀入,這個功能由BYTE腳實現(xiàn)。當(dāng)BYTE腳為高電平時,數(shù)據(jù)總線上輸出高字節(jié),反之,輸出低字節(jié)。

          ADS7804轉(zhuǎn)換得到的數(shù)字結(jié)果是以補(bǔ)碼形式給出的,現(xiàn)給出幾組有特定含義的值,表1所列即為ADS7804的模擬電壓與其補(bǔ)碼形式的數(shù)字輸出關(guān)系,-10V~9.99512V為量程,4.88mV為電壓分辨率。

          表1 模擬電壓和數(shù)字輸出的關(guān)系

          模擬輸入初碼形式的數(shù)字輸出
          二進(jìn)制十六進(jìn)制
          9.99512V0111 1111 11117FF
          4.88mV0000 0000 0001001
          0V0000 0000 0000000
          -4.88mV1111 1111 1111FFF
          -10V1000 0000 0000800

          4 與51單片機(jī)的

          因為ADS7804的CS信號脈沖寬度要求為40ns~6μs之間,而對于單片機(jī)而言,只要對外部設(shè)備進(jìn)行讀操作,即會產(chǎn)生RD脈沖,其寬度為6個振蕩周期,如采用12MHz的晶振,其脈沖寬度為500ns,所以將ADS7804的CS腳接單片機(jī)的RD信號是再合適不過了。

          至于R/C、BUSY和BYTE信號,只需連接到普通的鎖存功能的端口即可,如單片機(jī)的PI口、并行口擴(kuò)展芯片8155或8255等的端口。

          圖3是一個ADS7804與51單片機(jī)的典型電路。

          5 程序設(shè)計

          Franklin C51交叉編譯器是專為51系列單片機(jī)設(shè)計的一種高效的編譯器,使用它可以縮短開發(fā)周期,降低開發(fā)成本,而且開發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好。

          下面介紹用C語言編寫的單點和定長數(shù)據(jù)采集子程序,假設(shè)所用的晶振頻率為12MHz。

          單點采樣子程序ADS7804()用來返回一個有符號整數(shù)形式的轉(zhuǎn)換結(jié)果。

          定長采樣子程序DAQ()根據(jù)入口參數(shù)interval(單位為μs)給定的采樣間隔采樣N點,并采用查詢51單片機(jī)內(nèi)置定時器的方式來控制采樣時序,N點采樣結(jié)果存儲在定位于外部存儲器的數(shù)組array中。需要注意的是,賦給計數(shù)寄存器TH和TL的值是定時器從開始計數(shù)到溢出所用的時間,這個時間再加上清TF和裝載計數(shù)初值所需的時間(共5個機(jī)器周期,對于12MHz晶振即為5μs)才是所要的采樣間隔,這一點在程序設(shè)計中必須注意。

          源程序如下:

          # includereg51.h>

          # includeabsacc.h>

          # define N 128 /*定采樣長度,如128點*/sbit BYTE=F1^0;

          sbit RC=P1^1;

          sbit BUSY=P1^2; /*定義特殊位*/

          int XDATA array(N); /*在外部存儲器內(nèi)定義長度為N的有符號整數(shù)數(shù)組*/

          int ADS7804(void)

          { uint ul,uh;int u;

          RC=0; /*R/C低電平,進(jìn)入轉(zhuǎn)換模式*/

          ul=XBYTE[0xffff]; /*產(chǎn)生讀脈沖,啟動A/D轉(zhuǎn)換*/

          while (BUSY= =0); /*等待轉(zhuǎn)換完成*/

          RC=1;BYTE=0; /*進(jìn)入讀模式,選擇低字節(jié)*/

          ul=XBYTE[0xffff]; /*讀轉(zhuǎn)換結(jié)果低8位*/

          BYTE=1; /*選擇高字節(jié)*/

          uh=XBYTE[0xffff]0x0f;/*讀轉(zhuǎn)換結(jié)果高4位*/

          u=uh*256+ul; /*得到12位轉(zhuǎn)換結(jié)果*/

          if(u>=0x0800)

          u=u 0xf000; /*如果為負(fù)值,則符號擴(kuò)展*/

          return(u); /*返回轉(zhuǎn)換結(jié)果*/

          }

          uoid DAQ(uint interval)

          { uchar th,tl;

          interval=interval-5;/*減去TF0清零和裝載計數(shù)初值的時間5μs*/

          th=255-(interval/256);

          tl=255-(interval%256); /*計算計數(shù)初值*/

          TMOD=0x01; /*定時器0,方式1 */

          TH0=th; TL0=tl;/*裝載計數(shù)初值*/

          TR0=1;/*啟動定時*/

          for(I=0;iN;i++)

          { do{}whilt(!TF0);/*查詢等待TF0復(fù)位*/

          TF0=0; /*清溢出標(biāo)志*/

          TH0=th;TL0=tl; /*裝載計數(shù)初值*/

          Array[i]=ADS7804(); /*采樣、存儲*/

          }

          TR0=0; /*停止定時*/

          }

          6 結(jié)束語

          ADS7804為12位的A/D轉(zhuǎn)換器,它不僅分辨率高、轉(zhuǎn)換速度快,而且接口方便,電路簡單、應(yīng)用靈活,因而具有廣泛的應(yīng)用前景。筆者在DLRS-1型檢波器低頻接收靈敏度特性測量儀中使用了ADS7804,取得了很好的效果。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();