ADC0809中文資料以及和單片機(jī)接口電路設(shè)計和程序_第1頁
ADC0809中文資料以及和單片機(jī)接口電路設(shè)計和程序_第2頁
ADC0809中文資料以及和單片機(jī)接口電路設(shè)計和程序_第3頁
ADC0809中文資料以及和單片機(jī)接口電路設(shè)計和程序_第4頁
ADC0809中文資料以及和單片機(jī)接口電路設(shè)計和程序_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、典型的集成adc芯片為了滿足多種需要,目前國內(nèi)外各半導(dǎo)體器件生產(chǎn)廠家設(shè)計并生產(chǎn)出了多種多樣的adc芯片。僅美國ad公司的adc產(chǎn)品就有幾十個系列、近百種型號之多。從性能上講,它們有的精度高、速度快,有的則價格低廉。從功能上講,有的不僅具有a/d轉(zhuǎn)換的基本功能,還包括內(nèi)部放大器和三態(tài)輸出鎖存器;有的甚至還包括多路開關(guān)、采樣保持器等,已發(fā)展為一個單片的小型數(shù)據(jù)采集系統(tǒng)。盡管adc芯片的品種、型號很多,其內(nèi)部功能強(qiáng)弱、轉(zhuǎn)換速度快慢、轉(zhuǎn)換精度高低有很大差別,但從用戶最關(guān)心的外特性看,無論哪種芯片,都必不可少地要包括以下四種基本信號引腳端:模擬信號輸入端(單極性或雙極性);數(shù)字量輸出端(并行或串行);轉(zhuǎn)

2、換啟動信號輸入端;轉(zhuǎn)換結(jié)束信號輸出端。除此之外,各種不同型號的芯片可能還會有一些其他各不相同的控制信號端。選用adc芯片時,除了必須考慮各種技術(shù)要求外,通常還需了解芯片以下兩方面的特性。(1)數(shù)字輸出的方式是否有可控三態(tài)輸出。有可控三態(tài)輸出的adc芯片允許輸出線與微機(jī)系統(tǒng)的數(shù)據(jù)總線直接相連,并在轉(zhuǎn)換結(jié)束后利用讀數(shù)信號選通三態(tài)門,將轉(zhuǎn)換結(jié)果送上總線。沒有可控三態(tài)輸出(包括內(nèi)部根本沒有輸出三態(tài)門和雖有三態(tài)門、但外部不可控兩種情況)的adc芯片則不允許數(shù)據(jù)輸出線與系統(tǒng)的數(shù)據(jù)總線直接相連,而必須通過i/o接口與mpu交換信息。(2)啟動轉(zhuǎn)換的控制方式是脈沖控制式還是電平控制式。對脈沖啟動轉(zhuǎn)換的adc芯

3、片,只要在其啟動轉(zhuǎn)換引腳上施加一個寬度符合芯片要求的脈沖信號,就能啟動轉(zhuǎn)換并自動完成。一般能和mpu配套使用的芯片,mpu的i/o寫脈沖都能滿足adc芯片對啟動脈沖的要求。對電平啟動轉(zhuǎn)換的adc芯片,在轉(zhuǎn)換過程中啟動信號必須保持規(guī)定的電平不變,否則,如中途撤消規(guī)定的電平,就會停止轉(zhuǎn)換而可能得到錯誤的結(jié)果。為此,必須用d觸發(fā)器或可編程并行i/o接口芯片的某一位來鎖存這個電平,或用單穩(wěn)等電路來對啟動信號進(jìn)行定時變換。具有上述兩種數(shù)字輸出方式和兩種啟動轉(zhuǎn)換控制方式的adc芯片都不少,在實際使用芯片時要特別注意看清芯片說明。下面介紹兩種常用芯片的性能和使用方法。1. adc 0808/0809adc

4、0808和adc 0809除精度略有差別外(前者精度為8位、后者精度為7位),其余各方面完全相同。它們都是cmos器件,不僅包括一個8位的逐次逼近型的adc部分,而且還提供一個8通道的模擬多路開關(guān)和通道尋址邏輯,因而有理由把它作為簡單的“數(shù)據(jù)采集系統(tǒng)”。利用它可直接輸入8個單端的模擬信號分時進(jìn)行a/d轉(zhuǎn)換,在多點巡回檢測和過程控制、運動控制中應(yīng)用十分廣泛。1) 主要技術(shù)指標(biāo)和特性(1)分辨率: 8位。(2)總的不可調(diào)誤差: adc0808為±lsb,adc 0809為±1lsb。(3)轉(zhuǎn)換時間: 取決于芯片時鐘頻率,如clk=500khz時,tconv=128s。(4)單一

5、電源: +5v。(5)模擬輸入電壓范圍: 單極性05v;雙極性±5v,±10v(需外加一定電路)。(6)具有可控三態(tài)輸出緩存器。(7)啟動轉(zhuǎn)換控制為脈沖式(正脈沖),上升沿使所有內(nèi)部寄存器清零,下降沿使a/d轉(zhuǎn)換開始。(8)使用時不需進(jìn)行零點和滿刻度調(diào)節(jié)。2) 內(nèi)部結(jié)構(gòu)和外部引腳adc0808/0809的內(nèi)部結(jié)構(gòu)和外部引腳分別如圖11.19和圖11.20所示。內(nèi)部各部分的作用和工作原理在內(nèi)部結(jié)構(gòu)圖中已一目了然,在此就不再贅述,下面僅對各引腳定義分述如下: 圖11.19 adc0808/0809內(nèi)部結(jié)構(gòu)框圖(1)in0in78路模擬輸入,通過3根地址譯碼線adda、addb、

6、addc來選通一路。(2)d7d0a/d轉(zhuǎn)換后的數(shù)據(jù)輸出端,為三態(tài)可控輸出,故可直接和微處理器數(shù)據(jù)線連接。8位排列順序是d7為最高位,d0為最低位。(3)adda、addb、addc模擬通道選擇地址信號,adda為低位,addc為高位。地址信號與選中通道對應(yīng)關(guān)系如表11.3所示。(4)vr(+)、vr(-)正、負(fù)參考電壓輸入端,用于提供片內(nèi)dac電阻網(wǎng)絡(luò)的基準(zhǔn)電壓。在單極性輸入時,vr(+)=5v,vr(-)=0v;雙極性輸入時,vr(+)、vr(-)分別接正、負(fù)極性的參考電壓。圖11.20 adc0808/0809外部引腳圖表11.3 地址信號與選中通道的關(guān)系地 址選中通道addcaddba

7、dda000011110011001101010101in0in1in2in3in4in5in6in7(5)ale地址鎖存允許信號,高電平有效。當(dāng)此信號有效時,a、b、c三位地址信號被鎖存,譯碼選通對應(yīng)模擬通道。在使用時,該信號常和start信號連在一起,以便同時鎖存通道地址和啟動a/d轉(zhuǎn)換。(6)starta/d轉(zhuǎn)換啟動信號,正脈沖有效。加于該端的脈沖的上升沿使逐次逼近寄存器清零,下降沿開始a/d轉(zhuǎn)換。如正在進(jìn)行轉(zhuǎn)換時又接到新的啟動脈沖,則原來的轉(zhuǎn)換進(jìn)程被中止,重新從頭開始轉(zhuǎn)換。(7)eoc轉(zhuǎn)換結(jié)束信號,高電平有效。該信號在a/d轉(zhuǎn)換過程中為低電平,其余時間為高電平。該信號可作為被cpu查詢

8、的狀態(tài)信號,也可作為對cpu的中斷請求信號。在需要對某個模擬量不斷采樣、轉(zhuǎn)換的情況下,eoc也可作為啟動信號反饋接到start端,但在剛加電時需由外電路第一次啟動。(8)oe輸出允許信號,高電平有效。當(dāng)微處理器送出該信號時,adc0808/0809的輸出三態(tài)門被打開,使轉(zhuǎn)換結(jié)果通過數(shù)據(jù)總線被讀走。在中斷工作方式下,該信號往往是cpu發(fā)出的中斷請求響應(yīng)信號。3) 工作時序與使用說明adc 0808/0809的工作時序如圖11.21所示。當(dāng)通道選擇地址有效時,ale信號一出現(xiàn),地址便馬上被鎖存,這時轉(zhuǎn)換啟動信號緊隨ale之后(或與ale同時)出現(xiàn)。start的上升沿將逐次逼近寄存器sar復(fù)位,在該

9、上升沿之后的2s加8個時鐘周期內(nèi)(不定),eoc信號將變低電平,以指示轉(zhuǎn)換操作正在進(jìn)行中,直到轉(zhuǎn)換完成后eoc再變高電平。微處理器收到變?yōu)楦唠娖降膃oc信號后,便立即送出oe信號,打開三態(tài)門,讀取轉(zhuǎn)換結(jié)果。圖11.21 adc 0808/0809工作時序模擬輸入通道的選擇可以相對于轉(zhuǎn)換開始操作獨立地進(jìn)行(當(dāng)然,不能在轉(zhuǎn)換過程中進(jìn)行),然而通常是把通道選擇和啟動轉(zhuǎn)換結(jié)合起來完成(因為adc0808/0809的時間特性允許這樣做)。這樣可以用一條寫指令既選擇模擬通道又啟動轉(zhuǎn)換。在與微機(jī)接口時,輸入通道的選擇可有兩種方法,一種是通過地址總線選擇,一種是通過數(shù)據(jù)總線選擇。如用eoc信號去產(chǎn)生中斷請求,

10、要特別注意eoc的變低相對于啟動信號有2s+8個時鐘周期的延遲,要設(shè)法使它不致產(chǎn)生虛假的中斷請求。為此,最好利用eoc上升沿產(chǎn)生中斷請求,而不是靠高電平產(chǎn)生中斷請求。2. ad574aad574a是美國ad公司的產(chǎn)品,是目前國際市場上較先進(jìn)的、價格低廉、應(yīng)用較廣的混合集成12位逐次逼近式adc芯片。它分6個等級,即ad574aj、ak、al、as、at、au,前三種使用溫度范圍為0+70,后三種為-55+125。它們除線性度及其他某些特性因等級不同而異外,主要性能指標(biāo)和工作特點是相同的。1) 主要技術(shù)指標(biāo)和特性(1)非線性誤差: ±1lsb或±lsb(因等級不同而異)。(2

11、)電壓輸入范圍: 單極性0+10v,0+20v,雙極性±5v,±10v。(3)轉(zhuǎn)換時間: 35s。(4)供電電源: +5v,±15v。(5)啟動轉(zhuǎn)換方式: 由多個信號聯(lián)合控制,屬脈沖式。(6)輸出方式: 具有多路方式的可控三態(tài)輸出緩存器。(7)無需外加時鐘。(8)片內(nèi)有基準(zhǔn)電壓源??赏饧觱r,也可通過將vo(r)與vi(r)相連而自己提供vr。內(nèi)部提供的vr為(10.00±0.1)v(max),可供外部使用,其最大輸出電流為1.5ma;(9)可進(jìn)行12位或8位轉(zhuǎn)換。12位輸出可一次完成,也可兩次完成(先高8位,后低4位)。2) 內(nèi)部結(jié)構(gòu)與引腳功能ad57

12、4a的內(nèi)部結(jié)構(gòu)與外部引腳如圖11.22所示。從圖可見,它由兩片大規(guī)模集成電路混合而成: 一片為以d/a轉(zhuǎn)換器ad565和10v基準(zhǔn)源為主的模擬片,一片為集成了逐次逼近寄存器sar和轉(zhuǎn)換控制電路、時鐘電路、三態(tài)輸出緩沖器電路和高分辨率比較器的數(shù)字片,其中12位三態(tài)輸出緩沖器分成獨立的a、b、c三段,每段4位,目的是便于與各種字長微處理器的數(shù)據(jù)總線直接相連。ad574a為28引腳雙列直插式封裝,各引腳信號的功能定義分述如下: 圖11.22 ad574a的結(jié)構(gòu)框圖與引腳(1)12/輸出數(shù)據(jù)方式選擇。當(dāng)接高電平時,輸出數(shù)據(jù)是12位字長;當(dāng)接低電平時,是將轉(zhuǎn)換輸出的數(shù)變成兩個8位字輸出。(2)a0轉(zhuǎn)換數(shù)

13、據(jù)長度選擇。當(dāng)a0為低電平時,進(jìn)行12位轉(zhuǎn)換;a0為高電平時,則為8位長度的轉(zhuǎn)換。(3)片選信號。(4)r/讀或轉(zhuǎn)換選擇。當(dāng)為高電平時,可將轉(zhuǎn)換后數(shù)據(jù)讀出;當(dāng)為低電平時,啟動轉(zhuǎn)換。(5)ce芯片允許信號,用來控制轉(zhuǎn)換與讀操作。只有當(dāng)它為高電平時,并且=0時,r/信號的控制才起作用。ce和、r/、12/、a0信號配合進(jìn)行轉(zhuǎn)換和讀操作的控制真值表如表11.4所示。(6)vcc正電源,電壓范圍為0+16.5v。(7)vo(r)+10v參考電壓輸出端,具有1.5ma的帶負(fù)載能力。表11.4 ad574a的轉(zhuǎn)換和讀操作控制真值表ce12 /a0操作內(nèi)容0×11111×100000&#

14、215;×00111××××+5vdgnddgnd××01×01無操作無操作啟動一次12位轉(zhuǎn)換啟動一次8位轉(zhuǎn)換并行讀出12位讀出高8位(a段和b段)讀出c段低4位,并自動后跟4個0(8)agnd模擬地。(9)gnd數(shù)字地。(10)vi(r)參考電壓輸入端。(11)vee負(fù)電源,可選加-11.4v-16.5v之間的電壓。(12)bip off雙極性偏移端,用于極性控制。單極性輸入時接模擬地(agnd),雙極性輸入時接vo(r)端。(13)vi(10)單極性010v范圍輸入端,雙極性±5v范圍輸入端。(14)

15、vi(20)單極性020v范圍輸入端,雙極性±10v范圍輸入端。(15)sts轉(zhuǎn)換狀態(tài)輸出端,只在轉(zhuǎn)換進(jìn)行過程中呈現(xiàn)高電平,轉(zhuǎn)換一結(jié)束立即返回到低電平??捎貌樵兎绞綑z測此端電平變化,來判斷轉(zhuǎn)換是否結(jié)束,也可利用它的負(fù)跳變沿來觸發(fā)一個觸發(fā)器產(chǎn)生irq信號,在中斷服務(wù)程序中讀取轉(zhuǎn)換后的有效數(shù)據(jù)。從轉(zhuǎn)換被啟動并使sts變高電平一直到轉(zhuǎn)換周期完成這一段時間內(nèi),ad574a對再來的啟動信號不予理睬,轉(zhuǎn)換進(jìn)行期間也不能從輸出數(shù)據(jù)緩沖器讀取數(shù)據(jù)。3) 工作時序ad574a的工作時序如圖11.23所示。對其啟動轉(zhuǎn)換和轉(zhuǎn)換結(jié)束后讀數(shù)據(jù)兩個過程分別說明如下: 圖11.23 ad574a的工作時序(1)啟

16、動轉(zhuǎn)換在=0和ce=1時,才能啟動轉(zhuǎn)換。由于是=0和ce=1相與后,才能啟動a/d轉(zhuǎn)換,因此實際上這兩者中哪一個信號后出現(xiàn),就認(rèn)為是該信號啟動了轉(zhuǎn)換。無論用哪一個啟動轉(zhuǎn)換,都應(yīng)使r/c信號超前其200ns時間變低電平。從圖11.23可看出,是由ce啟動轉(zhuǎn)換的,當(dāng)r/為低電平時,啟動后才是轉(zhuǎn)換,否則將成為讀數(shù)據(jù)操作。在轉(zhuǎn)換期間sts為高電平,轉(zhuǎn)換完成時變低電平。(2)讀轉(zhuǎn)換數(shù)據(jù)在=0和ce=1且為高電平時,才能讀數(shù)據(jù),由12/決定是12位并行讀出,還是兩次讀出。如圖11.23所示,或ce信號均可用作允許輸出信號,看哪一個后出現(xiàn),圖中為ce信號后出現(xiàn)。規(guī)定a0要超前于讀信號至少150ns,信號超前

17、于ce信號最小可到零。從表11.4和圖11.23可看出,ad574a還能以一種單獨控制(stand-alone)方式工作: ce和12/固定接高電平,和a0固定接地,只用來控制轉(zhuǎn)換和讀數(shù),=0時啟動12位轉(zhuǎn)換,=1時并行讀出12位數(shù)。具體實現(xiàn)辦法可有兩種: 正脈沖控制和負(fù)脈沖控制。當(dāng)使用350ns以上的正脈沖控制時,有脈沖期間開啟三態(tài)緩沖器讀數(shù),脈沖后沿(下降沿)啟動轉(zhuǎn)換。當(dāng)使用400ns以上的負(fù)脈沖控制時,則前沿啟動轉(zhuǎn)換,脈沖結(jié)束后讀數(shù)。4) 使用方法ad574a有單極性和雙極性兩種模擬輸入方式。(1)單極性輸入的接線和校準(zhǔn)單極性輸入的接線如圖11.24(a)所示。ad574a在單極性方式下

18、,有兩種額定的模擬輸入范圍: 0+10v的輸入接在vi(10)和agnd間,0+20v輸入接在vi(20)和agnd間。r1用于偏移調(diào)整(如不需進(jìn)行調(diào)整可把bip off直接接agnd,省去外加的調(diào)整電路),r2用于滿量程調(diào)整(如不需調(diào)整,r2可用一個50±1%的金屬膜固定電阻代替)。為使量化誤差為±lsb,ad574a的額定偏移規(guī)定為lsb。因此在作偏移調(diào)整時,使輸入電壓為lsb(滿量程電壓為+10v時是1.22mv),調(diào)r1,使數(shù)字輸出為000000000000到000000000001的跳變。在做滿量程調(diào)整時,是通過施加一個低于滿量程值1lsb的模擬信號進(jìn)行的,這時調(diào)

19、r2以得到從111111111110到111111111111的跳變點。(2)雙極性輸入的接線和校準(zhǔn)雙極性輸入的接線如圖11.24(b)所示。和單極性輸入時一樣,雙極性時也有兩種額定的模擬輸入范圍: ±5v和±10v。±5v輸入接在vi(10)和agnd之間;±10v接在vi(20)和agnd之間。圖11.24 ad574a的輸入接線圖雙極性校準(zhǔn)也類似于單極性校準(zhǔn)。調(diào)整方法是,先施加一個高于負(fù)滿量程lsb(對于±5v范圍為-4.9988v)的輸入電壓,調(diào)r1,使輸出出現(xiàn)從000000000000到000000000001的跳變;再施加一個低于正

20、滿量程1lsb(對于±5v范圍為+4.9963v)的輸入信號,調(diào)r2使輸出現(xiàn)從111111111110到111111111111的跳變。如偏移和增益無需調(diào)整,則相應(yīng)的調(diào)整電阻也和在單極性中一樣,r2可用50±1%的固定電阻代替。adc 0808 與 adc 0809 區(qū)別§7.3 a/d轉(zhuǎn)換器adc0809與 mcs-51單片機(jī)的接口設(shè)計 adc0808/0809八位逐次逼近式a/d轉(zhuǎn)換器是一種單片cmos器件,包括8位的模/數(shù)轉(zhuǎn)換器,8通道多路轉(zhuǎn)換器和與微處理器兼容的控制邏輯.8通道多路轉(zhuǎn)換器能直接連通8個單端模擬信號中一任何一個. 一,adc0808/0809

21、的內(nèi)部結(jié)構(gòu)及引腳功能 1,adc0809轉(zhuǎn)換器內(nèi)部結(jié)構(gòu)2,adc0809引腳功能分辨率為8位.最大不可調(diào)誤差adc0808小于±1/2lsb,adc0809小于±1lsb單一+5v供電,模擬輸入范圍為05v.具有鎖存三態(tài)輸出,輸出與ttl兼容.功耗為15mw.不必進(jìn)行零點和滿度調(diào)整.轉(zhuǎn)換速度取決于芯片的時鐘頻率.時鐘頻率范圍:101280khz當(dāng)clk=500khz時,轉(zhuǎn)換速度為128s.in0in7:8路輸入通道的模擬量輸入端口. 2-12-8:8位數(shù)字量輸出端口. start,ale:start為啟動控制輸入端口,ale為地址鎖存控制信號端口.這兩個信號端可連接在一起,

22、當(dāng)通過軟件輸入一個正脈沖,便立即啟動模/數(shù)轉(zhuǎn)換.eoc,oe:eoc為轉(zhuǎn)換結(jié)束信號脈沖輸出端口,oe為輸出允許控制端口,這兩個信號亦可連結(jié)在一起表示模/數(shù)轉(zhuǎn)換結(jié)束.oe端的電平由低變高,打開三態(tài)輸出鎖存器,將轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上.ref(+),ref(-),vcc,gnd,ref(+)和ref(-)為參考電壓輸入端,vcc為主電源輸入端,gnd為接地端.一般ref(+)與vcc連接在一起,ref(-)與gnd連接在一起.clk:時鐘輸入端.3,8路模擬開關(guān)的三位地址選通編碼表adda,b,c8路模擬開關(guān)的三位地址選通輸入端,以選擇對應(yīng)的輸入通道. 地 址 碼對應(yīng)的輸入通道cba00

23、0011110011001101010101in0in1in2in3in4in5in6in7二,adc0808/0809與8031單片機(jī)的接口設(shè)計 adc0808/0809與8031單片機(jī)的硬件接口有三種方式,查詢方式,中斷方式和等待延時方式.究竟采用何種方式,應(yīng)視具體情況,按總體要求而選擇.1.延時方式 adc0809編程模式在軟件編寫時,應(yīng)令p2.7=a15=0;a0,a1,a2給出被選擇的模擬通道的地址;執(zhí)行一條輸出指令,啟動a/d轉(zhuǎn)換;執(zhí)行一條輸入指令,讀取a/d轉(zhuǎn)換結(jié)果.通道地址:7ff8h7fffh下面的程序是采用延時的方法,分別對8路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)存到數(shù)據(jù)存

24、儲區(qū)的采樣轉(zhuǎn)換程序.start: mov r1, #50h ;置數(shù)據(jù)區(qū)首地址mov dptr, #7ff8h ;p2.7=0且指向通道0 mov r7, #08h ;置通道數(shù) next: movx dptr,a ;啟動a/d轉(zhuǎn)換mov r6, #0ah ;軟件延時dlay: nopnopnopdjnz r6, dlaymovx a, dptr ;讀取轉(zhuǎn)換結(jié)果mov r1, a ;存儲數(shù)據(jù)inc dptr ;指向下一個通道inc r1 ;修改數(shù)據(jù)區(qū)指針 djnz r7, next ;8個通道全采樣完了嗎 . 2.中斷方式 將adc0808/0809作為一個外部擴(kuò)展的并行i/o口,直接由8031的

25、p2.0和脈沖進(jìn)行啟動.通道地址為fef8hfeffh用中斷方式讀取轉(zhuǎn)換結(jié)果的數(shù)字量,模擬量輸入通路選擇端a,b,c分別與8031的p0.0,p0.1,p0.2(經(jīng)74ls373)相連,clk由8031的ale提供. intadc:setb it1 ;選擇為邊沿觸發(fā)方式setb ea ;開中斷setb ex1 ;mov dptr, #0fef8h ;通道地址送dptrmovx dptr,a ;啟動a/d轉(zhuǎn)換pint1: mov dptr, #0fef8h ; 通道地址送dptrmovx a, dptr;讀取從in0輸入的轉(zhuǎn)換結(jié)果存入mov 50h, a ;50h單元movx dptr,a ;啟

26、動a/d轉(zhuǎn)換reti ;中斷返回三,接口電路設(shè)計中的幾點注意事項1.關(guān)于adc0808/0809最高工作時鐘頻率的說明由于adc0808/0809芯片內(nèi)無時鐘,所以必須靠外部提供時鐘;外部時鐘的頻率范圍為10khz1280khz.在前面的adc0808/0809通過中斷方式與8031單片機(jī)接口的電路中,8031單片機(jī)的主頻接為6mhz,ale提供adc0808/0809的時鐘頻率為1mhz(1000khz);實際應(yīng)用系統(tǒng)使用證明,adc0808/0809能夠正??煽康毓ぷ?但在用戶進(jìn)行adc0808/0809應(yīng)用設(shè)計時,推薦選用640khz左右的時鐘頻率. 2,adc0816/17與adc08

27、09的主要區(qū)別adc0816/0817與adc0808/0809相比,除模擬量輸入通道數(shù)增至16路,封裝為40引腳外,其原理,性能結(jié)構(gòu)基本相同.adc0816和adc0817的主要區(qū)別是:adc0816的最大不可調(diào)誤差為±1/2lsb,精度高,價格也高;adc0817的最大不可調(diào)誤差為士1lsb,價格低. 習(xí)題七 試設(shè)計一數(shù)據(jù)采集系統(tǒng) 2002.10 使用單位: 山東省氣象局在東營市孤島氣象觀察站設(shè)計單位: 山東大學(xué)物理與微電子學(xué)院2000級設(shè)計方案: 自行確定提 示: 對于非模擬物理量,可以用下圖示意即可非電物理量傳感器a/d轉(zhuǎn)換器§7.3 a/d轉(zhuǎn)換器adc0809與

28、mcs-51單片機(jī)的接口設(shè)計 adc0808/0809八位逐次逼近式a/d轉(zhuǎn)換器是一種單片cmos器件,包括8位的模/數(shù)轉(zhuǎn)換器,8通道多路轉(zhuǎn)換器和與微處理器兼容的控制邏輯.8通道多路轉(zhuǎn)換器能直接連通8個單端模擬信號中一任何一個. 一,adc0808/0809的內(nèi)部結(jié)構(gòu)及引腳功能 1,adc0809轉(zhuǎn)換器內(nèi)部結(jié)構(gòu)2,adc0809引腳功能分辨率為8位.最大不可調(diào)誤差adc0808小于±1/2lsb,adc0809小于±1lsb單一+5v供電,模擬輸入范圍為05v.具有鎖存三態(tài)輸出,輸出與ttl兼容.功耗為15mw.不必進(jìn)行零點和滿度調(diào)整.轉(zhuǎn)換速度取決于芯片的時鐘頻率.時鐘頻率

29、范圍:101280khz當(dāng)clk=500khz時,轉(zhuǎn)換速度為128s.in0in7:8路輸入通道的模擬量輸入端口. 2-12-8:8位數(shù)字量輸出端口. start,ale:start為啟動控制輸入端口,ale為地址鎖存控制信號端口.這兩個信號端可連接在一起,當(dāng)通過軟件輸入一個正脈沖,便立即啟動模/數(shù)轉(zhuǎn)換.eoc,oe:eoc為轉(zhuǎn)換結(jié)束信號脈沖輸出端口,oe為輸出允許控制端口,這兩個信號亦可連結(jié)在一起表示模/數(shù)轉(zhuǎn)換結(jié)束.oe端的電平由低變高,打開三態(tài)輸出鎖存器,將轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上.ref(+),ref(-),vcc,gnd,ref(+)和ref(-)為參考電壓輸入端,vcc為主電

30、源輸入端,gnd為接地端.一般ref(+)與vcc連接在一起,ref(-)與gnd連接在一起.clk:時鐘輸入端.3,8路模擬開關(guān)的三位地址選通編碼表adda,b,c8路模擬開關(guān)的三位地址選通輸入端,以選擇對應(yīng)的輸入通道. 地 址 碼對應(yīng)的輸入通道cba000011110011001101010101in0in1in2in3in4in5in6in7二,adc0808/0809與8031單片機(jī)的接口設(shè)計 adc0808/0809與8031單片機(jī)的硬件接口有三種方式,查詢方式,中斷方式和等待延時方式.究竟采用何種方式,應(yīng)視具體情況,按總體要求而選擇.1.延時方式 adc0809編程模式在軟件編寫時

31、,應(yīng)令p2.7=a15=0;a0,a1,a2給出被選擇的模擬通道的地址;執(zhí)行一條輸出指令,啟動a/d轉(zhuǎn)換;執(zhí)行一條輸入指令,讀取a/d轉(zhuǎn)換結(jié)果.通道地址:7ff8h7fffh下面的程序是采用延時的方法,分別對8路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)存到數(shù)據(jù)存儲區(qū)的采樣轉(zhuǎn)換程序.start: mov r1, #50h ;置數(shù)據(jù)區(qū)首地址mov dptr, #7ff8h ;p2.7=0且指向通道0 mov r7, #08h ;置通道數(shù) next: movx dptr,a ;啟動a/d轉(zhuǎn)換mov r6, #0ah ;軟件延時dlay: nopnopnopdjnz r6, dlaymovx a, dpt

32、r ;讀取轉(zhuǎn)換結(jié)果mov r1, a ;存儲數(shù)據(jù)inc dptr ;指向下一個通道inc r1 ;修改數(shù)據(jù)區(qū)指針 djnz r7, next ;8個通道全采樣完了嗎 . 2.中斷方式 將adc0808/0809作為一個外部擴(kuò)展的并行i/o口,直接由8031的p2.0和脈沖進(jìn)行啟動.通道地址為fef8hfeffh用中斷方式讀取轉(zhuǎn)換結(jié)果的數(shù)字量,模擬量輸入通路選擇端a,b,c分別與8031的p0.0,p0.1,p0.2(經(jīng)74ls373)相連,clk由8031的ale提供. intadc:setb it1 ;選擇為邊沿觸發(fā)方式setb ea ;開中斷setb ex1 ;mov dptr, #0fe

33、f8h ;通道地址送dptrmovx dptr,a ;啟動a/d轉(zhuǎn)換pint1: mov dptr, #0fef8h ; 通道地址送dptrmovx a, dptr;讀取從in0輸入的轉(zhuǎn)換結(jié)果存入mov 50h, a ;50h單元movx dptr,a ;啟動a/d轉(zhuǎn)換reti ;中斷返回三,接口電路設(shè)計中的幾點注意事項1.關(guān)于adc0808/0809最高工作時鐘頻率的說明由于adc0808/0809芯片內(nèi)無時鐘,所以必須靠外部提供時鐘;外部時鐘的頻率范圍為10khz1280khz.在前面的adc0808/0809通過中斷方式與8031單片機(jī)接口的電路中,8031單片機(jī)的主頻接為6mhz,al

34、e提供adc0808/0809的時鐘頻率為1mhz(1000khz);實際應(yīng)用系統(tǒng)使用證明,adc0808/0809能夠正??煽康毓ぷ?但在用戶進(jìn)行adc0808/0809應(yīng)用設(shè)計時,推薦選用640khz左右的時鐘頻率. 2,adc0816/17與adc0809的主要區(qū)別adc0816/0817與adc0808/0809相比,除模擬量輸入通道數(shù)增至16路,封裝為40引腳外,其原理,性能結(jié)構(gòu)基本相同.adc0816和adc0817的主要區(qū)別是:adc0816的最大不可調(diào)誤差為±1/2lsb,精度高,價格也高;adc0817的最大不可調(diào)誤差為士1lsb,價格低. 習(xí)題七 試設(shè)計一數(shù)據(jù)采集

35、系統(tǒng) 2002.10 使用單位: 山東省氣象局在東營市孤島氣象觀察站設(shè)計單位: 山東大學(xué)物理與微電子學(xué)院2000級設(shè)計方案: 自行確定提 示: 對于非模擬物理量,可以用下圖示意即可adc0808百科名片adc0808是采樣分辨率為8位的、以逐次逼近原理進(jìn)行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進(jìn)行a/d轉(zhuǎn)換。adc0808是adc0809的簡化版本,功能基本相同。一般在硬件仿真時采用adc0808進(jìn)行a/d轉(zhuǎn)換,實際使用時采用adc0809進(jìn)行a/d轉(zhuǎn)換。    adc0808管腳圖內(nèi)部結(jié)構(gòu)adc080

36、8是cmos單片型逐次逼近式ad轉(zhuǎn)換器,它有8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型a/d轉(zhuǎn)換器。 引腳功能(外部特性)adc0808芯片有28條引腳,采用雙列直插式封裝,如右圖所示。各引腳功能如下: 15和2628(in0in7):8路模擬量輸入端。 8、14、15和1721:8位數(shù)字量輸出端。 22(ale):地址鎖存允許信號,輸入,高電平有效。 6(start): ad轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動a/d轉(zhuǎn)換)。 7(eoc): ad轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)ad轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低

37、電平)。 9(oe):數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)ad轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 10(clk):時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 12(vref(+)和16(vref(-):參考電壓輸入端 11(vcc):主電源輸入端。 13(gnd):地。 2325(adda、addb、addc):3位地址輸入線,用于選通8路模擬輸入中的一路    通道選擇極限參數(shù)電源電壓(vcc):6.5v 控制端輸入電壓:-0.3v15v 其它輸入和輸出端電壓:-0.3vvcc+0.3v 貯存溫度:-65+150 功耗(t=+25):

38、875mw 引線焊接溫度:氣相焊接(60s):215;紅外焊接(15s):220 抗靜電強(qiáng)度:400v一個風(fēng)格很好的ad轉(zhuǎn)換程序,值得你參考 標(biāo)簽: ad轉(zhuǎn)換程序 頂0 分享到 發(fā)表評論(0) 編輯詞條 開心001 人人網(wǎng) 新浪微博 /icc-avr application builder : 2007/6/23 1:26:55/ target : m16/ crystal:1.0000mhz#include <iom16v.h>#include <macros.h>#define adc_vref_type 0xe0   /選用2.56v 的片內(nèi)基

39、準(zhǔn)電壓源,且結(jié)果為左對齊#define ad_se_adc0 0x00   /adc0unsigned char table10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;   /數(shù)碼管字型09unsigned char data4 = 0,0,0,0;           /存放a/d轉(zhuǎn)換結(jié)果unsigned long int i,j=2560,k=256;void port_init(voi

40、d)porta = 0x01;ddra = 0x00;portb = 0xff;ddrb = 0xff;portc = 0x0f; /m103 output onlyddrc = 0x0f;portd = 0x00;ddrd = 0x00;/adc initialize/ conversion time: 112usvoid adc_init(void)adcsr = 0x00; /disable adcadmux = 0x00; /select adc input 0acsr = 0x80;adcsr = 0x86;/call this routine to initialize all p

41、eripheralsvoid init_devices(void)/stop errant interrupts until set upcli(); /disable all interruptsport_init();adc_init();mcucr = 0x00;gicr = 0x00;timsk = 0x00; /timer interrupt sourcessei(); /re-enable interrupts/all peripherals are now initializedvoid delay_(unsigned char a)unsigned int i;for(i=0;

42、i<a*7373;i+);void display(unsigned char p)   /動態(tài)顯示,unsigned char i;for(i=0;i<4;i+)portd=0x01<<i;portb=tablepi;delay_(5);portd&=(0x01<<i);unsigned int read_adc(unsigned char adc_input)   /讀取a/d轉(zhuǎn)換結(jié)果admux=adc_input|adc_vref_type;   adcsra|=0x40; 

43、      /啟動a/d轉(zhuǎn)換while (adcsra&0x10)=0);   /等待a/d轉(zhuǎn)換完成adcsra|=0x10;return adch;void process(unsigned int i,unsigned char *p)   /數(shù)據(jù)處理函數(shù)p0=i/1000;i=i%1000;p1=i/100;i=i%100;p2=i/10;i=i%10;p3=i;void main(void)init_devices();ddra=0x00;   /設(shè)置a口為不帶上拉輸入

44、;porta=0x00;ddrb=0xff;   /設(shè)置b口為輸出口;ddrd=0xff;   /設(shè)置d口為輸出口;portb=0x3f;   /b口初始化輸出0 ;d口初始化輸出1;點亮全部數(shù)碼管;portd=0xff;admux=adc_vref_type;   /選擇第一通道adc0;adcsra=0xa6;   /125k轉(zhuǎn)換速率,自由轉(zhuǎn)換模式;啟動a/d轉(zhuǎn)換;delay_(1000);   /延時待系統(tǒng)穩(wěn)定;while(1)i=read_adc(ad_se_adc0

45、);   /獲取a/d轉(zhuǎn)換數(shù)據(jù)i=(i*j)/k;process(i,data);   /數(shù)據(jù)處理   display(data);   /顯示結(jié)果delay_(5);ad轉(zhuǎn)換程序匯編語言2007年10月12日 星期五 13:46;實驗?zāi)康模菏煜/d轉(zhuǎn)換;軟件思路:選擇rao做為模擬輸入通道;;           連續(xù)轉(zhuǎn)換4次再求平均值做為轉(zhuǎn)換結(jié)果;     &#

46、160;     最后結(jié)構(gòu)只取低8位;           結(jié)果送數(shù)碼管的低3位顯示;硬件要求:撥碼開關(guān)s14第2位置on,第1位置off;           撥碼開關(guān)s6全部置on,s5第4-6位置on,第1-3位置off;           為不影響結(jié)

47、果,其他撥碼開關(guān)置off。#include<p16f877a.inc>       ;包含芯片頭文件_config _debug_off&_cp_all&_wrt_half&_cpd_on&_lvp_off&_boden_off&_pwrte_on&_wdt_off&_hs_osc;*寄存器定義*temp        equ     20h 

48、;      ;臨時寄存器bai         equ     21h       ;轉(zhuǎn)換結(jié)果的百位shi         equ     22h       ;轉(zhuǎn)換結(jié)果的十位ge

49、0;         equ     23h       ;轉(zhuǎn)換結(jié)果的個位;*   org        00h              ;復(fù)位入口地址   nop &

50、#160;                      ;icd需要的空指令   goto       main             ;跳轉(zhuǎn)到主程序入口   org&#

51、160;       04h              ;中斷入口地址   retfie                     ;放置一條中斷返回指令,防止以外中斷發(fā)生;*查表程序*;入口

52、參數(shù):w;出口參數(shù):wtable   addwf        pcl,1          ;指令寄存器加上偏移地址      retlw        0c0h           ;0的編碼(公

53、陽極數(shù)碼管)                                retlw        0f9h         &

54、#160; ;1的編碼   retlw        0a4h           ;2的編碼   retlw        0b0h           ;3的編碼   retlw 

55、60;      99h            ;4的編碼   retlw        92h            ;5的編碼   retlw      &

56、#160; 082h           ;6   retlw        0f8h           ;7   retlw        080h     

57、0;     ;8   retlw        090h           ;9;*主程序*main   movlw      30h   movwf      fsr     

58、;         ;轉(zhuǎn)換結(jié)果存放起始地址          loop   bsf        status,rp0       ;選擇體1   movlw      7h  &

59、#160;            ;a口高3位為輸出,低3位輸入   movwf      trisa   clrf       trisd            ;d口設(shè)為輸出   movlw &#

60、160;    8eh   movwf      adcon1           ;結(jié)果左對齊,只選擇ra0做adc口,其余做普通數(shù)字口   bcf        status,rp0       ;回體0   movlw

61、60;     41h   movwf      adcon0           ;選擇時鐘源為fosc/8,允許adc工作   call       delay            ;調(diào)用延時程

62、序,保證足夠的采樣時間   bsf        adcon0,go        ;啟動adc轉(zhuǎn)換wait   btfss      pir1,adif        ;轉(zhuǎn)換是否完成   goto       wait

63、             ;等待轉(zhuǎn)換的完成   bsf        status,rp0   movfw      adresl           ;讀取轉(zhuǎn)換的結(jié)果   bcf 

64、0;      status,rp0   movwf      indf             ;保存到臨時寄存器里   incf       fsr,1   btfss      fsr,2 &#

65、160;          ;連續(xù)轉(zhuǎn)換4次,求平均值   goto       loop   call       change           ;調(diào)用結(jié)果轉(zhuǎn)換程序   call    

66、   display          ;調(diào)用顯示程序   goto       main             ;循環(huán)工作;*轉(zhuǎn)換程序*;入口參數(shù):30h-33h;出口參數(shù):bai,shi,gechange   clrf    

67、;   bai   clrf       shi   clrf       ge               ;先清除結(jié)果寄存器   movfw      31h    

68、          ;以下8條指令求4次轉(zhuǎn)換結(jié)果的平均值   addwf      30h,1   movfw      32h   addwf      30h,1   movfw      33h   ad

69、dwf      30h,1   rrf        30h,1   rrf        30h,0              movwf      temp   m

70、ovlw      64h              ;減100,結(jié)果保留在w中   subwf      temp,0   btfss      status,c         ;判斷是否大于10

71、0   goto       shi_val          ;否,轉(zhuǎn)求十位結(jié)果   movwf      temp             ;是,差送回temp中   incf   &#

72、160;   bai,1            ;百位加1   goto       $-6              ;返回繼續(xù)求百位的值shi_val   movlw      0ah&

73、#160;             ;減10,結(jié)果保留在w中   subwf      temp,0             btfss      status,c      &#

74、160;  ;判斷是否大于10   goto       ge_val           ;否,轉(zhuǎn)去判斷個位結(jié)果   movwf      temp             ;是,差送回temp中  

75、; incf       shi,1            ;十位值加1   goto       $-6              ;轉(zhuǎn)會繼續(xù)求十位的值ge_val   movfw 

76、60;    temp   movwf      ge               ;個位的值   return;*顯示程序*;入口參數(shù):bai,shi,ge;出口參數(shù):無display   movfw     bai     &

77、#160;         ;顯示百位   call      table   movwf     portd   bcf       porta,3   call      delay   call 

78、0;    delay   bsf       porta,3   movfw     shi               ;顯示十位   call      table   movwf     portd

溫馨提示

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

評論

0/150

提交評論