




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中英語教學(xué)與藝術(shù)展覽文化語境探究論文
- 藝術(shù)生體重管理制度
- 茶坊專用杯管理制度
- 駐外維修工管理制度
- 一年級《夜色》課件
- 財務(wù)會計-處理會計信息
- 經(jīng)典案例-鼠標(biāo)移過放大
- 大學(xué)生戀愛問題調(diào)查報告
- 高等教學(xué)系列 管理學(xué)教學(xué) 第三章 計劃 內(nèi)有超多案例分析
- 計算機(jī)信息處理技術(shù)理論題
- 科技助力植樹節(jié):無人機(jī)、機(jī)器人種樹新趨勢
- 沖刺高考英語詞性轉(zhuǎn)換(易錯)背誦版默寫版(各版本通用)
- 《Python語言程序設(shè)計》課程標(biāo)準(zhǔn)
- 電大國開??疲ǜ酱鸢福掇k公室管理》形考在線(形考任務(wù)五)試題
- 磚混廠房改鋼結(jié)構(gòu)施工方案
- 團(tuán)體保險投保單
- 2022年失業(yè)保險基金績效評價報告(最終稿)
- 聞診問診切診
- 帶編入伍考試題
- 《觸不可及》影視鑒賞課件
- 當(dāng)代社會思潮辨析-課件
評論
0/150
提交評論