模數(shù)轉(zhuǎn)換器ADC應(yīng)用原理_第1頁(yè)
模數(shù)轉(zhuǎn)換器ADC應(yīng)用原理_第2頁(yè)
模數(shù)轉(zhuǎn)換器ADC應(yīng)用原理_第3頁(yè)
模數(shù)轉(zhuǎn)換器ADC應(yīng)用原理_第4頁(yè)
模數(shù)轉(zhuǎn)換器ADC應(yīng)用原理_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余7頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1/ 12AD0809 應(yīng)用原理很全面的資料1. 0809 的芯片說(shuō)明:ADC0809 是帶有 8 位 A/D 轉(zhuǎn)換器、8 路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS 組件。它是逐次逼近式 A/D 轉(zhuǎn)換器,可以和單片機(jī)直接接口。(1)ADC0809 的內(nèi)部邏輯結(jié)構(gòu)由上圖可知,ADC0809 由一個(gè) 8 路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè) A/D 轉(zhuǎn) 換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通 8 個(gè)模擬通道,允許 8 路模擬量分 時(shí)輸入,共用 A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存 A/D 轉(zhuǎn)換完的數(shù)字量,當(dāng) OE 端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。(2).

2、引腳結(jié)構(gòu)IN0 IN7 : 8 條模擬量輸入通道ADC0809 對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是 0 5V,若信號(hào)太小,必 須進(jìn)行放大;2/ 12輸入的模擬量在轉(zhuǎn)換過(guò)程中應(yīng)該保持不變,如若模擬量變化太快,則需 在輸入前增加采樣保持電路。地址輸入和控制線:4 條ALE 為地址鎖存允許輸入線,高電平有效。當(dāng) ALE 線為高電平時(shí),地址鎖存 與譯碼器將 A,B,C 三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬 量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A,B 和 C 為地址輸入線,用于選通 IN0 IN7 上的一路模擬量 輸入。通道選擇表如下表所示。CBA選擇的 通道000IN0001IN10 10I

3、N201|1IN31 00IN41 01IN5【110IN6【111IN7數(shù)字量輸出及控制線:11 條ST 為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng) ST 上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開始進(jìn)行 A /D 轉(zhuǎn)換;在轉(zhuǎn)換期間,ST 應(yīng)保持低電平。EOC 為轉(zhuǎn)換結(jié)束信號(hào)。當(dāng) EOC 為高電平 時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行 A/D 轉(zhuǎn)換。0E 為輸出允許信號(hào),用于控制 三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。0E = 1,輸出轉(zhuǎn)換得到的數(shù)據(jù);0E=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7 D0 為數(shù)字量輸出線。CLK 為時(shí)鐘輸入信號(hào)線。因 ADC0809 的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外 界提供,通常使

4、用頻率為 500KHZ,VREF ( + ), VREF ()為參考電壓輸入。2.ADC0809 應(yīng)用說(shuō)明(1).ADC0809 內(nèi)部帶有輸出鎖存器,可以與 AT89S51 單片機(jī)直接相連。(2).初始化時(shí),使 ST 和 OE 信號(hào)全為低電平。(3).送要轉(zhuǎn)換的哪一通道的地址到 A,B,C 端口上。(4).在 ST 端給出一個(gè)至少有 100ns 寬的正脈沖信號(hào)。(5).是否轉(zhuǎn)換完畢,我們根據(jù) EOC 信號(hào)來(lái)判斷。(6) .當(dāng) EOC 變?yōu)楦唠娖綍r(shí),這時(shí)給 OE 為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī) 了。3.實(shí)驗(yàn)任務(wù)如下圖所示,從 ADC0809 的通道 IN3 輸入 0 5V 之間的模擬量,通過(guò)

5、 ADC0809 轉(zhuǎn) 換成數(shù)字量在數(shù)碼管上以十進(jìn)制形成顯示出來(lái)。ADC0809 的 VREF 接+ 5V 電壓。4.電路原理圖3/ 125.程序設(shè)計(jì):(1) .進(jìn)行 A/D 轉(zhuǎn)換時(shí),采用查詢 EOC 的標(biāo)志信號(hào)來(lái)檢測(cè) A/D 轉(zhuǎn)換是否完畢,若 完畢則把數(shù)據(jù)通過(guò) P0 端口讀入,經(jīng)過(guò)數(shù)據(jù)處理之后在數(shù)碼管上顯示。(2).進(jìn)行 A/D 轉(zhuǎn)換之前,要啟動(dòng)轉(zhuǎn)換的方法:ABC = 110 選擇第三通道ST = 0,ST = 1,ST = 0 產(chǎn)生啟動(dòng)轉(zhuǎn)換的正脈沖信號(hào).(3).關(guān)于 0809 的計(jì)算:ad0809 是根據(jù)逐位逼近的方法產(chǎn)生數(shù)據(jù)的。參考電壓為 0-5V 的話。以 0809 八位 255 的轉(zhuǎn)換

6、精度每一位的電壓值為(5-0)/2550.0196V設(shè)輸入電壓為 X 則:X-27*0.0196=0則AD7=1 否則AD7=0。X-26*0.0196=0則AD6=1 否則AD6=0。X-20*0.0196=0則AD0=1 否則AD0=0。(27 指 2 的 7 次方。26-20 同理)若參考電壓為 0-1V(1-0)/2550.0039V 精度自然高了??蓽y(cè)量范圍小了。1)匯編源程序:CH EQU 30HDPCNT EQU 31HDPBUF EQU33HGDATA EQU32HST BITP3.0OE BIT P3.1EOC BIT P3.2ORG OOHLJMP STARTORG OBH

7、LJMP TOXORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#104/ 12MOV R0,#DPBUFLOP: MOV R0,AINC R0DJNZ R7,LOPMOV R0,#00HINC R0MOV R0,#00HINC R0MOV R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT: CLR STSETB STCLR STWAIT: JNB EOC,W

8、AITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X: NOP5/ 12MOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#DPCDMOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,R0MOVC A,A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,A+DPTRMOV P2,AIN

9、C DPCNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT: RETIDPCD: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND2)C 語(yǔ)言源程序#i ncludeunsigned char code dispbitcode=0 xfe,0 xfd,0 xfb,0 xf7, 0 xef,0 xdf,0 xbf,0 x7f;unsigned char code dispcode=0 x3f,0 x06

10、,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00;unsigned char dispbuf8=10,10,10,10,10,0,0,0;unsigned char dispcount;sbit ST=P3A0;sbit 0E=P3W;sbit EOC=P3A2;unsigned char channel=0 xbc;/IN3 unsigned char getdata;void main (void)TMOD=0 x01;TH0=(65536-4000)/256;6/ 12TL0=(65536-4000)%256;TR0=1;ET0

11、=1;EA=1;P3=cha nn el;while(1)ST=0;ST=1;ST=0;while(EOC=0);OE=1;getdata=P0;OE=0;dispbuf2=getdata/100; getdata=getdata%10;dispbuf1=getdata/10;dispbuf0=getdata%10;void t0(void) interrupt 1 using 0TH0=(65536-4000)/256;TL0=(65536-4000)%256;P1=dispcodedispbufdispco un t;P2=dispbitcodedispco un t;dispco un

12、t+;if(dispco un t=8)dispco un t=0;3)FPGA 實(shí)現(xiàn)的程序:(verilog )module AD0809(clk,/ 脈寬(至少 100 ns)rst_n,EOC, 約 100us 后 EOC 變?yōu)楦唠娖睫D(zhuǎn)換結(jié)束START, 啟動(dòng)信號(hào),上升沿有效(至少 100 ns)7/ 12OE,高電平打開三態(tài)緩沖器輸出轉(zhuǎn)換數(shù)據(jù)ALE, 高電平有效,選擇信道口ADDA,/因?yàn)?ADDB,ADDC 都接地了,這里只有 ADDA 為變量 DATA,/ 轉(zhuǎn)換數(shù)據(jù)DATA_R);output START,OE,ALE,ADDA;in putEOC,clk,rst_n;in put

13、7:0DATA;output7:0 DATA_R;regSTART,OE,ALE,ADDA;reg7:0 DATA_R;reg4:0 CS,NS;parameter IDLE=5”b00001,START_H=5”b00010,START_L=5”b00100,CHECK_END=5b01000,GET_DATA=5b10000;always (*)case(CS)IDLE:NS=START_H;START_H:NS=START_L;START_L:NS=CHECK_END;CHECK_END:if(EOC)NS=GET_DATA; elseNS=CHECK_END; GET_DATA:NS=

14、IDLE;default:NS=IDLE;endcase8/ 12always (posedge clk)if(!rst_n)CS=IDLE; elseCS=NS;always (posedge clk)case(NS)IDLE:begi nOE=0;START=0;ALE=0;ADDA=1;endSTART_H:begi nOE=0;START=1;產(chǎn)生啟動(dòng)信號(hào)ALEv=1;ADDA=1; 選擇信道口 IN0endSTART_L:begi nOE=0;START=0;ALE=1;啟動(dòng)信號(hào)脈寬要足夠長(zhǎng),在啟動(dòng)的時(shí)候 ALE 要一直有效endCHECK_END:begi nOE=0;START=

15、0;ALE=0;endGET_DATA:begi nOE=1;高電平打開三態(tài)緩沖器輸出轉(zhuǎn)換數(shù)據(jù)9/ 12DATA_Rv=DATA;提取轉(zhuǎn)換數(shù)據(jù)START=0;ALE=0;enddefault:begi nOE=0;START=0;ALE=0;ADDA=0;endendcaseen dmodule4)FPGA 實(shí)現(xiàn)的程序:(VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AD0809 ISPORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK

16、,EOC: IN STD_LO GIC;CLOCK:IN STD_LOGIC;ALE,START,OE,LOCK0: OUT STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END AD0809;ARCHITECTURE behav OF AD0809 ISTYPE states IS (st0,st1,st2,st3,st4);SIGNAL current_state,next_state:states:=st0;SIGNAL REGL :STD_LOGIC_VECTOR

17、(7 DOWNTO 0);SIGNAL LOCK :STD_LOGIC;SIGNAL CNT1:STD_LOGIC_VECTOR(0 DOWNTO 0);SIGNAL A :INTEGER RANGE 0 TO 1;SIGNAL LOWDATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HIGHDATA:STD_LOGIC_VECTOR(3 DOWNTO 0);10/ 12SIGNAL LOWLED7S:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL HIGHLED7S:STD_LOGIC_VECTOR(6DOWNTO 0);BEGINLO

18、CK0=LOCK;PROCESS(REGL)BEGINLOWDATA=REGL(3 DOWNTO 0);HIGHDATA LOWLED7S LOWLED7S LOWLED7SLOWLED7S LOWLED7S LOWLED7SLOWLED7S LOWLED7S LOWLED7S LOWLED7S LOWLED7SLOWLED7SLOWLED7SLOWLED7S LOWLED7S LOWLED7S Null;END CASE;CASE HIGHDATA ISWHEN0000 = HIGHLED7S HIGHLED7S HIGHLED7SHIGHLED7S HIGHLED7S HIGHLED7SHIGHLED7S HIGHLED7S HIGHLED7S HIGHLED7S HIGHLED7SHIGHLED7SHIGHLED7SHIGHLED7S HIGHLED7S HIGHLED7S Null;END CASE;END PROCESS;PROCESS(CLOCK)BEGINIF CLOCKEVENT AND CLOCK=1 THEN CNT1SEL=111; ASEL=110; ANU

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論