|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
12位A/D轉(zhuǎn)換器ADS7804與51單片機(jī)的接口及程序設(shè)計(jì) |
| 作者:songcong1026 欄目:單片機(jī) |
摘要:ADS7804是美國(guó)BURR-BROWN公司推出的一種新型12位A/D轉(zhuǎn)換器。文中介紹了它的特性與功能,給出了一種簡(jiǎn)潔而新穎的與51單片機(jī)的接口方法,同時(shí)給出了用C語(yǔ)言編寫的數(shù)據(jù)采集的應(yīng)用程序。 1 基本特點(diǎn) |
| 2樓: | >>參與討論 |
| 作者: songcong1026 于 2007/1/20 14:20:24 發(fā)布:
2 引腳及功能 ADS7804共有28個(gè)引腳,圖1為基引腳圖。這些引腳大體上可以劃分為3類。 a.電源類 數(shù)字電源VDIG和模擬電源VANA通常一起接到5V電源上。數(shù)字地DGND和模擬地AGND1、AGND2通常共地。REF為參考電壓端,通常對(duì)地接2.2μF鉭電容,芯片內(nèi)部可產(chǎn)生2.5V基準(zhǔn)電壓。CAP為參考電壓所需電容,對(duì)地接2.2μF鉭電容。 b.模數(shù)信號(hào)類 VIN為輸入的模擬信號(hào)。D11~D0為數(shù)字量并行輸出口,DZ(19~22腳)是為了使管腳與16位A/D轉(zhuǎn)換器ADS7805兼容而設(shè)的,可懸空。 c.控制信號(hào)類 CS(輸入)為片選信號(hào),R/C(輸入)為讀取結(jié)果/模數(shù)轉(zhuǎn)換控制信號(hào),BUSY(輸出)用于指示轉(zhuǎn)換是否完成,BYTE(輸入)信號(hào)用來控制從總線讀出的數(shù)據(jù)是轉(zhuǎn)換結(jié)果的高字節(jié)還是低字節(jié)。 |
|
| 3樓: | >>參與討論 |
| 作者: songcong1026 于 2007/1/20 14:21:58 發(fā)布:
3 啟動(dòng)A/D轉(zhuǎn)換和讀取轉(zhuǎn)換結(jié)果 表1 模擬電壓和數(shù)字輸出的關(guān)系 |
|
| 4樓: | >>參與討論 |
| 作者: songcong1026 于 2007/1/20 14:23:03 發(fā)布:
4 與51單片機(jī)的接口 因?yàn)?a target="_blank" href="http://m.58mhw.cn/stock-ic/ADS7804.html">ADS7804的CS信號(hào)脈沖寬度要求為40ns~6μs之間,而對(duì)于單片機(jī)而言,只要對(duì)外部設(shè)備進(jìn)行讀操作,即會(huì)產(chǎn)生RD脈沖,其寬度為6個(gè)振蕩周期,如采用12MHZ的晶振,其脈沖寬度為500ns,所以將ADS7804的CS腳接單片機(jī)的RD信號(hào)是再合適不過了。至于R/C、BUSY和BYTE信號(hào),只需連接到普通的鎖存功能的端口即可,如單片機(jī)的PI口、并行口擴(kuò)展芯片8155或8255等的端口。圖3是一個(gè)ADS7804與51單片機(jī)的典型接口電路。 |
|
| 5樓: | >>參與討論 |
| 作者: songcong1026 于 2007/1/20 14:25:19 發(fā)布:
5 C語(yǔ)言程序設(shè)計(jì) FRANKLIN C51交叉編譯器是專為51系列單片機(jī)設(shè)計(jì)的一種高效的C語(yǔ)言編譯器,使用它可以縮短開發(fā)周期,降低開發(fā)成本,而且開發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好。下面介紹用C語(yǔ)言編寫的單點(diǎn)和定長(zhǎng)數(shù)據(jù)采集子程序,假設(shè)所用的晶振頻率為12MHZ。單點(diǎn)采樣子程序ADS7804()用來返回一個(gè)有符號(hào)整數(shù)形式的轉(zhuǎn)換結(jié)果。定長(zhǎng)采樣子程序DAQ()根據(jù)入口參數(shù)interval(單位為μs)給定的采樣間隔采樣N點(diǎn),并采用查詢51單片機(jī)內(nèi)置定時(shí)器的方式來控制采樣時(shí)序,N點(diǎn)采樣結(jié)果存儲(chǔ)在定位于外部存儲(chǔ)器的數(shù)組array中。需要注意的是,賦給計(jì)數(shù)寄存器TH和TL的值是定時(shí)器從開始計(jì)數(shù)到溢出所用的時(shí)間,這個(gè)時(shí)間再加上清TF和裝載計(jì)數(shù)初值所需的時(shí)間(共5個(gè)機(jī)器周期,對(duì)于12MHZ晶振即為5μs)才是所要的采樣間隔,這一點(diǎn)在程序設(shè)計(jì)中必須注意。 源程序如下: # include<reg51.h> # include<absacc.h> # define N 128 /*定采樣長(zhǎng)度,如128點(diǎn)*/sbit BYTE=F1^0; sbit RC=P1^1; sbit BUSY=P1^2; /*定義特殊位*/ int XDATA array(N); /*在外部存儲(chǔ)器內(nèi)定義長(zhǎng)度為N的有符號(hào)整數(shù)數(shù)組*/ int ADS7804(void) { uint ul,uh;int u; RC=0; /*R/C低電平,進(jìn)入轉(zhuǎn)換模式*/ ul=XBYTE[0xffff]; /*產(chǎn)生讀脈沖,啟動(dòng)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ù)值,則符號(hào)擴(kuò)展*/ return(u); /*返回轉(zhuǎn)換結(jié)果*/ } uoid DAQ(uint interval) { uchar th,tl; interval=interval-5;/*減去TF0清零和裝載計(jì)數(shù)初值的時(shí)間5μs*/ th=255-(interval/256); tl=255-(interval%6); /*計(jì)算計(jì)數(shù)初值*/ TMOD=0x01; /*定時(shí)器0,方式1 */ TH0=th; TL0=tl;/*裝載計(jì)數(shù)初值*/ TR0=1;/*啟動(dòng)定時(shí)*/ for(I=0;i<N;i ) { do{}whilt(!TF0);/*查詢等待TF0復(fù)位*/ TF0=0; /*清溢出標(biāo)志*/ TH0=th;TL0=tl; /*裝載計(jì)數(shù)初值*/ Array[i]=ADS7804(); /*采樣、存儲(chǔ)*/ } TR0=0; /*停止定時(shí)*/ } |
|
| 6樓: | >>參與討論 |
| 作者: songcong1026 于 2007/1/20 14:27:00 發(fā)布:
6 結(jié)束語(yǔ) ADS7804為12位的A/D轉(zhuǎn)換器,它不僅分辨率高、轉(zhuǎn)換速度快,而且接口方便,電路簡(jiǎn)單、應(yīng)用靈活,因而具有廣泛的應(yīng)用前景。筆者在DLRS-1型檢波器低頻接收靈敏度特性測(cè)量?jī)x中使用了ADS7804,取得了很好的效果。 |
|
| 7樓: | >>參與討論 |
| 作者: hms2006 于 2007/1/22 11:09:37 發(fā)布:
謝謝,頂一下 |
|
| 8樓: | >>參與討論 |
| 作者: creative 于 2007/1/22 14:03:14 發(fā)布:
不錯(cuò), 支持樓主! |
|
| 9樓: | >>參與討論 |
| 作者: liuyi1986 于 2007/1/23 22:07:59 發(fā)布:
頂~~~~~~ |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |