51單片機(jī)AD0809電路設(shè)計(jì)程序原理圖_第1頁(yè)
51單片機(jī)AD0809電路設(shè)計(jì)程序原理圖_第2頁(yè)
51單片機(jī)AD0809電路設(shè)計(jì)程序原理圖_第3頁(yè)
51單片機(jī)AD0809電路設(shè)計(jì)程序原理圖_第4頁(yè)
51單片機(jī)AD0809電路設(shè)計(jì)程序原理圖_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、我們?cè)谧鲆粋€(gè)單片機(jī)系統(tǒng)時(shí),常常會(huì)遇到這樣那樣的數(shù)據(jù)采集,在這些被采集的數(shù)據(jù)中,大部分可以通過(guò)我們的I/O口擴(kuò)展接口電路直接得到,由于51單片機(jī)大部分不帶AD轉(zhuǎn)換器,所以模擬量的采集就必須靠A/D或V/F實(shí)現(xiàn)。下現(xiàn)我們就來(lái)了解一下AD0809與51單片機(jī)的接口及其程序設(shè)計(jì)。1、AD0809的邏輯結(jié)構(gòu)ADC0809是8位逐次逼近型A/D轉(zhuǎn)換器。它由一個(gè)8路模擬開(kāi)關(guān)、一個(gè)地址鎖存譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成(見(jiàn)圖1)。多路開(kā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)輸出鎖存器取

2、走轉(zhuǎn)換完的數(shù)據(jù)。2、AD0809的工作原理IN0IN7:8條模擬量輸入通道ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是05V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(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為地址輸入線,用于選通IN0IN7上的一路模擬量輸入。通道選擇表如下表所示。CBA選擇的通道000IN0001IN1010IN2011IN3100IN

3、4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條ST為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開(kāi)始進(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)換。OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7D0為數(shù)字量輸出線。CLK為時(shí)鐘輸入信號(hào)線。因ADC0809的內(nèi)部沒(méi)有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,通常使用頻率為500KHZ,VREF(),VREF()為參考電壓輸入。3、ADC0809應(yīng)用說(shuō)

4、明 (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) 

5、;     當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。4、AD0809的應(yīng)用了解完A/D轉(zhuǎn)換芯片,下面我們以圖2為例來(lái)完成它的程序設(shè)計(jì)。電路說(shuō)明:電路見(jiàn)圖(2),主要由AD轉(zhuǎn)換器AD0809,頻率發(fā)生器SUN7474,單片機(jī)AT89S51及顯示用數(shù)碼管組成。AD0809的啟動(dòng)方式為脈沖啟動(dòng)方式,啟動(dòng)信號(hào)START啟動(dòng)后開(kāi)始轉(zhuǎn)換,EOC信號(hào)在START的下降沿10us后才變?yōu)闊o(wú)效的低電平。這要求查詢程序待EOC無(wú)效后再開(kāi)始查詢,轉(zhuǎn)換完成后,EOC輸出高電平,再由OE變?yōu)楦唠娖絹?lái)輸出轉(zhuǎn)換數(shù)據(jù)。我們?cè)谠O(shè)計(jì)程序時(shí)可以利用EOC信號(hào)來(lái)通

6、知單片機(jī)(查詢法或中斷法)讀入已轉(zhuǎn)換的數(shù)據(jù),也可以在啟動(dòng)AD0809后經(jīng)適當(dāng)?shù)难訒r(shí)再讀入已轉(zhuǎn)換的數(shù)據(jù)。AT89S51的輸出頻為晶振頻的1/6(2MHZ),AT89S1與SUN7474連接經(jīng)與7474的ST腳提供AD0809的工作時(shí)鐘。AD0809的工作頻范圍為10KHZ-1280KHZ,當(dāng)頻率范圍為500KHZ時(shí),其轉(zhuǎn)換速度為128us。AD0809的數(shù)據(jù)輸出公式為:Dout=Vin*255/5=Vin*51,其中Vin為輸入模擬電壓,Vout為輸出數(shù)據(jù)。當(dāng)輸入電壓為5V時(shí),讀得的數(shù)據(jù)為255再乘以2,得510。我們用510*98%得499,再將百位數(shù)碼管的小數(shù)點(diǎn)點(diǎn)亮,顯示為.99V,顯示值與

7、輸入值基本吻合。軟件設(shè)計(jì)思路及程序流程編程思路:(1)       向AD0809寫(xiě)入通道號(hào)并啟動(dòng)轉(zhuǎn)換(2)       延時(shí)1ms后等待EOC出現(xiàn)高電平(JNB EOC,$)(3)       給OE置高并讀入轉(zhuǎn)換數(shù)據(jù)存入數(shù)據(jù)地址或數(shù)組中。(4)       顯示(5)        初

8、始化1、  寫(xiě)入通道號(hào) 2、  延時(shí)20us后等待EOC變高 3、讀入采集到的數(shù)據(jù)并存入數(shù)組存入下一通道#include<at89x51.h>#define ucharunsigned char #define uint unsigned intsbit st=P32;sbitoe=P31;sbit eoc=P30;uchar codetab=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;/數(shù)碼管顯示段碼ucharcode td=0x00,0x10,0x20,

9、0x30,0x40,0x50,0x60,0x70;/通道先擇數(shù)組uintad_0809,ad_data1,ad_data2,ad_data3,ad_data0;uchar m,number;ucharx8;/八通道數(shù)據(jù)待存數(shù)組void delaynms(uint x);/nms延時(shí)程序voiddisplay();/顯示程序void ad0809();/芯片啟動(dòng)程序voidkey();/鍵掃描程序main() number=1;P1=0x00;while(1)ad0809();/調(diào)AD0809啟動(dòng)子程序key();/調(diào)按鍵子程序ad_0809=xnumber;/把相關(guān)通道數(shù)據(jù)給ad_0

10、809,用做顯示display();/調(diào)顯示/nms延時(shí)程序voiddelaynms(uint x)uchari;while(x->0)for(i=0;i<125;i+);voiddisplay()uchara;ad_data1=(ad_0809*49/25)/100;/讀得的數(shù)據(jù)乘以2再乘以98%除以100得百位ad_data2=(ad_0809*49/25)%100)/10;/讀得的數(shù)據(jù)乘以2再乘以98%再分出十位ad_data3=(ad_0809*49/25)%100)%10);/讀得的數(shù)據(jù)乘以2再乘以98%再分出個(gè)位for(a=0;a<10;a+)P0=tabad_d

11、ata3;/送小數(shù)點(diǎn)后第二位顯示P2=0x07;/選通第一個(gè)數(shù)碼管delaynms(3);P0=tabad_data2;/送小數(shù)點(diǎn)后第一位顯示P2=0x0b;/選通第二個(gè)數(shù)碼管delaynms(3);P0=tabad_data1;/送整數(shù)顯示P0_7=0;/點(diǎn)亮第三個(gè)數(shù)碼管小數(shù)點(diǎn)P2=0x0d;/選通第三個(gè)數(shù)碼管delaynms(3);P0=tabnumber;/送通道號(hào)顯示P2=0x0e;delaynms(3);voidad0809()uchari,m=1;for(i=0;i<8;i+)P0=tdi;/選通通道oe=0;/OE:輸出允許信號(hào);/用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到

12、的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高電阻;OE=1,輸出轉(zhuǎn)換/得到的數(shù)據(jù);/以下三條指令為起動(dòng)AD0809/注:st與ALE連載一起/ALE為地址鎖存允許輸入線,當(dāng)ALE=1,地址鎖存與譯碼器將A, B,C三條/地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行/轉(zhuǎn)換。st=0; /ST為轉(zhuǎn)換啟動(dòng)信號(hào)。st=1;/ 當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;st=0;/下跳沿時(shí),開(kāi)始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。delaynms(1);/ EOC信號(hào)在START的下降沿10us后才變?yōu)闊o(wú)效的低電平。while(!eoc);/等待轉(zhuǎn)換結(jié)束,轉(zhuǎn)換完成后,EOC輸出高電平

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論